{"docstore/metadata": {"e06d7e7e-a58b-461c-9f03-8b7a580fc463": {"doc_hash": "076466310f14ae7b9c22d778965d073a71d9e1909d3696d05f6df695c5a7b423"}, "6422cd60-2321-4f9f-a31e-adf7b3c8e342": {"doc_hash": "29d504f7f8309daf72ffcd5f87ef33a1e6f886955dd138322b94f5f2ee58f03d"}, "ccea239e-3278-4217-bcc7-0073fb4c1414": {"doc_hash": "8abbba596e938fef5bd984877e46ec246122c0d869ad8048f0c15654d0dfab56"}, "792f02b9-7eb7-471d-aaa6-f6169baedd5d": {"doc_hash": "26e08ade6422621fff3c3db13a484a5ea286cfdc39a20c5c0be5ccf9c4d935d8"}, "2fc29119-41e0-4bbc-afb7-4ab7cf1e3246": {"doc_hash": "f94ec1b1e1cf5dd2756901dcd9f7b632339070ff14fd2815af55bec48f98794b"}, "09266a16-fa2a-4050-a53b-4a3b45e4ffe1": {"doc_hash": "2412a99583c3976d403c29fa19d98a43a38a36efaa492bf9c7e008f940d97859"}, "c9eacbf1-9acb-4280-baf9-e66191bd1537": {"doc_hash": "14fcc4c14939fcca748602c5a155ba0b3d7064cce1a2c0037bd5b507ed14bd69"}, "896d0f91-b641-4b85-92e0-2cbb50067abb": {"doc_hash": "e94016f79adfadc9323b79f142cd89cdc9641ac08ded3866ed5263807bbb8256"}, "7fe48277-beda-4d44-8b8f-97dd5e58eba5": {"doc_hash": "26c35128ef6962ea9c3e8434a574a7484f3af733767ff60a0a97cd2045aa860d"}, "53dbe867-ff8e-4766-bec3-82ceb839b2ae": {"doc_hash": "a66ed61138c2f87837e733ec2ee7948f33f55bde9b908fe138b93bf37668bccc"}, "fba38f01-4c6f-44a2-980c-196e7ca81b26": {"doc_hash": "0e932856d50b38c3c655c645f2f4a1f8be385712ba415496769640511623a352"}, "418558c8-88f2-45b7-9d76-49d3c67ea76d": {"doc_hash": "c0b3e7609600c2eb0d6059dd3efffdd6d2cd5cb06c898cc496ea7a00266df302"}, "c587750e-9ec3-48b3-b9f2-b450db98e029": {"doc_hash": "1723e9cfef4509a164f4e712065e0f66b250d167d208254f3a803989f887bbee"}, "e881be5a-63d4-4f1b-a997-10fac13decea": {"doc_hash": "db3b2b0c02eebcd2c59b33cd1851af8b853f071d91181e02be027faacd678f27"}, "d50c5b18-20d1-4d72-9666-c534ccfba462": {"doc_hash": "837c96d10ad30929fb231917a8a643dcb3df60e35eded73f1ada18fd36a7f617"}, "0cba35c9-da6c-48dd-b73c-684131dea98e": {"doc_hash": "7439491767f199acb00c7abf0a906477e71f492c8f91d3929da1081c0b79f1c9"}, "f77de622-da90-4b79-bc65-9e201d49e4c9": {"doc_hash": "f656fd24e84579dcc7ce09bf9845f1e930cea6d2ef932c3326cce837ed4798ab"}, "863d7868-1ee3-4f05-9c72-7f1d46d6b063": {"doc_hash": "2999436c4bcf44955e99217fddd17bf90195aee99a50a19363744fe3269636e2"}, "1ebe5d60-f409-4869-abad-ae26365cdfbf": {"doc_hash": "369dd1695cb6d11d3b94f7111ec7535d2696df75975a5b1898fc61f29c55a141"}, "ae3d3124-9227-44ba-8f9b-cecee8cc8e90": {"doc_hash": "50e76f2ddc7f14a111edc5a329ea189ded0d4e6b029556fa009622d6f6963cc6"}, "c9158297-daf8-44a4-9e31-13e2b745892f": {"doc_hash": "4559251253f675872405a6faef145a64e562960c298ef03b3a2902e6228014c5"}, "2e64b9d1-c1a2-41c4-9ceb-84f483cebdb0": {"doc_hash": "e4b45018a265af562ce0b8d84abf5743b069b74ba55dfd38ce57b6d35f7d0234"}, "e6b87de4-a158-4cd9-9322-300f432d0fe8": {"doc_hash": "3531e4f1260cbfea19ce42065e5f94d03a514088167a2eee7e793b12ca39a7c6"}, "ecfc2bb7-15c6-4952-a843-21830b4d4653": {"doc_hash": "43b2182fdbe6c85c1f64ac6b8f4677ea6e9a366130c6d3a37ef4e7bf7855734e"}, "abd01412-a2a5-4888-ab54-d9db0e07d473": {"doc_hash": "66f4f0fbf7374dbf1bd0cdc045af457b8e47a98039e3989f8d7c885ff1223fcc"}, "9c5efe40-56b8-488b-9dbc-d097c4258d68": {"doc_hash": "e7f5e586b548153eba3380e83129d8fbab61a096a6654030d553a9e84506e84e"}, "cc5aebbf-45ea-4b83-99f3-fff6be1134aa": {"doc_hash": "6409f47f95dd6b604320468f640b9bf20b7b4956b56fd6de0ca78c0e803c1e80"}, "e2e91905-2d15-4b55-99df-347d83fca3c3": {"doc_hash": "e03467bb3fa646c63b0b5f450ffc428b6d0eb452ea63988a2d99102501bf418e"}, "fd7e1852-c001-4a86-9e09-d4121cee3ee4": {"doc_hash": "c7ef1d384045c08c7197e27e469a00a06b45301b270ff62a6612b4038ba186df"}, "a94cf763-fe6d-4566-862a-410f8b003402": {"doc_hash": "4a71079cd9afda96eb8d9dba2a9298b781ca167944ea25ac0f21007b933ca4d8"}, "09b608c2-3577-4bab-bf3e-3a03bb544e46": {"doc_hash": "35798eca427bb6dc8670b5bad0bdc48fa78c28979ad86f0566d1f92a58788a8d"}, "5a6a7bc1-484f-4e11-a4a0-107029a66dab": {"doc_hash": "c7506400eaf108a0215fe1da67ff8dd455736132db472db07245db9944e325b1"}, "9ec3b70a-384a-4198-91a9-663c1bddfa62": {"doc_hash": "9ac4d6122f7adc64de012f5014ffbddec1d6c878ccbb181c9a388b4ac5797a6e"}, "8ae4db16-e834-4b63-aec6-9011df4709ee": {"doc_hash": "6f58884d687eefc9ac06ed1eb0bdbcf476c41b5900ce9b113b9f96c4b3c08aac"}, "663b1118-ae46-4bb4-b163-08946d6a6b1c": {"doc_hash": "eb55ec986a7c2bed3aa5d198ca4f1df87fe9466a6ca90e17bf900468c2bd15c2"}, "e7a0c189-4d0a-4efc-b233-349b6ab3c921": {"doc_hash": "961298b66681486f527a9c18c76ec72cb2b2f1d1f8b5ab9bb46c9749b74e5462"}, "e49e07c8-fa6d-43d7-bfe5-5ba466d699af": {"doc_hash": "7d8ea44f577c9f11374b45219d976f3c40e949b3cededae3e4e38be246f8c1a3"}, "6afb2918-29ff-45a0-a112-5c1e52ad55f8": {"doc_hash": "3aa1e5f5827a0616458cb5588bbae4476a1f060b0aaa7efb8c2033df8a657d17"}, "7e2cd070-64de-47c6-9c59-08abdadc6e09": {"doc_hash": "cc2015839963d9dfd66b3d41183dedc3c1e29491341e3e65925db646c6af6f75"}, "466e5638-cb89-40c1-aae6-8b70d4e32850": {"doc_hash": "1c7bb284ef4a077b5c95f83743c7bde02ae8b4fe6480a1de9486cf7e63ebdc08"}, "92e08c50-d71b-465b-b044-385d76199562": {"doc_hash": "234c1e08cd0ad19a810f1d9cced7efe385ad0f54b35b39c99f60c9be3fb68e99"}, "d9a6cdc6-aa63-4e03-bfac-55f337cc53bd": {"doc_hash": "d063b691f292623050766ccba7eda1c0b0e0a3648604e0a1c9aa08fdf571d28c"}, "02ceb922-196e-4b77-bd0c-ddc4fdff10f4": {"doc_hash": "a25a2bacfe76a32e4db0b5a6b56d194ad81bfd61d76c9cd21ef465c3d51a8243"}, "f1c8d298-ef17-431f-8f56-2836c26e0fe9": {"doc_hash": "e60c4bf352e94568c1a854b44dbde447b07d33c0563f3c4686e54adaddb99abb"}, "d5680555-aadb-4a8e-848f-561df3f363dd": {"doc_hash": "f0e1ffc5f1e0376ee800472f5b12d85fe6c4b98f6a0f0f9bca6947d45e5af392"}, "ec1bb5c9-11a4-4c14-a876-01b8e1173080": {"doc_hash": "14f3d5f87ee1a4999931b85ea0ee177702b38976f30061acac6b0c7ea0d92198"}, "14924ae2-a3e0-4214-aff8-6d7ca98b05ec": {"doc_hash": "ee471815c0b8a4dfb6cad914370d66117222541a1e5c97ff7bbd9d94214d2b50"}, "52baa816-2fe8-40e5-8a39-b5f4cf652398": {"doc_hash": "691ce43542a2c24e930b62724d8cecf26f9321b59e7737fabadfda145cdc9d6c"}, "18804887-8c4a-4b35-ab3b-a9dfd1dc5514": {"doc_hash": "6c7176dda93216a6415d57df0cbcbe0e6a1b997710052a084341b6a826e5a549"}, "b1386fb6-85ad-4fab-93b0-ed37d18f9451": {"doc_hash": "6fee2cf05a776496b13c8b3ed159c37a793a362471ab244e4e804791ca7a6206"}, "ce49c018-3db7-4d65-9830-422c565a4817": {"doc_hash": "ffeab17bfd67aec32881b660864fbbf87f92764877cd09bf4b7d33d858ddaead"}, "00161289-efef-4d60-b690-5ff8816fae25": {"doc_hash": "9732273dfeb3edccb4ee4e1ce2ebcd215314f87964c01e15bd187cf6a0b49c28"}, "88d5f645-9e47-4148-84c0-be27114c5d59": {"doc_hash": "bedfefed02abe8c17c4e423d6369f8d116539cc1ea0906eb74630138242c7e1e"}, "7c78a765-cdcf-45c9-b74d-4cf52f493248": {"doc_hash": "a84c0952d17a090760b49a34e99d0f15c2cf8bb1f5add7dc54754efcbda20352"}, "377e8077-b608-4dcb-a58e-d01210294205": {"doc_hash": "3a3a37c3719553f8f8064ef752ab0a10f64b21154f9dda0500fc6fb8edbf9779"}, "90127588-2851-43ad-bfdc-7b4ee5ff6f31": {"doc_hash": "3eb82c627805228cfed6a3eeb1f55597dc10c820f06d200c5b61a9bf4a7956fe"}, "f888be40-ef31-4678-ada5-3f4e9ba312d4": {"doc_hash": "17fcb4b87efa1671a1c8cc7153a273a85d73da3e7ceca1e6ee36473862810511"}, "4a480917-fbdc-4394-b2f9-c10c69209118": {"doc_hash": "8fad5cf96a7d0614fa4040b5ec724138f91662a269f1a0c612c0b433d9c7dd2d"}, "f4d4f92b-2a1d-4201-bfb2-eb009729cf89": {"doc_hash": "de4197e5df4d7c5c830b8e232c61892a55526ea8a3fd59fde6d15fb5b17cdc26"}, "425d87cc-2396-4503-8651-83b94db81b45": {"doc_hash": "40a6c1909cfcd6365c1af43901b8f1d1bff53665b97011a9627acbaadb0e8a59"}, "4c48cbe9-d0ee-4a2a-85e8-51433af36bc5": {"doc_hash": "d13e97d778df5117faaaca2e636bc929d41a779fafcdde2919784fba920756c4"}, "3a9f053a-b3ea-4cbb-8c2a-527a9290fff6": {"doc_hash": "355836ac4d48d59370e34485410bfdebbf328df1a348a340b2f2d5aaba0f288f"}, "162622bb-e6e3-4ea2-a206-05017df4dccf": {"doc_hash": "68a491638195f12d2e95d57f766cb2758635f061fe1191885850cd90f26d1b68"}, "7ea18c94-16a4-433b-b258-afafb3325928": {"doc_hash": "d45ab8e8b340625ae20c22b29cfe60aceb89e135cc7f44b7546a151a3d08ce8f"}, "28116bfc-9dbd-4646-b790-3515969c56fa": {"doc_hash": "c1101dae229600b849cbebab4fc66e514e5dabef247741d5fd540e4316a06fc4"}, "5b79bcd2-ef15-4a11-94f8-d60efa66e83f": {"doc_hash": "f1ee1573cbb6569fcd9958ba42a42f804c4c0cddad9e562e496f9322f08750ab"}, "3e0e87d6-522a-46c4-93a6-541a6d01ffae": {"doc_hash": "753390fb0be38f433bd8f93beb711095ded0dfae31e19470f413f299529eb6cb"}, "620974e6-9c9c-45be-b6c5-5db4d79733ef": {"doc_hash": "70028510582b21d844ae8213bc89cf26d3611d56dc0a8a03eb4ee9a1573a08b4"}, "77a9814c-c35e-452d-974b-e5515c763f50": {"doc_hash": "f7dc581419842caf724e7a694edefe6276c151c3e72d3c5dc5823e36838bd5a3"}, "4d1f5928-bda4-4c0b-984f-f109d0da0903": {"doc_hash": "c7cae95ccf74ede004df06b3bbea805dfe5934a77a6a59d566693d0ea49a0f36"}, "00794d28-190b-4000-a8db-e4576a615c22": {"doc_hash": "e96fd4b308ac10b43f1506c7c96d36732a73268be108308c31b2ccb69cdd6dce"}, "8217f657-4b06-4560-9387-9a9ea32eb7f6": {"doc_hash": "0fb4f06299c012231661ec1d5159ba7c35cd4496dccd80ffccea60d79ff52323"}, "1201afc4-3036-4df6-bf35-e670a682b8f1": {"doc_hash": "f22915a71411ecb40ad50e82ffee7b440ffb2e9e70f46adf5ceb14d55901e4f7"}, "d60d05cf-c748-4bb6-853f-888add44bd73": {"doc_hash": "5c0a7539395a10c7d7beb6fe0c98f08cbdd7d1c7d093a287e1afe1ab6dcb8f81"}, "53ec7105-a5c5-497c-9bdf-510a748c9911": {"doc_hash": "4d0f923147637515724486f6114dbe2314bd363c645c0d6495079bfeb95f1526"}, "b1fc1513-a205-4f29-9d32-a431aa6be6b7": {"doc_hash": "7729c1e027cd51f26ecb28a1b58fdf60920e3c9c80b008d6f0473de1edb38c4a"}, "fc9653a0-fb91-484c-8945-f46af6b63c09": {"doc_hash": "25c8060b926d3533aaef7265ceae1c4e936b60b53cef952cd1f59acffdfa1c3f"}, "b9053f8d-0a5a-4446-9739-ab5072c96ad0": {"doc_hash": "e0bfa06f27ab3504b87dabc5277edb908cf02bf87a2214ec1bad81c098055174"}, "56e57d9d-6b90-4e60-bc1b-cc1c605370c9": {"doc_hash": "c242b486713aaa5ccec6c194995df820535e4c4e604f40724abb31e2ede2cbc9"}, "53fbc237-cfad-41fa-a81e-e4391be04eda": {"doc_hash": "6599c114ea96aaa1f558ae56385a8921df3087a22d627d529a346657ae426694"}, "67846276-9d0f-4984-9f17-6c94abea1215": {"doc_hash": "ca11fa1ee9035bdec449d8ba2feac1627787a9406f7dbe6d1f42eba120e71d41"}, "7aa7e20e-6184-49b8-babd-79f086856f9a": {"doc_hash": "8dcf1557ae0d54431aff4bb0e6b3c276c50aaa4128a7f2edbde2c8017365c11f"}, "651ef24f-fe22-4ef5-acfa-f7bdb8341b3d": {"doc_hash": "b5e8886c72d4944447a58816edcaa179c9de3edf4f75ae9301b26e9554cd3080"}, "70a96e39-d6f9-4fa3-a802-95cd305f4ff1": {"doc_hash": "5dac4826e5bca226750489621d7749eddcb88ab096808b0634b9dc10ffc9da75"}, "f497ee38-6c98-4e34-b262-3c9489a5a5e4": {"doc_hash": "245ddc3a4a27ae395285996799a9b54464607b379796ed7303038f10f3a0b8d5"}, "7c49de1e-9f22-47ad-926e-cc265a113ecc": {"doc_hash": "e6249cb0c7ed3468f681784ff6c426c0574f06b83a35a81080607caf2befd608"}, "a23060d3-7fc0-44c1-935f-bf717ab30ed6": {"doc_hash": "a08f286b0773f5d109e3db630ffb427a60545f09f4a765e42020ed69e585d90c"}, "e72add08-a51c-4cc5-9399-9ce9efdd9b78": {"doc_hash": "a79dc509484f525c53fb8a4a2725b8fa13ed6ffedd4d7b7ecaa0f9bf513e68be"}, "a9ba1f44-d982-4669-9fca-ce7b7000beb3": {"doc_hash": "cf7fd3b198b69643d0b457211ebe406f0e6b01cbe678dfab6fada2513e6393c6"}, "aa136feb-6535-4523-88bd-e76550c00f9e": {"doc_hash": "962562e9802ab9642dd6c1ded1da128abcd2a8a7e81305d41d3f0604fb87310f"}, "75886ffe-9a16-4591-b4f7-5452f85b58df": {"doc_hash": "63bc6f8c1259341e5679b7e765db93f665b9a993c84bb9151428606f9754c7f0"}, "4f6d7880-bd44-4a73-ab9b-daeb57812aa1": {"doc_hash": "9d04fef5852b323ffcc70b2186cff1f6cebfd56e545ebd0044a1b5215cadb8ec"}, "21809133-b190-4792-8c9f-632c9340f90c": {"doc_hash": "d6cc70a455fa54ccc00f57b0aed20f419fc800d751397a0b057e10d2f4952faa"}, "ffd3a7d7-069c-4ecf-a4b8-dbe55bb64b01": {"doc_hash": "636503e106a205dd0b718407deb2b634fb98d1dfaacfd1ac9ec0c41867935479"}, "abfe0c50-9e30-4175-b51d-5f07b502f632": {"doc_hash": "d19dc9f2fda933982741926d84b257e6f443189762202b440af373a70c29d56f"}, "43fac8c0-4b29-4cef-a6ac-7d1f35fce8c8": {"doc_hash": "87240bd0566810f4dc2c5ef2580d3bd4f40773cfbeefbb28dd1c2f9bee741d97"}, "4fb978c0-d241-4981-aec2-ca2db0fcaeaf": {"doc_hash": "247267b6bf5f7f70f7621c4724b7608fa849193df89c0ca86c4d5354e5c183a5"}, "29578f41-64e3-48e5-9024-8a54483e265b": {"doc_hash": "04af448cb3c58cce22d9538e4ca661de610bd9c965677a7a8acdc29c82a9ad7d"}, "4c979f28-6faf-45d1-bd31-3366faa35b11": {"doc_hash": "909f794864631ad28069a12d92ff4a7be2c07a7e4f29c649f75b2393be6735fb"}, "e1cb3f9a-e7de-47fa-afb6-e01d58ccd4b9": {"doc_hash": "14dd6b4258b705a3d02ba854c31ee9b91ade4bc84c67a2de6e3e5e98f9410d02"}, "c5266d44-a3d6-42cf-82dd-0836f0f7105e": {"doc_hash": "a58ccc59ad7ed66edad3ce057ab0bdecd3344a4cde8557a8f0fa29a605d05022"}, "67766adf-526c-473f-b29d-bc8b38fa515a": {"doc_hash": "ba2d6a0d5113648c76a8aa3113168f8980791941f1bcc5868d6af154b44041f5"}, "1239ecc3-4088-499b-a4be-e881a437770f": {"doc_hash": "f89033abfd9abfc1f2d8d28469f954c85d24878e42677b46003cfdec2638c664"}, "d7cbe54f-6253-4253-a605-c578eceabd98": {"doc_hash": "00b110c9342217e686824bc2b679637ff557dffbe9d5496c098d71da66c24c00"}, "1915f845-6e52-49d1-97d2-b62d0c552310": {"doc_hash": "598f0794110564d8b0b40b1fabc7c9963dc58067443e93975913f4e4b9e0e64c"}, "aeb70f03-ef30-43cb-8d7b-034826b0320f": {"doc_hash": "039ba7aa5d20247c37f5788c5b84f0a8175a56b29cf81db48a24ac5acd1e1193"}, "33bff7e8-f3c8-46ae-aca6-500cc2e861c0": {"doc_hash": "44a77232a58a1c16eebe1329b975dca8eacbcda30afaec732dfe03d76e28b151"}, "33537690-b4d2-446c-b019-e412a21967ad": {"doc_hash": "840076912dcf93a2d873fc396b6fcc8f3ac4fb704948d493a9e77a111ddbcf87"}, "268a753e-cd35-48fb-87f4-2e85619cdbfe": {"doc_hash": "9b96cc32b444a7667e5e381b3ded8cafcc11b15ff2d02d275a073c559f0c43de"}, "be119211-3583-4fc9-aa84-6f25bbe0590b": {"doc_hash": "cf6491dd96e7dbd33f536c4bebe10d2a0d64f165683524fcf4fc823ecea87d69"}, "b47aa7d7-b12d-4c11-8bee-de58e5f3cf99": {"doc_hash": "546f4746c096a6a662aa9c906e3c008dabc920d03b0fd5ef7b9d0f96b95f2df5"}, "da03ca81-8f56-44a7-ad5a-4b3bc91da4ba": {"doc_hash": "12a47552f187dbb0504e90b3631288b4c9249be834bcd68d06a5f156e53fcc7d"}, "3416562b-b5c6-4c1f-a58c-645041792890": {"doc_hash": "6ec0bffd7c05d0c5c287795f4100a2dbcd04230f7ab4817e0bf6b565f28f3c74"}, "0e1c4cce-b403-4faa-a41d-13d9dee922d5": {"doc_hash": "45255ea7181f88747297783f83d06cbbdb5b48e8087a47a44ace4a618d34c8d2"}, "2ee7c1f1-08ad-466c-a7a8-5a529b8e6ee6": {"doc_hash": "eed3aca9e1d09dd4bff19ed7481b31b1b0d11690313d6a06447c32183f7d5e81"}, "49118fc0-c987-4507-addb-73640285d570": {"doc_hash": "8bb7fc808ff1f21a8a023e6134075c71b28551efea0cef8d12e2807a1ce87b65"}, "02d0ce3f-56e9-4966-bc7b-fd1d2589d295": {"doc_hash": "585cd94647e5923d3fbaef12cb48caadf263269d3ac2358205df462094b96906"}, "275bed04-9789-4330-92b4-64cc8e7d3a29": {"doc_hash": "002a8050657c749a47eb3af9d63813fc80020f2f6456a7a19548044c7a85408d"}, "b9b439b9-66bc-47ad-b55c-efeb8d18490c": {"doc_hash": "bf82ee5bd6b8e6e71b2595157fff32de71d9090a3beeaf4ed827ccde0afcc38c"}, "f0703d5c-6799-4917-90a1-103fad71995c": {"doc_hash": "5d10d6d53637d169226f18761040ba49fee382cd5c41fe103559b06ec60db00b"}, "fb90d954-52f2-440d-bf2a-3d472c8126b5": {"doc_hash": "07dd99af9f00630532e63bb72cfd3cb70e44640cdf7d0c22cb7d5ecd4afdfe3b"}, "42522ea5-c891-4f9c-b164-fd0c950ddac0": {"doc_hash": "f617e6a3c1b13a435eb229c3380f99507af4130c75b5f426b95ee85617b54997"}, "e27e0b80-9c95-4db7-a28f-d1bad7cf1e4a": {"doc_hash": "b7abd3ceea753cb1994f24ff45caca3c06168d7f999b79c29dbf0dd21cd5ed18"}, "02dedd44-c93f-451f-90c8-c93c4619bcee": {"doc_hash": "d85c393142d728202bbea539da4a9656156f3b2f76bc04c5fb1fb64d35a42a72"}, "2004be53-d697-4701-b9e9-4e860e877b1b": {"doc_hash": "e11ce36a8a44d06d4ec9be762ae424356c73e01da85432b8e3eb12465cf60544"}, "90e56275-c3e3-40a1-9482-8550ba5323f0": {"doc_hash": "028ae8a4cac2a20539e368c16c999a93469de3c197c435ded161512ddafdd3f0"}, "e1692368-fbc4-4cce-8e92-31446be6d163": {"doc_hash": "44ee3adc2702ebcd6bf40899cad9b7be852ed7b3da02dc8300cc62ba1f768c8e"}, "f5d499ab-869a-40d6-94ae-93acf0a76d5f": {"doc_hash": "4fd0b3635e772156121868d75985336c698c11c545a5e92355a2bc6a1e8028f6"}, "66271a71-762d-41d1-a48a-b64ecccc8575": {"doc_hash": "6a9fe84d5c7549189b80a2941dc5d6938863a4d60e203c95f1637bd32f90ec1b"}, "bb822432-da73-4cb8-aa49-791fdade5749": {"doc_hash": "5dd972e802556fab0775f26360267cc53a05b2c2222006c2fb084cb5cc5758aa"}, "f5741d7c-21a6-41f5-9738-575ca347de0c": {"doc_hash": "2ee956496f717e8e2b7440f1efb581fbc75d219f574d239ec543b9b13cd3a2c5"}, "c7de38fd-d9aa-4c33-88ec-a44be9ff7b9d": {"doc_hash": "e3aa022a4aa5ac4c39b3b978b39521cacde57835cbc7994f32e5fe17c5f613fe"}, "fcd0446e-c5a4-4381-9364-3d1156892065": {"doc_hash": "24ee041541c5c61d1338f30bfda13897bf542e2135f6c2e5230048e118f7e04e"}, "d859ca18-b279-4b2c-9da1-f2f307c69980": {"doc_hash": "1b3fd721fcf6c0f698a078f96547b34a19fbd316a1d496ef6503efbca16080d4"}, "68f97990-1b07-476b-b1aa-dcde472bf156": {"doc_hash": "b596d601e15e3b601806544930b2ba95534d1ce3feb3913d8d5422cfdd90a839"}, "8715f287-f413-404e-89b7-7d16ac6ff86f": {"doc_hash": "4e40f6490850e2b5b60844285f64c643e8b95f01b8f1c16908db4d0a5395671a"}, "ff6839ec-42bd-4037-96c8-bafd3557384e": {"doc_hash": "2d66c7e680afd3f57b4bdac9eecb29012951c3de66cb12fa128091d2d0ba5f58"}, "826ce114-e57e-492d-9d36-db999b785c38": {"doc_hash": "e7bedc25f36d8613bb4d46e56bc7a6f3f80e383a4cd461856b42eac7d49eaee2"}, "34562b9e-41b0-4c55-b91c-a8e68e78c5de": {"doc_hash": "cd33f2968b18302f6e7ea6ceb03a3272467d50c9b2d2d26dc92a4c665532cc1d"}, "652b823a-51d6-4dd5-8a32-a9439ec86d14": {"doc_hash": "deab65b02a737161b573f80796191716b8c6fc2440a19a9c8924675247377d72"}, "5c97d1bd-fb04-4323-85fc-1cb5de8a908e": {"doc_hash": "61c25cabda3f2b7e78f5d7b41016e68ae0b9c1571d42c8be6ecb2a456cceb8b9"}, "f2b5f1a1-6867-41fc-8227-8ec99b6cea22": {"doc_hash": "9cec7b62cb943fa693965166fde883dd465cd8262b77d5bb7a5f0062eab8a356"}, "177e0539-83a6-4ee6-b85b-8120da8f2bcd": {"doc_hash": "2cb6eb21a63d0fa9603ccc61ea36dc1bab62afdb394ab5e46cd511da6c566239"}, "5d4ffcbd-0aa5-4ecc-8f27-26f90df73d2d": {"doc_hash": "cc87d8939e06b517c72245cda9dfb4bc0b5d5fe84edf730eb8e258da2c99e449"}, "14b3ded6-2db4-4f6a-8be6-d6092bcfce2a": {"doc_hash": "308f0c3cc5807a9ef89af7b435a20ffd452f9a57773ed67bb1301f9ba6160c91"}, "d224812f-ed2c-48b6-8b0d-4b85b6056a6d": {"doc_hash": "e34e2bb2863000d0f683e839d62036aa2a0341344eb9e611f44cfa9a2b445176"}, "65ffad4d-a233-48b3-a13e-ecf477ded187": {"doc_hash": "79c778afc6dec75d40cb69ff02c10e6ec2880fb0cec8a0f82188b72845cad9ec"}, "19341d89-e6ff-4743-940c-b22f9a3293e5": {"doc_hash": "05eca7e35569e929614a597ee1043f34831b085b9967c8f8163076bdbce379e7"}, "e8c640c8-7e65-4cca-9734-1bd2a956f7e7": {"doc_hash": "9a79dd4b16340a7830099dee6d6693e5d23e8933cc4c571818b1f999086e1145"}, "e614d752-bcf5-49a5-9fc9-7883c532d2d9": {"doc_hash": "9d1b2e574a13148b300d9b5af6a0634b4ad1013c2f3a082a9be5bd953d52fbad"}, "dc2a682f-573e-40c2-9bcf-343269d2a6dc": {"doc_hash": "712994a3ad6a0a1242651c166d96d7a958db06a458b3a1051e9a8581c7275063"}, "94174a27-1550-49dd-bc2e-f888f9496523": {"doc_hash": "a66c311348c35c885fce6e003efc556cf8426c2557295551ec2dccaee18157a4"}, "6db89246-18d0-47d7-85af-16b2dc31cd15": {"doc_hash": "018c3f40cf83fb1495d598bc78c4762ac780bcd432696f93f25ac2c1b16ac807"}, "d84d45e6-be5a-42db-a647-b6cc84755468": {"doc_hash": "4504dc772b48f8ba8004994fc569a7db0d9ce65bdcf8e78106ab0d0f78df7029"}, "5eb418ed-3041-4ad6-8bd9-b8129cae2861": {"doc_hash": "8ac0ed3169f2b35bcfd29d6407bcf27fbb098d03ccfa64a763d175c5cb8acc33"}, "d01b286d-3cce-46f2-a9ae-f0708d27e75d": {"doc_hash": "5c9e4c3ca41cdedeeb5b579f3c885461b3cd6d43f70619a1addb5659d27e7c2d"}, "bf16fd0c-21c0-41d5-93fe-5b78e601078a": {"doc_hash": "f8e27d73f9c3be1898f7ce222b5126cbd11a6adda96c8ccae9e29ca4d7200892"}, "a37f829a-0fd3-494b-b314-c279ba3c2d65": {"doc_hash": "bfa34e30b870043f94ee68c68ce55dc01cadc558afd1277d3813c5370414437c"}, "b9d7d631-e605-4c87-91b3-8f92585b11f5": {"doc_hash": "7ee17a241574c5ad349236dc30377d528f726a06f5d8719e0063df6b90f6c59d"}, "1d8e5a67-9ec0-4f33-afd8-5a97a8e192c9": {"doc_hash": "55a88f98a58c5822106a49c22a77681431af887dfebda5f99960129ab3d05abe"}, "bb591a49-da5c-4f82-9898-0d2a0d9ae501": {"doc_hash": "25fc0ecc774db5e1a2ae575bd1c7a561daeb415d840f9ddcadd2a0c832469889"}, "d4f282e5-53b9-4e70-9933-c9dbe963e10b": {"doc_hash": "147e4a46d341a0409745f570cc6708d6fac0af9888eea485fe2c1d9507603d58"}, "d25d7bf1-7339-488a-8b46-bb0749a5166f": {"doc_hash": "7f1bf49f5e9db23a4a225afd10023cedd2d7bb821b22c43cc8124e5ecbbafb8d"}, "58e2f8d2-0842-4902-8e5a-b73208e12a9e": {"doc_hash": "28d95d76f2c2e5fcf95c781fccc28c45035f839875b7f8df939b74e6c0fd7ea6"}, "8ac57253-6f5f-4cfa-a9ec-2ea74903388e": {"doc_hash": "b6a154d84fa90f26325e672f3890d2ad369fa392fb558f0a81fa63a0a5d0cb51"}, "57a131dd-3f13-475a-9428-926232d89fb6": {"doc_hash": "99319ce6d5c51a91fb8dc5dc14dbbbc393de9fd6079df5ce99c2c2f8420ea282"}, "dd01422e-34d1-47ca-a0f3-c80b3ff6d0fe": {"doc_hash": "952f05a63a7a385cd47f6b74946d58383d7f84639d6a5fd75123d0564fe0269d"}, "6a6baab4-2547-4cbe-b1fe-465c0d949762": {"doc_hash": "704e3c0df134e822d4504fc391fe090806f74bbf27fdab01a840e3ee6759213b"}, "2bae00d6-f4c5-4561-84c3-5307560822fd": {"doc_hash": "cf272c733dc4fc341e6958e4819c6a43514ba3d3d7a9b4f2ea99c2fe6675cf5c"}, "0ab8f1e7-1fb0-4774-9f93-2894a8287369": {"doc_hash": "83686128cec12613b31f9e96b5028e0393b0e94413a93a45f5332287cb40c601"}, "f839c0d4-a929-4b35-93db-418d7729f6bf": {"doc_hash": "90c5a1eb9a1444f475e3c68369ec2fcefc59b77b0618fdfa179bfbce32ddcd76"}, "010435cb-5b2e-4b28-b5e8-54c284e1a5e3": {"doc_hash": "00a478db4aae89eb67ce9b00b5c1448252f7c8468d0dad945b1806fedabbe84d"}, "80490ea4-ef44-4b7a-bf3f-5dbb4800cd23": {"doc_hash": "889c8027d810280755b1018bad4429cd465dcc7d2b711b1ac255f88e7bfbbb68"}, "e6f6b118-d604-46b6-bb81-dd86f1c4adb2": {"doc_hash": "5d60459967b6dff2301904b9289d0d521a3bf79ff165b68decc552dad476ac3e"}, "3a11fae2-a59c-4767-9fa0-186aee0f6b3f": {"doc_hash": "ca14130c6d08fc47158e52d3ebe762fd60c5c2eba3d56a5163f14281c5e0c24d"}, "8606e7a6-1ab0-405e-8b62-e0fc6586d593": {"doc_hash": "d1f8808ce30a794f979d5059ae550be6584adb26996d0710d59375e1098de0dd"}, "76196a68-7981-4c7d-945c-a04499e66762": {"doc_hash": "e1ba2a40783fff2f56293eec8cf477c0e7d04c6c05a6cb3dc6d670f829f565d4"}, "d02f9b46-091b-4c7b-aae2-fd39ccae1af6": {"doc_hash": "8436cfa258c631b9a7d331688cf145d1495c76f6707889470556fe1fc28e6e40"}, "2f203be7-76b2-46a3-8f4e-3444a0b499a2": {"doc_hash": "3d047dddcbe3e7773c1f0dbdb1491ee8517970a686251469d6143c4eac15a5ac"}, "daed4d87-e851-41f4-98a6-f0653081d48b": {"doc_hash": "340021a9c4a0823bc705c20567ab851865ae0012ce8aec5b08ec8e564abe65f1"}, "665a0a77-502b-4c27-9467-9d5874b27483": {"doc_hash": "1bdfdc123ed6cb88910fba6de621d1fb063c799910df5819531e3e8b6d4f42ce"}, "ecc51507-0ff9-4e49-a19f-5af643f641ac": {"doc_hash": "d2678ff6150e18b2081db607a73c348a520d3c8bc36d428b96d73b3b6bc2427d"}, "636b8d85-8dcc-48f6-acbe-d300c630e506": {"doc_hash": "6f5dcfb32b38e4d86a81328d305d7098116e9e22817510ecbdee3987c41c8a1e"}, "ab0fbfe6-9386-4a48-90e1-730abead36de": {"doc_hash": "f234fd7e61fe9586682fbf9103b2dd4b2fbfd916450f74dfdf8c1d4123a4e40c"}, "33c4be35-9853-4469-8d78-c9ab83e01723": {"doc_hash": "275d9d6838b6cb6157d692621f1db778d2d06be248a1f5de6a5ebea52ada1c61"}, "78bdb8dd-4de2-43a5-b2a3-d860c7695619": {"doc_hash": "dae6a8aaaff4cf118b3c09d7d573fa6800289666a8c09d3af65b8c638133fccb"}, "f744805b-9538-4ab1-a894-c961027efb75": {"doc_hash": "4ca7f21cbe2ab0e6486ba4b78a02020cceb6972f1b4a42bc4771a6bbf3ed4125"}, "ce9169a6-62a6-4cec-94d0-508cac215a6b": {"doc_hash": "0c82830c01be222809c244532be3d97e8e27deb8a7eb74a538aeb3fb22796d7b"}, "78548f55-5957-4fe2-83aa-ec57754083a8": {"doc_hash": "eae1f3db76d3557fe0f1c37af333886a452a1c27c202b87fbac479a5c54bbf74"}, "5771ff67-72bf-4251-930b-833d1764632b": {"doc_hash": "af3766270ba9d6782044f9d549033cd83df10da5ee508b040f972a50ea6239b4"}, "bca8fedc-c8f0-422d-a4b8-65ae810bce59": {"doc_hash": "706e22cff5681d668e891de7c5b3bf0e6b04fdfea450234bf2a262fe57d51105"}, "f4bd7278-bc46-4029-a1f9-914ffd8a4b2f": {"doc_hash": "2b9f69b335d093595821d03b009e66ea1fe4faeee130e6387c050615d4de0810"}, "02c96afc-6870-4d9f-90f4-a3ae2e6820cc": {"doc_hash": "f83d4c206b443dbad8c36cbccb45a7366e5a74a1642e204bd7e5fc99333d9a5d"}, "a373aa68-e184-4dab-85df-867937dcdb98": {"doc_hash": "a5079defc305a95f8ac53c829e4d275a1cd95b0ba9d235dd3de9f46945c82a6f"}, "319afecd-f575-4d19-8c70-94ef80042c83": {"doc_hash": "61d358b3637f64739fd9afe18a1b9010fdbf16687b78079e4b86ff809bf9c767"}, "1b085ac9-c481-4f39-bb59-45942753f3d1": {"doc_hash": "5562aacd976f9c5e096d77e75f9b0a1f02bfb9c863cd0ce8d980585937b2726c"}, "3f412286-2258-4001-a60d-c422d6a67fcd": {"doc_hash": "4e6bd2cab7ac5480d43c223d473e1fc34f9b287c0ce1d5bf66a85623f504608f"}, "f7d6531d-80dc-46c7-8574-0931175abba8": {"doc_hash": "98b1014fd7fe02e3ac946172f07c80c4d5a773141723b7ff4b543588419406c3"}, "233401e6-f50b-47ac-a580-ec26f54046c1": {"doc_hash": "9cb8627cc647e6f7296d058707110ebd4da9a7b0edf910ca8cfb9ba25604920d"}, "b72b3a82-e2da-481a-869c-45dab9c4acf2": {"doc_hash": "3e65c09ad89893ad8171be3f856ae42ec07532821634198dd2f0dae39efecd74"}, "c289301e-a55b-477f-808c-d2e7a332b617": {"doc_hash": "627b3c8285481741d6d5b9fec548c5bc2d70a94870c1f08bcc22b1346dcfd779"}, "fe91f5e5-47d9-4946-8247-4381d7af140f": {"doc_hash": "5621f96148468ae63e31bc3adc877fc737e77d8d85c29160c6530e20b956ec76"}, "1bd6ad7c-57a5-47e3-848c-5eff3697a2dd": {"doc_hash": "504fb184c82b70686720fd200caa9376e470f16e3029047f0f096198f9c3946b"}, "ab69c291-5e76-470c-ae69-41db01d955a9": {"doc_hash": "6616116c75a10dd6005bb14762bb2c904d32e034929352cc186b198e21b76f19"}, "6de3ff5c-dedd-43b3-8993-8f911cad9136": {"doc_hash": "005057c8082876fa818f418177a92c18abf4cc7841bca544368e6f0dcc3ffc95"}, "36fece7e-765a-40e7-afc6-a0c271429538": {"doc_hash": "0ffcd61ae46b27d7514d1bd44f5efdcef6b377105f22dbc0c05b176772a8c120"}, "51620b85-d294-4618-bc89-3360b5d96844": {"doc_hash": "bba52d77acda465db7b4a8854ca9f853fb6813e0850a99a953e71ded7eb2ebdb"}, "bfed46f7-e04f-4383-b56c-5bbc6b261074": {"doc_hash": "ecaf5051904f07313096c31ea85efd9903593393cf50d902738915754b67d2b2"}, "0cd0464b-2426-4762-a58f-49c3a35215e1": {"doc_hash": "8524b17e2ba019f9d2c884a2a0c16742dc0f2d92eb6893b8280e469f71b98890"}, "931792e3-1793-4ba4-9d25-a5928d5be837": {"doc_hash": "f071fd23b664df9d7106601f1959407903987691da075ec381e75a6e73083707"}, "a4bd9921-3209-4389-a9a9-965f4f880848": {"doc_hash": "1d0b2af7ad295a1f49f1523edfcb23f6b5f0647e5e52696d9ee7b13fe6e1e3b8"}, "9af38552-175d-47f3-a805-7633c6cf22d8": {"doc_hash": "354c89752189dc502ca640cec2b074643940e050ff742568ddbdf620ac0272e5"}, "e74a7022-c0cd-4f44-9372-e7f14ab9b4ef": {"doc_hash": "e84cba168abc2c4eb676bda8b0be9bf24962500c4d3e39ab98423d1e3f872c08"}, "ad3f9dde-9beb-4e79-bbed-9df2a49c3517": {"doc_hash": "ee5699c0ee6df8ea9464357835928b83d35db06549267ac6fb9930588d54c323"}, "82927522-c49d-4a56-b7fa-5c7e73f63991": {"doc_hash": "56cfe9ad283b2312032bbbf3d644276bbc84e56d461e3152445e0bc3de7d5c00"}, "dce37b19-836a-4c32-ac38-be196aca2032": {"doc_hash": "cea21c7402f712e3b9dd8a473ece94cfb0a60b12b75a6ebcfc943797b91493d9"}, "ebd8a5ff-9822-4ebb-b087-f770afb0fac4": {"doc_hash": "d04963c0625cda2a6b5a023f5212dc8370e90be869dbb19be3200f50535f293c"}, "a3a56610-650b-47be-9ff1-dbaf14af3873": {"doc_hash": "ff3b5dda320e3f69036fe10900276bc036002e4182585993fa44e796c17ce1d0"}, "c5f7eca6-1fd2-4df4-b35e-274d93e653b8": {"doc_hash": "c388990a2a85c56b78d6b5fcb8277d511063a0a1b84e6c53599c9df74945e788"}, "21a904c2-1e46-453b-b879-d25ada42b096": {"doc_hash": "230b0d7fb60ca313b32cf43b4f383dbfb0d8893736d9000f018f4a1307a19e7c"}, "028e5875-bc18-4263-8cdb-ae58b3482c2d": {"doc_hash": "f2ef6cfafb674b5859f55be45053c8db86d7adbd2c379cb0feb890270c6434ad"}, "a0321963-8ff2-4ab5-8fde-6e17f4525236": {"doc_hash": "d9c92e5301397113e857fce75913f2060a745d75d2754f225c32fe374c8f04fa"}, "2dd8238f-b5c9-44cc-83ae-7c10f4f43b3f": {"doc_hash": "e79ad957e239a2e46aeb41dd08b4da184b4e614e50c435a6fa811a3f02b36400"}, "636fdb76-0a49-4e1a-9423-0b0c8eb670de": {"doc_hash": "1ddff7de84c616278900fdbd7cecbe47ab4b3d2d11bb052ff7f5d9b6304248cd"}, "b82ac977-b61f-48dd-9704-799fd90d58c3": {"doc_hash": "1bd07573fec529db600fd4dc5c79116ccf215e6ccff87d9ea897fe99aaefbb4a"}, "531afd3a-2533-4db9-9fb7-3b101ce460ed": {"doc_hash": "d8816e5fc05fc6469ef2121deb23ed09df8be533b86233b9c948ea737a22c599"}, "c178e692-3bc8-45cf-b811-ae4b941afedf": {"doc_hash": "fc0d148df8878f1828cd8f79ac269230bfdfe9f268dca4915f93d1079ae3fb55"}, "de92c691-5b1f-4be9-b182-ae35ad06a0af": {"doc_hash": "12bbdb4b38cc94862a3eae0cd3a2d280a928bdc8a88d2298d57aa6d4d9a2e1d1"}, "07528021-ec45-453b-a31c-64b1153a5c7e": {"doc_hash": "20d5b903657fd5f044af8ab63b88b9f57c7d0c816dee5bdf2a4b5e0c5374893a"}, "2db1ef4f-ce24-45a1-ae1d-dcb103d839b2": {"doc_hash": "1d07685be58e534a127f548eff85a631e0369b9596e53fbf1d41b454d3e32ecf"}, "67967a6b-5d6a-4cbb-82a6-3b0d00479d89": {"doc_hash": "7ab0071036d998c37d366c75ca527694e6c42e5193ff08dab35b275726ba4f50"}, "73469d13-ed85-4f0b-b88e-785dccd018c1": {"doc_hash": "b5224b79f545e690de6ea3c26acbe3f703d0431e30ba7487b11dd5d6c3361092"}, "9d23310a-def1-4b7a-8114-8751cd93b046": {"doc_hash": "02c40a00985576c71d4cb9d8a3718219348ad925117fafeeb73f096e58894f7a"}, "8a816488-4bd1-430d-9407-e4d437b06582": {"doc_hash": "c973575f817b161756a57869aadb60d9a9228c765bacf4b4fd32adf77777dd88"}, "31ef71f7-b42d-4df0-921c-fe65f7d441d1": {"doc_hash": "9f20749c9678eb898d26686baed5235e4d05d3d66ad093cb7591be1168d18bb4"}, "bb034993-4e86-428a-9636-2c111a10847d": {"doc_hash": "91f13ee3a54e329ae96a3a31baf2859aec74c603ff987d77f004ec52eb919e05"}, "2e94eac8-3942-47d0-8582-eddd303b488d": {"doc_hash": "272b4b6ed4de25ac24950aa0720d7f8dcd52ff1689a6ec3c9faf14c204f77f18"}, "d7460287-2399-4db1-b08a-297053c179fe": {"doc_hash": "c33fc31dc0aa8cb1687f70314fd06cc0702fe5ce7a9cda8b477fc508242b53cf"}, "5d358f44-9364-4eba-9b06-2ffbdb4db936": {"doc_hash": "f67a16f5215479e505dcddeab94544cb2c7b654ac8bbe138712576d848b659bb"}, "2974e4fc-aa26-4792-a3c0-634dbaee5c8b": {"doc_hash": "96611b201d27581a13fc44213cdd507f78e12db36b54ef3b82596a5f90fec02c"}, "c718d7dc-0091-418c-ba49-268c0e532bc9": {"doc_hash": "643509a2c88eecb76a44b3eecc04d34c3d7177d38a4905e50d5d7b47961fda51"}, "efbc3004-ecb9-4354-bcdd-749a3d8cf57e": {"doc_hash": "5bd883d0b7d9cc41f851aa4e559aa881e166fa0f96e97b11b654ab3db87d5efd"}, "776c473c-2b18-47aa-8353-f9750d03e31a": {"doc_hash": "a98fc66f9ece9a745b579af63796b6b373a8cca079e15f579d79fb85d7e425f6"}, "87df2992-a843-4dec-a768-3b5e0d3e0257": {"doc_hash": "ec86a0c88e0abaef88ff3c6851ee5ec966657759ad55cc9d400474ead4ffe022"}, "90b55eb8-e599-47f4-b7f7-f63a12a7a2ea": {"doc_hash": "2a0f92b753a38b0fb508157e7f7d1ea2ea010f8971a84220c45a69e107af4af1"}, "57cfb6a9-1246-4ea0-b824-e43d77405411": {"doc_hash": "2fe1a397ba8a2e1525cf5fa9bb333b4d6d01e4796ec5b1c63e621147a6137f6b"}, "9da8e4e2-0e74-4996-8e3d-ee3c184080d5": {"doc_hash": "b697a55997e60e10b0b091e0135f78c9d5a8e6085086392c20fd2ce69156115b"}, "3fb6a6d7-8047-4129-9f16-c234707eed4f": {"doc_hash": "f08dad8486aa31f758038abd49c242e7adb6573bf9cb958776f77ef8dca24554"}, "c17cf19a-c752-4743-81ba-ab582098c608": {"doc_hash": "8c9def720637ce57753928867004eae33a47bda83f75ac42545971643ad46e5e"}, "4d1f38c9-90c6-456f-bad8-0d543be10876": {"doc_hash": "d42b7c4cbd6a363972ba74fe6c8fb4d54e9f76fdc02da317c7c944459ca8bdbc"}, "7f31de39-1a67-4001-bf9c-d25ed478162a": {"doc_hash": "76055093c16bea5bcc05714436620ca924627cf18184e241805bb32523db0f93"}, "0030bf3b-db5b-4058-9373-d719107e4a1e": {"doc_hash": "44f968449b06521eaab30015ee8dfe64e3ba9e52d53345070aa2e0d061bd4dde"}, "688dcb2c-bea4-44b7-8d74-4b05fc49dd55": {"doc_hash": "ea0323716111a382c07b3df3d7887dff44397ce677b83733f447b78feac8e479"}, "01758b2e-50b8-4ece-a556-02d4caaed0c6": {"doc_hash": "5b4fd3ead34ccf0dc546107775c2eb9f05c7192391e7ed046e037151c69baa38"}, "ff6a04ac-047e-4fa0-9042-7c43009a93ad": {"doc_hash": "5f3d1e97880f3ecb293d3f10d2feb8b1612893cf5a6818da4405626936317c5f"}, "fbb126ec-4aaf-417d-bd62-c98629920739": {"doc_hash": "56ac5198da343587fa5f4d5caf1e90398f9e906a8b2921565ebd2293f932ca5f"}, "889ad586-729b-4006-af89-d3dbc943ed0f": {"doc_hash": "7f739b6f656f6ceb2cf11005df774cf0ec3f9a1477f717a0eb26e80d5979bfa6"}, "fbaedddd-79ce-4928-8c01-39baa059cb13": {"doc_hash": "417194ff370644b1403321162598e7497b75114995c953f75c14713efcf6465b"}, "ec21280e-7d21-41cb-b5bb-f4cf36cb22ec": {"doc_hash": "cb8317b00629520700ae83579078c8fe3d7af833c21b14d45dceb5d7e61b6608"}, "6a47b973-52a1-4b78-b3e8-ff953f489119": {"doc_hash": "b5cb62d2587d2bce962fad916626863940fadf6bd4f901709f3052440290bca4"}, "ff0339ca-286f-4a9d-82f7-c47792fbf62c": {"doc_hash": "44f233ed3d2553e111d0eb135868a6293440a348bca882f0a9f54207b21450e4"}, "4a0b7b56-7b0e-4bdc-abbc-eebb14a0ca75": {"doc_hash": "12c02d612d0d36462095e2e4153d94751e4fbb8c4dd584a2b59a7b1e36ec416a"}, "b53aafcd-ee6f-409c-8581-fec15b4a55a1": {"doc_hash": "f725bb18f323c586f2d032058253e151f2d396b425848a3a379a82e490a5bfae"}, "5dc10584-eec8-4de1-9275-ad1e2ae6e431": {"doc_hash": "2588df804622789f62723817ff662bfd01b050e64a4adf04562886430cf6e74b"}, "672de12f-2ec7-4a58-9f37-a258e7ae85d2": {"doc_hash": "cb77f4609dd2367a5610fb41f06ef7f61eb26636b99f268c775ec1d952e8a280"}, "f1f92b47-4413-4f49-b916-cb98809531c0": {"doc_hash": "faea5ef9a061602f11daf80bf0e7369fb27fd0b3fd8860b5c5ec7ebb4bd1322b"}, "0f386667-5cff-4b58-b914-2f74fabe2441": {"doc_hash": "5bc892f9a71202b5ee67c9d7ea3cce4d56e44a8d87c4eac14083ca9c60ad1c05"}, "d7280c29-b6ad-41cd-9208-94d6691bec18": {"doc_hash": "f9cb547f782162a77eddc1cc0e0ddf3630f0b33997e40895fa7868035b25e475"}, "2caaec2a-322a-4442-9c62-78ac5612d765": {"doc_hash": "7d5dd0778ad1f435ef8dc16a85bc59c35ad50c055562bf38afcc26744f6101c3"}, "1d660d84-22f1-4371-b24d-85b784bbb36c": {"doc_hash": "f06d68e5b0efcc9a5749a08e825519567bfcb8fedabd94378a081ee13680fb9e"}, "d7f0be94-137e-4112-a261-9f8507bd790b": {"doc_hash": "778ee128c1a08732287400d5bef81f398c67ee42ece86929d9958dee58df54eb"}, "68c92e9e-2494-4d0d-9384-8fe4c432d4a7": {"doc_hash": "6d4f6218bdb8b93025be2d6a17311d7bd8e43d6e68671173aa882b72473066d5"}, "c7f0756b-4cdb-4f2f-a4b7-b4abf7281db1": {"doc_hash": "c25409fd5056bf5c427d409e0098fa8e0f9257a0595bca1cdd09b7b0c576b853"}, "d71f7ef8-7f3f-4d3b-a80c-2b6fc5142f38": {"doc_hash": "50cbe7eac9529988f1d61a09d3529bf424c915a61870d9df95c54c0d79cd227b"}, "2aee9b13-97e7-4c9e-b861-db680b45a462": {"doc_hash": "f8a935dfbd56acec4a99e7f418f0646f07ad776b4c1ac9f9c49e6d77f0491ae8"}, "499b5452-7778-4177-937f-e34ad66ac19c": {"doc_hash": "08365159e961f3ee3f98e64bd0d2a9c8523313439f01617b45f1d4044ea75eea"}, "f890d30b-4495-4093-b798-8e8648293dd4": {"doc_hash": "a030c26c72018275b75cb9257cd666e1718affcb9c9742f1bd0a3f670604081e"}, "86610747-b21d-4b54-9e63-bcb1620938d2": {"doc_hash": "8b79c4b2451c6b60abd1c67ec24b2160c1a3273b76f5ea7d39227e2a665a84a5"}, "19271a26-4e3f-4d73-8254-4ccd2404a2c5": {"doc_hash": "162b73c9b9b78d6e5841cf8f8793ad16a5c300dfc4d6c5b323b0a9bd41abe1a3"}, "e863e51f-03de-4693-be1a-e1427d95dbae": {"doc_hash": "6654a1279bdfcd12a5620948d15ed3511a95ae3b0c4a6b74e086a71b2c260095"}, "e327193d-0c0d-47cb-886f-0aa5b2de44ba": {"doc_hash": "05651f98c77b67e5edf73277fa3b0212340698cad4974d29a4d5445864a5d726"}, "86cb79a1-8dea-4096-87c4-5fdee9068470": {"doc_hash": "f01749674286db15ed580973bcf825c44a2b796063ef9390e81f137d080a7314"}, "a6ecf36b-beda-4120-9c2d-f510fd43c48c": {"doc_hash": "79ed0742ea5c2c9afefc4ce24359cc15051053c94e20910d5838d5db765798e8"}, "44fd8e5e-b2be-48fd-a409-dac7e8ca8b17": {"doc_hash": "b8ab388a86aeb1a3ad85b5801b0c0f94202834fd260ef50ff2d3892ef111c7bc"}, "f2c10cae-5d9a-4acb-a45b-2c5dba2400af": {"doc_hash": "318421686bee4dac15006434f1ba311760e840ee0eeb2b44cf320daf527e7e40"}, "b7818993-ede8-4367-9f6a-5fdf5943bece": {"doc_hash": "3569c9829b94c81c7233a53bddd070cb37473565b1901498321c1b4d7e219b46"}, "578155f4-0e4a-4271-b8ad-f63ebd9a5668": {"doc_hash": "6939a80640fdc7cefd7efea703dea4d6d92c73089d57e9ac47a2e154e14e1a9f"}, "95109bdb-511c-449b-8ede-afb99ef70043": {"doc_hash": "0bf1ec91fd74a24763be82adff7a5bae99b5a01c7f62e26a3428c044d49417a2"}, "f6802080-3da1-4a2f-83d0-b26707f55200": {"doc_hash": "08251d995ef9b2918dd9239b5bc642356285b81e4fe35bc4fb6e7aa5265d4324"}, "5caa264a-f7dc-4afa-8a67-5cb72b1655eb": {"doc_hash": "4a9835112f5336cdb93a8a84f96dc8cbb96d7f4c65d2650bc89b6966631e51ac"}, "72e0c9aa-b71c-40be-9f5a-da9e7b8be455": {"doc_hash": "d995989a63536fd73a1cece82bb4472972456d5dd5464883d53354ebaa0a936d"}, "ca41b5f2-bb87-4ee6-bcb1-fa8a1e39cbc9": {"doc_hash": "a331690773a9560eaeed8ee6e0649265196ac6e86bde06360c77002a699a052b"}, "ed12e29d-0130-4d50-995c-6ae2d5a867ab": {"doc_hash": "73518efc8605f7ebfdfe2a2d6f13a6eec899452568ed8e65b501d8df7d228c2a"}, "8a49f89a-1c56-477e-9548-00a47562f51f": {"doc_hash": "22df1b49eb4d407f6f4fa406cf4e2858a1643400affce25cff20477b87f2a8f7"}, "e0e49a7b-27c9-4e33-b0dd-9bd77aab93b8": {"doc_hash": "c91e01bb9dc3a2988ace3c801e8f137379f6b573fecfdeb6433de9e26736ad59"}, "58aeed7e-b50c-453d-97e6-fe4567615909": {"doc_hash": "705f2620386d568b01ee082c54de67ee210654f845534bffbad4da95c9f432ff"}, "ee3ecdfe-e123-4a78-a143-4b090300b9d7": {"doc_hash": "00de9bc1a7ca33f1e244201928d2e4ca7d924d42485628217772e60bf5a9554d"}, "c5611fde-0b06-4f39-8ee5-1462926e6a7e": {"doc_hash": "d8e7ed760a526f6221db037c2b7c13c2f3e11f9a78e0861af1b37089f070c975"}, "83a5d65a-7b0e-4811-8350-d54c95af23c9": {"doc_hash": "6931e97e1b03267624be1c17bc1a9ca01ae6e7f8c4d38f4c5317fe2550180b7f"}, "e9a4d9ae-b033-4d29-a20b-5b85b896a8fe": {"doc_hash": "8a78233d4e0b867cfac9a850575c956d09ba7ab89c9e92a75c3c4d4bfcdbdc9c"}, "09997602-71df-4827-b08b-ddcceb2fa6b7": {"doc_hash": "47540aaa71240ae9920cbbbc7ba0844719dd28dd141abde3ce35a0abf25c2d1a"}, "8c007612-ceca-4859-821e-e8f949699739": {"doc_hash": "8446b7bb3fa07cf5ef6cc6c9245095cc24aeeacb92e8e95bcfde993e4896c1b6"}, "41dd2289-fdb2-416e-9928-6616a6dd832c": {"doc_hash": "016141bb2c7fd9f7cfa8f6d4629658ffb7d94120e0361a121cc94bb547a6c879"}, "52419c57-ae65-4ff0-a76f-38809201ac13": {"doc_hash": "c38fa752f0d11a8ddce12738581bc72806871ac1e795545e297cace794a73524"}, "3e847f41-4220-4f5d-a9b8-cb9175f29709": {"doc_hash": "af7ccc2b463950852af7f566ed3b65c636fea79076d0a85f461b020ab8decbc3"}, "6c6fc445-b4e2-4744-88d5-f8655ce5af18": {"doc_hash": "33cb66f560e9a639548090ebaf9392efdba4362a14ad2bff32ff6db730a8debb"}, "e3e67105-1b12-45ef-b2e1-cd6ddbb3cf1a": {"doc_hash": "8854b1f4e1655a65c8c33eb7a8fd459f244d375a9531fad0148de629cf0bb07c"}, "f2a5d9cd-caf9-450f-8331-5df48fd3c94c": {"doc_hash": "d4be91ea8991269ee0736ef1776ebd5e3ad2f0b5e71bc6ee340d2c523703eb2b"}, "dbb85775-0ff3-42aa-958c-1ac3a78e034e": {"doc_hash": "513961bd4649755f10f7fdb8b1184d1156dfe5a84bd5891a48c345e5bcfdf206"}, "4daf4552-2b4d-43c9-ae2c-03ab77e60d9f": {"doc_hash": "2dd0080a7a030a39b415eb4966b6621cd4fbd4f9d5e742b1f0e35f0f76c5a16a"}, "4ca8f838-44c1-45ae-ac33-4755f2714aac": {"doc_hash": "484ed04a349d0d209e8fe05250b798b5f522c32eb425da6cb150dca0037f41e0"}, "b4497ab9-2afd-4d8b-b3d5-9176986b0fdc": {"doc_hash": "922ba8b86b4a3208a134fed2f489053692ef759d9de9337ea3062983699de142"}, "a3cebf60-6223-453e-927f-4b8cc1c5b5b5": {"doc_hash": "9ebc9a58fc6d7cceffd9d520287b1fb24730d6ceb5b67df98982773275bc3eed"}, "f55b9170-8cce-49e7-9198-f8f694e61808": {"doc_hash": "e66d262c7b8cb74bb1392b86ce065395348022821fdce8609978fc6f1c3ba968"}, "d55b425f-2c7c-456f-a76e-d4defd093678": {"doc_hash": "f794b4a71b1f11568cd5d91a74b84574c40c429c33c0830ed660442377e9d605"}, "ca5afee3-0cde-4e4f-8f91-a9cbc4d3b6d2": {"doc_hash": "1c784cd1ba4edd83b9b143a0a7f68d98c2bca8385bef10b448fff178e0dcb851"}, "539f8591-5953-4660-a181-96febc6ed5c0": {"doc_hash": "5c2996d3694663f2b2838d73ab6e14e976d1142270b2feb807658c3b14dee423"}, "c0f98458-c31c-4ef4-a41b-9ec99e614d67": {"doc_hash": "5658a315abf823c7d6d0ce3eacbe8e862db3ba2b259b84443610ce3fd866f831"}, "2290dc41-4dcc-4716-b972-ea85bcad2128": {"doc_hash": "639accfa340d1e5a4236fbe4cc03a8ec8243ffc918c8e1092e847f83ef698d8b"}, "a86fce18-9a32-4ceb-b5ac-b84c4db13b04": {"doc_hash": "1701f4a440283865835be4065bfe23c51b18b25490f3b2fb2e1c042527196b91"}, "6cbf7941-acc2-401b-83c9-5cf6055c5418": {"doc_hash": "f2ed4cd9de55866c8531b5b99995cabbb678e72c2e684f6960ae4a9566266059"}, "ec83aa2d-60cc-454b-98b4-f14ed817cd2a": {"doc_hash": "5aab814c6452a0f09fb2e800dc95c7a4c80709c68641ed75274b927d30be0486"}, "a6c539a4-563c-4469-818b-0af7e85abe18": {"doc_hash": "1f520e1200ede401c0f53ed2d38b3659fce6398c9abe3976656c448b9cbf7f07"}, "2ff26c0e-6a5d-4217-bf2f-ad58ff69e47b": {"doc_hash": "bdc871b88f136c17bb248845a279a8d3c952a225d299f2d78e75a241708adbd5"}, "9b11cfb2-944f-4ee3-93f6-48af277ad8ae": {"doc_hash": "5f2f5889ab0b88299333817d6ff0291feffc16f10a155881ab96534b59cf38ce"}, "6a860b3d-0380-4b04-b29a-cf435a112968": {"doc_hash": "83f79136274255470f509974dd7ce944331e9139504183dac61fdbc5c9459cf0"}, "3f234a7d-a8c8-4c0c-b6ab-8098854a1e6e": {"doc_hash": "fbea3267d497ce68a8dd06f2d5cacb7231625ffdf78bf46dde9d8f027a21096a"}, "4af3f9ce-37cf-4e2a-957f-e0bae849a1a3": {"doc_hash": "ac2774d9f264b77b9f7a7d0e6564a0bb26eb6064af1a92be366c3a8d8a71ecf8"}, "2eb8ae5b-bda3-4f8e-80ce-4952786f603c": {"doc_hash": "610c1d2c8b0073d2c009f51d61bc52a078bfc039bdfdf804ee223677de269bc7"}, "f94bcf04-9a54-4790-a1c8-7a8d22e987c5": {"doc_hash": "9a0a93fcd881e689b63bf61ed4c9ec93cd526400dcb992b46695e9ad775f54b2"}, "ea81f8c1-6216-493b-aad2-6f14fbdb22a1": {"doc_hash": "0e1a0fc7ca5bf2ef5f4740dd5b3b787939a0875cc49087bd25b701583ed01f06"}, "71f3c27f-ae98-4dea-a337-dd07ccc819a1": {"doc_hash": "2c9d756677037229b20c2a51613015e055558e10d0ba332f6311f619b451aa59"}, "1c3e8b1c-1dcd-45b1-8664-3ad34bccc770": {"doc_hash": "61f6ba7c6358e88035c72746a42d96044dba3e40297bd80786aed9fa2ca0da69"}, "803f4178-7f87-4f8f-891d-cb59fddb0f0a": {"doc_hash": "4a6098a543cfa1028ffc938704a622cb26a48d5eed21905f00bbf0b57ad6f13a"}, "7b710131-364e-4bc5-b2e9-e7f4b5fcfa2a": {"doc_hash": "48e9c7ca03d169a7d57a2cd37c68503e612b2ca2ab42e7ceef174d82bb6de2f3"}, "e3abc501-edbf-4607-a901-88279381cc2c": {"doc_hash": "a0758a6a2fd7f1cd847c1cadda093b5fc719024d35e035643531bb5b7eff4f87"}, "027c61ed-ec7c-4476-8731-74c8571cee84": {"doc_hash": "6c302de9e9debdd11785117dc6d3d3be07ae407c2817d85c2b2088cd56c5c8e8"}, "2f75c810-f18c-4067-9252-4d09d1d18b2f": {"doc_hash": "1158fa3188b0d61f58ec80da392d41d711033ba60c5d8783e2f735a7f9948772"}, "e2c78923-1204-4f05-b887-99a6bff120ab": {"doc_hash": "dc4fed671110fc3436700fe5226f2969b39d8abb8a8b21cf46d91f0ec138a62a"}, "0d7fab36-2c6f-4e23-b90f-2bc6730da0a0": {"doc_hash": "140152bc486884f7a1a471ce5ba789f89b2e52cad3e810efd95a7fc1040924f1"}, "10dbccf2-1a8e-4b8a-b256-7d9568b285fe": {"doc_hash": "271ce4dd50abb48a18fae5a6c243594106149cb98eedf54226f2b8d66d3d5a69"}, "33fdc0a1-6561-48c3-998e-89c0333c7e9f": {"doc_hash": "f005a273ffef2d79c59d045bad2de20d0c3acee269762829e29b7eb0b1463581"}, "4731bd9c-3858-4789-8f98-7cf1866689f5": {"doc_hash": "199bfcc96180115b056f9f7e851182741bda9adc2234990bcdba4429bd7c83a3"}, "f3ce54f5-9b69-4b0f-86b7-ba5bc66d7085": {"doc_hash": "6fdb728c1761f60ef018affd30589c19b8dc4b2a0b20c7cab75381c133aba99f"}, "2e6140c2-6bb9-4cee-aa40-0ceba53a44b1": {"doc_hash": "080555054562a8fe7377034234b53f72d2f8d3632d33e3f36396545e09c9a3db"}, "c3304f9a-595a-4dfc-96ba-bbd19e6f4f57": {"doc_hash": "a15fd971b95db6bc20d02a2be531c3559953c727787aa5d3658b4435e505c102"}, "fa627162-bb28-438d-b7a8-5456eb82fb3c": {"doc_hash": "fb40c3d2992ca8a00f2d689bda4736058f749273f49a73c9f01fd09a254f3686"}, "e05b56a2-c7c5-4c49-ba44-39e60e89b1c1": {"doc_hash": "ac173e10a45493a4d278b9382bd435592a816fb48bb0066bc56902c3787cbf00"}, "c41e11d9-ebaa-48dc-8284-7ed5367bf332": {"doc_hash": "68d6b0b2d6e180e8abb055410df66f645bbba40445560166c5ad312cc0cf658c"}, "0177558b-9d0d-49a6-9644-fc9d74730c0f": {"doc_hash": "d819fb44ab11222cc0709a49f452f4f146f62d87312a2dd372252505900263d5"}, "b7e2b995-a7fc-418b-8078-25620a255b71": {"doc_hash": "c901eae72497e02e2853ff4b0ba8f849e129e264e42b6249b959ba33329908f6"}, "169bbaad-84ad-4eda-acfc-26415a5e5f88": {"doc_hash": "020eb4ab7a37302decf35c9a4120442884fe38a43684bfba1cb59c0cc39c0475"}, "a4c1fb0e-2a75-4b9c-adb4-a439757ced40": {"doc_hash": "527c1f43bb72dd8214cb64c3a7038ca050b67c3e9e06dec840889a772eefa0d5"}, "15e6d703-6715-4e5b-a989-4a4b14446bdd": {"doc_hash": "49b4c0c247465294451cc1677cc3f14a6724637e953459e183e373d8da848d22"}, "04a26b1e-a807-4772-bce8-c0081849eb08": {"doc_hash": "3a204a18cdd4333ffdb38ce975c463d8c59ba02569a25f7e14949644dabda872"}, "d9da3902-bdef-4d17-ab94-bdd46cf6fcb0": {"doc_hash": "a1e4d7be4587b6dca9aec616e6c25712b308f133761366fbaed8ad0113bdf748"}, "5851eca3-df58-4608-9748-65667ef53334": {"doc_hash": "4d37fee1f55d7e45825e4a342ece0b9094ea86041a6fb55ff7c0e30fdd60e45f"}, "b40c98d9-c3b7-4bd2-bf36-3a0ba25d05e5": {"doc_hash": "32aa82748825cefcf9f178bb00c43617472d37f8ca21bd6f02180c2c1905d163"}, "efa53c04-3fa9-41df-83d5-fbacbfba05e1": {"doc_hash": "3fe196a5b424ab55e5fca61dff5b4c19c72b81049d7ba9d1c506e97c1ba235a8"}, "04f3b053-992a-4ad4-97cd-9def0e9667cd": {"doc_hash": "0f5d61d1be6eb27eaa80863a3eb3bffd85beef18a47ef4f6ac233d99cbcd14bc"}, "fed0817b-0036-47d5-ab89-964ac95af8a4": {"doc_hash": "782e95ba1c21bc94dc30d67bad4b0fde27ac6e532eb494bb4aebd2e51abbcace"}, "bf3551bb-a69b-4786-8b97-9e1991779b25": {"doc_hash": "056367591d19bdb94b098f048eb6e793095b255284f0259f519986163b3b21fb"}, "dd4802ad-d90b-4097-b027-0c9063d87a6b": {"doc_hash": "527166682af951849cd7bfb2337417948e07de619022946f8dd10490a2cea069"}, "e1dbcc9b-86f2-4156-989c-97a5793dd227": {"doc_hash": "866fee241851044b46ae301f4fc0da946c19bab10120d9950ec888d5f6fa68d0"}, "afbb6827-a175-4052-8938-0a65fa569958": {"doc_hash": "14e804ab6c1b5cfeb0d76282ba9256e110265cadd86a0acc29571b4c45160466"}, "d3f89eb8-9591-4eb8-90f5-78862abd97ef": {"doc_hash": "0d191d03182d36e011b9faa06ed4571a1d98aa810960dce31155b377aa0615a6"}, "80239979-c162-4be3-a87b-d736b75d6d86": {"doc_hash": "ce7055190f2744685decc24ccf69229a01dafbb56a90fe1f8afada0ddadddeba"}, "b632da1c-a299-45b5-af0a-c02d87d51ab0": {"doc_hash": "62265c232d227f19bbcc6252e1d339580ec57040c7318b25c0fd8bcfdd7ff985"}, "5e01de27-ac07-485f-8ec8-aaa8727920fc": {"doc_hash": "5ce7c966d78805a1352bdabcfcb59f662a7995e06be5510deccad52d5a7dcbb0"}, "1054260f-7162-43e1-87e2-4adc704520aa": {"doc_hash": "2405bed36482e30b75a9a7277e64b9ba6d6bd0ef47c367549fec9bfd58dbfbb1"}, "8f275a63-b889-4200-9f19-6b5e79099395": {"doc_hash": "e1eb7a2e8093322b9baa6b2ea21e5b9935ac0cddc8bab61c44f1a1db9228b2be"}, "f849f020-c8b2-47ef-a5ad-8a712f14a243": {"doc_hash": "084c763a0f697d655890d80da2b3a4cd91c398768bc0700c3336eeaacced9350"}, "51a40464-b60a-4af5-8ed7-0aeac71e3790": {"doc_hash": "cecd5f312f754600ba65d1b36165ff6a18b98d6ce6d8e74e063a65c9140e60a1"}, "50ac2efc-012c-4509-834a-ed09ae8f63de": {"doc_hash": "fe7dd1ca8c522405fa2ff5c2f623cc33d2154e136d5ac3caf454cfba691fc0a6"}, "d866a6a8-3bd0-464d-848c-abe58043d188": {"doc_hash": "95b1e2c3f2c79016495979344e3d0eebc8acd2398f7c1e1965874cabe4c4699f"}, "87b2b43c-0df0-4eb3-9aea-59147a753c60": {"doc_hash": "eb9c73a412dbd4e3d3f1e91b75ca7b1b075bbcaa0993abb6bf5cae47fb70762d"}, "f2405322-6a69-49ab-9945-70f2c4a4c31c": {"doc_hash": "d3e06198cfc571941cc161d65b7de458d71c0828a4b6cc20225a9d6dfff9d9db"}, "f287c9f4-8311-4f48-8743-675111602dd0": {"doc_hash": "58a9137da16061cb1a153227e6ea90d45e03baf3be7f5b4b4186b603b3b3a8e5"}, "a56deb37-fdb5-4992-8631-cc26f94c6811": {"doc_hash": "bb40460a169a6d70c19c5152f46fb0d261e26ce98f7ca8bfd5b55802de0406e0"}, "c9269bbc-a5c0-4847-871e-c48413c459f5": {"doc_hash": "d69083552fea67fe4dbbcd19295734c0b04bf58e75fd7c53618792fbedd05c0a"}, "a688981c-5fdd-4b87-90f9-4e5a7c7b9f2a": {"doc_hash": "b22d41909227128a92d3120e4479170819008f180d59ad77039ab43ca87c52f1"}, "6ce55b5e-e69b-4764-91b4-0bf267aefb9c": {"doc_hash": "ae1ce83ff3703557f3c751654a667e3f83fee8d2f59b82b4d85f0aed8479b567"}, "dce7d637-fa63-4b5a-a7e3-a173d79e4d55": {"doc_hash": "9506b7834a38214254baff76d0cddb7daee9bf1a4495ec41d92e91b5b68564a8"}, "88fdec93-e525-4504-a951-124a7b7fb27d": {"doc_hash": "48a2b1884c17746316246421c0240fd554a5ebf03703be389ba042bc301759cc"}, "0372323a-6121-416a-9281-85ba8271185f": {"doc_hash": "64f983cbcd4b4bdca65aa97d95dcc0a5777738dd57494a9e8a469709fcd220c0"}, "8613a745-e3ad-428f-a3f4-f46d707a3be6": {"doc_hash": "278146d6b25ae99e2de7cd808f715842d7cb07ac8251a52265ca3a7ee4941fe4"}, "d67d9b9d-a347-4ebd-8c68-eab5e57d6a15": {"doc_hash": "f93a5e1834ec2e5067e87a2696dd3b35cccc926c55d9d702c2f3be50994febb0"}, "d4bc8f5d-66d9-4d67-80df-5a54f94d49eb": {"doc_hash": "755222dc350989c7b33a6dd6416a647e4587ebf67e07a7a06e0af148f550f5c0"}, "e94de2b8-a1c9-401e-b46b-55842d2b42c8": {"doc_hash": "f5a50499b591535a227d2f1ad12fe12d70402f157da1cd57490cdf6c4e5f18a8"}, "07a578e6-45e9-42ab-a845-4e10000dfdbd": {"doc_hash": "2aa92cb8ecc9ed7f47f48064814f25c2a38045494aa5b2c1cfc874c2d22fad7c"}, "223a0db6-4f51-4623-9c88-c6f1e3e57f3e": {"doc_hash": "bf555388484dd71ae7764b232ddb5951b6154362624d99320ab8614303dec3ff"}, "290cf564-ff5f-4e14-aab0-e2daab98f2d8": {"doc_hash": "e4b4539298c2c64cde06c9078a0ef3edf49150511ab5a85a4fd0f575bcb8465a"}, "ffe8d2c3-f7b0-4546-a0b6-62af01debd44": {"doc_hash": "a880da4f3f4e21f3f8cec7808409ab2cd51f775161b2f74f4a197073155cd25e"}, "744d61ac-3c3f-4bcd-a02a-75cd6e617007": {"doc_hash": "4c49dfb19235d957d786f4e11d031073f48ab70c687ba88f44b3d142ddcb849c"}, "f0ec5205-b0be-4aed-82df-6d032d3d95be": {"doc_hash": "ef01a83f4c061cff99a99feed0b26253418f6df7eed0ef92815800527f30c8d3"}, "a43a5582-b664-4232-8cbd-e1a698c76529": {"doc_hash": "5f2f4da117a97a5d459952dde3617c6ba876b65e58fbd4715d31bc8cac28962c"}, "7dddbbb6-98c9-40b3-9aa4-ee6d51fb5a10": {"doc_hash": "f1f24bdd8a897c05a60f97fdfc2e01f8e87bd1f2f62c614cd83c5ea630bff754"}, "d4d49f27-79ad-4678-a77c-2e4773879061": {"doc_hash": "3cf6ecfd769f217f231f2c84d20558c6b9a1ed4597b1e59835d4103fbaea3d8e"}, "35e396a6-b1b3-4ba3-b8da-3e78d25e7c11": {"doc_hash": "a45c2c6eed9bb8308b856410cddb31f2bb652089743dbb715957eaffe8366026"}, "5bf9f36f-1ffc-450e-ad32-5aa4ec0b074e": {"doc_hash": "31a26074cfc6e2458e829cec88e9859cbe9f6468b84ce1b3dc2f0c5b4235b431"}, "799365a7-246d-4db8-9743-423571ba73d4": {"doc_hash": "ed6dbebb8acdc4b47ffa11bb6de29efacd87a16f13c7ffadab2381624da85375"}, "d0422eba-a342-4da4-a900-10f22e1af418": {"doc_hash": "e2210c23fa6a3f690490617630b287fff995d31c2dd959b6b5532ac1d5d6a41e"}, "1886b990-6e64-458b-a499-b0788432dc1b": {"doc_hash": "77e8b8f11b0ca304bd0dc3861e9d64ce7e42a121e5f4dad55e972c1d38693c7b"}, "8b750aba-9a8d-44cd-a6de-5bd835fe7668": {"doc_hash": "a6ad4afb059cf31747d8cd1a0b29f44ff66b6758c72e2c0de58926fe5cc16d21"}, "c8dd567f-3b26-42ba-a364-e1a6cc1aea91": {"doc_hash": "049cde75307319d7ef74c1e69fac5ffa9456dcfc30485b7c194428d3fad50d5a"}, "13989220-a054-4245-a93e-d6888b340135": {"doc_hash": "b3bf52015c14804d1e9599028021f1b8ada59809e772bf524bc87528d0fe7abd"}, "697cfd63-29e2-4306-be1f-256208ad1dd6": {"doc_hash": "293edf449526db0d65d9a599be8f70687a64e539026121b8802456e1eb5ddd60"}, "5da6453a-0764-4d06-bf7d-57dcc8aa8ffe": {"doc_hash": "1303ba7fb01badab0977c6669ceb38b17d7c73efc1ecc6336474e8d8dcbe76c0"}, "726dd4aa-a665-4d0f-88a8-14d896a7ffb3": {"doc_hash": "262adb13d3fa743ccc14c6540e42125e837a4e3259751d6ab5d0e66928942b38"}, "e616ef71-4a0b-4cab-b1e3-11e4414e2198": {"doc_hash": "5dbc80e93541431487ea2e82878ca765948c86159dc144f0e086cc833fbe71ed"}, "04f11f87-b9d7-4add-93cd-fddd8ea9c421": {"doc_hash": "f4c8f0608aa2a393e1bc826fdeef60245df6a8a8689fc1d5a00dcb62a82f977a"}, "84fce7b1-c416-420e-8163-895208ff3738": {"doc_hash": "3db94dcbfd84158c7adb42907007f008b5789551e9fbb69acbbb03eb54ba1a64"}, "f905dd96-3364-41de-b8d9-9b52b790479c": {"doc_hash": "9951d3748542aaf9c55fa28d1f1f9235356df58064fd1ab1a18f8201dc39cd1a"}, "32d90b03-e4d9-4c78-a68b-9f2757d3c282": {"doc_hash": "7b2fe39d5dd43d8c2b6af82743cf6a7c874989719a25ad468623199af7bd31ea"}, "d4e3cdfd-5afd-4465-b1b6-297275b2075b": {"doc_hash": "1c84ff6f0c6f3f22333c84fa9e7ac986c35770a576b65f1132f4df9e21b95d4d"}, "c926d539-2327-463d-9e6e-e70ffe3abd2f": {"doc_hash": "af7ce9591c0c2d30c0969226cf3024ae8b1ab23a2d0204d16550def88c097ed0"}, "cccca899-8ab8-4615-81b0-1dac5d48ed99": {"doc_hash": "e6d5a284bb906fda643b4b4b195c4cc615e8ad14bc7f501681cfc49618be0460"}, "c0e197b3-ba58-4e4b-8214-20ea6bb78a63": {"doc_hash": "c28eaf34050550de300ec7cdf1f9e67c3cebb1faca8d580ecf56158078044fb9"}, "dc1dc521-9838-4b9a-ad8d-70416b301089": {"doc_hash": "84d81bc43f70959975e825e8dedc40d722542ea815ae71b459a10fafc8618dd8"}, "19b71fcd-15d8-4271-a2a3-125f386bbc21": {"doc_hash": "7a35141462ca5a6d42bd3d05a9ac4a054ccad0ece355a623fafd3a10605a17ec"}, "e09f0a03-a02d-4663-9d48-1bf00d5fdc4e": {"doc_hash": "26a581093e7670d0d192e5dc00cc3854366a6da5d3b850254541ce77e248f910"}, "25e03c5c-4106-46c5-819b-5da441c12aa8": {"doc_hash": "c1a74fdb626677a81b80065923616bc53e76e896490b0e14e7245face71f941c"}, "99428655-c2f8-4f80-89ee-416f5a73c506": {"doc_hash": "a36fb69c03c0d92c6dbbcb42155bb769eb1faab6f3311192c8543073cc8996a7"}, "a8b8a16d-03a1-417c-abae-fa999fefa8b9": {"doc_hash": "097762b0937449004b56b543f22ed32a918c63ba4f3e33cd96f270d3242608ad"}, "620c0c64-71af-4f84-9bea-9cb655339ebf": {"doc_hash": "3df5b5c89e3640fcb6559497fe1a8b79ccdc5758053ed30f2cef105543023ad0"}, "c4708dd5-68d4-4aae-8ccf-78ba5b0bb2e4": {"doc_hash": "26a74ac42e4722c5d4ae278c1201a79295cee79963ee5afb0a7dc773ee9a8cc8"}, "c2588257-46a5-4107-aab9-e30dfc2f039d": {"doc_hash": "d570b4d52b8142c6d0e55549cea5fe974adf6e303b81aad87f70cea92cda055b"}, "ba7a052b-e731-4020-822a-b834a9201dcd": {"doc_hash": "882ea979dda1e4afa896cbfd80348b7ff9ab7ac15bef176fe0391606ea9a6ac8"}, "c7475fab-c6f8-4a13-956a-ee42b4597bb6": {"doc_hash": "8dc6276a0906721df58dbce4e5259542a3bf84a57d0448927bc957d044a70a4c"}, "4f9fc753-4917-4a02-87a9-e3a23c6a9764": {"doc_hash": "d7b5587bc426e54c3f8849e82ed963729f83e3e55826fa57c6cb32f72c86eb2e"}, "c85615fe-eab1-4b76-8657-f4b59ca1cdf0": {"doc_hash": "8aedc86d77bba47aa63dedb4ca354778c5831ae0558b080317a665d3a6e42e8a"}, "f047a5c3-91c6-410f-8802-1a7a518cd5be": {"doc_hash": "3e7821f6352f3f7d7de129c8dc004dacb1d623a49a13b47f39c176f80bcb87ef"}, "a8f5e1c0-1477-4982-8b0f-eb310384510e": {"doc_hash": "2020c3b725b64dc316c1afa5d3971a42e35c0d38d273275d25b3351e6d9040b7"}, "a148c81f-57e5-4ebb-8f75-a9338a4f350a": {"doc_hash": "5646a3551aecb81a7e51a50ade7a8af6fb34e45ea357dc54ea8e0091a87ff145"}, "ccbdd146-08da-4e5e-bee7-c08456289b09": {"doc_hash": "4900278a18ff83150524d1c174793ef81cbd277ca31ba3c49c44d6e897f9f47f"}, "575f2d11-d731-47d2-ac53-6fb66fcfba4f": {"doc_hash": "b87f2ac440263726809e5d80bfc8542e5f4462267e7a4c87c1099338104fa5cb"}, "fc76e065-cd9a-477d-bdbc-8b4ee513fbb1": {"doc_hash": "f3db8bb93db64684a0ca79eb6ff6575625dd948cc0d050851a398c3e68a8f8c9"}, "e9fee1c7-0f03-454e-8c49-4aa4c54980fe": {"doc_hash": "b9e0fc3415f14ed11c88b4c292309846e8d83d110613da3169f2c35cd92386ac"}, "4bd5360e-180f-4515-af78-3351033db5cd": {"doc_hash": "05caa0292d9060b6456d6ca680b2beb9c29813c2cc2095348c063cf3b90de503"}, "b562eff1-8611-4a50-9cae-734517aaaba6": {"doc_hash": "78e5711190f872941a4e0063d61f687874fc72f36436a96f85ff02db2873d2b2"}, "cd1debd8-c3aa-4c88-a574-047a013dada4": {"doc_hash": "2ffa926e05bca8eb814f8710d970bb551398dc133914e254fd31eb69f33baa72"}, "92a40f89-2155-455d-b05a-89b585944884": {"doc_hash": "0d53c42707aa862b5946325b4e0b3bdf1d002d9d37c5ee2d9c32cfca0641cdd9"}, "a08a4887-bebe-4910-a559-29469701d3bd": {"doc_hash": "91ddeb461cf35961c425823aaaeebb7afcc9e7c031a32d75f409eb95952ada90"}, "ae4786c2-b8c6-4b78-b1ce-4bc15a04f6cb": {"doc_hash": "c54147b827fd7e6e4a76e7abb069f6ff72ceaa62525f190e026d980c30140b33"}, "23fa9e9f-f346-4c66-a40a-6ebaac43783a": {"doc_hash": "42f0d7406cb23fca12a5c6232ee2e8c99736f86d9bf98cc2d260ee5299139625"}, "2d91f457-af7b-482c-87c2-bb6c5951eeb6": {"doc_hash": "b9412f8887bbe6cfba0c6aab68112bf7dc8d0405750dc95ec8c5402f3af910a9"}, "4fdd7801-f42e-4314-a8bf-54ab7349d058": {"doc_hash": "78698da552489c3422ee8f0319c987ff101a9e098f6dbdd8b1d113cb5fa5af84"}, "562d8c23-f0de-4efa-bb19-3f8dbfc4e739": {"doc_hash": "1a084ca44488de516da882f21c4d7bcd84ea1004581b4b2373485df440474db0"}, "329513eb-9027-4f77-a34d-9691b4b55308": {"doc_hash": "c54b833fc7cbf59b192a9f857717e85648138c7ff41f0890f0b7dc2e8c40cc2f"}, "ecae360b-ffea-4275-9cf2-c9348f9912d1": {"doc_hash": "e8d7572b5806fae0f9abc7f8e0901e86bf8109b2543d06063a97df03a4f37dc0"}, "ba46548f-c0e3-42b1-91bd-1edcfdb78f64": {"doc_hash": "8a92a9a698c3657ce8e0548181953c8166c06e70d2a5c601a9ef83ec798a2a79"}, "ea686be8-b317-47f8-bce2-f5f58a9ff1b5": {"doc_hash": "a26bc357f66b1594f400986d8bc274002a3ad91b0a0701c9667e3261fe210714"}, "118f7e01-ba0b-4828-ae19-5afe6c94367a": {"doc_hash": "242ec8619c13b243ce27dab892dc3231529bc641535f7fd14b806f5586f4bc1b"}, "22b30988-4276-4847-a318-d41456d456a5": {"doc_hash": "f1e832760c65bbe3c0cc578daa5a3547157bd2b597c9cdf4cfad26aef2da01e2"}, "689e2465-c0e9-46d9-b7d0-9c7cab6543dd": {"doc_hash": "e283be842cd3a028a14399df921e059d830337e52ff81134130bd0710420266d"}, "ca7589bb-9b3e-4601-804d-28498152a7ad": {"doc_hash": "ec0818acdb4472201e9a0e1a82e7e2e5b7d36c36c59986f14e375224bc24d8bd"}, "89e98d9b-081a-42da-9d8b-91abcd90bf1f": {"doc_hash": "6ae6f071220dc1126d3c8e19379cbee907c3e0fd7ed0610f5f942df4e4a1b2a9"}, "fd17eb08-fc20-4a90-a4a1-c3b4cf6b89bd": {"doc_hash": "d3481f75e91b11b8e9b6627e938dcaec88821d8cf84c22909eb9ac020b760f5a"}, "4d98d23d-c42f-444b-9323-1fe97baca94e": {"doc_hash": "8b7a172bd1572cac5d70792c4db6b28dc3e7d17b3ab11432b13abbb5bcbbcc75"}, "8ec72078-d96d-4747-a4e2-a7daacc332a8": {"doc_hash": "e701bff97cb0eb3f30ef9d4c1f47d168856941f9958197028f51d0a69228361b"}, "794ad272-a4d7-44e7-a22f-46892474b952": {"doc_hash": "cb30e04d7528be39f7bf7af26a4eed135a0eba6deba6d5824b331e1b1d1c2d44"}, "a32121c2-7242-410d-98fe-f2d81d8e58c7": {"doc_hash": "1ade6ff7d0d9049aa8ecdb80a502e91348b3ef78668b85ed91f3b473cb518f72"}, "429c284f-4fe9-480e-ab19-d64267de40ec": {"doc_hash": "cb84be251633265d661ae667b03f02c25a1de6058d528b14a1e6283b8835fee0"}, "9d36db84-fefe-4e6d-8034-9eb0e37c55fd": {"doc_hash": "c3001970a23acfea666405edbf730aec4cc231409b420a61d4b14273a7042b17"}, "42781a21-7024-426e-83ba-4af0bb4387b4": {"doc_hash": "b4d7feac49c326d388314951d2399caaba500e626ca697bf76aa3f3f6f586bdd"}, "c9587028-18dc-4835-b0ca-e2efcf7e12a9": {"doc_hash": "e08a13977ca67440731402493d8b6d1464f59d3d08546fb2ab9bb955628c3c99"}, "5200c3ed-ecad-48ae-a6fc-9e49e59a386d": {"doc_hash": "72eb7a8fa8875336815dc4cb9835f79c7024ece8902035570186fe4d951023bd"}, "8ab592e8-7178-4b82-ab4e-e27508a21501": {"doc_hash": "f7e53ac2da19139d50275cda0321ca7494f991dfa5d294023e34300c680c3be9"}, "fc139323-ae7e-4f71-a7d9-089bb416b7d2": {"doc_hash": "91303b63e46247e6bd480b334b5e517070fc6b7d07a51652ad2416279820645e"}, "880463eb-8565-4a9f-9410-927a8e0084eb": {"doc_hash": "d472367c00c8eb2942ac1316fe4e6f614ce61f6d06552aa2a13aa2423a4bc3f7"}, "650aaba2-9ff6-49ca-9da9-5b6941e2e460": {"doc_hash": "30eee91942114d19de897f0df884b340070fc9c925c55eba4f9939fbc53a1be3"}, "65067d81-e80a-49d0-be37-bdbeb86477c3": {"doc_hash": "975cdf3374a76dc5668adb121146af2eaa3d984bfe30d718ee1a6bb9c0ba0016"}, "1c3dbc12-03a8-4b38-8cfe-d3260f3aead2": {"doc_hash": "520c48c1f1ab50dfb39302c6b37a5ace935f8dc2a21201c7b46562bdb63588d6"}, "5f6e090d-e6ab-44ea-b030-63a0b81e5890": {"doc_hash": "45b31987465e0446fb6c01de9397d1fe0b6ee9c41130234dedaf5466bfb98b2c"}, "3c25db0f-0efe-4641-85b8-41f37d34f11a": {"doc_hash": "4a53e8b7663c93d0457ee74866c878dcdd287902b5f3b746d8058f68f86b7ee4"}, "80a26ef5-2152-438d-93f2-e99d0ff385e8": {"doc_hash": "0ed35caa7d5eae5510476e0de40c6a5e571ca7e0650853ed2c74f096fa652080"}, "f6f0a271-e590-4481-bbda-1673f8911af6": {"doc_hash": "2d62b75a80dffad011a8132e2eb67a53866fd23c295b7d6c1d258cc0a8bebf14"}, "c92c3ba1-c02f-415f-bacf-a21086a8ca30": {"doc_hash": "da848cdbe93d5d14c09a75892a58e663ac760645a4800dc46ef25fcfd46178cb"}, "82817cec-6ca7-41d4-b42f-2dae2f0b112a": {"doc_hash": "458f9b8825d9c1c43f663727e1b7edca1c883478839f270f97097011d26cf325"}, "25e80a7a-ab4e-4d67-801b-ed1dd66320d5": {"doc_hash": "ac2ea6da5a28ed3a4eb79e285991fa85e20af6872a7496170becc1347efa7cc1"}, "e9acb4f4-88b6-4ea0-bc71-4e926e70a931": {"doc_hash": "6b78e68a0cef586221824fbbafb7ddadad4c01b838aaf46378515b0b403a11eb"}, "d80eceb6-ebb8-4704-84e2-c4e31aea85cc": {"doc_hash": "b250783bbffcb0c54a985d72e6422ff5d956a661be6adfaab03da5084307f6a0"}, "3bd05c2a-98f0-43bb-9c18-068045afbd73": {"doc_hash": "49655146bb810e1b8bc09f2117d8d0fe9b421cc14cc496497dd2e39a08230c00"}, "a2824579-7f5c-4154-ad0c-5f4a8497bb6f": {"doc_hash": "ddf81baa3d939d34e5670b875109ec02d2747fbd8bcd21e360f3eaeb19c66b26"}, "06c7b0d7-c250-47a7-b208-4988b241d811": {"doc_hash": "f526e58dfb9a5efb7d564e5de9070e75068601fce121d48f1ed06b95e92f9f2f"}, "b0e5baa2-f02b-4bfc-9d28-1b2505e3f73e": {"doc_hash": "4bf9db522c66f39776d82eda7764e28e8dcb489a5dd01850a2feee0f3e77da0c"}, "2d97bbc7-d34d-4676-9c49-2bebce8cde61": {"doc_hash": "2c08f0fc97dc465086fd2b43f6aedf6296d41306f419089ff390162ebf4c319e"}, "c96dd937-7ac2-4451-ad25-f023d0883c0a": {"doc_hash": "4bc5bbcbad965c0d6f00de823a317fe857f1fdc080e15bc1f5fcabfc8d4ad347"}, "830305c3-609b-4801-9adc-005c67d22cc6": {"doc_hash": "208aa82e3992d7f287d5a71009054cb01e141e24e81d4412bb31649f55a7be5d"}, "f9abceb8-bdf5-4600-a217-efd48276f962": {"doc_hash": "971c03e4df8b6205d13bc06d45f24839950318840c6e944917dd8b94612ee2fe"}, "dbc6a8ca-6079-4a3f-9f79-ef586620a4ab": {"doc_hash": "4401d264b32ea801a52035c47adab53a3289c071c2ea461ce23518c538206b2d"}, "471e4d15-b9dd-4fc2-a696-b406755c55df": {"doc_hash": "3e1f72b5042e6f4eb7d737dbd8358501d8ce0ca8c3cf1652392842dbd6fa51c9"}, "acffaf91-caa0-4d73-a07d-c749c5bcda6f": {"doc_hash": "e4121c9f72d5334c4754a235a6f765fa9a27f61aeac3106d006ceb49028c465c"}, "6f2844c6-fd21-482c-b18c-3dbb1b3d3520": {"doc_hash": "3b1d40c90888f4058993d9d39071e88ee9456d6415ea3fc6879ee19024de3e55"}, "fab66206-335d-4130-bf81-df3daaacbd2a": {"doc_hash": "19f6c5c53578047d587cdee2725107df7448e0d9e0f7a01db3081a74dfd40ff8"}, "91a0e099-9352-43c9-be28-b097c6948ccd": {"doc_hash": "d258fe920f955145baaefa83e56680f67f322ece9ae5949c63c43aeeaa7d3dca"}, "e373490c-63ab-4a0a-9468-52bb59feb4eb": {"doc_hash": "5b65523af85631f074573cda0557bda6a9206030a44c798f776b2dd4744a3ef0"}, "ffa06323-0f28-4158-858e-420adb2b52ee": {"doc_hash": "49662bfe000cf4c13eb790b2510fca690db9ea42422a8ae9a4b6a5ad827142a8"}, "18cb1284-786a-4c85-b1d9-3be29b41e3d8": {"doc_hash": "88671d2a22893084f777d699da9a3a8f9209066bd977563c3cb06c210f1a88f4"}, "895ce90e-7271-45ca-99a1-6b64e506194e": {"doc_hash": "736b94d45a22c7198b4e7056a250a403c759c6e63c02e5d0900d7e2e6013e4ea"}, "983665e5-b3c8-4f2c-9cf5-642420dca2fb": {"doc_hash": "e9e05e98f866ced25f82a884ad48a9645a7241d4eb5f6b1ed9ba3f4e324cd247"}, "574ad8ba-e6f0-46f6-aa1c-b3540f8ef1d5": {"doc_hash": "e6b5c6da55faee6f31e2ce374fef78511b2532e86e947bad6c89761fd4851961"}, "47712a70-0e42-4e57-b314-df6893743083": {"doc_hash": "d1456deae198fd97f5ae1801611d14cbe6f3741c6b3476317e64d6c5bad20dc2"}, "67fb5e22-830d-4357-b7b1-24aa423c671c": {"doc_hash": "6f7a48149b09dbe2e05683223664b842f77e008fbcc4f40ec8e43fb1753aa1a0"}, "31286cb6-e92b-459b-8a12-1b78d8a964a5": {"doc_hash": "accea5bc8beff43e64faff2a0d604926a739523b517c03ca0c47ae8006fa4cfe"}, "9cfe2d17-5416-4b9f-aa4f-9d99f68bca8c": {"doc_hash": "8bc854ce983a3c79f63986725af21d33eacca61fc3ffd78167a949f772c5d211"}, "020699a9-b701-46b2-a642-b577f16ab28c": {"doc_hash": "770bb6cefcfa42d3a8ccf682087e3b13c58bb193b30f7eb76e1582bbfc1eeaa6"}, "7a9e7e27-00b3-4beb-9aef-3d1b001d4be4": {"doc_hash": "ee39b349ddb1aed3d91c346bf62d2d60838527fce7000c8ee08d42fc76a5cc70"}, "a546c90b-f54a-4ead-a910-873dcbcf3679": {"doc_hash": "d317467d781773ecbbc68475f310eae5e7278f2583948045b84678c87d1c9d5f"}, "4f42f07a-0612-4806-b7f7-d8340894b052": {"doc_hash": "435a34353195897340f34f2a817b5279933ec83026c9fed9adca02f1029f27a1"}, "4a4c7a86-55ca-4fea-86b4-31b073c4c7a4": {"doc_hash": "bf0f5bbdf9c986e94f31a6aded84c3449336d4cecf029b853fe63ba87fc1d646"}, "c732afba-4e52-4c28-b884-4898cbbf8cdd": {"doc_hash": "1d98c86a8b66ca1a6b7b8b9cebd23d1701a62375a084293ef6d6e207eac97982"}, "2c5c2ddf-7e81-4453-bd3c-1820ccf464fe": {"doc_hash": "4f7e7ab09c2d53ee0271976525ac320989da3d733c6f2b66dc32619d329051ce"}, "c92d81c9-a929-45c3-a048-9a6079e2325c": {"doc_hash": "3094d4692805d73d7a8c148bc1ad6115b6298d0d9d89e3cad94f747db99746d8"}, "d5489249-da51-4c41-99b0-7272b2fd55db": {"doc_hash": "65a0a541cbb6308acb633bb864ad071722ed34429418cae538ac0b9964751835"}, "45d2774f-fd5e-422f-889e-9b49ebe8aabb": {"doc_hash": "56839438c414deb64c6dd5181120e904be769a95c76debb7c4f502c8e8fcb293"}, "f0b615a9-16af-4b1e-88b9-7851aff8a6bf": {"doc_hash": "19cb8dd5a5bbfe32c53a215b6b2d0f959544eb9a36a91bb7a619a0c44b9ff4e1"}, "782dd48e-91d1-4ac3-8964-5c039488bebe": {"doc_hash": "91cab62321ca6f983969d87b97ead05116a1ee884aed172ca3f49f5b7c7c74af"}, "13f9a580-e911-46b8-942f-a573c653285e": {"doc_hash": "d6703d77b46c6bd81d7d6f328f3b35fda9b7aacd5773f562cd9cbe0945d9cf3a"}, "91261279-84e1-4e31-8385-422fc05bf691": {"doc_hash": "f8f081c9d8632f656cfddcdbf59deabfecad450e9d09bd0f6c6b15fc9219b187"}, "baeede9e-dd88-42be-8318-e867b5f18e1b": {"doc_hash": "59fedf9efc64752147623a677484a8d4e4aa5af0bae3859a7445223b0014ff0a"}, "4a61b464-204b-4c5d-a1cd-4a2e8d2ec383": {"doc_hash": "ce566594650788d4f831279d4a5b443896f049a10640c3f0a2a339129f81b564"}, "a59bee68-7978-4dea-b538-21f517b45231": {"doc_hash": "8c43b94de8f279b3fcfd4e307d82c6e2fcb223120977d0520030546341ef7ff6"}, "6e7782fa-7c64-4be6-b1a8-b775384c6045": {"doc_hash": "c6c88ad4948aea2d92157a3f2eb18688450cc5ae85898a008e46ec4a71f607e2"}, "cf46b441-f121-4ceb-b962-533de2ab09ef": {"doc_hash": "33bb082e5576c0878201d8bee0087732cfd3b737c16baae83f69f738f8b2c5ec"}, "b7c22205-d09c-4c1b-8769-27187f8f8f3c": {"doc_hash": "560af1c5b50f59b1d7f3c08f266daa85c667d344a926b23c7279df6fdb74653f"}, "1b5246dc-12b7-4622-adbb-65c56b283528": {"doc_hash": "4899f4f66cf4084d39842e44f80029d7bf638e21e8c7de865edd7b8838420a84"}, "0f09bfc6-d04a-40da-ae1c-216cd687c2a8": {"doc_hash": "52487f3fb76ac0494118d804e073c395f77fee91b6f7056100423400241c997f"}, "301b59e1-7bfd-424e-bbea-c78435a4e74f": {"doc_hash": "62fb9d63a3c63fadfb75c9c8f0b34c34765e2fb92c592829693346f8d7997750"}, "4c3acf80-a37c-4608-b91f-7d138698cc39": {"doc_hash": "6750fcc0def7bd3bcae117a589d07b0acf905676f5649aca9ac088d42d9a965c"}, "6a94ba21-36ed-4666-b23d-68c960f0e51f": {"doc_hash": "b7e99a43b400db6f71762d416ab66b2cc2cf55dd917330607d124596d5da1004"}, "a796ce72-4b56-4e6b-9153-af284fec00ff": {"doc_hash": "aa8d1fa1df7c36296a2246250ce36d8733241e4bbc7c3aa539632eeb955779e7"}, "e415bf5b-c8df-4d49-8f9e-929870e90d82": {"doc_hash": "d00fd6ef89f5ea2923479744da0b9f894e35b9001f7ed2707fe806c0fa93ea6e"}, "26d95543-2609-44ca-a060-642c622650a6": {"doc_hash": "95f50e5c0409396c2ef331706666579d7a2c30875be9a78c2f06884252e7ceeb"}, "9f131792-ce60-4bd0-9d09-76c9faf87792": {"doc_hash": "17461c22e380a486e3c23fee27fed720147322474788e657b3965ed3e6965c1e"}, "3233a8d8-e958-4023-9cd3-e31a1fe713cc": {"doc_hash": "ec694bd200db97c8af8c3057c666c48f4c511fb01a7950d83ea4a3460cd7029d"}, "fcc46606-2a7c-4b00-8e9c-02ef0088ec48": {"doc_hash": "722573918b7255b910ea5d28723fdf2a686783449210b829f345771a96e4df60"}, "9a689495-cd44-40f8-8713-1e688b3fea5a": {"doc_hash": "c6fd5001dcec4b3fc27eb568eb964090ac4c7d479eaee7a33c6cb91ea2a3fa2e"}, "23a4e7cf-847d-4167-887a-9503eebeb38c": {"doc_hash": "fc9649da7f3b7085a9f1ff68066b781792802ab038059b5bdb5b4a09b5ec59f2"}, "073d7554-2822-495a-88c3-8181a0d96057": {"doc_hash": "46c0384c6ddb273ab8c019faa9ae00d409b136eed4238b242150834c0240cb56"}, "0861b705-526f-4ec5-8512-5a223a554697": {"doc_hash": "0e4c6c5124d7af643c07e11c9b598b44a02bce4d9272f656460c71609de1ae02"}, "299bdafd-87c1-43ad-ab20-1e15cea35998": {"doc_hash": "7c4d66618acf0e05fd6295dd5978d748556f7d61c158aa5fc5ba94e5d5c7fb4b"}, "86419b13-fe0b-4ebf-b289-7a76d092426f": {"doc_hash": "51290d1c48fa69d7e24562c57bafd2fa843cde1cb4d4b3c75502ddce5a79475f"}, "a0b3d243-a1be-478e-af7f-5cb685263367": {"doc_hash": "6f26ab1f0ee872218e94ca8da454bf45cd4efe43f3b87da7d8854bbec4ee112f"}, "fd270dac-04c1-4540-bad7-be889e6f13b6": {"doc_hash": "d7c3284297403aac1f328ef6772739dee8a786b9af12d9648bd23c9dfe70b557"}, "79cdcea3-4106-4852-af23-05376dc62149": {"doc_hash": "ed014e993f9382fd0ea277d53212969dd89c0515908fa7037f85b815dbbda55e"}, "14d5a4f1-97d4-4afa-b7e2-ce34b22ee040": {"doc_hash": "99bef9b47c0c4fca39c43cd7f88b0318e1138f6d018fb3777f9486b6a3ea483b"}, "c8c1849e-79b1-4ea8-9416-eadcf372d06d": {"doc_hash": "6b16b5790ae712a00173dfe659993be626648b8b61415d3de2554a6c78b8f82b"}, "c38b6e84-c14e-4c89-a98c-203da93122f2": {"doc_hash": "437fa8d4783dcc061f67987d9817240d6515401e36b5375ae77dc042c89a83a4"}, "24c147ae-2bd1-4716-89b2-a4ccd9964cfe": {"doc_hash": "a21fec4e8d1f51c20c22fcbeb373df6fac7f9800588e2a14d69b8c44ae7429d9"}, "cf158de9-7c38-42aa-a93f-23d893e79d03": {"doc_hash": "d03cbc0fda18cc88906259b2a6136676f3dec370dc8ab51e05bf22ef5894746d"}, "1afb2557-03af-4d8c-9e3f-91403f1e7a0f": {"doc_hash": "697f021cbf303f4ffb68590d9e922d28a015aad63af6d43b11e4f0da54e4c04d"}, "aa8a5db0-1399-4397-9812-efe1d991257f": {"doc_hash": "5e18322add8baf6919ba3c974c419a103015e5085965f3aab734fc346d1d8fa9"}, "96bc6cf5-071b-40f2-a18e-7228b28f954b": {"doc_hash": "6333708f61680c53e4f1f2f07460b6db427e500e5da8d33385c15dbec3266e4e"}, "e682343e-cde9-4486-b456-e475edfcbdfb": {"doc_hash": "8515a21915c7126b1ba1b1f16f624f1c5eec56751bf07bbcfd2b8953d85dba41"}, "2c0df155-53aa-42c6-a41c-1f606533b23d": {"doc_hash": "a4fdaf00b43d47823587177d5ad6b4bb339f46a2d0d7c80c656f7173afbdc062"}, "9090fba3-be99-400b-a1da-530771880f18": {"doc_hash": "b1133922333629505c600834bfcd9e6211b2230946a4575645c2947946a8b850"}, "c702bfd8-9800-49c7-92fb-b693c6145849": {"doc_hash": "ff2168e03d1432f34eb9dfd3fed752133d35bd0a795186abca66ca0ded499a64"}, "b0c6553b-33ee-4108-96ee-62f106037168": {"doc_hash": "7b88e8e7fcc5c922d4f2aa576b856ed3dbcf2ca514abf0662987851a15833874"}, "26481353-f152-4f38-9411-b83984780735": {"doc_hash": "8139899bf3ca5961891136dd4df8fc6feba23b23a029aad80bdf5bd4663a9028"}, "02d62435-c5fa-48cc-9f0e-fb7aeb8c728e": {"doc_hash": "5857c88f270c87679a05741f1f88736320ba27ec0d4e2bf69dcc00ff394df8f5"}, "e64df88d-e942-40b8-ab22-c5364989388f": {"doc_hash": "49af37af4013a1a1abe207b33d4ea183bb59dee33fa89a7b3a9a860cafbc9ccb"}, "6092dddd-47de-4263-b7fc-a3ecfecdb2cf": {"doc_hash": "57f4d65ad0e91fca0841e5fb3cc49388a74092dd83c6a6e4fe92851a43feeaf8"}, "6284aa5a-d57b-40b1-86ca-1dc2ddb4f77e": {"doc_hash": "78cd7c3b62ff70f5d719842bc34ee2a82e6f06f99b94422a533dc8cec9264932"}, "b62617e8-5b2e-4ecb-8f1f-43e6137f9488": {"doc_hash": "40904850d8c5a1634ec43661516e1e2da4f1021bac14ff00273982171a26f012"}, "c867a2ae-a7d9-425a-a1de-196b65d9b431": {"doc_hash": "8791ddce1b0f6879e8ef57b887d646ccedb9718db4f21a4cfb1f0a32464b1826"}, "a05b4cb2-113f-4bf3-be3c-04b7d84b88da": {"doc_hash": "6dcad74d5bbb565d526de14ad5e237acbf1c1191fad0976ba0a0c3c340775778"}, "12209d31-5909-44ad-841d-8d24c207b7fb": {"doc_hash": "ed1b7983a2030b18bd8d6a6d0c3dc407daf16fa70e864806a44a755e0c66f42e"}, "7df62fdd-2eaa-4daa-94b5-eb47e66a77d0": {"doc_hash": "7c753553b6baf825bdc4fc03054fc21f5d1f018baf96186d3a6589a3fefe7b1c"}, "ad712aa0-cfb6-477a-b7a8-f688e69bc2a6": {"doc_hash": "b220251ba34e95223795635959dd8130b3597c4fa175e5460d39675094b5ba1b"}, "9424c67c-0023-4cbb-a07b-55ddb2e96746": {"doc_hash": "dfb636a62cb8592a3b9141ffc7bcebf4cd0552f3e0f101734ed5876fd147eaba"}, "a59eff89-d205-408b-9480-3ac62d20ac25": {"doc_hash": "58bb067b34d85555013bdd050e9564d96596f1e374b9aa31e84a0e4940ecf411"}, "1052f264-49dd-47d2-a3d6-8443a6955451": {"doc_hash": "fbafa46e611d0a51514e01323a1d3635356e202bc646cd81ea0c852d1a3037ca"}, "f46a460e-58b5-46bd-a6b4-347d8650a1f3": {"doc_hash": "773174403f224ba7b60c37e8f7cbb67a416c0d55684d92b8f58f71a84e4adcc5"}, "ff3189ee-6cee-4ea0-af55-214386c4311e": {"doc_hash": "932575de5a9831053fbcb015ce79910aa7841e4b2e798281cefb254fdd68b503"}, "9f775235-b052-436e-9a44-029203885d7e": {"doc_hash": "43d0bfe3d9b81349eb199822fb93ede29b7eb65d13bff47fe0a8beeb3219dcea"}, "f9196c41-455c-440a-9fbd-4c48c23b1073": {"doc_hash": "b68ade13125f0566955fe72c95aceacffa85b741c94bf5d5e6d463969991aa38"}, "140c7a6d-d3b2-4654-94da-9c360bd4924a": {"doc_hash": "963c02b91a3e4699d96f09cd2d277b61407c457ce1fd0967df794a710800072b"}, "3fd70f57-777c-4642-8892-0ffefdcd50e6": {"doc_hash": "8df0828326c77529d7d48dc4d800d2af623c3c2dc9d7c12117793f2cc7d30a81"}, "3b30874b-f2b3-416b-9e10-2f652fab7ae2": {"doc_hash": "3df0b8589384b6b12b8782d0b90925dbd9293f9fce291bdbe44796f744d2ad67"}, "487b3eb8-8cab-406c-8060-a2e6e36a8ad8": {"doc_hash": "f9c89f2c8c196f5efb1e9b04968d02ef5290916efa81b68b2b5527e42b5ab462"}, "bcc9a12f-2bce-4e9b-b756-a2b1d08dad75": {"doc_hash": "bc55d83ab8ce0481d21a453d217570cb59f7a7ef10d5c5795d2f8439d523f603"}, "0a0fc459-8fe1-4b48-a380-b63513da438d": {"doc_hash": "f83a9a6a596accb5e159394585bde639cc904f5adcbb49f33f14c253707ac44b"}, "36bfac59-dc60-465f-b915-1005e705be87": {"doc_hash": "103fc844153a0346be4275221de5294dccd6cecb4475e86c98a23ad5b59ca2a7"}, "a74c4f60-ea99-49c7-a20a-06789922b60b": {"doc_hash": "1c4e6d0030bae7670f170047aec5344f92b14830a8a5f215cbab01f02a3eefc5"}, "fec25271-d813-41b3-b484-99b53b8fccfb": {"doc_hash": "6d1273455ccbef88a6266475b6d5066b07b3eb3d0ac70320661028beb4fa0964"}, "dd0a9c1d-115f-466a-bf74-24eeb03a0ba3": {"doc_hash": "6e672954390577b454118d671d77585a85642d7d0e7a1ba7ef0f3e4dd758864e"}, "b6b592f8-7b24-4370-a06c-86013706fef3": {"doc_hash": "b5fbe9cff189031aa7a61b5883dcb91a35fd179cbbeb56bd5cdfff47ad79dcf9"}, "7b5d463d-d3de-4791-a2fe-4a4dff9bb6b7": {"doc_hash": "8f093cdb5c891ff7e56572b3751b40d100fcd4f677278b0b486b48bb3fdc4da2"}, "3c91e7e0-16a3-4ccd-b7ab-d0d8c4d7eb5e": {"doc_hash": "0747b76c809224a95f1e50cd6745e41e89dcb1f653251cc1892e2b0d1941553b"}, "a8d0ae09-ac89-4e73-8aef-8b45d3e55522": {"doc_hash": "83510d7fc4669041068da7917eca48e48f3e76c9c55838d38b153a7e707494d5"}, "0382de30-f2cc-4207-b40e-c03dd9526da7": {"doc_hash": "c1e93070056ae007c9576869da4fc3061b0ec2ac7369bd03b4765ef940a844c7"}, "68f337d1-3425-4e8c-b46e-e92da8276b9b": {"doc_hash": "cec95f7763c417cd394fcd731b12ded8444afede5b728ff0052b96e23e723970"}, "376f03af-7831-4263-944f-067a8a739610": {"doc_hash": "1a0958f4b16b9d54b29fc0e261cc4a6d3ce72975e0b33c9dad58d66f6596f5b7"}, "65963bed-bac0-49d6-a9de-d65a242db975": {"doc_hash": "8cd784aa4d48e655be915ccd3fba59998b2e17301bd029042a9c966046bc2b50"}, "b43b6e13-0f5a-425d-9275-2729a955c844": {"doc_hash": "c6c9bc3ee5d9f30cf1695a0fd22eab041c9618e6f331837b21fc5ef28bb20d04"}, "29c3b60a-bb82-4527-bde0-350a15fbae8f": {"doc_hash": "ca5418686c1e3d287b5a76af89ed8e68449fde8f9a34cf6c79c09ba8c2b09979"}, "3d053e94-cef1-4380-b5b1-e0b0d51c5222": {"doc_hash": "6a768b6a239b2a2002c157ba75ecc5064deb53590ce980171d0bdf5f9ff2f68b"}, "313d1cc0-c831-4786-a0da-932c1fc8bc88": {"doc_hash": "64722774738db271b53fc3429d9da7c2bdeb25e754a9605050ca5effef5e022c"}, "35a7a5d5-29d2-44dd-9aa5-27639f970e07": {"doc_hash": "da3a9c4f1501aad098b811d5f867bae796d759e508624282d2510b714fd31106"}, "14b6087f-7eb1-4559-b618-81303dba6bad": {"doc_hash": "3dc43d13c7342ff5e7d0ede427e23bdf18e9f2f8f345043c3e0ff38d18a0aa54"}, "9023d277-fae0-45f5-95a6-6469aed88c6b": {"doc_hash": "64c0f27a4094faa1ec28d6d05e113fec6171be77417065a27cb5765643c7f395"}, "b94e7616-e08f-459d-b18e-d9c8cccc5c04": {"doc_hash": "ad6ee40311646c1db056c9daba05f63c36d295f60408a957ce46eda5f97ac3a2"}, "f190840c-f1c7-4a6c-9501-64b2db54a31f": {"doc_hash": "9ad9aa86fb9e0e8c4b07e7e23806ff35b36024f51942b09e89299c8a7c63bfcc"}, "849394fc-644f-4569-8500-914171e26ecf": {"doc_hash": "a439bd5607e3850c422f5c02e8f92a4ff0e992ffa5183a001db5616f9b10798c"}, "b5c10dbe-54b3-4806-8983-d3a98129a858": {"doc_hash": "802a145ecec00c7d07d321229d0935f0052ee1c0213dee2dc123e26c0710045d"}, "e356ac61-993e-4364-a94e-f7b445b0a58b": {"doc_hash": "4100937331eb2c9122da8b033e2db2eaf2b7fa152cbff789b2d1d2a02c95119b"}, "73ea29ac-969b-4aeb-9022-a5bd0df59e05": {"doc_hash": "5e81ad0c3cbf834523d751e957f7d86b8fa5ad433a3c735dff620e2d360649e8"}, "eac1c32c-3264-4aa1-bf3b-5fc59fa1b043": {"doc_hash": "75dcc93cda9d98aac3b0e1f2baf46440aa1d211b0ea96d35008fffac7ff7728f"}, "9526bc96-2551-4757-9b96-b103199d49a8": {"doc_hash": "b26eb11960a2073aebcd43375c3e43255e381674b26ddb7bd03d111a54f2a522"}, "8ea0761b-9bdc-4d7a-9681-d8639b64bec9": {"doc_hash": "82b406e9396035a5e84e246387d0ae359e704c964dc426bd5474f3e9f3d72376"}, "32061c73-6c51-4127-9f5e-6bb73e1ea3da": {"doc_hash": "8311d7f8511ffa4ef6dd69df845a8300ba4ab6b4fa8b1a3b409e89b356046ff8"}, "af10af35-89d4-4899-8f12-81ec55b469f6": {"doc_hash": "99fa66c7ecd5f16c774cdca267b49bc165e022ddb3b121006438d45fb75c2e42"}, "c663017c-a0f0-46d9-8375-9598f20f5bf8": {"doc_hash": "e3ba5cdf5f2f9647e2cd432c3e650090dd7d432b9132aca94983d1a77e68dd64"}, "d1de82e4-a7a6-4543-9d6d-42a010f1f92f": {"doc_hash": "a9ac0b75a0d942b7e24506163ad055524e2cd354dd5468eb941c5460a1b7c11b"}, "b296c27a-953f-49b2-943c-493f33ba628b": {"doc_hash": "434b3176b1dd17431d1b38486ea43ac8c04e61710d93d5cb0aff163b653a8d5a"}, "b2cbc931-737c-4e43-82b5-4787d6ff0a47": {"doc_hash": "bfbf485e70505108d0c876e206c0950ccec8c1364e60ac18be1419e086b40193"}, "433ec58a-41ab-4f6e-baa3-5537eec5d764": {"doc_hash": "b5388199e75e150223b0eb32c0f7ad29b30fd5c789e3137a3ec3f08fe9295257"}, "d3469469-a7dc-48a1-8114-c6ad60289b02": {"doc_hash": "f05b5ee7c855f519dcbc841c4ec14ab86d3763223bbe3b69f5ebe8fef12ce2ad"}, "92901df1-6b57-4508-9883-c67975b880bf": {"doc_hash": "8c1f6f0cfe72c8284b69c62220b76d1b21c29e54a3a92f9b5d08b8188fae99a0"}, "9bf6d0f4-f6c7-47ff-ab18-11ad9a806eaf": {"doc_hash": "d868fc194ce712ee6b0284d0a206ea736bd23bd4fbf76c761e1415751749815c"}, "c553e89a-8eff-46e3-9bf6-baeba39fb35e": {"doc_hash": "3a8514919aa0a592158c2d30616b3d402195e29ed625d5c9f82762fb95a661a4"}, "477b0431-83eb-48bc-9e40-157830569fb8": {"doc_hash": "1040eb382af8fd68a129b6d7b47e9c057b26a8b1748ebf24dd3e606cf698cf27"}, "654b897d-5ce5-4d9e-a1d6-375372571733": {"doc_hash": "5b47a585ab08fb88fdabb187a4f6461031abc7d520f1157d10e4e6eb52119b3e"}, "edf49ec4-4d0b-4505-bff6-39e537e5d32e": {"doc_hash": "2a688530da7ba6c4617c3def82bcef4e382997f5aba9f500594b5ecdf2fe8e33"}, "8cdddba1-58cc-48ab-a868-f85419425888": {"doc_hash": "91cf43ff0a215b03fe935ee8d45ddc58f44a2f612323dc7918e2360de2af217a"}, "3b6e9bd9-77e5-41ce-84a2-340f4dc22022": {"doc_hash": "5cfd0d1a43424ba2c03e1201cd21eb7858e538a6572c9c77a8251cbad821027b"}, "5305a6bb-8838-4138-a781-5f865e2a288a": {"doc_hash": "7b46f669af6d8845843ed77ea87b2c46cc55e6ef1570b65b8d84b2f8f4447b45"}, "5d74f000-553f-4673-b3d0-28cbababecea": {"doc_hash": "c367a1b958cae64cc10f96d52e36c1055d187842ea2ef2bab2b4655b47949d81"}, "fdd79aa2-d716-484a-a5fb-b48c5db3d5aa": {"doc_hash": "d4b84c29b9234aecc3c1d2c6b4e95b2e326a720be6bcd1b002e67536532f84f3"}, "89380637-7b41-45f2-94b6-102faa2120cc": {"doc_hash": "b286edb63251748ad1787d2612a7beb3580f2542d58e60fd436ed01692d4e5c9"}, "f86f8db1-8f12-42ea-8488-e1c3f148d78e": {"doc_hash": "86c9dff3d0990c11977faac041398bcc298865a87565fe3c6f2fab7270e1cf93"}, "b03e76c6-5dbd-4cc4-86b9-0c41fbb6e934": {"doc_hash": "b3f5ead26424da479f07b851d8f7884a6579283a452ee11a729e316500e78630"}, "a44778b6-04dc-4c57-9d08-5713937c5fef": {"doc_hash": "da500ecdb822af00abaac8f6b67339c0e7a4926934f6e07ba0007861697498ec"}, "3b2847fa-3592-4070-aa79-ae706c9bea34": {"doc_hash": "d124debb6191a74feee7a5c411b7f9a15e32a4dda66b06c3beb360af09daa160"}, "f79cdcab-543f-48e2-bb71-863126c6495c": {"doc_hash": "020a6b2b711dca006482b7c7861d4fe6c53cafb4473afa783203ab8ea4d1ab13"}, "f721df7a-b66d-4897-9ea3-08df3e5b20ed": {"doc_hash": "dbe3c44f8c35570651b6599905d4fb8b57b9948b0b811d9ace6e49e6d672fcce"}, "bf341016-cc1e-424a-8872-7ea2560af094": {"doc_hash": "60d4d445c6003a411a33e68107a6903e4765121d6c23416dd94a2d012c8293ce"}, "07352b2c-813b-41b2-b7cb-cabd91963b87": {"doc_hash": "db55241a3c27a252a45613d4e71d570d7b6d3cc783ad7b23a26acd7380950b8f"}, "98ecebcf-8483-4dff-99de-733175d15d8d": {"doc_hash": "67cccb22c1e341441e4da6b9136fe161c67712b76433aaa60b246a54dd0c7fbe"}, "bf851eec-2363-4255-bfce-6e5a2ce887d6": {"doc_hash": "024625182c3d58aeba705a62910070e125b5bfb11593628e9d420ffb52c1bf21"}, "9482f7ce-699b-4e10-9e1c-330a59a1ac13": {"doc_hash": "b0a6a178dd5b5d92fa9129df1d3563c372d0452e95f611b74e7b08606ba823bf"}, "d333ef46-2cbe-44c7-8cd2-7d22ef295230": {"doc_hash": "77eb5080390d37f8c78e8f9b30c241a193b3871fde2a9b6754af8a2f9be5501b"}, "d5899192-847d-48b4-8348-1000d74a02e0": {"doc_hash": "14e11cecf9789e68a642f9ed790223dc6202f0db10aa094ad6e05fe56d662df4"}, "00dff377-29bc-4669-8075-bfab96c2ca66": {"doc_hash": "697b1b890496d59a69c52f4a808c5774c2a33e6b8b5ecb3bb90bc85a4e6cc58f"}, "bf4d503a-d04e-42cd-8153-0ab8786dba05": {"doc_hash": "b82793a3fe1c4ca420c69dfa18e7cad10ec7a0020921d45e82a305a97f45da48"}, "5332aef8-8ef3-4fa0-b8ca-cdfbd77c062e": {"doc_hash": "2b0bdad8d206165168c7646223520e2b1ae50f16069327ff052cda58691b7976"}, "979f47ee-e5bb-433d-a991-5b92cb40f992": {"doc_hash": "a5aea25000e3eb556f8433c9a52dcad985bac4062e07a5971ca60952ecc4d537"}, "4281f524-bc7b-4554-b8b9-a13b304bc605": {"doc_hash": "3e23934de083decc93b7e5713acb6a49276fb34099215caad2168417e6ed706d"}, "6a0515f2-807e-4b4b-ac9a-376f6efe938c": {"doc_hash": "06224eebd7ad2af11066fc5cb97a31eb151d7086712c913bfc0f93fd3d361d6d"}, "de4298f5-fbc9-41a6-a59d-7c5f671d60a6": {"doc_hash": "550fe6b4d78972ce9848ef5556d04beca28ffa9ba436a1c8be13bd25bd403da3"}, "0c36b890-20db-4625-88fe-dc89dd530421": {"doc_hash": "689036fa73dfa6e867df1454c8032dea1443accee6c2b6d7ff2e1fc4da1a132c"}, "8e43b393-8712-4bd4-90e5-4e9f272248b2": {"doc_hash": "b5d2025b10520a50c2a6531c0c247ff9bb3c0c8835ecc8d974464899cf66b977"}, "0a2cac94-e3ae-430e-853e-96e87c7c4076": {"doc_hash": "dc30bb108aef1e560a7be1860d0cda1f265dd254f10f8e4f4915a918f930ace9"}, "563600d9-22df-4913-9ee8-0d844699b933": {"doc_hash": "b546987de0fa89d692f467b6ab28ebf0df900e32d1b18050cfd75ce717a7f5bc"}, "18c99039-ee9f-4928-8f54-809ac322b639": {"doc_hash": "95a81b9e8ea6389d830731524c0f20aadcd072582337a4d6838564b58d5c2ac5"}, "f846fa69-fbba-4bc4-b518-1fce147a6f1e": {"doc_hash": "a5151ad9b12d6ccf90a5b147b2ee43b65b20f7ab6d0b8e6a4044822e299f29b4"}, "a38742a5-fa61-4ae4-8eb4-a33df82b70dc": {"doc_hash": "22322cfcff119cafefc974bb06f16a85b59e06659233d64121518a73db88d043"}, "23480e28-694a-410e-8c32-c1564b42eb4b": {"doc_hash": "ef223873d41edf800992fb806e84e62350b7b29fbc562101cb116353f7d9f08e"}, "904cc442-d779-4828-9fb7-2b83100b2806": {"doc_hash": "f5a742398a90932f81a00e5cf3d2c345d72e2856b2783d119d9fbe83a36a4271"}, "905c92b8-d357-4515-b79e-5bff0111919b": {"doc_hash": "1b6944291962aa8a889d2c5bc5c242af221ae74ee49e46389dd2211013831c59"}, "38cd58e3-b09e-44e0-94b1-3423dce4b9f8": {"doc_hash": "cdf1fd97ab65aeb50067f0aa89d781ede4a0685fafc25f76c5c301c2fe085e5a"}, "a795fad3-2212-4e02-9e00-514efac487c5": {"doc_hash": "79cdad4aee34ccd5e70c0630f42832e3e28d74e298e2b851db001bb3f14d3b87"}, "2e108bd3-c332-42da-98dd-21c0e7067bc3": {"doc_hash": "f6fee3f79b3378dfa594ba5d4f3fb8e1be81b93c9729db371f175df76d3d64ec"}, "44a4516f-48d8-42b6-bb6f-58a4abfdeb9d": {"doc_hash": "07a2bd7e2ef10d84ff7380e267deb7647a29a19b86afe041e549c16aa94e8ae7", "ref_doc_id": "e06d7e7e-a58b-461c-9f03-8b7a580fc463"}, "79fd0146-12d1-4ff1-8076-8f75c79acb1d": {"doc_hash": "6a43a8f02b5c6ffa823ba62af1b7fa5f7d8c3818184dd4a342c1ba5a295638b8", "ref_doc_id": "6422cd60-2321-4f9f-a31e-adf7b3c8e342"}, "0aa9bd7a-3e07-47d1-a24c-ad2461cf4652": {"doc_hash": "ff3925b68cff67ee84958a61fadd1219d8d62ddde352d591f689a912e92b0fd3", "ref_doc_id": "ccea239e-3278-4217-bcc7-0073fb4c1414"}, "404efbc0-6dbc-487a-9427-d3e70df83c98": {"doc_hash": "295f590381673bbbd11f4fc7c29b0034ccbdedbbb961ba3eeab58e383088e74e", "ref_doc_id": "792f02b9-7eb7-471d-aaa6-f6169baedd5d"}, "3f0421dc-ab65-4734-a71c-4dc7aa417ed4": {"doc_hash": "20bf381c5320382a6d274308d967e50d5abd0fe7e90ce698c55b461768b8bd41", "ref_doc_id": "2fc29119-41e0-4bbc-afb7-4ab7cf1e3246"}, "811e87e4-fa91-4575-8784-703dbf9d7e71": {"doc_hash": "0e1ac5f3956ffea26ee1ee0adf850f380841f76deac6fe8b0817b02370a3b678", "ref_doc_id": "09266a16-fa2a-4050-a53b-4a3b45e4ffe1"}, "9a2db097-d90e-43cf-abd6-c353f326e1b1": {"doc_hash": "ed06e8e4f98cfaf70b1520dd84c6b17472997d6f6ad0e05af922479228d6dd99", "ref_doc_id": "c9eacbf1-9acb-4280-baf9-e66191bd1537"}, "918db2c8-8ecd-4aa4-b8ea-cd5b2eade6c4": {"doc_hash": "8e8e785cdd1020e5c9aa5148ec64e9c4a9cd2ab63529aaa4c9d273f856f1cb92", "ref_doc_id": "896d0f91-b641-4b85-92e0-2cbb50067abb"}, "316ddb63-1bd0-4ae5-a43b-a146fdae8048": {"doc_hash": "42c8a936b4a09ea90a07a4981b614e5964aad8c064327df2d75f96ef779143ac", "ref_doc_id": "7fe48277-beda-4d44-8b8f-97dd5e58eba5"}, "606690fa-f540-43bc-a6c5-9189b00cd867": {"doc_hash": "8a7cb62e429868b21cd4759fd61330118e84b24b21be90d4a343193052041262", "ref_doc_id": "53dbe867-ff8e-4766-bec3-82ceb839b2ae"}, "747b4f88-e0a2-4b3d-83b1-a628af1df150": {"doc_hash": "2839c297db3dbef7b928bc250b015beed5fb9d8306fa7b836df584aa67d08733", "ref_doc_id": "fba38f01-4c6f-44a2-980c-196e7ca81b26"}, "158d60a9-2cb1-4bb7-ad16-fe7edaf6a03c": {"doc_hash": "c4d9d7a6475e9c0be0d6458f9f6343049ef08b93da861d03e1f753cf6a94e78d", "ref_doc_id": "418558c8-88f2-45b7-9d76-49d3c67ea76d"}, "7aa6e472-c355-4fb6-857f-c2f67d407d01": {"doc_hash": "3b7af8a2d1a94824e987670ab7e65b7bd6931f79757fabdffa7eef38e23a4b48", "ref_doc_id": "c587750e-9ec3-48b3-b9f2-b450db98e029"}, "dbbe38c3-bf2e-4108-bf15-c347dee401c4": {"doc_hash": "26546788f48102f9c31e4699bd7f4a7617fd3f7f3640857187fbebe58f4c6784", "ref_doc_id": "e881be5a-63d4-4f1b-a997-10fac13decea"}, "408c6a88-fd3f-48c9-9bd4-a59b52643002": {"doc_hash": "57aed1a20b5fc157b5d8cb801485c3b39e86914ca1d3474f4746f74c6e555ec9", "ref_doc_id": "d50c5b18-20d1-4d72-9666-c534ccfba462"}, "08e345af-cf1a-4376-bc95-e1ce041ffa59": {"doc_hash": "4ea422499b029101e20b28e3ed9be4443d64917d261bd3c7fe709febc9abe1ba", "ref_doc_id": "0cba35c9-da6c-48dd-b73c-684131dea98e"}, "8149ef63-c626-4ba9-8054-4a976acb6c70": {"doc_hash": "173b92997ba743e1b1e602149b2267fea04786822d36eb2f385b4c32ec92b0a5", "ref_doc_id": "f77de622-da90-4b79-bc65-9e201d49e4c9"}, "20632824-8363-4f70-8edf-a3eee67a88df": {"doc_hash": "ed04292cd915aee6bc0e1cbcc4c8423a111eaa65c7d26eff5017a2d054ad2e3d", "ref_doc_id": "863d7868-1ee3-4f05-9c72-7f1d46d6b063"}, "fab85794-b25e-42fd-80a1-12ff155a0e75": {"doc_hash": "41b351a15456eab65eaf17b816d66d3dc31436586d3762e6f7df2ad1b9b66426", "ref_doc_id": "1ebe5d60-f409-4869-abad-ae26365cdfbf"}, "37c9f66a-a80b-4682-bbd1-50387e9a6a77": {"doc_hash": "808437018c57e7921c625f9051d0da8f8c9a1985f722280e6ce9a47f11c532a5", "ref_doc_id": "ae3d3124-9227-44ba-8f9b-cecee8cc8e90"}, "15e06973-1d82-438d-b49e-f9de36ee61e2": {"doc_hash": "d4429c5d68f6efd806831d9f6835611a02350d5a5dda4f6901f269a6ae48eb5f", "ref_doc_id": "c9158297-daf8-44a4-9e31-13e2b745892f"}, "5312e1a3-76ba-4036-b69c-bf96300845e6": {"doc_hash": "0a9fbef9818aec38a2bfe9442189d6793f7f4419cc0141895dafa26c3ae85873", "ref_doc_id": "2e64b9d1-c1a2-41c4-9ceb-84f483cebdb0"}, "e80be110-19c2-42ba-b0cc-a1b73b00b842": {"doc_hash": "1d40aa007928fbbd4ace8eda841e64f800e131b84f592306e44bf50f4fb9a44a", "ref_doc_id": "e6b87de4-a158-4cd9-9322-300f432d0fe8"}, "9c54f287-5e66-40e8-9659-53c0b2d97e5a": {"doc_hash": "ac2b60951c7a891e019cec739731f35b325c27d80f9a3459cafaf5bed7b56fe6", "ref_doc_id": "ecfc2bb7-15c6-4952-a843-21830b4d4653"}, "b7ae6035-c87a-4955-821f-dc4a5d75a757": {"doc_hash": "cd0e1f2b2b51f6f97c0157a91c423a6482ad4d0354b2a1bf50c8c4a31d1c87d4", "ref_doc_id": "abd01412-a2a5-4888-ab54-d9db0e07d473"}, "14ec1988-cadc-4a9d-871e-e8ca9ef2a9c5": {"doc_hash": "eae9763a9150b579aec93662638350d930600286f0c530294305525dbc8b87b9", "ref_doc_id": "9c5efe40-56b8-488b-9dbc-d097c4258d68"}, "282bccf3-bb38-419b-b50f-ee9038aa356a": {"doc_hash": "d2722852d25a990d31b23112f14cee4e6bcac4e8b45067a26781aa71487b8e22", "ref_doc_id": "cc5aebbf-45ea-4b83-99f3-fff6be1134aa"}, "51c8feb3-82b1-42fd-abb6-0ccc4087b037": {"doc_hash": "ce471a0414fe044691fc2334d7a15786fcfb3f5dfd2abefbfbef2489ee7ed14c", "ref_doc_id": "e2e91905-2d15-4b55-99df-347d83fca3c3"}, "74e730ee-cd69-4dea-bca1-b54c34843a63": {"doc_hash": "b45c9b73458621e561205872e24130cf29114dcfb71b30605c68c083e1c1d314", "ref_doc_id": "fd7e1852-c001-4a86-9e09-d4121cee3ee4"}, "4243b66a-f986-49a0-b011-80bc8d4afb8e": {"doc_hash": "3273e85bd78febcd2fa2b9b1b89ca6bb8f66d99d221722618bb02b054f45d324", "ref_doc_id": "a94cf763-fe6d-4566-862a-410f8b003402"}, "13b1e20f-33e4-412e-a321-883f3ce20ed3": {"doc_hash": "cc2e6fd1b16fd031c19bca44f40ab3db691206307656705fc90c200c61c92fe8", "ref_doc_id": "09b608c2-3577-4bab-bf3e-3a03bb544e46"}, "907d84ae-2ee9-4d8d-8ee9-09be239c6cf1": {"doc_hash": "0a4878c85e8be4f514aec542d3fed321abc0d5f22c310a95c7db6d711da20c6a", "ref_doc_id": "5a6a7bc1-484f-4e11-a4a0-107029a66dab"}, "5503f188-0cae-411d-9af9-847ab0174b2f": {"doc_hash": "136a1a547282fd69903215f206618c58c744f02ff4545101ff475aa2371a4563", "ref_doc_id": "9ec3b70a-384a-4198-91a9-663c1bddfa62"}, "4d164f9c-d54b-483f-a407-f4fe77c1497e": {"doc_hash": "2c1c27cf6142ef316c23813d461f01342688da2b2d303a34945ade92b05cb7be", "ref_doc_id": "8ae4db16-e834-4b63-aec6-9011df4709ee"}, "5b151807-7f0f-4714-bcbc-2dddac11f51e": {"doc_hash": "a69d53d5f786deb9e1ad3a244ce4f99c21e9ded78c198223a890620fb581fcc3", "ref_doc_id": "663b1118-ae46-4bb4-b163-08946d6a6b1c"}, "8cfb7d45-d5a3-4bd9-bdef-6a0dc01a716a": {"doc_hash": "002a52e26e7b788eccbe206d3c4350d1c865c2102c36e7a32827d8d969d6e625", "ref_doc_id": "e7a0c189-4d0a-4efc-b233-349b6ab3c921"}, "e5cb788e-d634-4036-894b-bf41c5e5f0fb": {"doc_hash": "a16932a37ab7e9024f8c88c22af40da0caf56aadd76c28b91a9ae45c407260c1", "ref_doc_id": "e49e07c8-fa6d-43d7-bfe5-5ba466d699af"}, "4365179e-5f3f-413c-8298-c317e4f6b258": {"doc_hash": "2b54acb4267957251ed3caa48166799829c1f8322849fd8e0302f73d0dfe0121", "ref_doc_id": "6afb2918-29ff-45a0-a112-5c1e52ad55f8"}, "9c25c837-77f6-4484-ace7-83bcf13359b2": {"doc_hash": "5272018e7c28c2d7d57fbc43ad2fbc7399b2c31edf6ab6a2b1e9d1cf72332bfc", "ref_doc_id": "7e2cd070-64de-47c6-9c59-08abdadc6e09"}, "3a5e9ce1-f4bf-4d32-b294-55e1ca70dcea": {"doc_hash": "78509875209e6bc520dc8a80555a1f00712063ed3b445c5cee8bd819ca42aaba", "ref_doc_id": "466e5638-cb89-40c1-aae6-8b70d4e32850"}, "fe1eca56-8850-4f09-bd4b-025ccd7d7e7a": {"doc_hash": "12724aecadbb1892cf1e40299b9543c90c57b54cace1d2c4a0237b651c440864", "ref_doc_id": "92e08c50-d71b-465b-b044-385d76199562"}, "4f59d11a-e974-40bc-b0ce-92426e2931a5": {"doc_hash": "43ff6f070cd5215b40e7382b3717f2ed6f23b0901f7db1956283bdcbd476f953", "ref_doc_id": "d9a6cdc6-aa63-4e03-bfac-55f337cc53bd"}, "83c7e97e-5bf0-4fc1-89db-e9b58f9f631f": {"doc_hash": "df6afdcf22ed43c07b14642337b89ee2af12a5f51a8c062ddb1770e01b9a6875", "ref_doc_id": "02ceb922-196e-4b77-bd0c-ddc4fdff10f4"}, "3e5c864f-81ad-4b67-86b0-bbf441b39054": {"doc_hash": "0a9be2c5cb8a0352fc13f0e3e13903bd739c181748d6ac1ef58c8feb0409daf1", "ref_doc_id": "f1c8d298-ef17-431f-8f56-2836c26e0fe9"}, "bc9e6995-a6b4-4297-b953-826146df086b": {"doc_hash": "6cbb08918feae9bc0793f4d83fbcc7d1ed7b3648ccd335772e6d1827a6736f53", "ref_doc_id": "d5680555-aadb-4a8e-848f-561df3f363dd"}, "4bb432bb-0036-4fb8-b191-a93268da5a7b": {"doc_hash": "6a2b84d2639f46d732e8a518fab2f49013285fb4d731c43482d2cf3876e4f975", "ref_doc_id": "ec1bb5c9-11a4-4c14-a876-01b8e1173080"}, "27c87490-8903-4584-91e9-0b20309c8153": {"doc_hash": "4944d67ae5c42cf4ce030dbf7c386305cd850997ff73d81268920337ebf95e51", "ref_doc_id": "14924ae2-a3e0-4214-aff8-6d7ca98b05ec"}, "480243ec-e1e0-4398-9e00-d017797b6b28": {"doc_hash": "320696e3da9c64d19516416c167422505d807afb70f887e38dae6702b9ebcec8", "ref_doc_id": "52baa816-2fe8-40e5-8a39-b5f4cf652398"}, "4c5fd6e1-d7da-4f95-8906-68dbe58cab01": {"doc_hash": "1de2e06148098322c66ebfd9c69a8f6a74b420fd56c7246ee091a4c7796730b2", "ref_doc_id": "18804887-8c4a-4b35-ab3b-a9dfd1dc5514"}, "2600ac1f-ffb8-4399-a063-6f84fe276171": {"doc_hash": "a04d13cd028bc8817beb17be73ebf378df741a56fb98f989d74b347b5403247d", "ref_doc_id": "b1386fb6-85ad-4fab-93b0-ed37d18f9451"}, "b6c4ed74-24a8-46b8-ad0a-14801321d1ab": {"doc_hash": "b162f5f39f5b240719d8aa9b07cd0427dd5acdcf5d0cf30347231df2bada1a87", "ref_doc_id": "ce49c018-3db7-4d65-9830-422c565a4817"}, "6e08f00b-6b41-4dff-acfb-6ffb4b3ae436": {"doc_hash": "32e9f8c0c598e0899c5dfb27c90367ba0f8bfb69ff5a16d3035e81b843a100f0", "ref_doc_id": "00161289-efef-4d60-b690-5ff8816fae25"}, "56400739-3c26-44c0-8bd2-7142c261ba75": {"doc_hash": "f34fff614c20e000063094b83b525b64336e60207b4d64298b474887a8632ad3", "ref_doc_id": "88d5f645-9e47-4148-84c0-be27114c5d59"}, "2db5d772-2787-4f10-bc00-566545abef0a": {"doc_hash": "4a173ee368fbbc26adb1da7c18a5ba5fdebef3f53446863c68687fd1fda92d8d", "ref_doc_id": "7c78a765-cdcf-45c9-b74d-4cf52f493248"}, "879b5a55-51d6-4e52-9fd5-f0886a7c0dff": {"doc_hash": "5d1019ec2a649258dd8b7191a2884c5de0d2c175ebc143da1b96d4b749693adb", "ref_doc_id": "377e8077-b608-4dcb-a58e-d01210294205"}, "0911a226-1745-42da-8b71-ecd4c5a79d47": {"doc_hash": "9065b6c9349cb09454d7afb934d8e92127e96a8e9a5ff881660875bc6a30b5b7", "ref_doc_id": "90127588-2851-43ad-bfdc-7b4ee5ff6f31"}, "80b44619-c59c-4c0f-88b6-c3cfb1b041ea": {"doc_hash": "9af4ceae2c262db520776584cfa6958f09a943dfd05c9561555bc9090afb9d52", "ref_doc_id": "f888be40-ef31-4678-ada5-3f4e9ba312d4"}, "6695fdc7-383b-4e6a-816c-46ff4b5b994d": {"doc_hash": "1a80909ac56e98a897d669f6316dde4b21c255cbbc8c6ad9f9a28b2ea7e6327d", "ref_doc_id": "4a480917-fbdc-4394-b2f9-c10c69209118"}, "0a59c23a-2c1b-4806-835d-3a530b468048": {"doc_hash": "0fda27c24ba73fb82d8a9f1c85f6b8a3d4acdbd57ae2c0f50f1c7f2746cd9694", "ref_doc_id": "f4d4f92b-2a1d-4201-bfb2-eb009729cf89"}, "6eeb919d-3ee1-4967-98c1-ed8556a4d76e": {"doc_hash": "972c5e8a1a25833e176e914dbc56ee39f131fb8746d1a26d8e459951da56d8ad", "ref_doc_id": "425d87cc-2396-4503-8651-83b94db81b45"}, "ba2c4128-8dd1-4854-9011-e157887e0a9c": {"doc_hash": "f6f2ecf4a01a567cca8d533b41f21b9fc7aa3af4d5e8311e9ab5c842561346e0", "ref_doc_id": "4c48cbe9-d0ee-4a2a-85e8-51433af36bc5"}, "542af333-5cc0-46a8-a2e2-a4ce683caff8": {"doc_hash": "b031b662a16a9705d385a51dfb29090aee86451622d4efc99ce78da3eaabee3f", "ref_doc_id": "3a9f053a-b3ea-4cbb-8c2a-527a9290fff6"}, "b0f2ba1f-464d-4bea-b877-0c15413e1ff0": {"doc_hash": "05d70b675eee25070957a6b31f190d772e97dcbefa110ee5186abb2baf5fae99", "ref_doc_id": "162622bb-e6e3-4ea2-a206-05017df4dccf"}, "14ce5567-2462-4a6b-9ed2-6550067a22b0": {"doc_hash": "06ecb7f371c8c79bff9a271f1431ac1fa095bd2ee4a056e5cb566fd28d9d51ca", "ref_doc_id": "7ea18c94-16a4-433b-b258-afafb3325928"}, "91803b6d-c0fb-421b-b469-46557b520786": {"doc_hash": "e711bc5d1d09acfac091ed7d6f6c2dbb3503933b2cc8d2633d63c2802f4281c7", "ref_doc_id": "28116bfc-9dbd-4646-b790-3515969c56fa"}, "cb9e4f26-8949-4aae-b263-31624afd9754": {"doc_hash": "017fffd55a62fe76d2ac0080014e1afe49b7f289adfcbe182da3b06de2fa75cf", "ref_doc_id": "5b79bcd2-ef15-4a11-94f8-d60efa66e83f"}, "8469eb3d-384c-4412-9763-6ae57f3911c9": {"doc_hash": "a0ca342e2202067d0458a11e2de10d9a860cce6bc51be9b14cff8d0f8dd8373e", "ref_doc_id": "3e0e87d6-522a-46c4-93a6-541a6d01ffae"}, "b06faa2f-2108-4bea-b2a9-48a9f2d5b42e": {"doc_hash": "fa014610660c3a39096c76f5a60da943848b8e9b3bb67e7e589d594da94f74e1", "ref_doc_id": "620974e6-9c9c-45be-b6c5-5db4d79733ef"}, "786a6ff9-7b09-4514-b924-b95874f53c2b": {"doc_hash": "4f01e237545caa394449dfeb8d95ebe452158edd323b82e1c8ca9a515903689e", "ref_doc_id": "77a9814c-c35e-452d-974b-e5515c763f50"}, "4a0d0678-7365-41bc-97cf-bef5e5d5bf42": {"doc_hash": "d9547c8023587d88a829559e58f5b88940d116a7ab069df28988e84f839932fe", "ref_doc_id": "4d1f5928-bda4-4c0b-984f-f109d0da0903"}, "bf7bdd8d-f1a4-4747-b68a-d8ea0a6a3155": {"doc_hash": "b6857e6d2bc75c6efa158ac20a9ac594b85245a03933301a40753198eb1f9f02", "ref_doc_id": "00794d28-190b-4000-a8db-e4576a615c22"}, "01fe24b7-4d1d-476a-bae6-b47510460ece": {"doc_hash": "c43f2ab3b4209ecea41013dc58fe6f6a76e5e6c874ed1101594cc691cc836845", "ref_doc_id": "8217f657-4b06-4560-9387-9a9ea32eb7f6"}, "96071e48-6285-4eca-b7b7-6200394b6670": {"doc_hash": "e64084a1fc9da5cd76b2f795338a279e5e2ea2bf3cefa00e06306faf5491ab39", "ref_doc_id": "1201afc4-3036-4df6-bf35-e670a682b8f1"}, "a03c8cf9-47a9-4aaf-89c0-51176e780611": {"doc_hash": "64966a2972cd72bd5e05147896e47a9308ef3c1ac3799954231995a31522a59f", "ref_doc_id": "d60d05cf-c748-4bb6-853f-888add44bd73"}, "63bfe296-32d0-47b9-ae54-06b9084a44fb": {"doc_hash": "8e88383b3c4ab4e18af9795e30dfeed5d72123f4c78bfd632236659c4eb82b68", "ref_doc_id": "53ec7105-a5c5-497c-9bdf-510a748c9911"}, "3b72e02b-b704-4510-8b8f-c3fcfa00ddd2": {"doc_hash": "aa505c5a2df23209cb33ef3a60aa3d2505cdd972561049919efd58aaf62b607f", "ref_doc_id": "b1fc1513-a205-4f29-9d32-a431aa6be6b7"}, "22cc71d0-97d4-48f4-a111-423f3628af9b": {"doc_hash": "b2489b4b0d7f481af11d4592368d51625c21c0d71e56c278fa96752eee54b502", "ref_doc_id": "fc9653a0-fb91-484c-8945-f46af6b63c09"}, "5bb19f60-a4b3-45a3-9bf0-f2ae85b2ae72": {"doc_hash": "224b4fc466ad6ce94c52d39f3c37381d913f63617d3a1cf172b04ef53861bd6e", "ref_doc_id": "b9053f8d-0a5a-4446-9739-ab5072c96ad0"}, "6eb26b5b-09e5-4998-b563-d12ea60b6cc3": {"doc_hash": "c57d421743b53e8dd1d8e2b5dc7c857159c5e302973e35b84076c6fcb1fa9f91", "ref_doc_id": "56e57d9d-6b90-4e60-bc1b-cc1c605370c9"}, "6f3c6cb6-f870-4130-aaa4-3a9c69532492": {"doc_hash": "b6365a0dbc1ca3be1096adab6bc818a476c86cbae31e3e72f16a6a457ff25581", "ref_doc_id": "53fbc237-cfad-41fa-a81e-e4391be04eda"}, "135c0270-a941-4e15-b615-704cc24a99d7": {"doc_hash": "05b4476a8c8ab9d8971e2e7b1cfe6f9bae8dc727d866ead52037ea9e2e99e000", "ref_doc_id": "67846276-9d0f-4984-9f17-6c94abea1215"}, "4e6aec91-1f7d-4a50-8394-a523bc2154d0": {"doc_hash": "0ffb60a2fa3c1905d9e56da60df4580206fe0a00cabfb4cd2e858970a68fb4bb", "ref_doc_id": "7aa7e20e-6184-49b8-babd-79f086856f9a"}, "b52e53d7-6073-4744-a0b8-6ded95795e70": {"doc_hash": "2c8b9d30bd19edcc7c9c2168a4947638e2e094e9e2e167ad8cb27bd8320c8a27", "ref_doc_id": "651ef24f-fe22-4ef5-acfa-f7bdb8341b3d"}, "381f303a-acbb-4544-ab90-dd4f3a4663a8": {"doc_hash": "53cdac011c568922137a70eef8853b6346cf91a04bcbd960bd645b95e06721d6", "ref_doc_id": "70a96e39-d6f9-4fa3-a802-95cd305f4ff1"}, "e89873b8-26a2-43bf-a108-34c00eeea315": {"doc_hash": "8049e0592b9a6f7e3ed3a14e23d6d5e5a5f1ea8544ac6851ab9c535b7d7ec7b9", "ref_doc_id": "f497ee38-6c98-4e34-b262-3c9489a5a5e4"}, "d6215dcd-ad20-4e6b-b5c9-f96eca613e6c": {"doc_hash": "9cfd1f3b8fdc8a64e1b1cab60ace27cac3609b79103d8ac026918daccae54498", "ref_doc_id": "7c49de1e-9f22-47ad-926e-cc265a113ecc"}, "087227f5-a237-4266-bb56-0f25d2cc9018": {"doc_hash": "13563f4f65bed7e260d27b27d4a5fdcf7abb76ec4a3e72c48f01e4868eaf029c", "ref_doc_id": "a23060d3-7fc0-44c1-935f-bf717ab30ed6"}, "40b64948-51ce-44b7-8876-7b44d5152ffd": {"doc_hash": "af117981ed1b9c47599ec5531cd6261a4f8cf4a0a71f8459703d7016b3d96302", "ref_doc_id": "e72add08-a51c-4cc5-9399-9ce9efdd9b78"}, "ebed8870-e638-4290-bdef-302394fb5c98": {"doc_hash": "3f5ead183b82565100799d48ad873ea89639fb7678a56f21ca7dd2274e8bdd3f", "ref_doc_id": "a9ba1f44-d982-4669-9fca-ce7b7000beb3"}, "0aaccdbd-bb70-4c75-8044-6a4835b7d237": {"doc_hash": "d6e95cab39d92f9396008c9e51832db9bde5f2128f48975f5ef91f74c342a89f", "ref_doc_id": "aa136feb-6535-4523-88bd-e76550c00f9e"}, "27f5085f-cb67-4f53-9d85-82e0b952990e": {"doc_hash": "5d01789baf49038b86c98e508fa6e6cc10ad740664c313455662f3f178c507b0", "ref_doc_id": "75886ffe-9a16-4591-b4f7-5452f85b58df"}, "2a0a2b3c-b914-416f-88e0-92c83b08be43": {"doc_hash": "5c6c94b6449b5f997887d4e548d46fa571d93b12e7d651daeadfa73ab8bf4e2b", "ref_doc_id": "4f6d7880-bd44-4a73-ab9b-daeb57812aa1"}, "7dc7abe3-3450-456f-a4a0-75a585904414": {"doc_hash": "b56dc672e8eebecdd3fb2fc93e111fdac6aade6354d0ee634baee1679fc4daac", "ref_doc_id": "21809133-b190-4792-8c9f-632c9340f90c"}, "2a0452cd-194c-4dfd-9357-1e56b85665f9": {"doc_hash": "c9bf9a92ea043739a860e0ff799c60d4009d7eb5dec847a1c628ad3c83f2eccb", "ref_doc_id": "ffd3a7d7-069c-4ecf-a4b8-dbe55bb64b01"}, "5180a6c2-bc69-4b09-941b-42b8267d0bf3": {"doc_hash": "c85502518a18e6c7ef9df3d9aeb2f1062c916199203484961ad3cdd816c309a8", "ref_doc_id": "abfe0c50-9e30-4175-b51d-5f07b502f632"}, "e0a3b9aa-176a-449d-b2bc-6b96007f9cae": {"doc_hash": "a843dce92f82b2a1c18fa8a88c49478c7033f4508ac6e9f618b82d5d9583258e", "ref_doc_id": "43fac8c0-4b29-4cef-a6ac-7d1f35fce8c8"}, "26ba0906-e8cf-4cf8-abea-c7b2050930b7": {"doc_hash": "fb8274e7719ecd7b9664d7dee6e833fb1a32db13848bdaab8737bf8ce400e214", "ref_doc_id": "4fb978c0-d241-4981-aec2-ca2db0fcaeaf"}, "ce3f448c-0cae-491b-8a24-64fd97bae219": {"doc_hash": "87f3ed9fae98deae84949bbc9c40b06a9f438df442c78e52477d144c821e330a", "ref_doc_id": "29578f41-64e3-48e5-9024-8a54483e265b"}, "b98e5633-abfb-40e3-9cc7-f0c28f3fb9a4": {"doc_hash": "9de6c55ab22962929566706a888bf1130b6284b1d94ab406bd2f65fac5b06e68", "ref_doc_id": "4c979f28-6faf-45d1-bd31-3366faa35b11"}, "d6be9560-b049-4c4d-8633-4e4388933db8": {"doc_hash": "6ef0ffc7b58a88eefb993f763160955ff32171212f503f0f6b0b08300aa494df", "ref_doc_id": "e1cb3f9a-e7de-47fa-afb6-e01d58ccd4b9"}, "4d404ef2-14e2-4016-9160-ae1b12f2e9a9": {"doc_hash": "8c403954f963d5379f51c6fe5e05eee97f17ce8cf6294c3249bedf12d0b6a46c", "ref_doc_id": "c5266d44-a3d6-42cf-82dd-0836f0f7105e"}, "97ad144d-dd6f-4975-8f99-e204ddd97cd6": {"doc_hash": "bdfb341cbc6fff142f880415816b51c2b63f4d5df41b52fe76daa6620c1d4873", "ref_doc_id": "67766adf-526c-473f-b29d-bc8b38fa515a"}, "e0f220a3-71cb-437c-ba0c-a174b3668b84": {"doc_hash": "c7f12cb560844b5c9236b45d167e43ae422cc53e953a04c4ee2d2f7ce0f2f43f", "ref_doc_id": "1239ecc3-4088-499b-a4be-e881a437770f"}, "40cbf2fd-29e2-4ff0-b6dd-07c0060d9ea4": {"doc_hash": "7b71ecf092caed8dde49426607f1fe15232d89ae6123b200a01af7e17b282ae5", "ref_doc_id": "d7cbe54f-6253-4253-a605-c578eceabd98"}, "7b5ebe00-44fb-4f5b-9a01-66cf702fc1c2": {"doc_hash": "fc71b133574c2691f3632038ac3d2224acdecefa405fbd086bf23c6c672a53a5", "ref_doc_id": "1915f845-6e52-49d1-97d2-b62d0c552310"}, "bd0e6f61-5219-4b4f-8892-27bab60550eb": {"doc_hash": "dc01a9897f082a39446394eae7b4c807090aad60a050098bc2a1b5483d17de44", "ref_doc_id": "aeb70f03-ef30-43cb-8d7b-034826b0320f"}, "d2838f67-36f4-4831-a014-b857337be30b": {"doc_hash": "7392ac769d57ec551baab263fce5c9f10b69fb58d7554dceb09e9af24e55f21b", "ref_doc_id": "33bff7e8-f3c8-46ae-aca6-500cc2e861c0"}, "ed39f245-795a-4ec8-9158-da35347232c5": {"doc_hash": "83f8fd24a2174778ff9e682d39462e934ad51fddf1d15a0d684c05f8e142d626", "ref_doc_id": "33537690-b4d2-446c-b019-e412a21967ad"}, "2e0f219a-fbfc-4c6f-a38e-19e2889727c7": {"doc_hash": "be1e68f63c05deb3044e2bf19d1d7bca10f6c47e1b4b779a37b43d639e9ba4bc", "ref_doc_id": "268a753e-cd35-48fb-87f4-2e85619cdbfe"}, "54893ab6-15da-47c9-9580-cd8a73e0b774": {"doc_hash": "9392cae2b490388fe7dcfeef3c7863c40428a9e929d1551de1555ba2d9567de6", "ref_doc_id": "be119211-3583-4fc9-aa84-6f25bbe0590b"}, "9354e623-9464-430a-85c1-ed1a0a685825": {"doc_hash": "85193c4fd1bbd227cb27b3259c2bab435177a2778361eae4bdbb59a0e9ea30e9", "ref_doc_id": "b47aa7d7-b12d-4c11-8bee-de58e5f3cf99"}, "1d42ac74-e520-4691-8b0c-98c26f6390bf": {"doc_hash": "e6d78918a55c8bed6877bcf5087c02f4972cf0bf943cd16e5b6271390dc8dd2b", "ref_doc_id": "da03ca81-8f56-44a7-ad5a-4b3bc91da4ba"}, "08d1d904-bd85-476c-ba49-7549b52c143f": {"doc_hash": "0fca47d9397cbdfbec5acf9ddc319390848c8387d2993dad7559d8f2daa05f62", "ref_doc_id": "3416562b-b5c6-4c1f-a58c-645041792890"}, "a355cba3-44bc-4b3a-83cc-7e65eb817512": {"doc_hash": "cd5e01d6dad4ffa943091293eb4fb66d0ed607c8b060b4d1b06eaeadeee141a3", "ref_doc_id": "0e1c4cce-b403-4faa-a41d-13d9dee922d5"}, "bf5ff473-f3bd-45ec-9e7a-0eeca807cf7e": {"doc_hash": "79c8fd1338987b8fcf1c0c6c8f217e69f9e46a90b862e106fe825bcc092f4fe3", "ref_doc_id": "2ee7c1f1-08ad-466c-a7a8-5a529b8e6ee6"}, "8cd5aa21-0241-4f9f-b8ca-cc2f8ef438f8": {"doc_hash": "645f89051d2803a2a35351901462382e0c6d53ede152951571a76e3e76d8237b", "ref_doc_id": "49118fc0-c987-4507-addb-73640285d570"}, "69dae294-3216-4119-a10a-c7bb69dd35f1": {"doc_hash": "97aeb78b639ae9bb26ec0cb1745ac56197b7539e7d3e87e062f82be1431a7694", "ref_doc_id": "02d0ce3f-56e9-4966-bc7b-fd1d2589d295"}, "90d939d0-f4a0-41b4-a27a-4c47a0f636ef": {"doc_hash": "62ff22b96d3893f2f79679601406d5af227b801f276642e2d664d7dcf4df016a", "ref_doc_id": "275bed04-9789-4330-92b4-64cc8e7d3a29"}, "18f7c5e8-a326-43fa-9320-7f64b85b3a91": {"doc_hash": "8eea92a00afdc14b00a862ac3ae4fcbee65b54e38008bf3e60d6e6f457041899", "ref_doc_id": "b9b439b9-66bc-47ad-b55c-efeb8d18490c"}, "6e93af0b-1548-4d2a-ab0d-1543a6e22af9": {"doc_hash": "745fbf76c78d022d9727dbc7448966c86a9a544f316ccee9bddee5df579f3e6d", "ref_doc_id": "f0703d5c-6799-4917-90a1-103fad71995c"}, "e8013bd5-990e-4d6c-af0b-41662875b89e": {"doc_hash": "aac52c0b3bf56020e61acd63d99f2d6e963521a9018203ba2101aa3c7c49a606", "ref_doc_id": "fb90d954-52f2-440d-bf2a-3d472c8126b5"}, "2335c1bd-979a-4955-a866-19da3c341988": {"doc_hash": "948db6354db70ec246c402466eecac685c19064158368adad03b0e73630ec18b", "ref_doc_id": "42522ea5-c891-4f9c-b164-fd0c950ddac0"}, "ae3dbe2a-c5e2-4c6d-b147-a384b340e9e8": {"doc_hash": "81018267d94199300f052aed34f2315b633cc5de0de08763021da6033eb64ed1", "ref_doc_id": "e27e0b80-9c95-4db7-a28f-d1bad7cf1e4a"}, "10ad9e4e-1e48-4b92-b804-d134f671fc21": {"doc_hash": "c0048c89f39df20e97cb225592dee7121a779266a0269b255b790e1a0dd20409", "ref_doc_id": "02dedd44-c93f-451f-90c8-c93c4619bcee"}, "64c67597-ebd6-494d-8dc9-4b3ac4a18833": {"doc_hash": "4d6e7a1ce192f3f6f1517c6daeedd58030d1e71862df5b829ebcb9489975760a", "ref_doc_id": "2004be53-d697-4701-b9e9-4e860e877b1b"}, "874c2b98-79a1-48a7-bcea-cde96aa66863": {"doc_hash": "74f571c6036c5de76ae05779ca082ac9c9e4c0be45abdfeb4711da6c1ea93b39", "ref_doc_id": "90e56275-c3e3-40a1-9482-8550ba5323f0"}, "62f33d6a-d279-4ba8-98cc-89a9c3fd415f": {"doc_hash": "6a99e4e9887fd773efb6d110468d8e36998c47fad984891ed78f73adeac7cb87", "ref_doc_id": "e1692368-fbc4-4cce-8e92-31446be6d163"}, "f0095c55-0c0d-430f-8445-dcfe95b820b9": {"doc_hash": "ec86fe759e5d1db089d11ae8b5b7547b16146f8b0b941f74a5996a1e27f8c438", "ref_doc_id": "f5d499ab-869a-40d6-94ae-93acf0a76d5f"}, "12441627-7081-4502-aa8c-a48eb0f873c3": {"doc_hash": "ecadd4f507f8c9212dd379fce3d30bd73f418f85c53732ec672952e72599d7b0", "ref_doc_id": "66271a71-762d-41d1-a48a-b64ecccc8575"}, "b281dca1-cd39-4065-a83b-8a211768ca28": {"doc_hash": "ca8122e6dc4bd2b651e8cba778cd984c2282259b37c79c72f45a2cf929342eec", "ref_doc_id": "bb822432-da73-4cb8-aa49-791fdade5749"}, "32028989-b629-4e4e-ab5c-c5551c1ac592": {"doc_hash": "501b503baffc9aa7d9c09bc0e1d950b143cbda2259a2705850c8e714875fe557", "ref_doc_id": "f5741d7c-21a6-41f5-9738-575ca347de0c"}, "e49ddd5d-01f3-48f1-9ac6-c9dc783179a3": {"doc_hash": "2ae66723b8ba341ddc5f36c545add470b588c7426e4b90216889042387c52444", "ref_doc_id": "c7de38fd-d9aa-4c33-88ec-a44be9ff7b9d"}, "4dc4830f-ff65-450e-b281-feb4d5e76249": {"doc_hash": "4e2420898f0e61dfb5d675ffcd773a938fc0abccaabf3f6fd7eece58325af806", "ref_doc_id": "fcd0446e-c5a4-4381-9364-3d1156892065"}, "b1e59573-5fad-48ae-9ddd-3c070c6f789a": {"doc_hash": "ae5643d1d03d95ce91abcbd41203e4382776120fd9c86cd671f542d93c4aeb69", "ref_doc_id": "d859ca18-b279-4b2c-9da1-f2f307c69980"}, "1c277a74-fc74-4126-bf3b-05ba93e183fc": {"doc_hash": "44f83bbcfa827eb836dfc029ea9bf2fb995a67512fb62c5d55d14b862d13b1d0", "ref_doc_id": "68f97990-1b07-476b-b1aa-dcde472bf156"}, "473e6e07-1bb8-4d52-bb09-3f90a64fdfd5": {"doc_hash": "c45d5b85be2c051a9914507f8997f63bbc9ee8e1eddcb77a917feee23a7c41cf", "ref_doc_id": "8715f287-f413-404e-89b7-7d16ac6ff86f"}, "0b025cc9-77e7-44f5-9cd3-de54d0a6aad4": {"doc_hash": "196662a680e7bbedf0cdf5345a2d99ffa0e91c5e2feb59c476dc742710d43437", "ref_doc_id": "ff6839ec-42bd-4037-96c8-bafd3557384e"}, "1118c353-18fb-483a-8671-6a195dfa9e0f": {"doc_hash": "354f9629bf46c2b1b0ac89507cb23e8bcb496b4d85812fe141f5c8e394d98a54", "ref_doc_id": "826ce114-e57e-492d-9d36-db999b785c38"}, "1022f269-ec9e-43d7-9430-c959108fbf5b": {"doc_hash": "5aa3fe36ffee25045c25a1bc238d3da8265cf8b6f35528d31954666de9ef4329", "ref_doc_id": "34562b9e-41b0-4c55-b91c-a8e68e78c5de"}, "64a55c16-2ca8-46f2-9df6-f0446a1f8a4d": {"doc_hash": "9cd1a3501fbaa3dd33013e35527b0a585dc62cea84d469ba65c8539145397804", "ref_doc_id": "652b823a-51d6-4dd5-8a32-a9439ec86d14"}, "ec1ea724-9db0-4b4c-bc81-3033ca2aa3a9": {"doc_hash": "12e33871f3d89408fc5f90cad79aae76be29f9e6622344fb33b6ca3a4e589b4e", "ref_doc_id": "5c97d1bd-fb04-4323-85fc-1cb5de8a908e"}, "16ccf850-39d9-468a-a6c7-e101b61a4fa7": {"doc_hash": "10638e286424f22504980b064f1da1e58204a8266ba6dcc04816a99bcc7dd9bc", "ref_doc_id": "f2b5f1a1-6867-41fc-8227-8ec99b6cea22"}, "0511dd64-02e5-435d-8358-a45954132916": {"doc_hash": "38bd353adac905e63f5b4e7cdb310821b007299bc21d17a34e0d1f29f1697080", "ref_doc_id": "177e0539-83a6-4ee6-b85b-8120da8f2bcd"}, "4eb73dd6-245f-4699-be61-33c5dcad8f6d": {"doc_hash": "c2cb65c8c5aa59cc53c657cafda06abf666ec665e3dcf2acfe153e87019547cc", "ref_doc_id": "5d4ffcbd-0aa5-4ecc-8f27-26f90df73d2d"}, "be86bcee-6fd6-45f8-a723-7136f6d86f33": {"doc_hash": "58fbbf688ec7058ac72aedc1f9208823aca7f89a153c8ab757acb640d0794525", "ref_doc_id": "14b3ded6-2db4-4f6a-8be6-d6092bcfce2a"}, "d5bdcc19-7352-42fe-bb3f-6515f67612f8": {"doc_hash": "bcf1ddc7ce7948b93df1395d286dd860075f80568b8f055a6c81aeaea0b115d3", "ref_doc_id": "d224812f-ed2c-48b6-8b0d-4b85b6056a6d"}, "13ab6c13-c02c-4a99-9110-5dfafca14a4b": {"doc_hash": "80107343295659623ec521a1c5dd2a51c44bf9c374a378e948efb39c97f95fbe", "ref_doc_id": "65ffad4d-a233-48b3-a13e-ecf477ded187"}, "251c8e79-c925-4387-9cad-7462c94f0383": {"doc_hash": "2f0563e22d557241d8ce24965e3400ec8f698e1ecd5ed14d013d396f0586fb4a", "ref_doc_id": "19341d89-e6ff-4743-940c-b22f9a3293e5"}, "878b61fa-d1d7-4c4e-936c-ec9995cc92d7": {"doc_hash": "42fe1c497009b174512f563df758f5f493163bb7e867bb857923482b08045065", "ref_doc_id": "e8c640c8-7e65-4cca-9734-1bd2a956f7e7"}, "a6ba10e8-ee3c-4199-98f2-a3406d8f17a6": {"doc_hash": "1020a880cb2ead61e7bc37c5fc26e061f686390a7ae004d68b516065010e630d", "ref_doc_id": "e614d752-bcf5-49a5-9fc9-7883c532d2d9"}, "c0b8b459-ef0b-4173-b93d-cfa855c0d6e9": {"doc_hash": "363576ea515060358c2183bb77a3f4f0b09aa7ad1d1ab1c64d7661fa71ba49c3", "ref_doc_id": "dc2a682f-573e-40c2-9bcf-343269d2a6dc"}, "9d03caec-492b-42c8-a666-597aed8a1ff6": {"doc_hash": "f5256c641e2aec37b9d41f12d5d5707fb45b2d24ce40be88a7380020cec031ee", "ref_doc_id": "94174a27-1550-49dd-bc2e-f888f9496523"}, "024d6068-4e46-43d9-8a3b-7c1598e98d50": {"doc_hash": "683e646502042e1e60dd5229d056d65d1320b9f0d2b2d249e81ae712f7deda3a", "ref_doc_id": "6db89246-18d0-47d7-85af-16b2dc31cd15"}, "6c5e7bcc-e38e-47c6-b36b-cbb890ca402f": {"doc_hash": "d0299aef3b5e1e1463ecd86e0c05c1b9f87a6187fb270661c9df97e49d23b28c", "ref_doc_id": "d84d45e6-be5a-42db-a647-b6cc84755468"}, "ebed2dc9-9faf-4ec0-97b7-917c0f01cfda": {"doc_hash": "76dff55ab78b3dc03d1c7e55ef78c855b9b07adbd27e020ce438318b3d2a97cd", "ref_doc_id": "5eb418ed-3041-4ad6-8bd9-b8129cae2861"}, "6f40f275-021e-4f4a-a7ef-8c12671097f0": {"doc_hash": "39889e05a8fe4f4d5897230bafb94df3e0f6ce9504a5dbfaf65205aceaea1b7a", "ref_doc_id": "d01b286d-3cce-46f2-a9ae-f0708d27e75d"}, "e445d215-3d9f-4f88-8b66-b54af187dbfb": {"doc_hash": "fe518149d087af501cc37e42b858ad16839d4edd033588a7df8506a5fed50611", "ref_doc_id": "bf16fd0c-21c0-41d5-93fe-5b78e601078a"}, "86d1181b-979c-456a-ad72-4c6db3942256": {"doc_hash": "b5ab5b9cd361da237a19286a82df232d405592d2f7b939552e323c7b0722c300", "ref_doc_id": "a37f829a-0fd3-494b-b314-c279ba3c2d65"}, "e06064ef-047e-4e1e-bf8e-47ed84133f39": {"doc_hash": "99f9d59a4ab4e21495fe582bec8a227247bce94bc506b5ce5af9df7efab3ebac", "ref_doc_id": "b9d7d631-e605-4c87-91b3-8f92585b11f5"}, "62861af4-7d71-4d9a-9a3b-a03f2506e9ae": {"doc_hash": "869467da3de70adb62ad8101b04b13b7676cffbc4ad4653b0cc5aedf53aeb303", "ref_doc_id": "1d8e5a67-9ec0-4f33-afd8-5a97a8e192c9"}, "7b42f4d8-434d-4f8f-a038-86e5566150d0": {"doc_hash": "b013fad6c94a724c1bfaa7bc3e5793ec441ff5d32ce666d25e5c3dff47d1c116", "ref_doc_id": "bb591a49-da5c-4f82-9898-0d2a0d9ae501"}, "3b894284-4fab-4e8e-bb3d-3b9d35e1b2b0": {"doc_hash": "45bf301f4a0140360ff10622f66ef91ba037d722c773e411c72adb190a9788ae", "ref_doc_id": "d4f282e5-53b9-4e70-9933-c9dbe963e10b"}, "9c693b31-9619-4fe7-aefd-3fdf2228f520": {"doc_hash": "14c7db23581669c51a0120921b143ae8af2d5cb9b04035bb5973c2c5b152c9f5", "ref_doc_id": "d25d7bf1-7339-488a-8b46-bb0749a5166f"}, "c0ec1376-4987-438a-a9a4-177dad514475": {"doc_hash": "d6269087ff3468e0fd8b08cd0a056e6829d73f7c17610bec97e8dcc4eea9787a", "ref_doc_id": "58e2f8d2-0842-4902-8e5a-b73208e12a9e"}, "dc8e23af-ecc1-41b4-adad-ef806f7725d3": {"doc_hash": "cfda344e9742817ba507a56939d364fcc2aff2a86d63777458ef1791f8300ecc", "ref_doc_id": "8ac57253-6f5f-4cfa-a9ec-2ea74903388e"}, "cadb9337-db01-4690-859d-636e48de1412": {"doc_hash": "5e686ee22727658b56208dac141863729d7f5cd96615a59679bda642309c601f", "ref_doc_id": "57a131dd-3f13-475a-9428-926232d89fb6"}, "56c22d83-d5bf-4bae-a42b-88e30e05a718": {"doc_hash": "dd65e0382d7be2a50bfd6fa26f1fe695c744b452ebb44310c93e363838124bd2", "ref_doc_id": "dd01422e-34d1-47ca-a0f3-c80b3ff6d0fe"}, "d849bfcb-e3c9-4ea3-9353-5bcee8f6ee11": {"doc_hash": "686944b0039fe67ec27e3b305596f66d366db532568d0c3c9df19a46d3dd0fb2", "ref_doc_id": "6a6baab4-2547-4cbe-b1fe-465c0d949762"}, "f148cc4e-f8d4-466e-823d-fa133585c6fd": {"doc_hash": "0661917923f1fd426181784fa02dc736dfcbea233c8b89ee06b673889dc888ea", "ref_doc_id": "2bae00d6-f4c5-4561-84c3-5307560822fd"}, "3ac097ec-9d99-44ff-b398-253cd94d58ae": {"doc_hash": "5975c208d9f207c43a1acc9f9637dc1c589de56aa1c8bd1866fdab5355261865", "ref_doc_id": "0ab8f1e7-1fb0-4774-9f93-2894a8287369"}, "53f6fb90-0138-4383-9dc5-2fe86404337e": {"doc_hash": "6d8379d08553b1d755ec6f64fafccdd29f292265319ed69dd5ab59c10610f85f", "ref_doc_id": "f839c0d4-a929-4b35-93db-418d7729f6bf"}, "85f80be4-2340-4355-a9ea-39edaf419b00": {"doc_hash": "c3f46c4cac3bc1727c9e38a1a5ec4e5551857d286c27edee6aeb6ce137d92600", "ref_doc_id": "010435cb-5b2e-4b28-b5e8-54c284e1a5e3"}, "8b484003-2a3b-4c7f-9e7d-8ff656f5d12f": {"doc_hash": "f15b531c4a01d6e3343e6a1847e3fcf52f73cbd8411fd6fa50a68e8d8a0dfce4", "ref_doc_id": "80490ea4-ef44-4b7a-bf3f-5dbb4800cd23"}, "517dd0e2-62dd-43eb-9626-26fd6ebff32e": {"doc_hash": "346638d67eb7a6539cc5edb7f685c851fcdf1625e96661c5eb9f5d1f35967a53", "ref_doc_id": "e6f6b118-d604-46b6-bb81-dd86f1c4adb2"}, "18d0ebe2-2ed2-4c55-9156-c7725997e9bd": {"doc_hash": "23f0a967148b869aea28014ab21a15ecc3ba7fd95edb29f9b13ec876ee792b63", "ref_doc_id": "3a11fae2-a59c-4767-9fa0-186aee0f6b3f"}, "ff45e917-6a6f-4e6c-9984-56af5f016d18": {"doc_hash": "1eace2e58744810d623332d4a171621d7e12c1e9be3d5b82cd023b3d55f82142", "ref_doc_id": "8606e7a6-1ab0-405e-8b62-e0fc6586d593"}, "aab1507b-06bc-4478-bf03-7caa448ebf84": {"doc_hash": "3d31f563169d0ce0af7a0fc774e5fdf80fa0c3d33f972ac71048eddf48a50fe6", "ref_doc_id": "76196a68-7981-4c7d-945c-a04499e66762"}, "66fac2da-c6fb-4393-b8ad-f46a29563380": {"doc_hash": "38d3751e23479e42b12d838a0e78fbae278c67e27f9001d112d3b48586fd6497", "ref_doc_id": "d02f9b46-091b-4c7b-aae2-fd39ccae1af6"}, "b321d392-42e9-44a5-a351-9d695a62bd1e": {"doc_hash": "e08601d5ec42faec86d4a3e042fb6ab646dccb44b18a30e10acf618708f13395", "ref_doc_id": "2f203be7-76b2-46a3-8f4e-3444a0b499a2"}, "559f7ea0-9b39-422c-8dfd-e8b4ee970962": {"doc_hash": "9e7b5423c665252f6c8f29214dc7958ff7ad270dd82f9baa2c01341fe14ebfd4", "ref_doc_id": "daed4d87-e851-41f4-98a6-f0653081d48b"}, "2d8abc21-9c87-4ca7-bea9-1a92153d3060": {"doc_hash": "ec676b815c217223b1e0278fe8b0462445e3c1aa0b5bd9f61a07eb052a2a6b93", "ref_doc_id": "665a0a77-502b-4c27-9467-9d5874b27483"}, "5c9d901b-9fa1-48e1-b569-6b714e9545cd": {"doc_hash": "fb522b1de80927c59ac72e3405738967a6d7c92402d6455520ea77ce9961c59c", "ref_doc_id": "ecc51507-0ff9-4e49-a19f-5af643f641ac"}, "ab1f283c-43ec-40bc-ad7c-d82404678886": {"doc_hash": "052dccfceb1af3def2747b63e79398dfa5787db9700dc786aa30458d65de93d8", "ref_doc_id": "636b8d85-8dcc-48f6-acbe-d300c630e506"}, "4dde2cd1-a05d-445d-9aa7-d4354549166d": {"doc_hash": "ce0d341855717ea0fe8b24af5ec7c125c631ee0837c744578cdaf9e609e0ef6b", "ref_doc_id": "ab0fbfe6-9386-4a48-90e1-730abead36de"}, "56d2de3b-929d-478b-a3e7-59240cf8a2c2": {"doc_hash": "ef27de1e3b6580d22ccb6948be729fdd6f187ace94ad60566adfbdfb9be5bd42", "ref_doc_id": "33c4be35-9853-4469-8d78-c9ab83e01723"}, "03050609-6a20-4dde-881e-6297414e5970": {"doc_hash": "6d2934b421c0a31acc080a2bad8a06ccbcf16f785c8cac4d652023769eebccbf", "ref_doc_id": "78bdb8dd-4de2-43a5-b2a3-d860c7695619"}, "4e1937f5-e3ab-4d63-93e4-fd0b94677198": {"doc_hash": "dbe00efb8bc95bfadceed0b0179a029ecc5e3da8fec9ba36a1ed482bdc3bd249", "ref_doc_id": "f744805b-9538-4ab1-a894-c961027efb75"}, "2699b800-cda3-489c-a834-9a8efd56d419": {"doc_hash": "43bc0e39686fb28d1ca3b8d933ca4336753652fa01551b30967108d93b9893b3", "ref_doc_id": "ce9169a6-62a6-4cec-94d0-508cac215a6b"}, "5d0d1fb4-423d-49c4-835d-91c15be1a38b": {"doc_hash": "1ad06eaccc0be7a6a9134b78720735fd50ab61d8539e9ea1cd7e1f33945e1fb2", "ref_doc_id": "78548f55-5957-4fe2-83aa-ec57754083a8"}, "15f4e7e6-1912-4d52-a2a4-375c25cdf137": {"doc_hash": "26041ed3c1853604cebd111c061716f4eadfca93e3fda7a304c201cbe3551ed7", "ref_doc_id": "5771ff67-72bf-4251-930b-833d1764632b"}, "72b44502-e75f-4b73-ab8b-07667bcfd5a5": {"doc_hash": "4e3b4b09652a0a6826d05b02164bad359c207852f7880268ec1d35a7d96f4fac", "ref_doc_id": "bca8fedc-c8f0-422d-a4b8-65ae810bce59"}, "b1b920ab-3a0b-462a-9076-88709bc3b42b": {"doc_hash": "f5669f55f78607cbd1e6a80b36b728dfb6aac057f25e7a6ef386f959e77ceb7a", "ref_doc_id": "f4bd7278-bc46-4029-a1f9-914ffd8a4b2f"}, "61d06b67-33f4-4d8c-a89d-34ee655714ab": {"doc_hash": "eb4b1560035d66835084193f84a7ac701b832d7b3d9783fadf71be18b4bb0bda", "ref_doc_id": "02c96afc-6870-4d9f-90f4-a3ae2e6820cc"}, "d3bfdd2b-27c9-4125-b1c7-6213fcb87e2d": {"doc_hash": "09d59bfac1b2028c9c603860e01696ba47668b76cb85fe7ef303a2d72bbfbb64", "ref_doc_id": "a373aa68-e184-4dab-85df-867937dcdb98"}, "d4a85794-44ea-46dd-aee5-0382241a20ac": {"doc_hash": "151dfbd59de5ddfd4006d628f450d108750a65180b36c3828f02d694c8ad1f6e", "ref_doc_id": "319afecd-f575-4d19-8c70-94ef80042c83"}, "394f9e67-46a2-406c-a455-accb5443e4b5": {"doc_hash": "03b1f11dd08eb1e6348476e94f64ce91548a9eebe16c2c3ea76f17fdcc321630", "ref_doc_id": "1b085ac9-c481-4f39-bb59-45942753f3d1"}, "44459b47-9047-4395-853a-6e36b2b1e41b": {"doc_hash": "f7d6ff97c32982735c35fb3f0c26a0c8c13c9384d8a9b7c886b1a16302842b99", "ref_doc_id": "3f412286-2258-4001-a60d-c422d6a67fcd"}, "55909789-5a47-427a-999c-93cdc3b2b209": {"doc_hash": "4b8a9a4ee416209d86258d62196090efe5688c7042f2ce2b726fc3e249ea280e", "ref_doc_id": "f7d6531d-80dc-46c7-8574-0931175abba8"}, "9ad11277-0150-498a-bd2f-ceba9d200658": {"doc_hash": "d86b0b6dcc164587fb6f1e0b113f3d22758542ff3afd01d4635bef81ab3e7e1c", "ref_doc_id": "233401e6-f50b-47ac-a580-ec26f54046c1"}, "07981ea9-a543-4553-ad56-832cdbcc5071": {"doc_hash": "7e41845e80e18cee4c61adacbdce91b1a03e42a5356070ecd2a41cb873085991", "ref_doc_id": "b72b3a82-e2da-481a-869c-45dab9c4acf2"}, "fdea6b30-d46b-4b51-9f21-09c7f4b5d78f": {"doc_hash": "60b5c0a6dde5b6bb3d1a03c2b4ae3329608c6c5097422aef56ac1816871a4347", "ref_doc_id": "c289301e-a55b-477f-808c-d2e7a332b617"}, "eb5c20d5-e5ee-4c2b-a06e-350899557cc7": {"doc_hash": "714c586700836c7956dc2342e6fe8069fdb058ece450c54e105c3dba327ad447", "ref_doc_id": "fe91f5e5-47d9-4946-8247-4381d7af140f"}, "93ba9d86-f512-409b-aa4f-97ea0841f726": {"doc_hash": "f0d8961c3709f750455af93afe0776629a09a0a068e10d01ef26e325e275db04", "ref_doc_id": "1bd6ad7c-57a5-47e3-848c-5eff3697a2dd"}, "66367a1a-ef01-402d-aca3-aa13825f4ebb": {"doc_hash": "aa15f4651fcb02c20f436760f4c996d5c26bcdd0368cf4d8990aca1523e46476", "ref_doc_id": "ab69c291-5e76-470c-ae69-41db01d955a9"}, "4da3fd16-b28b-4468-a2b5-6bad720fb220": {"doc_hash": "b37219d7a0f802a4258449190cf027d9c0ef08b5aa608999171f87ec3d6de9dd", "ref_doc_id": "6de3ff5c-dedd-43b3-8993-8f911cad9136"}, "8a8e9d24-b160-4885-8ce0-ddb32f41cffb": {"doc_hash": "a0eaa091d015011c98608457616aca164dbe9c4784f4889bd09092245d3ca3c2", "ref_doc_id": "36fece7e-765a-40e7-afc6-a0c271429538"}, "8e533577-1f58-4510-a775-1a3d3aab5f54": {"doc_hash": "c7fb9f560f0d64120bea24708e872b5ba1a9eafd9da2eba1902616dfc5fec4a4", "ref_doc_id": "51620b85-d294-4618-bc89-3360b5d96844"}, "acfd7d91-933f-4983-8f9a-6125b45c8bbf": {"doc_hash": "ceb97987fa55a26fa51d4dc1d64d3ad85e2df199c32b43f07ce5a51fd34ae80c", "ref_doc_id": "bfed46f7-e04f-4383-b56c-5bbc6b261074"}, "051652dc-47a0-4ce0-83b9-8b57321a1fd7": {"doc_hash": "900bdc460fe7f20aa5aa02221d4fdf2d0726d20f4d07341c5784b2d2ba619fd9", "ref_doc_id": "0cd0464b-2426-4762-a58f-49c3a35215e1"}, "0bc19176-b3c5-4d76-9931-28e2c5824b65": {"doc_hash": "27dbb806473596d196404519ae93adeca67a9c1c1e1e6a8eb88fffd1d3ceb3b1", "ref_doc_id": "931792e3-1793-4ba4-9d25-a5928d5be837"}, "562fb4f1-b811-4904-b989-38b54fe38cb0": {"doc_hash": "b181429d870ecb86ee73a9156e605de63ebb9cb258d44b86919f7b9ae44274aa", "ref_doc_id": "a4bd9921-3209-4389-a9a9-965f4f880848"}, "56d09198-2b4a-40b9-8132-d7972e4e39b5": {"doc_hash": "132d4fc278f0d2d6d7581656a5778d8cc4a20eb17d3f160466860411b41a34b2", "ref_doc_id": "9af38552-175d-47f3-a805-7633c6cf22d8"}, "c61cf55d-77fc-43ca-b28f-3bde05f6eb13": {"doc_hash": "e36a01c6a5b8c5f52275a11cdcd2bea336b8cff346d5cab5cac41b61a26f0724", "ref_doc_id": "e74a7022-c0cd-4f44-9372-e7f14ab9b4ef"}, "5a338ade-d4f6-4e45-bc97-eae2f3119da0": {"doc_hash": "796eb876a06ae5d5ca4c2891307c6d7278a81cc17981ad776852c1078a0e3a08", "ref_doc_id": "ad3f9dde-9beb-4e79-bbed-9df2a49c3517"}, "54cd775e-692f-4c7f-95ec-6d4e8b504067": {"doc_hash": "8cad327946342aeb509a29ff2531c4c45b4b5f607c2ceb3e2ce144b828761a4d", "ref_doc_id": "82927522-c49d-4a56-b7fa-5c7e73f63991"}, "ba628075-6751-4052-8b1a-73c6489d90f8": {"doc_hash": "a04eb89e5d7db677f71540410ddb35a6241ec34a871f7210ed16a83fda884e96", "ref_doc_id": "dce37b19-836a-4c32-ac38-be196aca2032"}, "6f27d851-b93d-4854-9b50-608647b18752": {"doc_hash": "07857ba10b293e695335c5149a87728d9464506f72aafc348ffb01ccb012a410", "ref_doc_id": "ebd8a5ff-9822-4ebb-b087-f770afb0fac4"}, "38576720-f7de-46e7-8d6f-3b32821b6452": {"doc_hash": "45103d3066f5dc777da3270bcbb93b9b6c679cfa2239477f499142d3b316477d", "ref_doc_id": "a3a56610-650b-47be-9ff1-dbaf14af3873"}, "42e1512a-3c57-4c17-a462-3a8e95a3f4e3": {"doc_hash": "ede127e79a9c6857b4fa4a9f44e8d23f57ed4ad9e8acbc647b3a2c07c3be7afd", "ref_doc_id": "c5f7eca6-1fd2-4df4-b35e-274d93e653b8"}, "3b4f099e-c867-4e60-aa97-28895a0b89c0": {"doc_hash": "94c69a7f0f3c74602b7f31c9b7a138d9a4e966dd19079a63ca7e7ae9d5a4e8a8", "ref_doc_id": "21a904c2-1e46-453b-b879-d25ada42b096"}, "b79dec40-0d50-4804-b873-aea79f5a7261": {"doc_hash": "d741f094cef3c84947c3c630570d75f0b4af9b115f984f65785ebfc106e0dd87", "ref_doc_id": "028e5875-bc18-4263-8cdb-ae58b3482c2d"}, "4c68e75b-b5bb-427f-a2d3-b625bc1118b2": {"doc_hash": "8aea284a2dbe0c1b1810c9086ad5b85786adeef8c304a73f8ae7300c8202bfda", "ref_doc_id": "a0321963-8ff2-4ab5-8fde-6e17f4525236"}, "03c8e27d-d856-4990-a6b6-276f4a095684": {"doc_hash": "ac38cfcef118800e7b8492ee9a13aad19b265fa0952c6a46544a28e737c4cd62", "ref_doc_id": "2dd8238f-b5c9-44cc-83ae-7c10f4f43b3f"}, "4c00521c-6644-4cb4-b861-a82415284568": {"doc_hash": "0e05d4a89e058b764837d647fdc93b28fb229e1113fdc5360f4125b4be7bd78a", "ref_doc_id": "636fdb76-0a49-4e1a-9423-0b0c8eb670de"}, "5af2408d-91dc-454d-b1c7-6be79e171657": {"doc_hash": "a73a3353bab80da25a752f37cab31faae75dce1fe4c2336724bb77dd88eac6fa", "ref_doc_id": "b82ac977-b61f-48dd-9704-799fd90d58c3"}, "da9aa4c3-be4e-40f1-8ac0-2849f6615b27": {"doc_hash": "60fac7be81057aa1af362b62ffe45c2386e9a0671724181fea63e404ab88373d", "ref_doc_id": "531afd3a-2533-4db9-9fb7-3b101ce460ed"}, "79833edd-7f38-4578-871a-ec5c2977af40": {"doc_hash": "5719b1ad1cd26854db27c40d2a5f7bf21035345dd3eb8394bbf508d00b635e2d", "ref_doc_id": "c178e692-3bc8-45cf-b811-ae4b941afedf"}, "23a868d5-94ea-4364-b2e2-dad0e0ffd90e": {"doc_hash": "ada411eeaeb9342d049a6d5677b336202f9dd88feb011a6632880d73c66a0112", "ref_doc_id": "de92c691-5b1f-4be9-b182-ae35ad06a0af"}, "b6b55b96-a7b8-4112-9e40-424c224e9543": {"doc_hash": "03174fe6a0824e66b3546f7b69aabc7af14e0a9ebc589efccf35c5bb61b0a09f", "ref_doc_id": "07528021-ec45-453b-a31c-64b1153a5c7e"}, "e936f96b-a97c-4a9a-b258-880ab4a9ce69": {"doc_hash": "96efac80f45d33c501fd40478ce072cd3d4e40eb7ca13854ec8855a2f4f79d7e", "ref_doc_id": "2db1ef4f-ce24-45a1-ae1d-dcb103d839b2"}, "fa9a01ca-8177-42df-861c-6eab9431dc4a": {"doc_hash": "21baf1eb4922d35e8271fadae07e7104f9432f56490e4bee2a7fcacdc8cc78f1", "ref_doc_id": "67967a6b-5d6a-4cbb-82a6-3b0d00479d89"}, "8f734291-67c8-454e-a6b7-842d005e4f81": {"doc_hash": "42b0f5d980d7ad4556d05081ad28cf2004ff3d369dc3a847261ba43bd22e54d1", "ref_doc_id": "73469d13-ed85-4f0b-b88e-785dccd018c1"}, "10c63e07-62db-42d1-9277-ab5fe72f4d92": {"doc_hash": "c616008fc8f351efee63a6f0119b0322f11bafc088d419055d0893e95401ad41", "ref_doc_id": "9d23310a-def1-4b7a-8114-8751cd93b046"}, "e7c77766-e764-441a-bfd8-7cde60d718bb": {"doc_hash": "31e83e56ab74f234ff2a6c50fcfd35034a028662172163a881cefd8dcf10b193", "ref_doc_id": "8a816488-4bd1-430d-9407-e4d437b06582"}, "f1fe9bc4-d170-44d5-b12d-b28d06924c5d": {"doc_hash": "5a8cf1df90be7aa7fd9c4d5d42425a7cedb797e273e3ad67e703ccd2bf3320e0", "ref_doc_id": "31ef71f7-b42d-4df0-921c-fe65f7d441d1"}, "e8f88aac-40a7-4e32-b8b5-6eca80c43ef6": {"doc_hash": "ff6a22cdca4243d7429ba32425c6976ba50dc9b712950bbb3171481bf15ea8c2", "ref_doc_id": "bb034993-4e86-428a-9636-2c111a10847d"}, "4f68964d-745b-496b-8ba9-5d2a55f86b2c": {"doc_hash": "400cb344498e5c5322ff1c4557e320ec7ca362dde5728f7128913887bc0b80e8", "ref_doc_id": "2e94eac8-3942-47d0-8582-eddd303b488d"}, "05757e2a-afc0-4c3b-ab26-5d72f8442d0c": {"doc_hash": "690051d23abf34a5f996ebe4e00a9053544af8a8ed200d551c47ae91983e4de1", "ref_doc_id": "d7460287-2399-4db1-b08a-297053c179fe"}, "8f46aa61-3cd9-423d-870a-ee0049ba506d": {"doc_hash": "ff09174c9792c5ba8738d947f5f8e8df261028e43328949127bc43cead612036", "ref_doc_id": "5d358f44-9364-4eba-9b06-2ffbdb4db936"}, "13dc0332-446c-454a-8d66-7c8f2940ef6a": {"doc_hash": "ef3f8b9ae90238aa8bace34e7a64bacb0d3b2f890ad190eaec3ab77a43b88dd5", "ref_doc_id": "2974e4fc-aa26-4792-a3c0-634dbaee5c8b"}, "4e1ff16f-88dd-4732-bcfb-b4e24a668348": {"doc_hash": "27e3701ae987ce4e5cc47679b8c6245fab5e6eeb20e794c945162b3d0637d688", "ref_doc_id": "c718d7dc-0091-418c-ba49-268c0e532bc9"}, "a3c57bf1-7a1e-4b4f-a295-20d652be88ee": {"doc_hash": "2c25d886ab5712c7a6e94780819ccb5ce96c554004c1724ba3d88da2e783c346", "ref_doc_id": "efbc3004-ecb9-4354-bcdd-749a3d8cf57e"}, "2f8c9461-f4c1-4bc4-b086-b52837e9dde5": {"doc_hash": "7caedc5eb1e0b101dbcd724451335454af21f750c8c410b89bd0b5ad72744911", "ref_doc_id": "776c473c-2b18-47aa-8353-f9750d03e31a"}, "dbadd120-e10b-4298-9306-83ac98642d4e": {"doc_hash": "a31c356f8fe0e3099b0ce63ebf191d6e7ec3d80a807928ec07ff7323f798c4ad", "ref_doc_id": "87df2992-a843-4dec-a768-3b5e0d3e0257"}, "dac7922d-aba1-4ff2-942a-05dc43b1ba99": {"doc_hash": "e966941b4db2c361dd3dabae4c09e9a8028e4287bcf9d446745aebe25fabfb48", "ref_doc_id": "90b55eb8-e599-47f4-b7f7-f63a12a7a2ea"}, "adc8666e-fad8-425a-83c6-5461da464bd0": {"doc_hash": "48c446baf565a17e6e11332fd402d01e4eec5c6c43230e3109f1b3c4e139bd0e", "ref_doc_id": "57cfb6a9-1246-4ea0-b824-e43d77405411"}, "0e1cff9e-34f9-465c-84da-7bfdf53811ef": {"doc_hash": "44fcaa6e3df268d790b622950c774fc70bca1550617706baed9e84330af74b86", "ref_doc_id": "9da8e4e2-0e74-4996-8e3d-ee3c184080d5"}, "f7a2b0f2-081b-4af5-a504-c22b7219a113": {"doc_hash": "bd31d3c8d7424b1f0340d4cbde8adf2932ba29bb2b7b62ff7d8ee7ca047a433b", "ref_doc_id": "3fb6a6d7-8047-4129-9f16-c234707eed4f"}, "ca4f43e5-6590-41c1-95a6-d781981cb427": {"doc_hash": "b58cfffaa7841bbdc756cb3458314cf37b0227d0468a9c961aa985a88e5cace4", "ref_doc_id": "c17cf19a-c752-4743-81ba-ab582098c608"}, "8dd957f7-830a-4d9a-b399-52f58d480773": {"doc_hash": "20b428e1540ebcee5196f740227a817a2d2e8affb6afdede3f72e58dc10259ab", "ref_doc_id": "4d1f38c9-90c6-456f-bad8-0d543be10876"}, "8394def2-28e7-466d-9aac-fa6ae3d81566": {"doc_hash": "8f73b073b70840a0ec5244cebcadc142268eb51a01ec095f47ed0ae60652424d", "ref_doc_id": "7f31de39-1a67-4001-bf9c-d25ed478162a"}, "8618a457-caf5-47f8-bc2e-8b6962354f18": {"doc_hash": "ed9d195e0ba171c85357f484feda56634021b6f5bd086c9341069c69409df85d", "ref_doc_id": "0030bf3b-db5b-4058-9373-d719107e4a1e"}, "43d95cf6-b1f8-4dfb-a56d-ad100076aa3b": {"doc_hash": "9b293df300602dd3a429ae0bf117f30312103e6ad9e3e86872869d7205bbd696", "ref_doc_id": "688dcb2c-bea4-44b7-8d74-4b05fc49dd55"}, "d7653125-7280-42e6-901b-cde7d067128b": {"doc_hash": "5ee190148fa7ab3e8a1c9a234c4bf98f61fe82694739753934185346567c8e55", "ref_doc_id": "01758b2e-50b8-4ece-a556-02d4caaed0c6"}, "f94b4de4-a4fb-4936-a34f-90b403228a94": {"doc_hash": "0830cd26f4b45294ac1d8e0d16f646fa829656e450ff997bb2c4ecc52f7f9fbb", "ref_doc_id": "ff6a04ac-047e-4fa0-9042-7c43009a93ad"}, "692bcea9-4254-474c-94c0-4bff1269fc61": {"doc_hash": "3d6d207cf21de9f76938cb26593085eca78ebf2eb3013836b47c98fcf673866c", "ref_doc_id": "fbb126ec-4aaf-417d-bd62-c98629920739"}, "5103e669-870f-422c-839e-cd1ebfd28525": {"doc_hash": "779efdda04555547a7e3109665267738f6590ca76b2d7228ca9b7b188dc369df", "ref_doc_id": "889ad586-729b-4006-af89-d3dbc943ed0f"}, "b0d34335-09a9-458a-a361-4427cea1e486": {"doc_hash": "39508874782ed4f53dc767c9b49d0b166e534a13df02b15e0fe9f0a9c258b208", "ref_doc_id": "fbaedddd-79ce-4928-8c01-39baa059cb13"}, "323acb72-7aed-4c69-b3c6-ac3b34cba582": {"doc_hash": "d5030da263477f37637525872864c701b1f34bca0ef50b446f4bb574a38c0e33", "ref_doc_id": "ec21280e-7d21-41cb-b5bb-f4cf36cb22ec"}, "4db24cba-5f30-4ab3-86fb-578fc4b809c4": {"doc_hash": "7c99c7735ba07723549cd66478b4eedfbb9612d77d96a126489136480c01b408", "ref_doc_id": "6a47b973-52a1-4b78-b3e8-ff953f489119"}, "93f7415a-356f-4c18-b4a8-d6389ce30b1d": {"doc_hash": "3632bee0c055d33b0bee0b45cff79aea168bf8a67979de4058a4e297193166a7", "ref_doc_id": "ff0339ca-286f-4a9d-82f7-c47792fbf62c"}, "88b3991f-da6e-4e56-87f5-451ae9af8424": {"doc_hash": "20d4d54bd41651530cec13f3db10fab3f95887d53316efaa9554d23526f01e08", "ref_doc_id": "4a0b7b56-7b0e-4bdc-abbc-eebb14a0ca75"}, "d1f511b2-7489-4f75-977a-5795cae771e3": {"doc_hash": "ea76ad34e6b9f52cea09dbe30ed4d467c67ea08242f1b523135a64278fca5748", "ref_doc_id": "b53aafcd-ee6f-409c-8581-fec15b4a55a1"}, "152a654e-06c8-4a2b-8d09-1cb30fe3309e": {"doc_hash": "2345bd0b7861d5b396c1b141ac33a048294d76720ba634241ea6e5c8170d0e80", "ref_doc_id": "5dc10584-eec8-4de1-9275-ad1e2ae6e431"}, "bf5f9498-0cca-421d-9e3f-f82a04207e49": {"doc_hash": "9065d2cf1e96eb4eda3914d1201951d887af2d195c380d0573e9e1b4f346e1bc", "ref_doc_id": "672de12f-2ec7-4a58-9f37-a258e7ae85d2"}, "14f5c552-802d-429c-8f49-0aeebbcaf3a7": {"doc_hash": "b0a5a506c3a754ff5a9930e14409f0277d36984b43037492a2ee3213a3534689", "ref_doc_id": "f1f92b47-4413-4f49-b916-cb98809531c0"}, "f34d38dd-fdfd-4fd9-ba6f-016993c2048a": {"doc_hash": "902f05847356511641ba3db95849d9599bd40c0ab6d7e754a7e641539102a432", "ref_doc_id": "0f386667-5cff-4b58-b914-2f74fabe2441"}, "3a69c807-0a54-4def-a8e0-4f99d9b441fa": {"doc_hash": "495298ffcf3a27f968b1279bb265e5708cc54aa1b246826b315a5502b1122f67", "ref_doc_id": "d7280c29-b6ad-41cd-9208-94d6691bec18"}, "5db1e728-b007-487a-a732-3f49814eebc6": {"doc_hash": "6933f03aa923c4c9db7eb1b9d4f271c7f5ceaa7bbd0b5e04f41a83a1c97d5b10", "ref_doc_id": "2caaec2a-322a-4442-9c62-78ac5612d765"}, "e6bbb69a-6c5b-4771-8710-f73ee02e2a23": {"doc_hash": "61d5e6eeecb9a504a0388a30d3a2010d1ba83ce06005981c5b546f1bde5cd2c7", "ref_doc_id": "1d660d84-22f1-4371-b24d-85b784bbb36c"}, "fc672d91-48ea-402d-a69a-c0b87ecbf10c": {"doc_hash": "e4631bca4aff68f05ad9546b8f98e6a0b261b0605ed11ae6511e383d1f60de06", "ref_doc_id": "d7f0be94-137e-4112-a261-9f8507bd790b"}, "5f695016-2c03-4d27-9dac-2a86ab41123d": {"doc_hash": "95d5cf74a66831c89694e922362f91800f6102f4a400e09c615263c8eb9d8f6d", "ref_doc_id": "68c92e9e-2494-4d0d-9384-8fe4c432d4a7"}, "4a25c285-c1ee-4bd1-a708-111be55fb824": {"doc_hash": "c246ff540bfd1cb8c9f608aca8d2815c655ce9b151a2e2383837f4f94612bf5a", "ref_doc_id": "c7f0756b-4cdb-4f2f-a4b7-b4abf7281db1"}, "392d409c-7e05-46cd-89c4-cdc868cb3672": {"doc_hash": "0cfee8dd04220a2f004a0b12529389d546e341e3ad15b0c7bca13a277ea22aad", "ref_doc_id": "d71f7ef8-7f3f-4d3b-a80c-2b6fc5142f38"}, "ef2d2129-d0d0-427b-8b34-21701e4fbcee": {"doc_hash": "60853bd61f695136c99056669801ff1a960fed446c732b0a8d4e6ad491ca5ef3", "ref_doc_id": "2aee9b13-97e7-4c9e-b861-db680b45a462"}, "ebf1440b-ff15-4178-b2ba-5665c029ecc6": {"doc_hash": "4167051588dd7fd65c167b5fe4495bae48de73186e3a009bbe2a5f738f94c275", "ref_doc_id": "499b5452-7778-4177-937f-e34ad66ac19c"}, "c87d2585-cb98-4028-9a0d-d8fe9bb6f029": {"doc_hash": "0320d92c500df0a10fbfe10adb4a7d0ce02bc07b3bf54159819258b6d193a981", "ref_doc_id": "f890d30b-4495-4093-b798-8e8648293dd4"}, "c23dafb1-27d9-479c-8aa6-994cc3287e32": {"doc_hash": "72a3a53a92bf5085ad8427dcaa3f58939a061b0e661617edac753b5a3b0de24e", "ref_doc_id": "86610747-b21d-4b54-9e63-bcb1620938d2"}, "cdd7fb14-0087-4b1b-b69b-e9f2c1521a80": {"doc_hash": "bb7442a8da3f529a0e6e517378e4e428a4c1310ef78c565120910f04a562c0c4", "ref_doc_id": "19271a26-4e3f-4d73-8254-4ccd2404a2c5"}, "6bc45aae-cf30-4a63-8d64-ff0071847e36": {"doc_hash": "0bac64da1b77ef6227aeb5e23bc4ebb2de6d8f593b6ab373c7d8bc9e82217ef6", "ref_doc_id": "e863e51f-03de-4693-be1a-e1427d95dbae"}, "fb1ec487-0fdd-4a4c-a2e7-9e01d8c8b1ef": {"doc_hash": "d7039d6284c3b308cdec9f167f2ed9f2320f6ef85e7edc4a29db1ba09dc65c7b", "ref_doc_id": "e327193d-0c0d-47cb-886f-0aa5b2de44ba"}, "afdd485c-5e15-42e2-a06b-c633f5e3e212": {"doc_hash": "86251e84c1605eb48dbf2b477dc9379db7b6997c4769438c2f14fc18ba1cbc51", "ref_doc_id": "86cb79a1-8dea-4096-87c4-5fdee9068470"}, "c30a26d7-d5ba-42e0-930b-14289cb7c8d4": {"doc_hash": "eb41b8774b092db50a6b4f955cad1de0c402c2ff05f1461eabd983cbeea29b07", "ref_doc_id": "a6ecf36b-beda-4120-9c2d-f510fd43c48c"}, "8e289ad4-07f4-4973-8c5d-72048f23d697": {"doc_hash": "ce145e6b410ca5a03becebcccec53c27d9bb774d2dbcfb4026b6583db30cda6b", "ref_doc_id": "44fd8e5e-b2be-48fd-a409-dac7e8ca8b17"}, "d27cb8df-6669-46ca-b314-e4166d755777": {"doc_hash": "55fe5844501ba09f17946f253e54c37b7786bb3c0a3ad37877c913e0e0ffc483", "ref_doc_id": "f2c10cae-5d9a-4acb-a45b-2c5dba2400af"}, "bf729cc3-3c4c-4b19-b546-fc0836c708c7": {"doc_hash": "061d6bf83e39fd113ba575241d8c02b5d423d3a4cc3370c0224d0f2217e2d231", "ref_doc_id": "b7818993-ede8-4367-9f6a-5fdf5943bece"}, "ab903cf6-123b-4ee6-a739-5bf2cbc95604": {"doc_hash": "0a78ba0ee8d3b6c4ef6423dc7a7dd1c4a59260516547dc363520e5721da099a5", "ref_doc_id": "578155f4-0e4a-4271-b8ad-f63ebd9a5668"}, "a6e66fdc-cbdd-4a51-8189-04d967b93dc1": {"doc_hash": "1a0839a170a2bf772cc7fb298035201df9017da7c8aedb38017bd1501b2c14db", "ref_doc_id": "95109bdb-511c-449b-8ede-afb99ef70043"}, "daddf21a-e626-4978-92a2-56a21ef3573f": {"doc_hash": "eb7307bcac22e2274d98c30a96ed69a2efb23bf4d5941ea2bb4856a08dc21271", "ref_doc_id": "f6802080-3da1-4a2f-83d0-b26707f55200"}, "43ddd6e6-e136-4646-9ab2-858a6ecd7a0a": {"doc_hash": "eb5d9476dd04abdc16e5549c37948a548a9a69f64fd8010d2184d227cd0e767e", "ref_doc_id": "5caa264a-f7dc-4afa-8a67-5cb72b1655eb"}, "ed0c24d6-e82f-47dc-b4c7-c8033da8546b": {"doc_hash": "2527fa2cba60f4027e7d1a897cc389b2e76441a691ec97e54f3701836140abca", "ref_doc_id": "72e0c9aa-b71c-40be-9f5a-da9e7b8be455"}, "03a75a77-cacc-4427-b53e-7ba8ac45caa8": {"doc_hash": "8d4d83da4446c7fbfbd16cbf895668fc7d2d48da5918b8e33ca3ba6f54465312", "ref_doc_id": "ca41b5f2-bb87-4ee6-bcb1-fa8a1e39cbc9"}, "f53f3554-6084-45bf-a812-98586246d2c4": {"doc_hash": "63595a4147dd446a0ce8dcfd33f87a81736e7cb72a4449ec609c4a99992e32ec", "ref_doc_id": "ed12e29d-0130-4d50-995c-6ae2d5a867ab"}, "b01fc261-a5d3-4163-a612-2f36538be0d5": {"doc_hash": "6e9bacdefb87a1e01c2cd9209ee4d1f70dd6460761816484a183875aa8cb9054", "ref_doc_id": "8a49f89a-1c56-477e-9548-00a47562f51f"}, "9450bfec-28b1-49e8-b246-4a8942f0878f": {"doc_hash": "ea86d3d22c5677749f72a1f73e733136ee55ef8bd7e6f3a49da90ebc5bc90b34", "ref_doc_id": "e0e49a7b-27c9-4e33-b0dd-9bd77aab93b8"}, "dc242849-0c98-4b80-9e98-eecb0a817143": {"doc_hash": "fdf5f954454e0fcdc89a0134116daf152a9823f6f816104bd396073311fcfb9e", "ref_doc_id": "58aeed7e-b50c-453d-97e6-fe4567615909"}, "04292cb1-81e0-4884-9b0d-284c45e38eda": {"doc_hash": "c28a0540a8c1b44d68d2368dc6cd3e66c15f44ec9f793077d8bddda1f2fa2307", "ref_doc_id": "ee3ecdfe-e123-4a78-a143-4b090300b9d7"}, "e853d4e3-0788-4418-9bb0-c888dff27d87": {"doc_hash": "bd457cb50f3c3f7a239c79a9cf887c2c8bd89e71d773c2b6bf8e239bd28f6775", "ref_doc_id": "c5611fde-0b06-4f39-8ee5-1462926e6a7e"}, "64fcb065-be75-47df-8f2a-6caff36d6968": {"doc_hash": "72904ebcc0ec8fd3289424815aa4d74d5e7701bdf87b19dbdb82a2a785e94961", "ref_doc_id": "83a5d65a-7b0e-4811-8350-d54c95af23c9"}, "34e62bc5-13a7-4f3c-9429-53b3220dc0d7": {"doc_hash": "3ed49d0af64274edecebff82c02a7b568a32f9bf4711f2616be6a457946acffb", "ref_doc_id": "e9a4d9ae-b033-4d29-a20b-5b85b896a8fe"}, "a52e31d7-c3b9-4095-9012-be76909d9d0a": {"doc_hash": "7487a2f12c58613ab92b79f7e2dfe2ae4fc486adc5f0c5d2b174dad084444d08", "ref_doc_id": "09997602-71df-4827-b08b-ddcceb2fa6b7"}, "32908c3d-5262-40c6-9a1d-74a1e9940f33": {"doc_hash": "6f7c794df69b726a5c3a86fb2fee106b7d817dafa59b4438c4f48d9565fd604e", "ref_doc_id": "8c007612-ceca-4859-821e-e8f949699739"}, "fe300689-09d4-405c-8cd7-2537c8332550": {"doc_hash": "90de3f2bb45021021eb071813c6a9862dde4d2957d5b733cf023edaffd93be2e", "ref_doc_id": "41dd2289-fdb2-416e-9928-6616a6dd832c"}, "426b88ed-5aca-470c-ac1c-1e2e826647ef": {"doc_hash": "77260226e7482bc2e3151565455c51028e34aabfdc28db95b2c54d27ec385bfb", "ref_doc_id": "52419c57-ae65-4ff0-a76f-38809201ac13"}, "9f6ce613-fdc4-4928-bf65-5eec78e35b5d": {"doc_hash": "058b1092b2f0351f5613161af607d57894dc05b1a2c86a40ef6fe542f77119eb", "ref_doc_id": "3e847f41-4220-4f5d-a9b8-cb9175f29709"}, "7fea9b02-7b80-487d-a6cd-8bd114f4a7d0": {"doc_hash": "59d80fa4908737e62ce3d1c1099a8e8ad164b989842b5c34640423bb967ff02b", "ref_doc_id": "6c6fc445-b4e2-4744-88d5-f8655ce5af18"}, "6b719978-e2d4-4f26-9d8f-f015c453e809": {"doc_hash": "26ddda10071a9361b62c1ded5879b6942ffa07cec932a1bc9090d48fea48abd1", "ref_doc_id": "e3e67105-1b12-45ef-b2e1-cd6ddbb3cf1a"}, "c0a0102b-0c21-44b9-bb38-f3a2ac82cc6c": {"doc_hash": "5e0eee16376136d866b8887871bab57187a18c436dcf3145e8c13b5d86c8f328", "ref_doc_id": "f2a5d9cd-caf9-450f-8331-5df48fd3c94c"}, "49c0c3b3-02a8-48ba-b6a2-9fc4058a6482": {"doc_hash": "90d1e1f42588f5ec6934f5bb647f871b83a6ccf766bd15a37abccb7e8e1285b3", "ref_doc_id": "dbb85775-0ff3-42aa-958c-1ac3a78e034e"}, "b09e303c-2795-49e0-ab69-8e528cdb3264": {"doc_hash": "e3c5ba187f99b97f5f47438c343dc3b47a41ab446c3b582aa7438eac96e44a34", "ref_doc_id": "4daf4552-2b4d-43c9-ae2c-03ab77e60d9f"}, "1370dfd8-f624-4027-a9e9-35a6d2568faf": {"doc_hash": "0511db334ea9d332ad223359e7013b0d136e4d4a63ded179045d8b329976c9b9", "ref_doc_id": "4ca8f838-44c1-45ae-ac33-4755f2714aac"}, "b81c6e71-dec6-42eb-bf97-5723d0baf4e9": {"doc_hash": "94f2b4a1edf2aa9a1e657d5669c2d75011b851dc29f22821f985106fd22cf58e", "ref_doc_id": "b4497ab9-2afd-4d8b-b3d5-9176986b0fdc"}, "41db2b71-aeca-47b4-9b84-9d96abd1dc56": {"doc_hash": "44191baff6c86b15a1bc7748ed429f13b87c5ebdf070cdd7bcd31ea2bbd09903", "ref_doc_id": "b4497ab9-2afd-4d8b-b3d5-9176986b0fdc"}, "48c148e0-c9d7-49ad-a775-b12b790d5061": {"doc_hash": "123edad9bbb70c2908e34b15a686d5978ece18c006535ba33f291c4312b33b2d", "ref_doc_id": "a3cebf60-6223-453e-927f-4b8cc1c5b5b5"}, "42976374-c8fe-4c5a-aba3-6335dedf0e32": {"doc_hash": "200bab8eef2c2c6a9c19eba414873fee95682bb2c22d329c254720006230093c", "ref_doc_id": "f55b9170-8cce-49e7-9198-f8f694e61808"}, "1c0586b3-8392-42a1-b290-3230baef34e4": {"doc_hash": "6b4465622f0c9bc8c5aa52a5bb487102df072d0db64e321ef8e01cb87729442d", "ref_doc_id": "d55b425f-2c7c-456f-a76e-d4defd093678"}, "6a762ca5-b07a-4a50-b67f-5514ee40908b": {"doc_hash": "0d7ff29fd527392b33ea38ac7d13af029bc28962d00f7b4b170a84a4c88eb9aa", "ref_doc_id": "ca5afee3-0cde-4e4f-8f91-a9cbc4d3b6d2"}, "ebcea148-b348-4072-9352-2f34241f75e4": {"doc_hash": "57f4d9f76fcd7382b177834ccb042bfdbc0239ec0e89ad6eb8d99fbf6e798fea", "ref_doc_id": "539f8591-5953-4660-a181-96febc6ed5c0"}, "4197c6a8-f6c7-454c-b180-02651d16321a": {"doc_hash": "dc8f74159aa4b731286b8db01a49763260b6c3ed5abdf1c12ce55b0a7d3194d2", "ref_doc_id": "c0f98458-c31c-4ef4-a41b-9ec99e614d67"}, "f0c174bc-9014-4222-a316-38c0604558ed": {"doc_hash": "136115c71d3cc4eb344473f860dd282e6f8cb575a749e43ce8711690f896c1c7", "ref_doc_id": "2290dc41-4dcc-4716-b972-ea85bcad2128"}, "9ad7cfc6-2841-4bb2-866b-9540b92e53be": {"doc_hash": "3dd4b9360bccf97125143b25fb3fd81ea59c16b07c803dab617407e7de81de51", "ref_doc_id": "a86fce18-9a32-4ceb-b5ac-b84c4db13b04"}, "b5e16504-735e-4b45-b852-832513fa2677": {"doc_hash": "fc1bd4103b8fda0e44d525abe910446c19f0d488731911be023e707de21aeeab", "ref_doc_id": "6cbf7941-acc2-401b-83c9-5cf6055c5418"}, "d02c5e4c-c17c-4f3e-a0ba-425064ff2655": {"doc_hash": "b20d4ef20cbe34f5911cd61f8776c71802cf069970a38a124d0c9968b961f97e", "ref_doc_id": "ec83aa2d-60cc-454b-98b4-f14ed817cd2a"}, "908c5982-cda3-468e-aefb-215af949be13": {"doc_hash": "0c0cbeabb58ea2f98f574a7d3798fbf37fe0158d6854a7cd3efa882168f0a78d", "ref_doc_id": "a6c539a4-563c-4469-818b-0af7e85abe18"}, "2e290ea3-891a-4e80-a1c3-941be45b3029": {"doc_hash": "243769e78680268fc36734be95b1d5dbc9211806ca9359b7fac597af07c9caae", "ref_doc_id": "2ff26c0e-6a5d-4217-bf2f-ad58ff69e47b"}, "c47d994c-a4e5-4dbd-938f-abdb52be9263": {"doc_hash": "32665230efbaf6ca4374fb2d0311b5d07a1d24d889dbe515589671f00a452246", "ref_doc_id": "9b11cfb2-944f-4ee3-93f6-48af277ad8ae"}, "6ce72a0a-d954-4c06-8ea4-ef08d62f32b1": {"doc_hash": "eb3577af11705996897b39019f02a2b0d84c10eee881641d410bff635d54df7f", "ref_doc_id": "6a860b3d-0380-4b04-b29a-cf435a112968"}, "9664f6cf-08ba-4659-8324-33be2c04c5ad": {"doc_hash": "b9581288936fbd4724ada1c95b4e5df09a63d42fda4a7ac8dad3046d58722e3f", "ref_doc_id": "3f234a7d-a8c8-4c0c-b6ab-8098854a1e6e"}, "dc2e3edb-c8bf-4c0d-8ec5-f8810277a6fc": {"doc_hash": "e1b438db39a869bbbb8769b35df559bb7594c7803c730b946b151af0adced404", "ref_doc_id": "4af3f9ce-37cf-4e2a-957f-e0bae849a1a3"}, "5c9a208e-9d67-4541-a2e9-80f328d3099d": {"doc_hash": "a9e7e2455dd58567200718dbd3cfb2181262045264ef8591d8f3219185328d40", "ref_doc_id": "2eb8ae5b-bda3-4f8e-80ce-4952786f603c"}, "2785e8eb-cb22-4d25-a612-409558dc2f49": {"doc_hash": "c84bb09c96ad6022785caf55608019892e317538943d390d32c608065f0b3026", "ref_doc_id": "f94bcf04-9a54-4790-a1c8-7a8d22e987c5"}, "4c206349-a8fe-4f87-9aa1-d87203b87282": {"doc_hash": "aae97dceb7b2668a11476faa694d55871ce30dacf66a0f2406e8379065c43bf9", "ref_doc_id": "ea81f8c1-6216-493b-aad2-6f14fbdb22a1"}, "8eaed070-28e9-4dbe-88c2-76f80f6cef9c": {"doc_hash": "79f1049a8b677c2a4c1c93c675af7079c0fa12fd90797c1e8127226e7cc52165", "ref_doc_id": "71f3c27f-ae98-4dea-a337-dd07ccc819a1"}, "858bc6bb-03a7-48f1-9a1c-334681b036b5": {"doc_hash": "ae6b1dc247bf10b9c088662689b54b1069cbe6027b934250791e4ab90121f330", "ref_doc_id": "1c3e8b1c-1dcd-45b1-8664-3ad34bccc770"}, "cff8c484-2dde-447f-b5b0-89451db3b8c4": {"doc_hash": "4fb6f5434e80e79bf9b78238b36713250b05f7a8e8080f8773deb84d16f2a50f", "ref_doc_id": "803f4178-7f87-4f8f-891d-cb59fddb0f0a"}, "7adf0459-2c47-48f5-ab55-4f0d5b1950bf": {"doc_hash": "d6bca7486db9128a21fcb51f5768fca96cac0141b6c258ad4310d5895c0daa9b", "ref_doc_id": "7b710131-364e-4bc5-b2e9-e7f4b5fcfa2a"}, "779d4626-b38a-4783-861b-5e8f6544bfd0": {"doc_hash": "5ac9421d8774dee30c7cc899397820ebaeabba7ad017ea2672255bce93e8a6f0", "ref_doc_id": "e3abc501-edbf-4607-a901-88279381cc2c"}, "8d705065-30b3-401e-be16-dd9e194a81ed": {"doc_hash": "ea036ea95abf07d93dce8756c08ffc3fdbe451dda25e19fb0b5d54df98f0cdc4", "ref_doc_id": "027c61ed-ec7c-4476-8731-74c8571cee84"}, "597bf18a-85fb-460f-920c-55891cf72679": {"doc_hash": "a4b63d87f6e520221f1e063911e6b494b83de693097d45c1ae5f3f68f40b566b", "ref_doc_id": "2f75c810-f18c-4067-9252-4d09d1d18b2f"}, "9ecd20bb-8452-4e74-8efc-c13a894491c0": {"doc_hash": "381ee448e2e4001f190161019e54e074c061476d92e063abcd978b39027d3ec3", "ref_doc_id": "e2c78923-1204-4f05-b887-99a6bff120ab"}, "78dcd2df-213a-4088-b4ee-6fb5b28216ec": {"doc_hash": "ab6eebe3a9720296c90c237ca557d5354eebbf8f0b5a7f7a23e8639b3b6067ce", "ref_doc_id": "0d7fab36-2c6f-4e23-b90f-2bc6730da0a0"}, "42573e27-8a0e-42a1-8944-db1877d0f848": {"doc_hash": "eb76e2ce16cdbce66dcd3a5c3a014e1f0afea623239455a7c8c5f5dda7e147e8", "ref_doc_id": "10dbccf2-1a8e-4b8a-b256-7d9568b285fe"}, "e0e83651-c7fc-4c99-8ec7-38f068e77c2c": {"doc_hash": "01edc6d24d40f30472f5f09989813145719cff82e904edc219c62ea4eacfc8f5", "ref_doc_id": "33fdc0a1-6561-48c3-998e-89c0333c7e9f"}, "d39325d7-1383-4bf9-9610-fa7bcaf1a753": {"doc_hash": "a82eddd76051f90bca2b75bfd19ffae7e35fa7279c48bafd48802176f2f4593e", "ref_doc_id": "4731bd9c-3858-4789-8f98-7cf1866689f5"}, "5718c26a-17c5-4971-b398-7d33bad5d82e": {"doc_hash": "d914c8be3fb6ae8a67c650970d5cdf31a6b938ade67ec6ab2ba668410d779aab", "ref_doc_id": "f3ce54f5-9b69-4b0f-86b7-ba5bc66d7085"}, "cc03cb4a-6299-4a8c-8651-b2910d7560f2": {"doc_hash": "fc4772031067094d5a7c012d26490f16567660eb04b69b401672e1b5363e3ec6", "ref_doc_id": "2e6140c2-6bb9-4cee-aa40-0ceba53a44b1"}, "8dd02411-dc47-43cd-b0bd-2a35f5cf09b0": {"doc_hash": "20b0a385666665a55e92f8d171519846d341c7268652bff5290dd3e6abb5bc49", "ref_doc_id": "c3304f9a-595a-4dfc-96ba-bbd19e6f4f57"}, "a1c2a556-9dfc-49df-b54d-14d54aca1096": {"doc_hash": "ce29fc8e85e000e0f55374ded4905f3bc122cf8eabbcc8230956b6055e4b0ebb", "ref_doc_id": "fa627162-bb28-438d-b7a8-5456eb82fb3c"}, "2d034c71-061b-4cb0-bbd0-bfffb2baf3b8": {"doc_hash": "6ee0eb41e77c3d947d97f0968f841b452374e27622a769cb37205a4ee0fce2ba", "ref_doc_id": "e05b56a2-c7c5-4c49-ba44-39e60e89b1c1"}, "8ed6ddf9-c718-419c-b010-bae367075e17": {"doc_hash": "edfde845388467d6fd07528ca53d808cf3fb3dd3784d7a1de7ddc3de6a05f9b3", "ref_doc_id": "c41e11d9-ebaa-48dc-8284-7ed5367bf332"}, "f5fd928e-9e4b-43cc-941b-1fcb648478c8": {"doc_hash": "1bf182b0a272573a87956cb0de9968f4e0005a95dd51b323d2586467fa0fec1a", "ref_doc_id": "0177558b-9d0d-49a6-9644-fc9d74730c0f"}, "a8a2eca6-d2fb-4e86-85c0-e24609c8c2de": {"doc_hash": "a332d811e44729cc02cc475891271ab6c633f937a39e0cafec6af4a6de991487", "ref_doc_id": "b7e2b995-a7fc-418b-8078-25620a255b71"}, "72a8566f-ed41-40eb-9279-8c358eed6bbd": {"doc_hash": "c4f559d0dd742c7ed4d40e563decb0d578977d0ff560f723ed5439f1920cdd6d", "ref_doc_id": "169bbaad-84ad-4eda-acfc-26415a5e5f88"}, "be4536e5-1cac-4089-a8b5-50876374fd2a": {"doc_hash": "d268f32d873487ccc132e906fed3a07914ba67e5bf6acc82125e7e5295ed447b", "ref_doc_id": "a4c1fb0e-2a75-4b9c-adb4-a439757ced40"}, "029479cd-ccb8-45aa-84e0-02032ed0d94a": {"doc_hash": "31687ec8d50fe625deacb4bd08e5d5b6a3557e4ab26fea79f26b56df29bd0433", "ref_doc_id": "15e6d703-6715-4e5b-a989-4a4b14446bdd"}, "ac0906f4-73f0-4d90-9304-1ae39cfd48fa": {"doc_hash": "915b3e2508dd070ead6e0130fbf86a1a94c394e8d2a4b3ab9caaf7f154719a5e", "ref_doc_id": "04a26b1e-a807-4772-bce8-c0081849eb08"}, "43a4e60c-4f18-4094-aab7-bf7a64211336": {"doc_hash": "42bc5609fb86587b846145d4a36c08fa5c9371845c77b5ac8e5cc2ecf14bc32b", "ref_doc_id": "d9da3902-bdef-4d17-ab94-bdd46cf6fcb0"}, "77bce36b-8ad8-476f-82db-ae0732a8c309": {"doc_hash": "6e60eb8044939efbc20b73b2f0edd012506ac584de6fc9fe31f4c8f0f8d6792a", "ref_doc_id": "5851eca3-df58-4608-9748-65667ef53334"}, "e6e7873b-2f75-4530-bd92-8a587469342f": {"doc_hash": "5f8458f559d202404a712d5546a43d4a73ede3cc180c3ac15da71c09301b2b81", "ref_doc_id": "b40c98d9-c3b7-4bd2-bf36-3a0ba25d05e5"}, "b18dc1b6-5d0a-490d-8b78-701dec761945": {"doc_hash": "1aea7864692a2ac3844a5672df4e36d86c5c3811a55b4aa18566695c8ee38a48", "ref_doc_id": "efa53c04-3fa9-41df-83d5-fbacbfba05e1"}, "ba2cf730-235f-48c8-8499-a11271d769f3": {"doc_hash": "1cbf30ecf8581801f3564ce1155fdd4f8f8d94847e2e031f56d925b3ea6887eb", "ref_doc_id": "04f3b053-992a-4ad4-97cd-9def0e9667cd"}, "f1132bd4-f2c3-4c87-aaaf-89d6adc3e674": {"doc_hash": "b95f9763850d3b42cc11383255ce596ecaf495b53342ea37de4ff9758f301e1f", "ref_doc_id": "fed0817b-0036-47d5-ab89-964ac95af8a4"}, "5baa32cb-d5f4-42ed-aeda-58dd11f2fbfb": {"doc_hash": "21dee05c687159d909041a455517082a425c753a9e2b2339063276c66dc6e347", "ref_doc_id": "bf3551bb-a69b-4786-8b97-9e1991779b25"}, "fa139241-552f-443c-9c90-64fee4377610": {"doc_hash": "db4043f9a4e5ad110af8edb8c0c3bc93c1250512afca32b7ba0b8336b8e03fd5", "ref_doc_id": "dd4802ad-d90b-4097-b027-0c9063d87a6b"}, "26325910-8f1d-45ba-a499-6be1cf11e2de": {"doc_hash": "1814745c0360a454298145e0b92116d5cdff0b260ab6c1c6d395c07ea139385a", "ref_doc_id": "e1dbcc9b-86f2-4156-989c-97a5793dd227"}, "444ca371-63f5-4bc7-87d5-af528c7eea75": {"doc_hash": "b548312c3777d05855dc04ea27b6c75b108179e1e76867d02904ea9b20c34ca5", "ref_doc_id": "afbb6827-a175-4052-8938-0a65fa569958"}, "cdd168c2-9c88-449b-8bf7-020c5a9a094f": {"doc_hash": "725069acd7583221b21d1d61246d3bd21a9333f07a9ac9e95a8ab344dd949329", "ref_doc_id": "d3f89eb8-9591-4eb8-90f5-78862abd97ef"}, "24fc1550-be07-42f3-9188-2c53766041a7": {"doc_hash": "79ba8cc16ebf245c409ad57f486e4515dcf7d7539defa41e720a3c24035fdf06", "ref_doc_id": "80239979-c162-4be3-a87b-d736b75d6d86"}, "58670055-e2c8-412b-bf7a-931a857941e6": {"doc_hash": "716c665a4ab8cfc891d834d1c1a575d36c588bb77ec04672db5c1c3974ff1055", "ref_doc_id": "b632da1c-a299-45b5-af0a-c02d87d51ab0"}, "fb59083c-69c3-4755-a769-4cd8b99041bf": {"doc_hash": "bd5d82cadf0371356b1c656120e3aa92858ce82915a770b7a1ef84a45f60676b", "ref_doc_id": "5e01de27-ac07-485f-8ec8-aaa8727920fc"}, "d34643fb-423f-4160-8127-37ba20bf905b": {"doc_hash": "f0009f88f7bc06c2b9f2672cb09b94877456acdba118f3a80a2595ed42c9416b", "ref_doc_id": "1054260f-7162-43e1-87e2-4adc704520aa"}, "22e59c78-09f1-4246-84b7-6fbbefbb6138": {"doc_hash": "98344fccc6af1a309bc105083ad92f00c11f93ff14ddb6aecfdf64ef502f41a6", "ref_doc_id": "8f275a63-b889-4200-9f19-6b5e79099395"}, "e7cf1409-e420-4b5d-8d5a-1fe3b6f93e8d": {"doc_hash": "78925584fc6918cd7fe6e55f721b791b2fc933d4b282c2b4e94dee8972129732", "ref_doc_id": "f849f020-c8b2-47ef-a5ad-8a712f14a243"}, "69ce28e1-6a0d-40a2-80a4-53bec8d6878a": {"doc_hash": "52d878a04d18cf29c43ed140c830ff6e4dff06811e79655d402ac1c97707adf0", "ref_doc_id": "51a40464-b60a-4af5-8ed7-0aeac71e3790"}, "408fe7dc-92b5-4f10-a3bc-bc2989373c24": {"doc_hash": "cb3d79c52c1baf9188e63e16c2747f7cf4a1161821ca63281a79996c56f78303", "ref_doc_id": "50ac2efc-012c-4509-834a-ed09ae8f63de"}, "1cb034ee-b1f4-4619-84d5-9dbbcdde5a9d": {"doc_hash": "988df5c14147ee5aa853d1251de020be8b867479af5816134695624279567c22", "ref_doc_id": "d866a6a8-3bd0-464d-848c-abe58043d188"}, "0b1f4a46-922e-4d55-9d4d-c5e0b0211409": {"doc_hash": "51f27ffe1573ec2f1ee6279784c4c0a4620cc9f8fee5cce7c5440e5eefe95a8a", "ref_doc_id": "87b2b43c-0df0-4eb3-9aea-59147a753c60"}, "80ab7cc7-5d4a-4438-9f55-306b0b8c1038": {"doc_hash": "4e12417cfec7c2c59928ad4e191501ab9b8d97479011830c4775c36d3d7458a3", "ref_doc_id": "f2405322-6a69-49ab-9945-70f2c4a4c31c"}, "d45ed6a6-1de5-429c-8e27-b88b43011766": {"doc_hash": "2afff41dc7426278cd5ef5b0b65ed20149c18ad570cf711aa8a425d039c5cb1d", "ref_doc_id": "f287c9f4-8311-4f48-8743-675111602dd0"}, "b3e6608b-393c-4629-91f8-ebc8cf32d140": {"doc_hash": "463d608a65a2985954edb732090fdc6fe4153e387375a795561a37b86f0aed5d", "ref_doc_id": "a56deb37-fdb5-4992-8631-cc26f94c6811"}, "148f4746-0472-4818-b762-cf8419471311": {"doc_hash": "3bb3dd3f4c879ddec2ebeed894808655c9341e18432141d0f934579ce2953db8", "ref_doc_id": "c9269bbc-a5c0-4847-871e-c48413c459f5"}, "f4035c4f-dd38-4eaf-95d6-8bbaaec46ffe": {"doc_hash": "2e5f903ecedbc93724a7ed66cb4d0f625150e8775679dbde4084f8b5b93c97e5", "ref_doc_id": "a688981c-5fdd-4b87-90f9-4e5a7c7b9f2a"}, "7e4b2efc-b005-4b28-9303-39a1a3e7c40c": {"doc_hash": "3d310798f4141dddf681b5fcbef6d7fe9c7a9a12e67ef99ccdb29596b52f8553", "ref_doc_id": "6ce55b5e-e69b-4764-91b4-0bf267aefb9c"}, "6967bae5-313b-4026-a70f-7c49d38ff1e6": {"doc_hash": "47d39b4d7895dd86fbe3a64a98e1c643bc58a30c3fceb6a829d9925809f3be88", "ref_doc_id": "dce7d637-fa63-4b5a-a7e3-a173d79e4d55"}, "e05e2cda-ea97-4ec3-b289-f3c25ed78210": {"doc_hash": "6da38be6e4c47f193c80f735c3fd42a454d55b75b957ed734b69a36ea0333117", "ref_doc_id": "88fdec93-e525-4504-a951-124a7b7fb27d"}, "3d911852-496c-41c8-9b0e-d0e947f76d3e": {"doc_hash": "48f622eb58c1bacefa5e12141c666a1c12a614b1ecdb6de633c3ab58867a18b4", "ref_doc_id": "0372323a-6121-416a-9281-85ba8271185f"}, "dd5dd3dc-9e12-4008-96c0-0512503f36d8": {"doc_hash": "c55bb182b9c6d90a1f21d78e7f8000f79c6502e9544119e3c44746554ce66921", "ref_doc_id": "8613a745-e3ad-428f-a3f4-f46d707a3be6"}, "613c648c-620d-42f5-948f-8866b19892ce": {"doc_hash": "d1cb11c1249ef868660faf242df26d76fc3413f7f3b495c324f413e11dec49a7", "ref_doc_id": "d67d9b9d-a347-4ebd-8c68-eab5e57d6a15"}, "9e3dbff5-ebd7-4dac-be74-1111171328cc": {"doc_hash": "ba989c06bd7b919cf85ba22cc670b38d4bf15101cb9923415a266d4c80b005e9", "ref_doc_id": "d4bc8f5d-66d9-4d67-80df-5a54f94d49eb"}, "ce6351d7-0ac9-4266-ade0-e06225721be1": {"doc_hash": "f63648b6a2f42db0cd7cb9df1385309b50d23b0d93190e5f8d7f952e07f2ce36", "ref_doc_id": "e94de2b8-a1c9-401e-b46b-55842d2b42c8"}, "838f6c59-bf15-4887-84f1-3593bcbb5af6": {"doc_hash": "2490a6388669553be65d078b26bfe0370aa43b5e2d8d9673ff20b87e74497015", "ref_doc_id": "07a578e6-45e9-42ab-a845-4e10000dfdbd"}, "5df98e36-fc29-4a6e-8947-a644905fd532": {"doc_hash": "8e1f602083a940ff3cb961cb64508b84477c766d449a32f22ac84db73d53cc6a", "ref_doc_id": "223a0db6-4f51-4623-9c88-c6f1e3e57f3e"}, "05dd4dcf-3b28-46a1-8b4f-60a08bc0639d": {"doc_hash": "5444663f7c2afd23e56e7118de6180d627116a10bf7cc4082219f73dad8ebae5", "ref_doc_id": "290cf564-ff5f-4e14-aab0-e2daab98f2d8"}, "019979f0-13a5-4bc5-9fc4-3267d007e25f": {"doc_hash": "82f3f117b5710599db48a618d057bbeeb1602afdd425c5cac97481cfb9759d58", "ref_doc_id": "ffe8d2c3-f7b0-4546-a0b6-62af01debd44"}, "2905d948-3972-4c07-a434-30536c23caf3": {"doc_hash": "c84f4f313d3d747edbd5f114a9aecc96e42b04e63cd1eb761eb1634fd5bb7817", "ref_doc_id": "744d61ac-3c3f-4bcd-a02a-75cd6e617007"}, "e67904c6-050b-4b49-8266-577114e62da7": {"doc_hash": "2438d979f8b97576d1310682e6cfc404475eee0be4601c9717aaefcf4461fba4", "ref_doc_id": "f0ec5205-b0be-4aed-82df-6d032d3d95be"}, "263fa9d3-b7d7-4835-880b-8b61605e29e9": {"doc_hash": "a474812b77eabf2e8d29c8b1a2d3eaef8c66dc214ae2cff4b6f9cf62edec51f9", "ref_doc_id": "a43a5582-b664-4232-8cbd-e1a698c76529"}, "174119db-f271-44f2-b1a5-cb9c309ef103": {"doc_hash": "36333653bb17d4a2979f7a8d629ab57dc0e8e529d02c6c8a282378df747aabea", "ref_doc_id": "7dddbbb6-98c9-40b3-9aa4-ee6d51fb5a10"}, "f1eb7004-5e6e-4969-9537-5405184494df": {"doc_hash": "ebeadab6fd852ae4a403cf2b64520d174ae8a858c8e2d983a9fc44b7ef37870b", "ref_doc_id": "d4d49f27-79ad-4678-a77c-2e4773879061"}, "3df43b51-6aab-406b-9ebc-4f521cf1618b": {"doc_hash": "219fb8cb579ad3883bdf648453bae61153e9bdbc90164dc9922ebd3a36691a18", "ref_doc_id": "35e396a6-b1b3-4ba3-b8da-3e78d25e7c11"}, "31584f26-5cf2-4a82-bdf1-884b1d66f78e": {"doc_hash": "eb6b089c4b03f979bba9e326def174013331e5950f2a428bcb2b3fc0955a0b73", "ref_doc_id": "5bf9f36f-1ffc-450e-ad32-5aa4ec0b074e"}, "17a9411d-5b20-4b2b-b595-c710ed69773f": {"doc_hash": "e5413c829c8cadcd3069f0ea4e136c02f30cb4e976a5ef82980f8592745db133", "ref_doc_id": "799365a7-246d-4db8-9743-423571ba73d4"}, "4be4f840-841a-4a3f-8628-7e0c2ca1c2ca": {"doc_hash": "1a4818246a3a7761b30cacf62593d564c5a472a7c4f53372f474eeea1b9157a3", "ref_doc_id": "d0422eba-a342-4da4-a900-10f22e1af418"}, "aa1f6aab-19dd-46e5-ba87-6dcf880a75e1": {"doc_hash": "d7b1680274986ef3f6aba459a52b21d047f4ca165a291b54a839fd40be3d20d3", "ref_doc_id": "1886b990-6e64-458b-a499-b0788432dc1b"}, "d3a05920-199c-4102-927c-3b9129e2c475": {"doc_hash": "41a44dc0a24da1c9b6d5b6fcfc33d5b77778d6bc1ed4513ae50305aa514ec641", "ref_doc_id": "8b750aba-9a8d-44cd-a6de-5bd835fe7668"}, "d5c91e31-68dc-4b65-8d54-83e83cb0a283": {"doc_hash": "110a18f3b13409cfe894ee866831449a6d1aa62f3bb735d11c9edc15f12c4294", "ref_doc_id": "c8dd567f-3b26-42ba-a364-e1a6cc1aea91"}, "30188c2a-405e-4df6-aed8-a27c80572983": {"doc_hash": "763dd858f64c5ef07bed035577b5a04c3de4d58c50778041d80ae9a796e5a4d0", "ref_doc_id": "13989220-a054-4245-a93e-d6888b340135"}, "54b3843d-c918-46aa-81c7-2d3a5d722bc5": {"doc_hash": "8e1fc5610487e066decb49c726885558e689025dbc9fe8daf9f4bf740637c9f4", "ref_doc_id": "697cfd63-29e2-4306-be1f-256208ad1dd6"}, "67ecc16d-d2e1-40eb-b131-1937eb90bab2": {"doc_hash": "e6d4931b009c161461afb88e7a4fb43b12c6bf610f4d80a0dfd4045596ca90a8", "ref_doc_id": "5da6453a-0764-4d06-bf7d-57dcc8aa8ffe"}, "3cbf3fe0-7e29-42f5-95bb-3428ee9bde41": {"doc_hash": "dadc38c27d3556e8ae08a1899e48857cae8dbd2d9a1f244278f4972d4dce28ee", "ref_doc_id": "726dd4aa-a665-4d0f-88a8-14d896a7ffb3"}, "430b4321-1113-45e0-a4a1-1af224b6fd4b": {"doc_hash": "4ce1b250185c122eeaa8dc5695b0df1d00dca7134d65c82327778940f4d78010", "ref_doc_id": "e616ef71-4a0b-4cab-b1e3-11e4414e2198"}, "64d8ac29-2b6d-41c3-add3-57d597854303": {"doc_hash": "2982c1e86e0d389c842d705cb8ec5c93f67cc17a6e64b2d38c6b8d93e4578bdc", "ref_doc_id": "04f11f87-b9d7-4add-93cd-fddd8ea9c421"}, "5f19ccd3-1aac-4728-9c49-874e3d58447a": {"doc_hash": "660945e0a46ebb1489e8966312105812b027cf28675a20e39939b733274d1263", "ref_doc_id": "84fce7b1-c416-420e-8163-895208ff3738"}, "db5e19e5-f624-45ee-bbce-840acaf4ea40": {"doc_hash": "8496f3242a5075b5c7af3990c94e9f312f0a775e743924d3b8d9fa548f77f459", "ref_doc_id": "f905dd96-3364-41de-b8d9-9b52b790479c"}, "f3743615-5342-4734-93a1-58f5dc45fcef": {"doc_hash": "9df394d0afc8fd0e9f5e79c2d7dfc40f68dcf92ad0624818d1e44222a3daa0e5", "ref_doc_id": "32d90b03-e4d9-4c78-a68b-9f2757d3c282"}, "035ec694-4c56-447d-9d81-445ca6ddf586": {"doc_hash": "e6e46f9833f587f5c763831a8b68b2662c6ebbec0db7b8ef32580ae53c76fbf1", "ref_doc_id": "d4e3cdfd-5afd-4465-b1b6-297275b2075b"}, "775d3e70-ba3e-4ee9-a4a3-937c85ca2944": {"doc_hash": "5e3596e29f94c0103a20cb7d17ffe9bd8a62e61959cc4ded80716a93ebbe6f61", "ref_doc_id": "c926d539-2327-463d-9e6e-e70ffe3abd2f"}, "02218cea-5376-426a-99e9-93ec0e45bd3f": {"doc_hash": "fd119c6f352d68c6a6fbb4b1026904a6fdcd820e33cba9ae865ec28426868fce", "ref_doc_id": "cccca899-8ab8-4615-81b0-1dac5d48ed99"}, "94183481-7d55-4cc2-a5ce-fbed7497cf69": {"doc_hash": "3e9970e0291e52c438aac7d11c5aeac573e98e9c29c7d1c85731872f1e7f7a38", "ref_doc_id": "c0e197b3-ba58-4e4b-8214-20ea6bb78a63"}, "1469041f-0eb7-4286-90ea-e28a153a1b8e": {"doc_hash": "fe44313678cdf04827c6acb963ad6911ea0cbd2a57828fb48ec30d5eee69d38f", "ref_doc_id": "dc1dc521-9838-4b9a-ad8d-70416b301089"}, "a4df2723-367d-4aa4-9fb8-2f4b3037985c": {"doc_hash": "b6bbb7a7b5a3b257396c5368bb79694d60a3a409d73d44c970e30bab88844128", "ref_doc_id": "19b71fcd-15d8-4271-a2a3-125f386bbc21"}, "68e68022-8735-4f93-83ce-df521ef92a1d": {"doc_hash": "998a94d72b18d47ea9016c3136f5baa69e4060648305c1908ddc218dad898ea9", "ref_doc_id": "e09f0a03-a02d-4663-9d48-1bf00d5fdc4e"}, "ecf2bc3c-4b78-4d2f-9e84-523d290b5f19": {"doc_hash": "e1bb3e2145233f17e1190d09bf6a212f02d865883e42b3dd3a0227f84b177330", "ref_doc_id": "25e03c5c-4106-46c5-819b-5da441c12aa8"}, "d1d6223e-d11a-4aa4-900b-f883b02c8126": {"doc_hash": "51c7deb01f3ae35ffb7162ea4f86164be3c137c437075096fe434b7df2cd14b7", "ref_doc_id": "99428655-c2f8-4f80-89ee-416f5a73c506"}, "e36500f0-5eb1-480f-a09c-cebe16a60844": {"doc_hash": "484c77fa98bb198c258787a7d030f4b293b5aa36204a10f5b24808165d831369", "ref_doc_id": "a8b8a16d-03a1-417c-abae-fa999fefa8b9"}, "5f13b708-06f7-4a63-af40-c35b59334a79": {"doc_hash": "108ae0faa6e9e2e6a1c1f6a52c294cf1cab7955298c90e59f799b350a80e0660", "ref_doc_id": "620c0c64-71af-4f84-9bea-9cb655339ebf"}, "bbc010b8-4a0d-4e97-b739-f966e45ff91d": {"doc_hash": "df793e5c2541b3dd7ae01ae4ad4764d314d6ac51b44a6abd504008166032b125", "ref_doc_id": "c4708dd5-68d4-4aae-8ccf-78ba5b0bb2e4"}, "e3c2fe52-ad60-4196-969d-fbe856fd3520": {"doc_hash": "3a99d2b92e48b05dbc52fc4456a4bfd165bfbc433fa9c5973f52ca9528753890", "ref_doc_id": "c2588257-46a5-4107-aab9-e30dfc2f039d"}, "0fadaa87-845b-440a-9256-af5304735ecf": {"doc_hash": "100d9a5ab0763725a3a9776c037d2b845bb843f60e09c25b79b1a2e794088170", "ref_doc_id": "ba7a052b-e731-4020-822a-b834a9201dcd"}, "7ffde410-532e-43fb-8e2a-b52629a7b4cc": {"doc_hash": "30ae5e0ffd3df9a8dba31fea18c65fca50de0b100b10719a8c351f5131b3142b", "ref_doc_id": "c7475fab-c6f8-4a13-956a-ee42b4597bb6"}, "37da0edb-cea7-4c0a-baa2-9c3e00c30027": {"doc_hash": "e0141d08c1e80f42aaf4f8a8ad1a9662480478a250cd877213933f256f393978", "ref_doc_id": "4f9fc753-4917-4a02-87a9-e3a23c6a9764"}, "74916d55-4321-4e62-878f-fd732b83b0dd": {"doc_hash": "a39e34fcaab8c603e0bc51a86770c59cd5a6abb5ff0b37ff746a8ccc8d9aeed6", "ref_doc_id": "c85615fe-eab1-4b76-8657-f4b59ca1cdf0"}, "df3f39db-af4b-4003-a2f5-37b8606f399a": {"doc_hash": "54b9f25ec831044ad9f3312dabc201f7db221db98984b67e949619a189d414f5", "ref_doc_id": "f047a5c3-91c6-410f-8802-1a7a518cd5be"}, "509f4580-14bc-46c7-b6f7-b51f99f08ab9": {"doc_hash": "6861aad22f5d8340ca07748f0a817b871a8316d2b44a3b5be1e0ef8e283942d6", "ref_doc_id": "a8f5e1c0-1477-4982-8b0f-eb310384510e"}, "779d0987-a343-4e99-a569-9f0e2cd6a793": {"doc_hash": "fff8d519a6a5d92b5092b5553ccb5f5df7dd808c591993c74b5711dbaa5f2b69", "ref_doc_id": "a148c81f-57e5-4ebb-8f75-a9338a4f350a"}, "ead8c55b-772d-41ef-bdfe-82354f1f8e9c": {"doc_hash": "47461fd83ae59de8f91b324b26c941c72f1933a7c22d5de934086e381b966dd5", "ref_doc_id": "ccbdd146-08da-4e5e-bee7-c08456289b09"}, "49a9b64c-675a-4ef8-864a-11b91ac76fb0": {"doc_hash": "f19a444de51690d30fec4278b99a05547f755f6b233aa21fba011f5e8faa3282", "ref_doc_id": "575f2d11-d731-47d2-ac53-6fb66fcfba4f"}, "87bd4044-c308-4483-acc5-75aa1ed6b0d2": {"doc_hash": "bce945f7de1bdf43d66be5b92e519f3857ab91ea587bedbafe99385555b71f41", "ref_doc_id": "fc76e065-cd9a-477d-bdbc-8b4ee513fbb1"}, "2cd9ff24-6171-4849-ad82-89eb228db8ad": {"doc_hash": "c8480d3e2f8d13e0e448d7df18c7d60b8c261f85666791fbfd2db54ff2f8a086", "ref_doc_id": "e9fee1c7-0f03-454e-8c49-4aa4c54980fe"}, "ce13a010-200c-44bc-bcf9-7c9aa5ff13bf": {"doc_hash": "a91771af94c769a949028d6799b035b17825e3c673870ca7d8889d23dc47fa4d", "ref_doc_id": "4bd5360e-180f-4515-af78-3351033db5cd"}, "7f3bae4b-d9bf-4146-9a9d-97aec35c22a4": {"doc_hash": "f0629edd3603f785132e143a3dccc1b9e2b3ef33f8561a1f3662b7ed0e9e5b50", "ref_doc_id": "b562eff1-8611-4a50-9cae-734517aaaba6"}, "4894c612-4f4b-44ef-b446-5ad895e0057c": {"doc_hash": "863a8dec6126efbc8948bd24174bb08455d7666b1fea8eacd9d120cf0730af25", "ref_doc_id": "cd1debd8-c3aa-4c88-a574-047a013dada4"}, "a24daadd-e48d-48da-8f25-e666ab587b6e": {"doc_hash": "4eaa10739396082b432eb718fbc230fe24e1d6f6599e64c2b633b4228af6bc67", "ref_doc_id": "92a40f89-2155-455d-b05a-89b585944884"}, "9cc3475c-5c68-4340-8bae-5c9059167510": {"doc_hash": "60f3e07087cae45c472949334a48e5cb86a084994571bb3fd75810f4845e355d", "ref_doc_id": "a08a4887-bebe-4910-a559-29469701d3bd"}, "bb1f9b28-0d9d-4ec6-a573-d388758012fa": {"doc_hash": "1aa753d87da2b4f2dbca4fdcf115410a720665886cb034e3de8a71713ef1cda4", "ref_doc_id": "ae4786c2-b8c6-4b78-b1ce-4bc15a04f6cb"}, "5f479c12-1239-46ae-bfb0-2f0aaf4de1c6": {"doc_hash": "9277f7f7058b266c516c9784c4d68f2e2b424ca731091a40055ad44b5c9d98af", "ref_doc_id": "23fa9e9f-f346-4c66-a40a-6ebaac43783a"}, "32e57dc5-01cd-4151-a9fd-a5e3cdf34d99": {"doc_hash": "6ebd4bb234a3d9314fdc23e8168c1a8d0ddefe959efcbe06181115993e046b60", "ref_doc_id": "2d91f457-af7b-482c-87c2-bb6c5951eeb6"}, "11fed973-8cb7-4715-b804-2eae5a034d4f": {"doc_hash": "c8580f3cb0dc608aee2d1bbd7701f96837ad138183a2601a855dffb3f9f883e1", "ref_doc_id": "4fdd7801-f42e-4314-a8bf-54ab7349d058"}, "30053f6f-ce96-4f66-9c43-b42aa00e65da": {"doc_hash": "9c6b7de2ce3570ec82adbe7a01dd7c52bcef5f138def995f1a114a6a3b72768c", "ref_doc_id": "562d8c23-f0de-4efa-bb19-3f8dbfc4e739"}, "ccac079e-86ed-4539-b564-d1652a576d38": {"doc_hash": "a7d12ab88cbd9ee93f54a63e09217d8d073a2bb7aab06b77daebcc10827a3cc3", "ref_doc_id": "329513eb-9027-4f77-a34d-9691b4b55308"}, "f07195ae-53b0-43c7-a0b3-76b435a8879a": {"doc_hash": "266fbb934d7aae58b82935dccc52a762e8aa45584ac0b794091322cab4de0a0c", "ref_doc_id": "ecae360b-ffea-4275-9cf2-c9348f9912d1"}, "64fad90e-236d-415a-979b-20b9861e98b0": {"doc_hash": "f74eea4d1022fd5fe103b499ca419c84a674cee5c11523ed07f19541082ee86f", "ref_doc_id": "ba46548f-c0e3-42b1-91bd-1edcfdb78f64"}, "12a2437d-8cc5-47d2-82f0-e48af71d2762": {"doc_hash": "cf8f70e7d2e5219dd67859ffdd088d5533d429a37f7c8e2a09758983626733ab", "ref_doc_id": "ea686be8-b317-47f8-bce2-f5f58a9ff1b5"}, "3a9c156b-870c-4ffd-afa1-9f00d1604024": {"doc_hash": "32b470b75c255adf2f9a1f67257e097258dabcd9378c9cf83458fba6c3440238", "ref_doc_id": "118f7e01-ba0b-4828-ae19-5afe6c94367a"}, "8c151c8e-d7e3-486b-9231-1518589aa755": {"doc_hash": "cb36d1eeae9dd2fbf14435434c3aa2f01778dbd47c57aeb453356a8a556e3395", "ref_doc_id": "22b30988-4276-4847-a318-d41456d456a5"}, "c2e416c5-4cdd-46b2-8336-2faa9387332e": {"doc_hash": "f33898d339fd46c946ab30fc1527c9106aefcfe11438ceb2f712a3ca56128b19", "ref_doc_id": "689e2465-c0e9-46d9-b7d0-9c7cab6543dd"}, "83ef3da2-6102-4e08-9b77-a835f3d2612a": {"doc_hash": "0b6c6afe7090a513492ddcc066876fb7c2315bae51136bee01064a9acf5d4936", "ref_doc_id": "ca7589bb-9b3e-4601-804d-28498152a7ad"}, "9ec91f4b-74db-481d-a982-0ac0afece875": {"doc_hash": "4dd4c943e8563e8bc03abff0ed329819d5c0c6835d38b25e7ddff4ac5b1569da", "ref_doc_id": "89e98d9b-081a-42da-9d8b-91abcd90bf1f"}, "0da49feb-0ae9-4576-adfc-a377ffbcb18c": {"doc_hash": "540f3d135a279ecaab468dfdbbaa00b4f408df9ac7c34c05c3bcc3a342913941", "ref_doc_id": "fd17eb08-fc20-4a90-a4a1-c3b4cf6b89bd"}, "c2fd5c17-3cc3-4c56-b21d-2c71276d38ac": {"doc_hash": "0c66c67eb2ff726c6236aa5eac15001385cf2d9e70a77a4375b92c330cc26c68", "ref_doc_id": "4d98d23d-c42f-444b-9323-1fe97baca94e"}, "b65d9d3f-b955-4f40-a185-1691256386fc": {"doc_hash": "4c1f8dc5973ad975d7b20d144a0c2cf644c311290d33a378de8491e14c23ac83", "ref_doc_id": "8ec72078-d96d-4747-a4e2-a7daacc332a8"}, "0173a25f-3887-49f8-b8ed-cd83682fcf81": {"doc_hash": "63fe284c2dbda352a992b516ab4ce5aa84002e0e4e5141bf766e4fa7fcb25b00", "ref_doc_id": "794ad272-a4d7-44e7-a22f-46892474b952"}, "06958429-3c4d-4593-aaf7-0e5462b645e8": {"doc_hash": "7d6fa3bea90dd3f14869c1420847adf8b81741c507db93b414e63b72d610dd9c", "ref_doc_id": "a32121c2-7242-410d-98fe-f2d81d8e58c7"}, "21f821af-52f4-403a-8f5d-afad4e403009": {"doc_hash": "458ef566c2aa1541a83affed8935ca8c0335fdaf38ac7d5fd7bc0ff3dcd058de", "ref_doc_id": "429c284f-4fe9-480e-ab19-d64267de40ec"}, "f4e80a2e-2667-473d-aa02-45c1d88d566c": {"doc_hash": "b80214895805228a59ef19e1f6afe19291563f73ab8ef55196eed099062d919e", "ref_doc_id": "9d36db84-fefe-4e6d-8034-9eb0e37c55fd"}, "d8a5dd12-6cd0-49cb-b8d0-442672752690": {"doc_hash": "879ee1b394091944f976aed9aece9d027376656d3f7c1333ea2d9cc95908146b", "ref_doc_id": "42781a21-7024-426e-83ba-4af0bb4387b4"}, "7ecc1b24-59ed-4d3f-a551-0cea5992dfc0": {"doc_hash": "d71b210fb74105ec157fba53437710e757a2ee13b57701f322e49377d6ff68be", "ref_doc_id": "c9587028-18dc-4835-b0ca-e2efcf7e12a9"}, "33f6c40d-c4f2-495f-8c2f-845c693b5ad4": {"doc_hash": "0ab0d4c39770d745900b4980e1abff57650ae85fd4664a7d3499006539508069", "ref_doc_id": "5200c3ed-ecad-48ae-a6fc-9e49e59a386d"}, "150a6315-59c7-4fa7-b43d-7324a3584f1e": {"doc_hash": "5d250468187cf487e8e34f7a09cc8357da33a95575ec24afd5e0d05d817930da", "ref_doc_id": "8ab592e8-7178-4b82-ab4e-e27508a21501"}, "0e93c412-e25d-4d00-9211-4cb84eb05d47": {"doc_hash": "93e88b2bff69ba40146321c8b0468c7d58592762654fcf108f4ff0890346f6f2", "ref_doc_id": "fc139323-ae7e-4f71-a7d9-089bb416b7d2"}, "8311fd1f-a666-4272-bcee-cc6e1c1d8ea0": {"doc_hash": "e86500bb0c50692244070f38e779bbd4f7bc6953a1be968479ae4879285c20f3", "ref_doc_id": "880463eb-8565-4a9f-9410-927a8e0084eb"}, "1f08ceaf-c39f-4fcd-b80d-e6c9c5f32cc4": {"doc_hash": "b2da53fc760fc2dd97cbac660f481b056a3de4b628517a7a525e75d9f5d31337", "ref_doc_id": "650aaba2-9ff6-49ca-9da9-5b6941e2e460"}, "728d4e1e-0912-474d-a13c-3dfec6840006": {"doc_hash": "09227e036caafe0c74fdaf7e9f87b622b3b18a80410987d3c77236a7bb03f18a", "ref_doc_id": "65067d81-e80a-49d0-be37-bdbeb86477c3"}, "21c4e6f2-ea29-4288-ab32-78ef5e9c4283": {"doc_hash": "5c123ec5475470b69baf8e9c8a4ff1a014b0a5737bdfb54b2d6b31441e9ec194", "ref_doc_id": "1c3dbc12-03a8-4b38-8cfe-d3260f3aead2"}, "0246f201-6f15-41dd-9ba3-e7c495e55454": {"doc_hash": "e69440b2b205fc64fd44e5e8ca4fdfc7b62a7ea0ec5e29b7599ae8c30d37c817", "ref_doc_id": "5f6e090d-e6ab-44ea-b030-63a0b81e5890"}, "30acbbb4-283c-40e9-8aa4-7276852e265e": {"doc_hash": "49ce857af44b63aaf206dee72f43b1a3cc7d1bc64fe70111dc148f32d3957e02", "ref_doc_id": "3c25db0f-0efe-4641-85b8-41f37d34f11a"}, "aca39985-4dcc-4026-a08f-81cccc60b0fc": {"doc_hash": "bd164ed23d77a9e0d91ca949dd6c4ce6a23a072fd30c08824de5538727c0b7e6", "ref_doc_id": "80a26ef5-2152-438d-93f2-e99d0ff385e8"}, "141316cd-14d2-4c33-ac98-10eebb3881bd": {"doc_hash": "59ec4c1e2d88fcf01fd8282154b83019ba065a4ba28f505e35fddf921102d8bc", "ref_doc_id": "f6f0a271-e590-4481-bbda-1673f8911af6"}, "993b1b15-d413-417b-80b4-bca6b3102572": {"doc_hash": "c4839b65ac664669d48285a00cf57521d74b515014d2edaf518fa06b197fdf19", "ref_doc_id": "c92c3ba1-c02f-415f-bacf-a21086a8ca30"}, "f21b0a3a-dccc-4c2a-9272-21368cae552e": {"doc_hash": "f47776e832ed297ffa8a81db49213b3c1c6d4ae3406b2322109c21da3b9032e9", "ref_doc_id": "82817cec-6ca7-41d4-b42f-2dae2f0b112a"}, "871ae3b0-de62-45ec-8d41-b378016a2bf7": {"doc_hash": "f777a27b1e763e4811772de597a7d5d88c486855bf6ad7bc2060667bf6abfa9f", "ref_doc_id": "25e80a7a-ab4e-4d67-801b-ed1dd66320d5"}, "35ea75f3-c13e-4018-945f-872f6251d0b1": {"doc_hash": "07fc9309908262497d5b2cb88e8cbdcc455d100749da70cc174401af30865fe9", "ref_doc_id": "e9acb4f4-88b6-4ea0-bc71-4e926e70a931"}, "d655f37f-761e-493f-91b7-eadfa023b346": {"doc_hash": "6c65a91a4649c0d2bbc126458c277f9aa89b2a6e49dba8a58217e4f1f228e74b", "ref_doc_id": "d80eceb6-ebb8-4704-84e2-c4e31aea85cc"}, "d247f619-fde8-40e2-8b3e-5fd1259ae8fe": {"doc_hash": "fd6833ec71471e708be5b7aef8909441a577786feb0634f5b615fb802005e436", "ref_doc_id": "3bd05c2a-98f0-43bb-9c18-068045afbd73"}, "81bf18d2-00c6-4ddc-a842-5f55ccc7a982": {"doc_hash": "f7c4f7839ed9d8e27b64182b7f71b5475c8b13545f64413d8e5fd7bc64909b2a", "ref_doc_id": "a2824579-7f5c-4154-ad0c-5f4a8497bb6f"}, "467558c3-e094-43dc-b88e-d59b2009928c": {"doc_hash": "415d235a21783b53fc2688fd5d6d1c70333c4a46ca4f257d204788775cfe7943", "ref_doc_id": "06c7b0d7-c250-47a7-b208-4988b241d811"}, "497e79e3-be9e-40b2-8edb-a5996c71a4c2": {"doc_hash": "838a4f993bba21403d1f01c40246b21810dc5f43793cbf22803150443915e637", "ref_doc_id": "b0e5baa2-f02b-4bfc-9d28-1b2505e3f73e"}, "6a9babf7-2595-4eaf-a5f2-6791b4523678": {"doc_hash": "a27ef95477554e0ed23b007fc004727789999331daa03a15837b9e18e981f2a5", "ref_doc_id": "2d97bbc7-d34d-4676-9c49-2bebce8cde61"}, "ddc3920e-1495-4f90-a987-3e4e03b4094a": {"doc_hash": "f903b6dbe0c39676e905492dfddb278aee23d7752de312b08bf3ccd71bcd3f78", "ref_doc_id": "c96dd937-7ac2-4451-ad25-f023d0883c0a"}, "347f96c7-eaf6-47b0-8418-e85e3b6ba4f4": {"doc_hash": "aadd49cc0079d847ae51f8cbcbca7a6c12e5cb834876a6738176d52b6f657059", "ref_doc_id": "830305c3-609b-4801-9adc-005c67d22cc6"}, "8aad0ff2-ae77-4639-9fea-67d0bb34374e": {"doc_hash": "075650aa06d1403f5e2f28a5f882c0d5c457d8385f7b8843fad71b8d823e1690", "ref_doc_id": "f9abceb8-bdf5-4600-a217-efd48276f962"}, "a2c1c819-1ab6-4eb8-a613-69663a3453fc": {"doc_hash": "9fdbf964fff1f7776bb40c1a86899595b52226a2d5850272738c4b8b5926b532", "ref_doc_id": "dbc6a8ca-6079-4a3f-9f79-ef586620a4ab"}, "c2863b92-e1f7-4b40-9088-ed90b8087a05": {"doc_hash": "be8184335b2fc2c11e0e14fac4de517f94fb18aba987ebdb9c08a99fa763c233", "ref_doc_id": "471e4d15-b9dd-4fc2-a696-b406755c55df"}, "49cb22d8-d0c8-475b-b601-b153020a5f74": {"doc_hash": "fb523bd814f69d0e4341a9b748559a2e1e5058cfdbb27252325e8fc50a9217e3", "ref_doc_id": "acffaf91-caa0-4d73-a07d-c749c5bcda6f"}, "f9b24bb6-fdc3-45ee-97ca-36ae4e970830": {"doc_hash": "f022445317e606e784721d15fbcaee3acca49cae15eea0b2e38cbb27c404eae5", "ref_doc_id": "6f2844c6-fd21-482c-b18c-3dbb1b3d3520"}, "fe17e153-46df-46b9-86eb-0008f84b9722": {"doc_hash": "0976bc91c554a8f7cb428c424bec409b47a600b569ca922d9c35a8317b88d1c3", "ref_doc_id": "fab66206-335d-4130-bf81-df3daaacbd2a"}, "217bf5e2-c5b9-4b63-802d-556058a0085f": {"doc_hash": "ca63a5020e762a8462eef751ec26539ea5ebee61ca77b2e918008ddd94674594", "ref_doc_id": "91a0e099-9352-43c9-be28-b097c6948ccd"}, "3eba1c17-a17e-4c47-822c-e928c296572b": {"doc_hash": "717a3a60045887d89b1337bfe86d6039329a39829220929966ba8a31d9ede433", "ref_doc_id": "e373490c-63ab-4a0a-9468-52bb59feb4eb"}, "59ca93af-7d14-40e9-9abf-4f523f3967ae": {"doc_hash": "2d6a1e6ee9604ede8e6816629ba3e0ecc39c1bcf2546b02ba494584ad5c13e4a", "ref_doc_id": "ffa06323-0f28-4158-858e-420adb2b52ee"}, "e30b55d8-0065-46bc-8a62-87fa60eb5bb1": {"doc_hash": "5290db40b6164159ae84f209f051f4333fd77406deecee15067c3f12c061d4e6", "ref_doc_id": "18cb1284-786a-4c85-b1d9-3be29b41e3d8"}, "609613be-622c-4399-9520-972093ac0af3": {"doc_hash": "ef79b0905f818b143dd705ff53afafc3ec4557bb00d0e4c2826c1ac6197a69f2", "ref_doc_id": "895ce90e-7271-45ca-99a1-6b64e506194e"}, "1f19df44-bb56-4512-b6a1-07277aa48dd5": {"doc_hash": "44e23e4cf665302a3b8628f09b5198c75f07cfce77c1c9c75688904dc06c86c8", "ref_doc_id": "983665e5-b3c8-4f2c-9cf5-642420dca2fb"}, "a20991bc-8767-4e8a-aa1f-5755a297db79": {"doc_hash": "7dccc8a80cc0f19ca5e1ee7b61b0390a106281ba7308742342ada5071a65cc9d", "ref_doc_id": "574ad8ba-e6f0-46f6-aa1c-b3540f8ef1d5"}, "165085db-1f95-44b6-940b-c5cca6842b1e": {"doc_hash": "75176fa6b3c3251d91d6af24057893b0ef35ce15a9dc4e68913d6fe0327c4e65", "ref_doc_id": "47712a70-0e42-4e57-b314-df6893743083"}, "4fb53d4a-1cfc-4d48-abc3-26017f53a822": {"doc_hash": "1929738c8f0cecbd539c9f4a8b81a36999f318e3d47445bb1e266c1bbbaea6fa", "ref_doc_id": "67fb5e22-830d-4357-b7b1-24aa423c671c"}, "2f52a19d-fbc1-45af-b617-b1a0a5bb5442": {"doc_hash": "d394f82be8e6892ed36d5d18dfec609b2f6f75f879ff81c54fe0baabd4ef348e", "ref_doc_id": "31286cb6-e92b-459b-8a12-1b78d8a964a5"}, "7b527787-96da-4226-9382-d6940ff03097": {"doc_hash": "54998756b7f10cd63b4e92343b7678ba68eb94ae74b9092c9dc28773a99cf49e", "ref_doc_id": "9cfe2d17-5416-4b9f-aa4f-9d99f68bca8c"}, "73d8a3f4-aac1-4760-839c-d9f35314c71f": {"doc_hash": "09a113ea477bfc080bfac0ec48fa3b382b98487ea15de25f34d4a35dff770b18", "ref_doc_id": "020699a9-b701-46b2-a642-b577f16ab28c"}, "52fc16cd-9438-4db7-b20e-6ba898d1a3d7": {"doc_hash": "4368513e0408c85e13bfa06dcfe8378e27e5a8e53dabd472d0f1d8bb70c79f28", "ref_doc_id": "7a9e7e27-00b3-4beb-9aef-3d1b001d4be4"}, "5a07a60d-8e79-4a7b-a081-3cb40cd8c90c": {"doc_hash": "a14b0f6c2fbcb7f6e22e7efdfabe3eb73705146b5e04f610ee9bc080586ceecf", "ref_doc_id": "a546c90b-f54a-4ead-a910-873dcbcf3679"}, "8d6e60ab-5079-411a-b140-74b407662a38": {"doc_hash": "2a0136ed32e1278aafc8836e37f4e81e8dfd900d5bd8b2056854e3b388374964", "ref_doc_id": "4f42f07a-0612-4806-b7f7-d8340894b052"}, "5127b3b6-0396-4ecd-a2ab-0d4eb61fe826": {"doc_hash": "7fbf9d9f84e345345b42b392c81bd15b771aaa3f8a9b7ac9038fe04f776bf022", "ref_doc_id": "4a4c7a86-55ca-4fea-86b4-31b073c4c7a4"}, "181101e7-b7f0-4a5c-8f26-2c4e0a926e02": {"doc_hash": "901dcd3cddba0ae7d82ff1fe99b487c0d01cd87c0afabc63715f54c34c5649a8", "ref_doc_id": "c732afba-4e52-4c28-b884-4898cbbf8cdd"}, "7ae099af-2305-4fc1-a0c0-c81b9fb112d4": {"doc_hash": "2fe1848cd5e7f0c9e958271f239ae3fb56ebc0622bfe0dec019a2d37131efec3", "ref_doc_id": "2c5c2ddf-7e81-4453-bd3c-1820ccf464fe"}, "a5ba9817-a5d2-488f-b85a-0d1a52593071": {"doc_hash": "9d1916c3ed897fa98a4d1f7c9c0091ae90b8015b9110d0180ba13d2d5eac8332", "ref_doc_id": "c92d81c9-a929-45c3-a048-9a6079e2325c"}, "365743a5-9d9f-4233-a559-198392666f13": {"doc_hash": "586685ef1771aede00c0ae31426e889b71eca5a584014839c312ae3a2334edb3", "ref_doc_id": "d5489249-da51-4c41-99b0-7272b2fd55db"}, "7c7e803c-b7cc-4098-bf47-14a970fed3cc": {"doc_hash": "5351eb2e6c3cc5666968f90f1cc50682a1a5d158a4b35ae81010b96e498c65ac", "ref_doc_id": "45d2774f-fd5e-422f-889e-9b49ebe8aabb"}, "a872cb37-41f0-4edf-9734-b48da18fb4ab": {"doc_hash": "3c469f9bc54c688151f08e4769e5b9c0938e45b36197e96229b56fa17e1aac76", "ref_doc_id": "f0b615a9-16af-4b1e-88b9-7851aff8a6bf"}, "e7cbff7d-1181-479f-a570-edbc3e78e753": {"doc_hash": "79a8a46acf2696920f51a7b9427f65dc7012b830743c09687420bf5b048d62aa", "ref_doc_id": "782dd48e-91d1-4ac3-8964-5c039488bebe"}, "588ec552-d024-40cb-8227-661219987a07": {"doc_hash": "3943d144bafd4818b5ecec6d5463772d2630c968cc1a18f652950a1d39c3299e", "ref_doc_id": "13f9a580-e911-46b8-942f-a573c653285e"}, "e5ccf591-1040-41ae-be1d-a8346f207f33": {"doc_hash": "bebee8ca93c4836ccb598bb3aa566df0cf7e492d84bd16c8054643f2d4fca1bd", "ref_doc_id": "91261279-84e1-4e31-8385-422fc05bf691"}, "e5ace444-4f8a-4d6f-b321-ed511d2dfa22": {"doc_hash": "ffb06d852ba9dc7544971c65ac422a85a11f692e640797007178346816963542", "ref_doc_id": "baeede9e-dd88-42be-8318-e867b5f18e1b"}, "4e496608-68d4-4426-8289-00aaec8c5a1c": {"doc_hash": "85d38cc275f6b19f433dcf7789698dc32ddb83cb590e30a529c888eaf599d5da", "ref_doc_id": "4a61b464-204b-4c5d-a1cd-4a2e8d2ec383"}, "71a928b2-dd65-4147-ae36-a611b24ec474": {"doc_hash": "9ddef5dc13cc07eb1d35bd2acc35db85529f8bc4e827d7dbb5ed242d2471f6dd", "ref_doc_id": "a59bee68-7978-4dea-b538-21f517b45231"}, "223d108d-3a96-4fc3-86af-cd7ad0f869a9": {"doc_hash": "698997369d96e0210d0e859a478d53c142971a81a8fe666f9b0720bc54603778", "ref_doc_id": "6e7782fa-7c64-4be6-b1a8-b775384c6045"}, "d9e92c63-6c38-44e8-84e8-ecbc7a945bb1": {"doc_hash": "d8a3473315bc5e2432077b11b1562369f105b3fc7b6fae7bd5b3f0be31a505f3", "ref_doc_id": "cf46b441-f121-4ceb-b962-533de2ab09ef"}, "dba849df-4ab3-48c1-a42a-681574bf5874": {"doc_hash": "553a6502f099e3a4ff21462772b7caaa18f0010e7223706b2a3f68ffb8065750", "ref_doc_id": "b7c22205-d09c-4c1b-8769-27187f8f8f3c"}, "18892d8c-f772-4afe-9a4c-7e3248c913f7": {"doc_hash": "5c80c168c00720279d9e6e97243154deed4d6e1f5ebcd0919f5ae3b04e0a246e", "ref_doc_id": "1b5246dc-12b7-4622-adbb-65c56b283528"}, "c575b97f-68ff-4e6e-8893-abba43e9882c": {"doc_hash": "81fb70ebafe20626b9548be4c7c10f71e43b1468099dcca7002de86cb332139a", "ref_doc_id": "0f09bfc6-d04a-40da-ae1c-216cd687c2a8"}, "dfe1af4c-e6f7-4e72-976d-cd544f46d6ca": {"doc_hash": "73efd6f66c58112caf13e220f4999d3de4577cee2bf32f1826be13cb89fd59b8", "ref_doc_id": "301b59e1-7bfd-424e-bbea-c78435a4e74f"}, "b331adce-78c4-4106-aec0-e265f3c93550": {"doc_hash": "1fbcd54e98192ca1874d6648ed4d559896c538f3af454cdc9109725a8fdf4148", "ref_doc_id": "4c3acf80-a37c-4608-b91f-7d138698cc39"}, "e79562a0-d816-49ba-b5d7-6e22b2262755": {"doc_hash": "8d0989801243437eda99307423ddaa0369d2398d098f4d8356f2bc4443c4e5d6", "ref_doc_id": "6a94ba21-36ed-4666-b23d-68c960f0e51f"}, "cc9f9c4b-da7b-4308-8a2e-d16ce5da2549": {"doc_hash": "be75fb1052f594d9c27bf9a5be5a8438733937efd0ec4381a3ed6e18f365efd8", "ref_doc_id": "a796ce72-4b56-4e6b-9153-af284fec00ff"}, "2af20fc5-f229-4a96-8b32-21d8d206296b": {"doc_hash": "8efb0fcb0f23e2cdef1323d435816603664847a6f41a0143042c8359d0eb9c56", "ref_doc_id": "e415bf5b-c8df-4d49-8f9e-929870e90d82"}, "f2a62183-e832-4709-9a26-36e803bffe7e": {"doc_hash": "f7e4c80ccf340d26b7728339a5c4b6b1768534e436faf359dd903aa5a04d680b", "ref_doc_id": "26d95543-2609-44ca-a060-642c622650a6"}, "db0bef2b-e52c-4e6f-839b-8e551556273b": {"doc_hash": "e3ebd99b0da79d4e3915d16e0bd4092e1daf312e2a23c9477c191c6310058055", "ref_doc_id": "9f131792-ce60-4bd0-9d09-76c9faf87792"}, "31b5046c-98a9-4b23-a6b7-5a8c6ae14d2f": {"doc_hash": "e67dbca86b9ad9beea27b5277a576ab31ec158f3cbe18da9a760b4e13154e378", "ref_doc_id": "3233a8d8-e958-4023-9cd3-e31a1fe713cc"}, "1c04a149-9edc-42f4-b82f-4ac9dad20fc4": {"doc_hash": "ae392b22446902d8b826e816e8000e2368c4e537f7a110045b93c213b3b7fabb", "ref_doc_id": "fcc46606-2a7c-4b00-8e9c-02ef0088ec48"}, "6810bf0b-5de0-4a95-a4e0-59cafa0b0549": {"doc_hash": "4f5764f6da3923b995caca6b459142feff890480b42239aab53834f93b2f1221", "ref_doc_id": "9a689495-cd44-40f8-8713-1e688b3fea5a"}, "dc857518-0890-4de9-9bcd-73fa9c03cf9e": {"doc_hash": "2ebb416f49a870446d9c99a9d959640f59f8e5d46406ba75faa4c905ca1c1c12", "ref_doc_id": "23a4e7cf-847d-4167-887a-9503eebeb38c"}, "552ce3fd-f6be-44e8-8cfc-1ecd642c9e34": {"doc_hash": "d27fd1b860ae07155a8b8ad59e0b1ae049346cc67324c5c6180d2557adeb3b83", "ref_doc_id": "073d7554-2822-495a-88c3-8181a0d96057"}, "d0cb3c00-ce6f-4e68-8801-b59965fd9f50": {"doc_hash": "568f21ebfb1924e90c85120ae208017b8a2b9c7dd13f9b66bb2cf4c317b3c2f9", "ref_doc_id": "0861b705-526f-4ec5-8512-5a223a554697"}, "100e256c-b31c-4980-8b18-66bb26e5658e": {"doc_hash": "941e09bf7861b1fb624723762801d9598743c85afc14a52014c47a28c6f856c5", "ref_doc_id": "299bdafd-87c1-43ad-ab20-1e15cea35998"}, "6194bf94-85ef-478f-8032-9777db67d686": {"doc_hash": "b22ae41129adf18b3138688fa319c7fc8fa11bbc46069a54133bd2d39427e36a", "ref_doc_id": "86419b13-fe0b-4ebf-b289-7a76d092426f"}, "748d2d9e-d021-473f-85d0-4dc7dbd466af": {"doc_hash": "91bfb6f3309e61e0dc0e240002f353d1aec13e49b7853d9cfed670394a4ef8a8", "ref_doc_id": "a0b3d243-a1be-478e-af7f-5cb685263367"}, "417bb18f-2806-4d2b-9105-5c8ab590d81f": {"doc_hash": "ecf918d490dd0b9391aa8262a0c89960cd4bcb5221597bf9a9ab61eb42f732b9", "ref_doc_id": "fd270dac-04c1-4540-bad7-be889e6f13b6"}, "1e7df8b9-7dde-4853-b068-94bef3c1cce6": {"doc_hash": "6a0c191953a6310d353c0ee36421c21013cd7b2d2ab5e91025d12dc4383579d3", "ref_doc_id": "79cdcea3-4106-4852-af23-05376dc62149"}, "ac42d99f-c337-4120-81da-21d4ec5f3994": {"doc_hash": "b27c98b8bc7a83f4d822228c83e433f814e1f0d1dba6d3e55d7ecee67e6c5ea5", "ref_doc_id": "14d5a4f1-97d4-4afa-b7e2-ce34b22ee040"}, "db8dcb55-38f3-4529-8cea-a2251d43ca78": {"doc_hash": "066ba3037319726a6c054ef7040a8b5f6c64f848a4628df382d947ab54654e9e", "ref_doc_id": "c8c1849e-79b1-4ea8-9416-eadcf372d06d"}, "80bd1f7e-f5aa-4f48-80ce-3ec2020d2ec6": {"doc_hash": "1bb07b02a7634e9c3cdc294d8162fe3f8e8d156fe12594c946a0124956e8e671", "ref_doc_id": "c38b6e84-c14e-4c89-a98c-203da93122f2"}, "a1274bf9-7155-408d-964c-6a26033a2418": {"doc_hash": "ada2b4bb5f5a480e3fd90981b4e87d656efd1d0110d2a2cb0463231f3d3ea651", "ref_doc_id": "24c147ae-2bd1-4716-89b2-a4ccd9964cfe"}, "ad1fa5bd-9807-4b34-8c3b-306b626c2ab5": {"doc_hash": "e3b27055f62760f12d4f438e0ffbb4d80b5395082af287a88c3f78b2c63da3ea", "ref_doc_id": "cf158de9-7c38-42aa-a93f-23d893e79d03"}, "cc53da89-a4e8-44fc-b199-757185d1aa6a": {"doc_hash": "1206bf76b34e8b4bc89ee77628588423ac4fc6f3a2cea17c4a1b9906708956ab", "ref_doc_id": "1afb2557-03af-4d8c-9e3f-91403f1e7a0f"}, "1824ef33-3ae1-4007-990e-2a38a329eee1": {"doc_hash": "26dca47da33df24aeea391f9abf209133f38d141fb1cbbe06cd9f85998d3b246", "ref_doc_id": "aa8a5db0-1399-4397-9812-efe1d991257f"}, "edad2037-5822-4d1d-841d-66ded241e10b": {"doc_hash": "14ed24266ac9531bbcf8b1bf7b7992b9b1d454ff27a625dbba5aab84f379a4bb", "ref_doc_id": "96bc6cf5-071b-40f2-a18e-7228b28f954b"}, "fbae79a1-b97a-49e7-b325-491294704e07": {"doc_hash": "bdace48c683940da81ad2ca41c4dcc2da7bdcf434c18e48a82dd9bb274b6862f", "ref_doc_id": "e682343e-cde9-4486-b456-e475edfcbdfb"}, "8fa28574-ef92-4c6c-b836-a486fc0311c3": {"doc_hash": "fcbec1288ef4c3746f5459725bffef22d7485f2d33e8840e10c8f8ea2475885a", "ref_doc_id": "2c0df155-53aa-42c6-a41c-1f606533b23d"}, "72677465-31f5-4878-bbb7-93947e22b346": {"doc_hash": "aefc9e7be759e3517f05e220bdf086ec3521cd32e94af4306428c5c6dae5a4a9", "ref_doc_id": "9090fba3-be99-400b-a1da-530771880f18"}, "74e65e2d-e14f-4cc5-8016-e3766e4319a8": {"doc_hash": "e84b0dd379eeccbc5c0d9123fa7b2728f2ce7d97a372777c9bbfc11a4f4d87ca", "ref_doc_id": "c702bfd8-9800-49c7-92fb-b693c6145849"}, "9a6ef3ac-b79a-4356-b902-35ed95df741d": {"doc_hash": "34d7d66d2281f02a6a264d0360a44ffb25753c8d3b18c383a1bb191c42ca6b49", "ref_doc_id": "b0c6553b-33ee-4108-96ee-62f106037168"}, "696ba37e-8197-4a87-8c57-69869db5cbd3": {"doc_hash": "b6121268bd8baa532511dc76e3448c6523e6ba560753c8f7c1b4b6ac24988816", "ref_doc_id": "26481353-f152-4f38-9411-b83984780735"}, "5fadc877-5586-4b9e-a555-77bdd03dfae4": {"doc_hash": "6b888d86f83eef722cc992e7c9c62d7ffaf6f9be9e91b4bcf5c4e3481a23cfb3", "ref_doc_id": "02d62435-c5fa-48cc-9f0e-fb7aeb8c728e"}, "f93cbaa7-56e2-443a-8c05-f4a2f768520c": {"doc_hash": "2c7dcbd8a8f14403d5dc7b0cc36cc723f067c6190a42392ef5e2bd932aea4db9", "ref_doc_id": "e64df88d-e942-40b8-ab22-c5364989388f"}, "72a7ec13-75f2-4f7b-9315-bf2ab8e1bcec": {"doc_hash": "c3e28675a064066a98cb5179b2ab2669cee105eaa6c3648f17dd4f2260e6bf79", "ref_doc_id": "6092dddd-47de-4263-b7fc-a3ecfecdb2cf"}, "b0024046-c605-412d-a67d-c4feb989ee23": {"doc_hash": "1be0a1790aab4ca2891aaf35fd3f12c3a7cb62a537626a5c3c1e260ab2594177", "ref_doc_id": "6284aa5a-d57b-40b1-86ca-1dc2ddb4f77e"}, "f461ffe1-3e70-4beb-8e4e-2fb4513d940a": {"doc_hash": "c3e52acee3fe9541fb25274578c53a072196580f98c42c62fa9c4bee0914f584", "ref_doc_id": "b62617e8-5b2e-4ecb-8f1f-43e6137f9488"}, "786fd7c3-f6c0-4853-9e02-18d51ec84468": {"doc_hash": "348641542629c8b9f1e684c35a628b1b52d196d2ec43c5571618c1856d576fa7", "ref_doc_id": "c867a2ae-a7d9-425a-a1de-196b65d9b431"}, "c3eead52-fc52-4935-8e0c-17c3e66a0d49": {"doc_hash": "f952e774ba3d39bceb2eacedebb8485b33bc67ae5e704c5120361a590248e54b", "ref_doc_id": "a05b4cb2-113f-4bf3-be3c-04b7d84b88da"}, "68257f21-2395-453e-b427-e449a71cf1e5": {"doc_hash": "073ccd0313d64ff56f37d7517aef11b87a93f5f3788324b5d0ea737c82972766", "ref_doc_id": "12209d31-5909-44ad-841d-8d24c207b7fb"}, "61d73bee-5e2d-489d-823d-0563b5462d6b": {"doc_hash": "88e62b1ead36e742b67fdc06ac8e3fb21a8e197befc5ec0e8e040c3c4238b942", "ref_doc_id": "7df62fdd-2eaa-4daa-94b5-eb47e66a77d0"}, "79afa0b5-9289-4e77-97a6-77fedcf62191": {"doc_hash": "17570a5ade0f733b75f1d72aad77d7af170343a8eccd3617c5831258e07a00b3", "ref_doc_id": "ad712aa0-cfb6-477a-b7a8-f688e69bc2a6"}, "6105b810-1abb-40a3-b00a-ac84c03b4110": {"doc_hash": "9d953ab9a561f78c84d553a6cb415693fe7353f8b0b4b520b776356dbf680680", "ref_doc_id": "9424c67c-0023-4cbb-a07b-55ddb2e96746"}, "bd07802f-a077-4fbc-ab10-9d0b766136a3": {"doc_hash": "c4fc4b6bb0e342b992ea5cd895ec7964ce1746c3796bce287c1916cc3e7c145b", "ref_doc_id": "a59eff89-d205-408b-9480-3ac62d20ac25"}, "87f41955-fa21-472e-8dc0-cd4711c3a796": {"doc_hash": "3712c71ee581339f688a09282a4cf995dab1dd8db09d4485da1be91dd4752d67", "ref_doc_id": "1052f264-49dd-47d2-a3d6-8443a6955451"}, "f3ada881-f366-49e2-974f-fac699dcc276": {"doc_hash": "ea5ef4e59322eb1322c0eefe5d2a71c2a924743584ce94bc3fbca8b325466c90", "ref_doc_id": "f46a460e-58b5-46bd-a6b4-347d8650a1f3"}, "8e85461e-56c6-4a43-a9c2-1460615792dd": {"doc_hash": "de681e8039df77e04c8943c9ff5ba520872fb248226437cdfb612579d0213437", "ref_doc_id": "ff3189ee-6cee-4ea0-af55-214386c4311e"}, "87452903-5997-468c-892a-4d4233a18f1c": {"doc_hash": "4c64c99ed3dc1c8aaebff3d22ef95a139053bd3bfea73151bdcff46be2416575", "ref_doc_id": "9f775235-b052-436e-9a44-029203885d7e"}, "b8035955-6e30-47bc-a4e1-611048db7055": {"doc_hash": "bb62a5abd691b0d47cb7ee2aa0011e7552ac784fe893e14cf47b59f0759faa5b", "ref_doc_id": "f9196c41-455c-440a-9fbd-4c48c23b1073"}, "95a6c872-151d-4014-aa31-2437d61168f4": {"doc_hash": "96e054ecab6400d16be1bf35fbd6bcad66e3adfc40c294080af01b3dee37b81b", "ref_doc_id": "140c7a6d-d3b2-4654-94da-9c360bd4924a"}, "dab178e8-44d6-4ed4-8d29-b250367ee35a": {"doc_hash": "ae1de3035587ddec5f534f933b28b94fc927cdc555b449ff9b37e6ca3fc4fd0c", "ref_doc_id": "3fd70f57-777c-4642-8892-0ffefdcd50e6"}, "232f7354-00ee-4af3-b01d-62e2a6cf1a21": {"doc_hash": "0f26ce9c7fe6c2244c11ea33efc308e817229c557432cc7e3004ceea6153eea9", "ref_doc_id": "3b30874b-f2b3-416b-9e10-2f652fab7ae2"}, "1a4ccf2d-69b0-4c6a-b47b-cbcd8656fb08": {"doc_hash": "c79669e0fa8b3880e2ec66daaaa5e10b5169e673a57f59ee2c2ceaef1a5ee196", "ref_doc_id": "487b3eb8-8cab-406c-8060-a2e6e36a8ad8"}, "9da2d37c-95b6-4260-aa56-f9a6e39fb71a": {"doc_hash": "7035745740b95c96e545ba12a539871b2ebb8da7fabb82185f9eefbc00046750", "ref_doc_id": "bcc9a12f-2bce-4e9b-b756-a2b1d08dad75"}, "739158d1-2fb3-4caa-83c4-ef42559e09c9": {"doc_hash": "9dc9e2cb0c863b8deb97ae1e9dbbb965fc8cfde3cc1ed1ceaa018e1054ae837b", "ref_doc_id": "0a0fc459-8fe1-4b48-a380-b63513da438d"}, "bb35196e-acec-44d3-94b4-03f4ba22373b": {"doc_hash": "56f1570726e20e92a7466740b85aa494b5fd15ce0495d0823687702157c73e12", "ref_doc_id": "36bfac59-dc60-465f-b915-1005e705be87"}, "03875b2e-46aa-448c-a638-f3b4d34d686b": {"doc_hash": "0c2231c0d18c8dca0c1b61ee4557b1c26bf369d93afd31b3591e5f3b8a6f386a", "ref_doc_id": "a74c4f60-ea99-49c7-a20a-06789922b60b"}, "6b41a10c-13f5-4d44-8080-8ff81315e875": {"doc_hash": "e661b092b7397138f3b9ac7a77e51791d238913e6a4a9b6ee484e02c6d5b8a55", "ref_doc_id": "fec25271-d813-41b3-b484-99b53b8fccfb"}, "3e7ffe36-12db-4f88-b6e4-3b5ad7af0b1d": {"doc_hash": "2bafbe39f8438d4fcbbabf0b809d85cb373fccff16b3671f3fa07fbdb34156c7", "ref_doc_id": "dd0a9c1d-115f-466a-bf74-24eeb03a0ba3"}, "a56c9b23-c481-44bf-bc26-f353c0d3847c": {"doc_hash": "c686507cc2cca6676d3cb23e7fe21a725db59c5604cbbcef0d85da29b40629a6", "ref_doc_id": "dd0a9c1d-115f-466a-bf74-24eeb03a0ba3"}, "c8ee41d4-888f-4964-ba60-aae034fed8dd": {"doc_hash": "d411fb68ff2288d36950c5481a545f11c07b96e49915e004fea2028fb22c5a5e", "ref_doc_id": "b6b592f8-7b24-4370-a06c-86013706fef3"}, "dd0adeb3-984c-4b58-913f-ee347afc4bee": {"doc_hash": "c30baec1fd336a536f6eddfd2d2ae44e51522558f1e18c75572e93f2e16d9263", "ref_doc_id": "7b5d463d-d3de-4791-a2fe-4a4dff9bb6b7"}, "9bbd0c3b-82cd-4e5e-bc4b-01fdcae31938": {"doc_hash": "be02ff0be74f5fedd59e28311bf1ca8dc3a4b6fe3f3771e6acbb02918efb003c", "ref_doc_id": "3c91e7e0-16a3-4ccd-b7ab-d0d8c4d7eb5e"}, "590e7498-f4a9-4b9a-b8e7-56688901f0b4": {"doc_hash": "3d23c0091592c8e4ba07eaa437c995aa50faed017065b0c4dd2e9e69f82356f3", "ref_doc_id": "a8d0ae09-ac89-4e73-8aef-8b45d3e55522"}, "5a3b743a-33a7-4c1e-ba74-9f532f407616": {"doc_hash": "cdac9bfeac1a58a340d99192dbadea9e59139f20ec5c065939d4074a2f2fec7e", "ref_doc_id": "0382de30-f2cc-4207-b40e-c03dd9526da7"}, "08cbe4ad-c49a-4959-8a6d-c8e9d9f9461c": {"doc_hash": "5be0cee2279cdf3ce744307c63c3afc279026afd457f28c6be7db98182276814", "ref_doc_id": "68f337d1-3425-4e8c-b46e-e92da8276b9b"}, "d2121c03-ca57-4920-930d-2806d96a5540": {"doc_hash": "b9b01c68179a97c193927b0e1865be2f75080a9027a7ea1231be2a51031395e5", "ref_doc_id": "376f03af-7831-4263-944f-067a8a739610"}, "76adf11d-d524-4787-bbd0-a77a5bdfd853": {"doc_hash": "57f8eea7795e84dac47644695a63fc356c70141cdea3f2322b15bf8c4c11f39a", "ref_doc_id": "65963bed-bac0-49d6-a9de-d65a242db975"}, "7cb02807-3a6b-4322-a1d6-d8aece2f2bf7": {"doc_hash": "f21054fe3922db3ea92d4c2371c89af37f0afaea76d5b0f29e2bd8ee12dc7d2f", "ref_doc_id": "b43b6e13-0f5a-425d-9275-2729a955c844"}, "5dcc40da-7eb2-472b-b22c-6775eb440a35": {"doc_hash": "f0a3fb574135b4aa1d1ac305d7d59d0cf3defdd8f36626256d3a7cafa65c2378", "ref_doc_id": "29c3b60a-bb82-4527-bde0-350a15fbae8f"}, "c5c359ca-e3cd-4bfc-a33d-1c1a7d0f1599": {"doc_hash": "bac00d0e23da479fdedcc3802ab0ab9da0c82f597909c98383f68b04fd8d0bb1", "ref_doc_id": "3d053e94-cef1-4380-b5b1-e0b0d51c5222"}, "14d5d01f-e73e-40d1-846f-b207bf893c48": {"doc_hash": "7f07ccebc292b0dd2914b41ee94022e6c5a66ed9f07fda283f2cca915cf0dfc1", "ref_doc_id": "313d1cc0-c831-4786-a0da-932c1fc8bc88"}, "edd13447-bbd1-4ad7-ad95-8d1c79ba38c0": {"doc_hash": "5c9ddbd8d34ad060bd5ab17001f1f995f7d5f615c3e6c49961dcafe916725b00", "ref_doc_id": "35a7a5d5-29d2-44dd-9aa5-27639f970e07"}, "e01af6d8-e78f-4b51-b017-6a668eaca36e": {"doc_hash": "67e40948a99c0e758c894a2005dd4a09e7db502a45ce27ec1f4d799528ecd837", "ref_doc_id": "14b6087f-7eb1-4559-b618-81303dba6bad"}, "17650171-9692-484b-8800-0431b1999129": {"doc_hash": "58d08d84a2b5c116ad78deca128ea4d8c9a4c16a7055a8bfcf2d4e4f09fa90f8", "ref_doc_id": "9023d277-fae0-45f5-95a6-6469aed88c6b"}, "d51528f0-e47c-46ef-a09c-f7fa954bb167": {"doc_hash": "0f5d298ec5a427e305cb78698cd2bf8bbfb04b7bf64f49e2e2aa61bf7a2873f6", "ref_doc_id": "b94e7616-e08f-459d-b18e-d9c8cccc5c04"}, "cb47fab4-3a26-4663-971d-d0b1896002e3": {"doc_hash": "d1994ac64cb6f423065bdde0ea661192f2e41714cdb972061c2cef1acd8c086a", "ref_doc_id": "f190840c-f1c7-4a6c-9501-64b2db54a31f"}, "7d7f38d0-f610-414d-95e3-c3c680064ebb": {"doc_hash": "28017c9bff0ee33132f8c0d46f5819bb6970e7b386c6a55111cfafb3769daeea", "ref_doc_id": "849394fc-644f-4569-8500-914171e26ecf"}, "4a253d66-1583-4cfd-bea9-984528c6e8ab": {"doc_hash": "2fc5ed04da5e3b46e9142a458b3bc25489689d06fe9d6d1058c35badb8c19aa4", "ref_doc_id": "b5c10dbe-54b3-4806-8983-d3a98129a858"}, "9ca1348c-2def-4c68-a259-7d11d229331a": {"doc_hash": "4a95cd13f9e9783606af3bda339e005940bc5f3fed4e0f8026601885386c7f24", "ref_doc_id": "e356ac61-993e-4364-a94e-f7b445b0a58b"}, "9d0b0d10-d046-4e08-bbfe-d3a26db58db9": {"doc_hash": "0e862db225e3592f9aa1bfa0cbfc7980a588137542949b182a685fb16fa6416d", "ref_doc_id": "73ea29ac-969b-4aeb-9022-a5bd0df59e05"}, "49162b36-6737-473b-b3a9-7793482ee363": {"doc_hash": "060871737954125ef04f49f7cef3e4744883d582ae3dc1ae246ed540ae0f23c0", "ref_doc_id": "eac1c32c-3264-4aa1-bf3b-5fc59fa1b043"}, "8ebc2396-6364-45ad-82ce-dbab340a70ea": {"doc_hash": "91ee7b3bc02afac336f071b7fa27cfbea3b7135fbbf649942802a50f4c13a234", "ref_doc_id": "9526bc96-2551-4757-9b96-b103199d49a8"}, "58822eb0-35e8-495a-8200-bdf3662c0cce": {"doc_hash": "4cfb98cfb8a8d1c97f9fad61649a90edf3c94c180c0fbe24127b66ebd330f504", "ref_doc_id": "8ea0761b-9bdc-4d7a-9681-d8639b64bec9"}, "e1275809-2525-44a9-bafb-15e14944f645": {"doc_hash": "eedf57ab7fa64972be773174ff2f5e34169e463e1bd249bea3f2eacd11e0c60b", "ref_doc_id": "32061c73-6c51-4127-9f5e-6bb73e1ea3da"}, "769c905e-eb1c-4fdf-84f6-14f27e971937": {"doc_hash": "34841953d70f42e4033d36979977b313cd43fea36941ae27d4ab400e48d04bb8", "ref_doc_id": "af10af35-89d4-4899-8f12-81ec55b469f6"}, "bed8fca3-37f1-4a86-af25-385ae63ad65c": {"doc_hash": "2b29abab71b16bdb6960095f18fc04d23b1d085f81e2317e5ffa65005793e68c", "ref_doc_id": "c663017c-a0f0-46d9-8375-9598f20f5bf8"}, "915aeab3-6584-4617-9f58-fc713d80a9dc": {"doc_hash": "c4d2684971b384bef5209699cbe5d25150d8f467412fa9245a5095f292423966", "ref_doc_id": "d1de82e4-a7a6-4543-9d6d-42a010f1f92f"}, "79e3792a-83eb-4108-a9f8-bf22774d7ebc": {"doc_hash": "a6be054cd9ff38222c64f2e309c975fbce6365d3d856d2cdbc5f9f4c53b5da9f", "ref_doc_id": "b296c27a-953f-49b2-943c-493f33ba628b"}, "61753fa5-98cc-4327-96d5-64296678dbc1": {"doc_hash": "0217fd09fe65f5674cdf864ba1b614369618c0b0b2340e2af3c12fedb63699e0", "ref_doc_id": "b2cbc931-737c-4e43-82b5-4787d6ff0a47"}, "0ddc2be0-ce5a-4e4a-a046-e87ae0be01ec": {"doc_hash": "0c8b3bc971807e82fdd313ef978405d8aab28c2b37eb454d887d5a0e22229198", "ref_doc_id": "433ec58a-41ab-4f6e-baa3-5537eec5d764"}, "f68b9e7d-da2f-4e1f-96b0-9d1bb241ca5c": {"doc_hash": "bcd977ebeed5920c5f7aa95b42d895920cb13a263077407bfc53061e13ac31ec", "ref_doc_id": "d3469469-a7dc-48a1-8114-c6ad60289b02"}, "675d2460-93ba-4808-9665-89eab9f8d9cc": {"doc_hash": "da83a362319ed6bfc1651aaa6cd3a7fc49c832cfae977dab71cceaacf38ecf47", "ref_doc_id": "92901df1-6b57-4508-9883-c67975b880bf"}, "1507ec4f-e5eb-4eae-adb6-b0da7e39a5e4": {"doc_hash": "b62278c2cd55e3cfbe1079f50c1053ea8018e417c75d085df3a9b31d91555f73", "ref_doc_id": "9bf6d0f4-f6c7-47ff-ab18-11ad9a806eaf"}, "130f7a3f-48c9-41a3-85bf-f050bdb4cf02": {"doc_hash": "8a30b6d69dc0ecb628a01c1c20204c245bba188d87557cff16db56b6270e701b", "ref_doc_id": "c553e89a-8eff-46e3-9bf6-baeba39fb35e"}, "02aeba3e-3b4c-4e7a-bde4-4916d2109590": {"doc_hash": "0e9db29daeb0cd5e6705e7edc0d2f026db0c3cacdbcc94b5ebb34e5798581288", "ref_doc_id": "477b0431-83eb-48bc-9e40-157830569fb8"}, "d13cf60f-7ae0-414a-8adb-baf89547fa12": {"doc_hash": "07252610f50dcc8f0492ea677f4bbf8071a78dbfb8106794c332d0b303536a95", "ref_doc_id": "654b897d-5ce5-4d9e-a1d6-375372571733"}, "4b4cfded-8949-4b05-a853-f4379e0166da": {"doc_hash": "1e65b7981b23df148d735a4b55e84494810f6ba433326c5bf2471ac5d317d17f", "ref_doc_id": "edf49ec4-4d0b-4505-bff6-39e537e5d32e"}, "2e587b98-181b-4b7d-b59b-2c22706e75f0": {"doc_hash": "2bae0e531e5f17efd46ca0af02082dec8148cb835bae9bf1f87495f07bed5867", "ref_doc_id": "8cdddba1-58cc-48ab-a868-f85419425888"}, "f65e948b-543c-4c3e-9d06-36a16842a1ee": {"doc_hash": "e2ca06a9b31ef7420b2fcf1cf94bce54f4d8ee6ea73b5d7970ea070aa2ff1616", "ref_doc_id": "3b6e9bd9-77e5-41ce-84a2-340f4dc22022"}, "9b52bcf5-6aea-40ae-aaf3-05e8d96df639": {"doc_hash": "b5c9ef82b511bc382505d185824d9ca3b0b0f56602d3df31264550e81880ac4c", "ref_doc_id": "5305a6bb-8838-4138-a781-5f865e2a288a"}, "5767ab18-6e20-4627-91af-3637d7f1a09d": {"doc_hash": "525b08d4ec153d70069d587e91d33d5ce0c7030e7d77c14a9123ca9465271c74", "ref_doc_id": "5d74f000-553f-4673-b3d0-28cbababecea"}, "6751d0ef-b8bb-443f-8614-b1d907c212c0": {"doc_hash": "c99dee49c1d17616c75b3cda4e8dbda4118afed27b33d541e59e132fb4ec0db7", "ref_doc_id": "fdd79aa2-d716-484a-a5fb-b48c5db3d5aa"}, "8ab66ea3-8192-4554-8f82-ea41d4e94aca": {"doc_hash": "82df02815b80808f3fef943d6cc87f7145c017454aebf896df56ab75f7202569", "ref_doc_id": "89380637-7b41-45f2-94b6-102faa2120cc"}, "db6014ac-e6a5-49a6-9f7e-aa422426479f": {"doc_hash": "04085044075b39ca807a2740528ab926804e77664dd89b2a8a590559a7a5dcd8", "ref_doc_id": "f86f8db1-8f12-42ea-8488-e1c3f148d78e"}, "bb6121b2-c770-4cd8-9d65-d67a062c63f4": {"doc_hash": "0b5b7d81ca1cccaa9169ceff034d2d19f43623901ff2aa41859ba817e3ee3f6d", "ref_doc_id": "b03e76c6-5dbd-4cc4-86b9-0c41fbb6e934"}, "f6195136-b503-4e23-bf30-71204259bd9a": {"doc_hash": "4cb1c378e9060ae7fb98ea8cd63da1f5af9dc47c0762c1b70a43afe60f7db3be", "ref_doc_id": "a44778b6-04dc-4c57-9d08-5713937c5fef"}, "f94d4268-a09d-452c-b0d3-cf107a84fc94": {"doc_hash": "4508bb354a1ed811b9a19c7d5b693d20bb166b550e8e2367b176cf16ef8add24", "ref_doc_id": "3b2847fa-3592-4070-aa79-ae706c9bea34"}, "e2783e38-ecf5-4d4e-a4b7-09c4e2ae2e6a": {"doc_hash": "08e322161f70c054e82b6f30b00af9007b108342e376b1030985ce5f5c1f8b8f", "ref_doc_id": "f79cdcab-543f-48e2-bb71-863126c6495c"}, "71d5db72-221f-44ae-8812-54b0c05a8556": {"doc_hash": "f7b403d3a52862c24cd306ca982c35ad9125c2b3b9946b470c5b5304df6c1c20", "ref_doc_id": "f721df7a-b66d-4897-9ea3-08df3e5b20ed"}, "eb25e297-6a78-4bb2-973c-3de5fa8fc760": {"doc_hash": "e2b136c7b4b12f92d23657335f0c6957049044f06086d072b10d75bedf045130", "ref_doc_id": "bf341016-cc1e-424a-8872-7ea2560af094"}, "9bee7d1a-e45d-4743-9edf-53ce4139b13c": {"doc_hash": "c7d9c26f7e717546c43c8081ee69fac0ebc4d0243c078fd3cf59b627876f0293", "ref_doc_id": "07352b2c-813b-41b2-b7cb-cabd91963b87"}, "fcca7c53-29a4-46e4-99ed-0ec171908c81": {"doc_hash": "963f2b7c4b77801aa4b07dc85a63ed1031e24da944132b2443b9bf368accf328", "ref_doc_id": "98ecebcf-8483-4dff-99de-733175d15d8d"}, "efe5721b-79de-48e0-a2d0-2389066fe3a4": {"doc_hash": "361af72b290257c99c7fa0e4bee60019c1d081b409fc88708fa3393bb12011be", "ref_doc_id": "bf851eec-2363-4255-bfce-6e5a2ce887d6"}, "cf6e7a4c-3047-4a28-b9f8-f9950b935083": {"doc_hash": "6a4dc993a6b03e0fafee36046f3db0d2acf9bdd45d13568c52c2d65a998df7ed", "ref_doc_id": "9482f7ce-699b-4e10-9e1c-330a59a1ac13"}, "8bd3240a-47b5-4a05-ae24-3ea8daa969b6": {"doc_hash": "1d2c62e737c681379052a09a0d913ef1fe330da3f1edabd53b7da67e49776a2d", "ref_doc_id": "d333ef46-2cbe-44c7-8cd2-7d22ef295230"}, "bdc9d362-8f2c-434a-9e92-09a5bfd224f6": {"doc_hash": "e86c102318526438aa2564fb47b7bf775fe6c4320141c78e20aa92f7674491d5", "ref_doc_id": "d5899192-847d-48b4-8348-1000d74a02e0"}, "0487618e-03c2-4e67-b652-56f46ad28697": {"doc_hash": "2e5c0d0545032ab2dd16fa86b8450c8716f9adc9003781176f3aed8774b74459", "ref_doc_id": "00dff377-29bc-4669-8075-bfab96c2ca66"}, "7aa3a21f-8102-4da9-ba10-7ee71283fb95": {"doc_hash": "9760e177621b63923b40d41a9bbac67282ca5d977b81dc1fa44c23fef9a29df8", "ref_doc_id": "bf4d503a-d04e-42cd-8153-0ab8786dba05"}, "38b8eef2-7afd-48f4-8f75-8b0a020124e6": {"doc_hash": "350e5c3ce1131b8b55ccddf8721ec317b07cc362ccdf315cf86a09c3a3634aec", "ref_doc_id": "5332aef8-8ef3-4fa0-b8ca-cdfbd77c062e"}, "a926350a-786b-45fd-aa91-6adfe4fb3def": {"doc_hash": "d4e75e820185b6869c55b5994d16653665465e4847d67cf5409787af1a64c838", "ref_doc_id": "979f47ee-e5bb-433d-a991-5b92cb40f992"}, "113352a7-c106-4583-8bb2-06d6c0fbf89a": {"doc_hash": "81f04f9d2abb375bbda6f94bd24c671c66605d7b2e0aa478e3e6c908e42dba98", "ref_doc_id": "4281f524-bc7b-4554-b8b9-a13b304bc605"}, "64187f61-a927-45ef-baef-2a35c3f136bb": {"doc_hash": "342a177eb4087e2f074a7cd1d9107604c8e33361ec454c1df7d4e0987666a023", "ref_doc_id": "6a0515f2-807e-4b4b-ac9a-376f6efe938c"}, "44558ddc-be83-4265-b51a-d45e16a8caae": {"doc_hash": "4365aa476e96f415655385f807905aa683d13adf6fe88168fee50999af02b752", "ref_doc_id": "de4298f5-fbc9-41a6-a59d-7c5f671d60a6"}, "ee4d1527-accb-4dd6-9838-4c44408a2af9": {"doc_hash": "c06cc5e5ec72751c1158d4c6b0348e9fa5c68797c31c63a9d8fd268c7b070375", "ref_doc_id": "0c36b890-20db-4625-88fe-dc89dd530421"}, "1e7aa0a3-2aea-4491-8d56-57c784e9f604": {"doc_hash": "598baf682a9cb7384aa0dcfb5f4ec39f7fe6805ee4ead391a1978a6777619c7b", "ref_doc_id": "8e43b393-8712-4bd4-90e5-4e9f272248b2"}, "2fd8ee16-da22-4e9d-9936-c0c22d8e1ba1": {"doc_hash": "07f43164220f04c9917c211e42d9f6f2c66e6889b168b74e809248b063d42d8f", "ref_doc_id": "0a2cac94-e3ae-430e-853e-96e87c7c4076"}, "67e1cb8b-5256-48c1-a90e-ca6003f5c620": {"doc_hash": "1b6746f9f255f38f017933c334be0aaf7d5a368a474c256df7645c75829bdee5", "ref_doc_id": "563600d9-22df-4913-9ee8-0d844699b933"}, "18dd071c-a3e0-44cd-af83-15e2cde938fc": {"doc_hash": "21dfc7612ead7e9f53621d90048baf6e2457f8683fefa59624772de936601282", "ref_doc_id": "18c99039-ee9f-4928-8f54-809ac322b639"}, "5cd3fc98-b977-4d9c-b7c6-4d3b25857ff1": {"doc_hash": "477895f84b5ac2692a216cf5a7d674e4067edc3a7a1b0011f6d0f4594ff887d7", "ref_doc_id": "f846fa69-fbba-4bc4-b518-1fce147a6f1e"}, "a14086b3-9ff6-43da-a005-0537ec346656": {"doc_hash": "b6e1db907976c0d257ee689083cce8d553afa9dfd731a1b640f62e2767ab6336", "ref_doc_id": "a38742a5-fa61-4ae4-8eb4-a33df82b70dc"}, "9072d78b-a77a-4797-8cd8-92fe4ee426fb": {"doc_hash": "b7bb1769be1b834201a00a3b14b763bfc332a97718f1c4d10b1e0ced7e994fa8", "ref_doc_id": "23480e28-694a-410e-8c32-c1564b42eb4b"}, "c3d67f7c-f583-4e4d-b107-2555d2b17450": {"doc_hash": "5f07469e0aacdd6cbf2dc79addb212c50c62489bf706c427596106c0e479d084", "ref_doc_id": "904cc442-d779-4828-9fb7-2b83100b2806"}, "93cfc5ca-d795-40cb-a027-a8bb477e988f": {"doc_hash": "e16e6e91ca73dd6a98cd7aa1dd5ac5ab71bd843edcd7a2ebc7e6cbfc286a2638", "ref_doc_id": "905c92b8-d357-4515-b79e-5bff0111919b"}, "81f08320-54e0-4b34-8ba1-2353b3a272cb": {"doc_hash": "ac05b476a09b14824ae5eb91387ca9140d1f10ab5da80d02f47d2d71711ec41c", "ref_doc_id": "38cd58e3-b09e-44e0-94b1-3423dce4b9f8"}, "3106406f-8920-4dc2-a1de-29e4aae6c3e8": {"doc_hash": "b4328f34e01962111df6b4284add3c5e750303670aa1028bf97263e4c95ce383", "ref_doc_id": "a795fad3-2212-4e02-9e00-514efac487c5"}, "99896596-fae0-4b23-85d7-3ba9a58ee859": {"doc_hash": "92a2f2ff6b34387977f245a06f453c54c73d01e63b8d2909f8861ae759192a07", "ref_doc_id": "2e108bd3-c332-42da-98dd-21c0e7067bc3"}, "f14295c5-8bc8-4bd7-a3a4-ea435710e33c": {"doc_hash": "07a2bd7e2ef10d84ff7380e267deb7647a29a19b86afe041e549c16aa94e8ae7", "ref_doc_id": "390775b7-73ca-4a1b-b432-7883309453e9"}, "390775b7-73ca-4a1b-b432-7883309453e9": {"doc_hash": "076466310f14ae7b9c22d778965d073a71d9e1909d3696d05f6df695c5a7b423"}, "990b7cf1-8db1-491f-96d9-bc316d7ef66d": {"doc_hash": "6a43a8f02b5c6ffa823ba62af1b7fa5f7d8c3818184dd4a342c1ba5a295638b8", "ref_doc_id": "c75a9774-4709-4ab1-8b53-6fd84730cc34"}, "c75a9774-4709-4ab1-8b53-6fd84730cc34": {"doc_hash": "29d504f7f8309daf72ffcd5f87ef33a1e6f886955dd138322b94f5f2ee58f03d"}, "2bce2a9f-d74d-45a7-92b4-4ccb7eba8457": {"doc_hash": "ff3925b68cff67ee84958a61fadd1219d8d62ddde352d591f689a912e92b0fd3", "ref_doc_id": "e1979233-032d-48a1-9317-03d767fc53fb"}, "e1979233-032d-48a1-9317-03d767fc53fb": {"doc_hash": "8abbba596e938fef5bd984877e46ec246122c0d869ad8048f0c15654d0dfab56"}, "57340b14-86eb-4bdc-97af-48ac997391e4": {"doc_hash": "295f590381673bbbd11f4fc7c29b0034ccbdedbbb961ba3eeab58e383088e74e", "ref_doc_id": "5fb1ee39-5090-4b07-90e9-c5bf71da6ed8"}, "5fb1ee39-5090-4b07-90e9-c5bf71da6ed8": {"doc_hash": "26e08ade6422621fff3c3db13a484a5ea286cfdc39a20c5c0be5ccf9c4d935d8"}, "e8c3f3ed-be45-4647-98c9-358ed28703c8": {"doc_hash": "20bf381c5320382a6d274308d967e50d5abd0fe7e90ce698c55b461768b8bd41", "ref_doc_id": "319077a3-2c6a-438d-90e4-63ebef919951"}, "319077a3-2c6a-438d-90e4-63ebef919951": {"doc_hash": "f94ec1b1e1cf5dd2756901dcd9f7b632339070ff14fd2815af55bec48f98794b"}, "a4d924fe-d2ea-4bc1-8159-2aaea4423b79": {"doc_hash": "0e1ac5f3956ffea26ee1ee0adf850f380841f76deac6fe8b0817b02370a3b678", "ref_doc_id": "897cb987-6286-42d6-b2d0-c654a3c061e6"}, "897cb987-6286-42d6-b2d0-c654a3c061e6": {"doc_hash": "2412a99583c3976d403c29fa19d98a43a38a36efaa492bf9c7e008f940d97859"}, "04fc9317-5a4e-4fe6-bae2-a8f0afcf9e62": {"doc_hash": "ed06e8e4f98cfaf70b1520dd84c6b17472997d6f6ad0e05af922479228d6dd99", "ref_doc_id": "2aa3b17d-72bc-48ba-b8ad-88ac5076cf8e"}, "2aa3b17d-72bc-48ba-b8ad-88ac5076cf8e": {"doc_hash": "14fcc4c14939fcca748602c5a155ba0b3d7064cce1a2c0037bd5b507ed14bd69"}, "fb2bf04c-4060-4c87-871a-5ada3b605c4c": {"doc_hash": "8e8e785cdd1020e5c9aa5148ec64e9c4a9cd2ab63529aaa4c9d273f856f1cb92", "ref_doc_id": "54d904ed-21db-48a1-8a45-b3ba7ba64f72"}, "54d904ed-21db-48a1-8a45-b3ba7ba64f72": {"doc_hash": "e94016f79adfadc9323b79f142cd89cdc9641ac08ded3866ed5263807bbb8256"}, "3530f9dc-adf6-46b8-8a48-8fea3a2e1f2c": {"doc_hash": "42c8a936b4a09ea90a07a4981b614e5964aad8c064327df2d75f96ef779143ac", "ref_doc_id": "5e74b34b-eb5a-4b6b-af4a-803a3ee3ff6f"}, "5e74b34b-eb5a-4b6b-af4a-803a3ee3ff6f": {"doc_hash": "26c35128ef6962ea9c3e8434a574a7484f3af733767ff60a0a97cd2045aa860d"}, "a99b20ee-a088-4330-b194-5e3a4c333303": {"doc_hash": "8a7cb62e429868b21cd4759fd61330118e84b24b21be90d4a343193052041262", "ref_doc_id": "80270694-d82f-438e-8c5d-83d03b0453fa"}, "80270694-d82f-438e-8c5d-83d03b0453fa": {"doc_hash": "a66ed61138c2f87837e733ec2ee7948f33f55bde9b908fe138b93bf37668bccc"}, "59d2d095-7ff9-444f-9171-bc1d4a3b84a1": {"doc_hash": "2839c297db3dbef7b928bc250b015beed5fb9d8306fa7b836df584aa67d08733", "ref_doc_id": "9b5cad84-0d77-47bd-9483-4c8d13e17508"}, "9b5cad84-0d77-47bd-9483-4c8d13e17508": {"doc_hash": "0e932856d50b38c3c655c645f2f4a1f8be385712ba415496769640511623a352"}, "13c833dc-1fb7-4089-abc8-53f7de8563ce": {"doc_hash": "c4d9d7a6475e9c0be0d6458f9f6343049ef08b93da861d03e1f753cf6a94e78d", "ref_doc_id": "5c8c757b-3a1b-4444-807f-ceb985abe70e"}, "5c8c757b-3a1b-4444-807f-ceb985abe70e": {"doc_hash": "c0b3e7609600c2eb0d6059dd3efffdd6d2cd5cb06c898cc496ea7a00266df302"}, "acb56be8-9a1b-4c3b-bed6-d852c6597435": {"doc_hash": "3b7af8a2d1a94824e987670ab7e65b7bd6931f79757fabdffa7eef38e23a4b48", "ref_doc_id": "4eece4c0-4d4c-4693-836f-573dcc71cd53"}, "4eece4c0-4d4c-4693-836f-573dcc71cd53": {"doc_hash": "1723e9cfef4509a164f4e712065e0f66b250d167d208254f3a803989f887bbee"}, "5905125e-58c9-4361-ac68-5601addcf354": {"doc_hash": "26546788f48102f9c31e4699bd7f4a7617fd3f7f3640857187fbebe58f4c6784", "ref_doc_id": "50cb0eff-5ff3-46f3-9aad-b9a3c3f6a225"}, "50cb0eff-5ff3-46f3-9aad-b9a3c3f6a225": {"doc_hash": "db3b2b0c02eebcd2c59b33cd1851af8b853f071d91181e02be027faacd678f27"}, "538818db-d6d0-4ac6-8997-48e8bf90a63a": {"doc_hash": "57aed1a20b5fc157b5d8cb801485c3b39e86914ca1d3474f4746f74c6e555ec9", "ref_doc_id": "f7a69ada-233a-4113-ba6f-ad5324c5000b"}, "f7a69ada-233a-4113-ba6f-ad5324c5000b": {"doc_hash": "837c96d10ad30929fb231917a8a643dcb3df60e35eded73f1ada18fd36a7f617"}, "44c3fd5f-3a8d-4790-8196-b48e8a7912a4": {"doc_hash": "4ea422499b029101e20b28e3ed9be4443d64917d261bd3c7fe709febc9abe1ba", "ref_doc_id": "da18c6d0-9e9d-40ee-b7fa-e9b2ca3f0909"}, "da18c6d0-9e9d-40ee-b7fa-e9b2ca3f0909": {"doc_hash": "7439491767f199acb00c7abf0a906477e71f492c8f91d3929da1081c0b79f1c9"}, "68ff64d1-f772-4140-a8bc-ce1aff2a7cf9": {"doc_hash": "173b92997ba743e1b1e602149b2267fea04786822d36eb2f385b4c32ec92b0a5", "ref_doc_id": "4f14144a-bbcd-454f-a287-be3319c91fe5"}, "4f14144a-bbcd-454f-a287-be3319c91fe5": {"doc_hash": "f656fd24e84579dcc7ce09bf9845f1e930cea6d2ef932c3326cce837ed4798ab"}, "95b96890-c2e0-4a0d-b1f5-825cbec81892": {"doc_hash": "ed04292cd915aee6bc0e1cbcc4c8423a111eaa65c7d26eff5017a2d054ad2e3d", "ref_doc_id": "1255c252-46f3-4dcd-873e-0107ad97ed4b"}, "1255c252-46f3-4dcd-873e-0107ad97ed4b": {"doc_hash": "2999436c4bcf44955e99217fddd17bf90195aee99a50a19363744fe3269636e2"}, "5d72d2be-dd7d-4497-a15b-5ba2afe3c678": {"doc_hash": "41b351a15456eab65eaf17b816d66d3dc31436586d3762e6f7df2ad1b9b66426", "ref_doc_id": "91a516d9-cd79-4482-ba5b-4c0bcc201abc"}, "91a516d9-cd79-4482-ba5b-4c0bcc201abc": {"doc_hash": "369dd1695cb6d11d3b94f7111ec7535d2696df75975a5b1898fc61f29c55a141"}, "8fc6e945-90cf-47ec-b4b6-7d80e049d8bb": {"doc_hash": "808437018c57e7921c625f9051d0da8f8c9a1985f722280e6ce9a47f11c532a5", "ref_doc_id": "f696f574-a0b5-40c4-ae6b-597d1cb86c47"}, "f696f574-a0b5-40c4-ae6b-597d1cb86c47": {"doc_hash": "50e76f2ddc7f14a111edc5a329ea189ded0d4e6b029556fa009622d6f6963cc6"}, "096b2c11-b7a0-4d08-939e-f88845f147c3": {"doc_hash": "d4429c5d68f6efd806831d9f6835611a02350d5a5dda4f6901f269a6ae48eb5f", "ref_doc_id": "d1f5ec44-598e-4805-a737-446d3782b359"}, "d1f5ec44-598e-4805-a737-446d3782b359": {"doc_hash": "4559251253f675872405a6faef145a64e562960c298ef03b3a2902e6228014c5"}, "85cff011-36b1-45e5-929b-1355b41729e8": {"doc_hash": "0a9fbef9818aec38a2bfe9442189d6793f7f4419cc0141895dafa26c3ae85873", "ref_doc_id": "93892016-49e0-4ee5-8eb1-600130690e97"}, "93892016-49e0-4ee5-8eb1-600130690e97": {"doc_hash": "e4b45018a265af562ce0b8d84abf5743b069b74ba55dfd38ce57b6d35f7d0234"}, "bcdc8e12-a386-42bd-9bab-60ab41b7472a": {"doc_hash": "1d40aa007928fbbd4ace8eda841e64f800e131b84f592306e44bf50f4fb9a44a", "ref_doc_id": "1a3d9013-8129-4b59-affd-4bf6d3c3b30d"}, "1a3d9013-8129-4b59-affd-4bf6d3c3b30d": {"doc_hash": "3531e4f1260cbfea19ce42065e5f94d03a514088167a2eee7e793b12ca39a7c6"}, "7c2d66cd-60d3-4fbf-9078-6d24f7e529c2": {"doc_hash": "ac2b60951c7a891e019cec739731f35b325c27d80f9a3459cafaf5bed7b56fe6", "ref_doc_id": "88039fb6-0435-4027-ac96-952b87d3461c"}, "88039fb6-0435-4027-ac96-952b87d3461c": {"doc_hash": "43b2182fdbe6c85c1f64ac6b8f4677ea6e9a366130c6d3a37ef4e7bf7855734e"}, "af0be530-21ff-48b7-8529-efecd6bf9053": {"doc_hash": "cd0e1f2b2b51f6f97c0157a91c423a6482ad4d0354b2a1bf50c8c4a31d1c87d4", "ref_doc_id": "8565e127-64fd-4e8e-87b1-a62c4e0a4087"}, "8565e127-64fd-4e8e-87b1-a62c4e0a4087": {"doc_hash": "66f4f0fbf7374dbf1bd0cdc045af457b8e47a98039e3989f8d7c885ff1223fcc"}, "22451f25-82f7-4b91-8668-b55d6feec00d": {"doc_hash": "eae9763a9150b579aec93662638350d930600286f0c530294305525dbc8b87b9", "ref_doc_id": "d8636770-184e-4456-bf21-7c0ed65ac51b"}, "d8636770-184e-4456-bf21-7c0ed65ac51b": {"doc_hash": "e7f5e586b548153eba3380e83129d8fbab61a096a6654030d553a9e84506e84e"}, "f15790b5-5a4c-44ad-b951-95d751207ac6": {"doc_hash": "d2722852d25a990d31b23112f14cee4e6bcac4e8b45067a26781aa71487b8e22", "ref_doc_id": "25ffc98c-2146-4ccc-8af6-4d0f1c035148"}, "25ffc98c-2146-4ccc-8af6-4d0f1c035148": {"doc_hash": "6409f47f95dd6b604320468f640b9bf20b7b4956b56fd6de0ca78c0e803c1e80"}, "92944ee2-8bb9-40ba-933f-96c4760a53aa": {"doc_hash": "ce471a0414fe044691fc2334d7a15786fcfb3f5dfd2abefbfbef2489ee7ed14c", "ref_doc_id": "55ec8e21-69b2-4774-b3c3-25617312f725"}, "55ec8e21-69b2-4774-b3c3-25617312f725": {"doc_hash": "e03467bb3fa646c63b0b5f450ffc428b6d0eb452ea63988a2d99102501bf418e"}, "68a758c9-67a4-49ab-8480-0dc610a7a50c": {"doc_hash": "b45c9b73458621e561205872e24130cf29114dcfb71b30605c68c083e1c1d314", "ref_doc_id": "7ee03cff-3537-4e6f-b56d-a8c68697da5e"}, "7ee03cff-3537-4e6f-b56d-a8c68697da5e": {"doc_hash": "c7ef1d384045c08c7197e27e469a00a06b45301b270ff62a6612b4038ba186df"}, "533e926d-ee75-4d15-aa72-f636551be196": {"doc_hash": "3273e85bd78febcd2fa2b9b1b89ca6bb8f66d99d221722618bb02b054f45d324", "ref_doc_id": "ff7673b3-65a8-4ce1-b4a5-8ae68668275b"}, "ff7673b3-65a8-4ce1-b4a5-8ae68668275b": {"doc_hash": "4a71079cd9afda96eb8d9dba2a9298b781ca167944ea25ac0f21007b933ca4d8"}, "09ba93b3-53b8-45e1-a067-abfd9e60fbb7": {"doc_hash": "cc2e6fd1b16fd031c19bca44f40ab3db691206307656705fc90c200c61c92fe8", "ref_doc_id": "2fb1e7b9-2df7-488c-a17d-2ea45d6ed82f"}, "2fb1e7b9-2df7-488c-a17d-2ea45d6ed82f": {"doc_hash": "35798eca427bb6dc8670b5bad0bdc48fa78c28979ad86f0566d1f92a58788a8d"}, "376477e8-24fe-46a5-87b4-63b466c105f3": {"doc_hash": "0a4878c85e8be4f514aec542d3fed321abc0d5f22c310a95c7db6d711da20c6a", "ref_doc_id": "856ec17e-c35a-4961-8813-bc73be85ba28"}, "856ec17e-c35a-4961-8813-bc73be85ba28": {"doc_hash": "c7506400eaf108a0215fe1da67ff8dd455736132db472db07245db9944e325b1"}, "e43ed44b-4c53-4fb7-a89d-50a3c917d88f": {"doc_hash": "136a1a547282fd69903215f206618c58c744f02ff4545101ff475aa2371a4563", "ref_doc_id": "a4788d3a-7d86-4c74-a97b-f660c85ba81e"}, "a4788d3a-7d86-4c74-a97b-f660c85ba81e": {"doc_hash": "9ac4d6122f7adc64de012f5014ffbddec1d6c878ccbb181c9a388b4ac5797a6e"}, "25a77643-4be6-4bb9-9397-2a1a026050cb": {"doc_hash": "2c1c27cf6142ef316c23813d461f01342688da2b2d303a34945ade92b05cb7be", "ref_doc_id": "1135ba6a-9c20-4df1-ad71-ee3456f0192e"}, "1135ba6a-9c20-4df1-ad71-ee3456f0192e": {"doc_hash": "6f58884d687eefc9ac06ed1eb0bdbcf476c41b5900ce9b113b9f96c4b3c08aac"}, "f2e498bc-f37c-4d4e-90f7-07af7a0a7977": {"doc_hash": "a69d53d5f786deb9e1ad3a244ce4f99c21e9ded78c198223a890620fb581fcc3", "ref_doc_id": "47c5fa76-12bb-422a-8b91-9e19ea224364"}, "47c5fa76-12bb-422a-8b91-9e19ea224364": {"doc_hash": "eb55ec986a7c2bed3aa5d198ca4f1df87fe9466a6ca90e17bf900468c2bd15c2"}, "907e77f2-dbab-4bd1-9278-bd47a754380b": {"doc_hash": "002a52e26e7b788eccbe206d3c4350d1c865c2102c36e7a32827d8d969d6e625", "ref_doc_id": "b9c2efa5-79fa-4ce2-b2d4-2f6d1250e449"}, "b9c2efa5-79fa-4ce2-b2d4-2f6d1250e449": {"doc_hash": "961298b66681486f527a9c18c76ec72cb2b2f1d1f8b5ab9bb46c9749b74e5462"}, "c0850307-e8d2-4c5a-9251-0248f5f7aa26": {"doc_hash": "a16932a37ab7e9024f8c88c22af40da0caf56aadd76c28b91a9ae45c407260c1", "ref_doc_id": "d9709f5c-98f8-4a21-beec-02fb4704be0e"}, "d9709f5c-98f8-4a21-beec-02fb4704be0e": {"doc_hash": "7d8ea44f577c9f11374b45219d976f3c40e949b3cededae3e4e38be246f8c1a3"}, "59af2193-22a5-4da7-9c8c-ea0f41752d83": {"doc_hash": "2b54acb4267957251ed3caa48166799829c1f8322849fd8e0302f73d0dfe0121", "ref_doc_id": "209dca3e-1c5f-4525-9320-993732fad42a"}, "209dca3e-1c5f-4525-9320-993732fad42a": {"doc_hash": "3aa1e5f5827a0616458cb5588bbae4476a1f060b0aaa7efb8c2033df8a657d17"}, "1efd72ea-78e8-448e-aeca-b5778e3f4b04": {"doc_hash": "5272018e7c28c2d7d57fbc43ad2fbc7399b2c31edf6ab6a2b1e9d1cf72332bfc", "ref_doc_id": "549eb705-0596-4651-b3d1-26e743c1a7d2"}, "549eb705-0596-4651-b3d1-26e743c1a7d2": {"doc_hash": "cc2015839963d9dfd66b3d41183dedc3c1e29491341e3e65925db646c6af6f75"}, "248e33bf-88a0-4a73-ac62-e269450f3051": {"doc_hash": "78509875209e6bc520dc8a80555a1f00712063ed3b445c5cee8bd819ca42aaba", "ref_doc_id": "f851805c-0de5-46b3-84dd-ca001c4b7a87"}, "f851805c-0de5-46b3-84dd-ca001c4b7a87": {"doc_hash": "1c7bb284ef4a077b5c95f83743c7bde02ae8b4fe6480a1de9486cf7e63ebdc08"}, "0b520c7e-b477-48a3-bd46-c8757100f8ab": {"doc_hash": "12724aecadbb1892cf1e40299b9543c90c57b54cace1d2c4a0237b651c440864", "ref_doc_id": "86b63677-0291-41a0-a0d9-2406faa8046f"}, "86b63677-0291-41a0-a0d9-2406faa8046f": {"doc_hash": "234c1e08cd0ad19a810f1d9cced7efe385ad0f54b35b39c99f60c9be3fb68e99"}, "1b916caf-54ed-4890-9fba-d9fa6647ed34": {"doc_hash": "43ff6f070cd5215b40e7382b3717f2ed6f23b0901f7db1956283bdcbd476f953", "ref_doc_id": "47208838-32d0-4a89-93dc-33610e133da1"}, "47208838-32d0-4a89-93dc-33610e133da1": {"doc_hash": "d063b691f292623050766ccba7eda1c0b0e0a3648604e0a1c9aa08fdf571d28c"}, "dc431c00-b433-49aa-b989-234c35ceb779": {"doc_hash": "df6afdcf22ed43c07b14642337b89ee2af12a5f51a8c062ddb1770e01b9a6875", "ref_doc_id": "8c56baff-f625-4ec4-8843-40ba82c47f3b"}, "8c56baff-f625-4ec4-8843-40ba82c47f3b": {"doc_hash": "a25a2bacfe76a32e4db0b5a6b56d194ad81bfd61d76c9cd21ef465c3d51a8243"}, "ba08c877-faab-4163-b4cb-964157b9845b": {"doc_hash": "0a9be2c5cb8a0352fc13f0e3e13903bd739c181748d6ac1ef58c8feb0409daf1", "ref_doc_id": "622a7326-69ec-4c97-ad9e-ac8a53b67172"}, "622a7326-69ec-4c97-ad9e-ac8a53b67172": {"doc_hash": "e60c4bf352e94568c1a854b44dbde447b07d33c0563f3c4686e54adaddb99abb"}, "fc552436-dca4-48ad-aa55-83c4ce4b443f": {"doc_hash": "6cbb08918feae9bc0793f4d83fbcc7d1ed7b3648ccd335772e6d1827a6736f53", "ref_doc_id": "dbb582f0-9ec9-4f89-b643-df55518f9c6c"}, "dbb582f0-9ec9-4f89-b643-df55518f9c6c": {"doc_hash": "f0e1ffc5f1e0376ee800472f5b12d85fe6c4b98f6a0f0f9bca6947d45e5af392"}, "44a40ffb-3a1b-40e4-8318-c92add56ee94": {"doc_hash": "6a2b84d2639f46d732e8a518fab2f49013285fb4d731c43482d2cf3876e4f975", "ref_doc_id": "9a9528dd-8360-4fe0-9b1f-3a0b63b0b69f"}, "9a9528dd-8360-4fe0-9b1f-3a0b63b0b69f": {"doc_hash": "14f3d5f87ee1a4999931b85ea0ee177702b38976f30061acac6b0c7ea0d92198"}, "ff3ae762-1abd-44d9-84f2-a0e8a77be634": {"doc_hash": "4944d67ae5c42cf4ce030dbf7c386305cd850997ff73d81268920337ebf95e51", "ref_doc_id": "b602f896-d8aa-45b6-bac9-c6f20193a9c4"}, "b602f896-d8aa-45b6-bac9-c6f20193a9c4": {"doc_hash": "ee471815c0b8a4dfb6cad914370d66117222541a1e5c97ff7bbd9d94214d2b50"}, "bcaa8d2b-098e-4fd8-b20f-6a19b1b3bc69": {"doc_hash": "320696e3da9c64d19516416c167422505d807afb70f887e38dae6702b9ebcec8", "ref_doc_id": "e7f34dc9-d3db-4e14-8224-e3f94ea79a6e"}, "e7f34dc9-d3db-4e14-8224-e3f94ea79a6e": {"doc_hash": "691ce43542a2c24e930b62724d8cecf26f9321b59e7737fabadfda145cdc9d6c"}, "c209a8bb-a3f4-4f96-a693-49a3e44ab17a": {"doc_hash": "1de2e06148098322c66ebfd9c69a8f6a74b420fd56c7246ee091a4c7796730b2", "ref_doc_id": "91ab1f46-f481-43c3-8d2b-fd91860138ae"}, "91ab1f46-f481-43c3-8d2b-fd91860138ae": {"doc_hash": "6c7176dda93216a6415d57df0cbcbe0e6a1b997710052a084341b6a826e5a549"}, "330f1faa-1546-49ff-8e97-4bfcd61dd7d7": {"doc_hash": "a04d13cd028bc8817beb17be73ebf378df741a56fb98f989d74b347b5403247d", "ref_doc_id": "91dc68ee-0783-4b9e-a937-147f9a0c2063"}, "91dc68ee-0783-4b9e-a937-147f9a0c2063": {"doc_hash": "6fee2cf05a776496b13c8b3ed159c37a793a362471ab244e4e804791ca7a6206"}, "eedc18c6-6ea7-4e44-934b-17ddcd50ab75": {"doc_hash": "b162f5f39f5b240719d8aa9b07cd0427dd5acdcf5d0cf30347231df2bada1a87", "ref_doc_id": "35c5ab7b-3271-4f14-adb3-8ab6a7021f12"}, "35c5ab7b-3271-4f14-adb3-8ab6a7021f12": {"doc_hash": "ffeab17bfd67aec32881b660864fbbf87f92764877cd09bf4b7d33d858ddaead"}, "7942043c-2a19-403d-92b3-4252da50c885": {"doc_hash": "32e9f8c0c598e0899c5dfb27c90367ba0f8bfb69ff5a16d3035e81b843a100f0", "ref_doc_id": "90fddeca-16f4-4209-a617-245cee723795"}, "90fddeca-16f4-4209-a617-245cee723795": {"doc_hash": "9732273dfeb3edccb4ee4e1ce2ebcd215314f87964c01e15bd187cf6a0b49c28"}, "9ca68525-acca-432a-b07a-67b0f6882344": {"doc_hash": "f34fff614c20e000063094b83b525b64336e60207b4d64298b474887a8632ad3", "ref_doc_id": "55fcaa92-ab8b-4693-8779-0b64f9a81759"}, "55fcaa92-ab8b-4693-8779-0b64f9a81759": {"doc_hash": "bedfefed02abe8c17c4e423d6369f8d116539cc1ea0906eb74630138242c7e1e"}, "e51d87ed-d0ed-4879-a40e-4bc7d861d6ab": {"doc_hash": "4a173ee368fbbc26adb1da7c18a5ba5fdebef3f53446863c68687fd1fda92d8d", "ref_doc_id": "4b9a3583-7636-4200-827c-c08babd56c54"}, "4b9a3583-7636-4200-827c-c08babd56c54": {"doc_hash": "a84c0952d17a090760b49a34e99d0f15c2cf8bb1f5add7dc54754efcbda20352"}, "250acb03-d118-4007-b9ef-88a0b285a1c0": {"doc_hash": "5d1019ec2a649258dd8b7191a2884c5de0d2c175ebc143da1b96d4b749693adb", "ref_doc_id": "aff86d27-7984-4b85-aa38-855a4f775804"}, "aff86d27-7984-4b85-aa38-855a4f775804": {"doc_hash": "3a3a37c3719553f8f8064ef752ab0a10f64b21154f9dda0500fc6fb8edbf9779"}, "06a4982b-3d9a-4aa6-881f-bc2d3802d80a": {"doc_hash": "9065b6c9349cb09454d7afb934d8e92127e96a8e9a5ff881660875bc6a30b5b7", "ref_doc_id": "e1a6446d-497b-4011-a12d-4cf542371059"}, "e1a6446d-497b-4011-a12d-4cf542371059": {"doc_hash": "3eb82c627805228cfed6a3eeb1f55597dc10c820f06d200c5b61a9bf4a7956fe"}, "d65fce8a-f657-4f8d-bbc3-bd14b5ee1500": {"doc_hash": "9af4ceae2c262db520776584cfa6958f09a943dfd05c9561555bc9090afb9d52", "ref_doc_id": "d636c721-b4c3-4311-8e6c-72d6035413ad"}, "d636c721-b4c3-4311-8e6c-72d6035413ad": {"doc_hash": "17fcb4b87efa1671a1c8cc7153a273a85d73da3e7ceca1e6ee36473862810511"}, "c36f4f78-ae09-43c4-b5b0-1a7e689ff498": {"doc_hash": "1a80909ac56e98a897d669f6316dde4b21c255cbbc8c6ad9f9a28b2ea7e6327d", "ref_doc_id": "83be7494-9cef-49c1-b7fc-e674f1023213"}, "83be7494-9cef-49c1-b7fc-e674f1023213": {"doc_hash": "8fad5cf96a7d0614fa4040b5ec724138f91662a269f1a0c612c0b433d9c7dd2d"}, "422ba458-794c-4cf4-b36a-d1ce852f7ee6": {"doc_hash": "0fda27c24ba73fb82d8a9f1c85f6b8a3d4acdbd57ae2c0f50f1c7f2746cd9694", "ref_doc_id": "88d9fd90-4a10-4b66-a41a-2e47fa286831"}, "88d9fd90-4a10-4b66-a41a-2e47fa286831": {"doc_hash": "de4197e5df4d7c5c830b8e232c61892a55526ea8a3fd59fde6d15fb5b17cdc26"}, "e73dca09-83a1-44b4-a42d-c4b17a7257ce": {"doc_hash": "972c5e8a1a25833e176e914dbc56ee39f131fb8746d1a26d8e459951da56d8ad", "ref_doc_id": "04b72893-0a89-4468-94d0-90c16f2fcc3b"}, "04b72893-0a89-4468-94d0-90c16f2fcc3b": {"doc_hash": "40a6c1909cfcd6365c1af43901b8f1d1bff53665b97011a9627acbaadb0e8a59"}, "5260150f-11b8-423e-81c9-b64f7e413e8e": {"doc_hash": "f6f2ecf4a01a567cca8d533b41f21b9fc7aa3af4d5e8311e9ab5c842561346e0", "ref_doc_id": "feb489a1-2f51-4638-ab25-e5a46b98728f"}, "feb489a1-2f51-4638-ab25-e5a46b98728f": {"doc_hash": "d13e97d778df5117faaaca2e636bc929d41a779fafcdde2919784fba920756c4"}, "0450ace0-1b52-4dc8-bd40-3be6ee69ee5c": {"doc_hash": "b031b662a16a9705d385a51dfb29090aee86451622d4efc99ce78da3eaabee3f", "ref_doc_id": "ba4014f8-75e7-46d8-8d38-7e513709d626"}, "ba4014f8-75e7-46d8-8d38-7e513709d626": {"doc_hash": "355836ac4d48d59370e34485410bfdebbf328df1a348a340b2f2d5aaba0f288f"}, "1b32da85-5ac7-44df-a548-9be81b351032": {"doc_hash": "05d70b675eee25070957a6b31f190d772e97dcbefa110ee5186abb2baf5fae99", "ref_doc_id": "f5c65637-70c3-4feb-be73-2cc8e1b6d78c"}, "f5c65637-70c3-4feb-be73-2cc8e1b6d78c": {"doc_hash": "68a491638195f12d2e95d57f766cb2758635f061fe1191885850cd90f26d1b68"}, "fd15c25c-146d-4bb1-b40a-0d7d4a790e3e": {"doc_hash": "06ecb7f371c8c79bff9a271f1431ac1fa095bd2ee4a056e5cb566fd28d9d51ca", "ref_doc_id": "a91c9f32-ad03-4a92-9798-4f11279ce83e"}, "a91c9f32-ad03-4a92-9798-4f11279ce83e": {"doc_hash": "d45ab8e8b340625ae20c22b29cfe60aceb89e135cc7f44b7546a151a3d08ce8f"}, "e9c58e0f-38ba-421a-ae42-2528e04a0063": {"doc_hash": "e711bc5d1d09acfac091ed7d6f6c2dbb3503933b2cc8d2633d63c2802f4281c7", "ref_doc_id": "430bc2d3-166c-4aaa-93bd-93baa7616694"}, "430bc2d3-166c-4aaa-93bd-93baa7616694": {"doc_hash": "c1101dae229600b849cbebab4fc66e514e5dabef247741d5fd540e4316a06fc4"}, "d1441c46-b745-418c-9592-33d162505ee6": {"doc_hash": "017fffd55a62fe76d2ac0080014e1afe49b7f289adfcbe182da3b06de2fa75cf", "ref_doc_id": "8b90d55a-4de2-48b6-88fe-9d158b21c344"}, "8b90d55a-4de2-48b6-88fe-9d158b21c344": {"doc_hash": "f1ee1573cbb6569fcd9958ba42a42f804c4c0cddad9e562e496f9322f08750ab"}, "4ebd56cc-4925-42fb-b349-9801db902f75": {"doc_hash": "a0ca342e2202067d0458a11e2de10d9a860cce6bc51be9b14cff8d0f8dd8373e", "ref_doc_id": "dd135064-4e06-4cd8-b179-5dbebc859e00"}, "dd135064-4e06-4cd8-b179-5dbebc859e00": {"doc_hash": "753390fb0be38f433bd8f93beb711095ded0dfae31e19470f413f299529eb6cb"}, "bf82333d-c011-431b-a1e2-6ecc1fc0fef1": {"doc_hash": "fa014610660c3a39096c76f5a60da943848b8e9b3bb67e7e589d594da94f74e1", "ref_doc_id": "b1432dda-71c1-44b2-8ac8-20abf6c9e766"}, "b1432dda-71c1-44b2-8ac8-20abf6c9e766": {"doc_hash": "70028510582b21d844ae8213bc89cf26d3611d56dc0a8a03eb4ee9a1573a08b4"}, "25687547-5520-41d0-b642-e33221c1dfa1": {"doc_hash": "4f01e237545caa394449dfeb8d95ebe452158edd323b82e1c8ca9a515903689e", "ref_doc_id": "a3b08b90-8731-40ce-b423-ade4fc508431"}, "a3b08b90-8731-40ce-b423-ade4fc508431": {"doc_hash": "f7dc581419842caf724e7a694edefe6276c151c3e72d3c5dc5823e36838bd5a3"}, "aebc80a1-aa97-4b32-8426-7b50709597e6": {"doc_hash": "d9547c8023587d88a829559e58f5b88940d116a7ab069df28988e84f839932fe", "ref_doc_id": "2aef485a-8f4c-4454-acc6-e62dd6fcbe7f"}, "2aef485a-8f4c-4454-acc6-e62dd6fcbe7f": {"doc_hash": "c7cae95ccf74ede004df06b3bbea805dfe5934a77a6a59d566693d0ea49a0f36"}, "c535073b-fbc0-48c6-ace6-ba58a9813dcc": {"doc_hash": "b6857e6d2bc75c6efa158ac20a9ac594b85245a03933301a40753198eb1f9f02", "ref_doc_id": "bf7ec57a-ec3b-416c-93bb-006869e86321"}, "bf7ec57a-ec3b-416c-93bb-006869e86321": {"doc_hash": "e96fd4b308ac10b43f1506c7c96d36732a73268be108308c31b2ccb69cdd6dce"}, "7be49e43-790f-4de9-ac1e-3f826838d606": {"doc_hash": "c43f2ab3b4209ecea41013dc58fe6f6a76e5e6c874ed1101594cc691cc836845", "ref_doc_id": "5b5569d5-f294-47c8-b391-1fea11204b82"}, "5b5569d5-f294-47c8-b391-1fea11204b82": {"doc_hash": "0fb4f06299c012231661ec1d5159ba7c35cd4496dccd80ffccea60d79ff52323"}, "b2fab268-16aa-40b0-8c61-ed6e349b7937": {"doc_hash": "e64084a1fc9da5cd76b2f795338a279e5e2ea2bf3cefa00e06306faf5491ab39", "ref_doc_id": "4915e440-17f3-43c2-bb7a-397d302cb337"}, "4915e440-17f3-43c2-bb7a-397d302cb337": {"doc_hash": "f22915a71411ecb40ad50e82ffee7b440ffb2e9e70f46adf5ceb14d55901e4f7"}, "ca31f95b-b902-4829-9083-00f50d7727a9": {"doc_hash": "64966a2972cd72bd5e05147896e47a9308ef3c1ac3799954231995a31522a59f", "ref_doc_id": "03868c16-a5bb-4b3f-99cb-fedef8f2348d"}, "03868c16-a5bb-4b3f-99cb-fedef8f2348d": {"doc_hash": "5c0a7539395a10c7d7beb6fe0c98f08cbdd7d1c7d093a287e1afe1ab6dcb8f81"}, "dce2dd2b-6fdc-4d2b-b211-f8316dc618f0": {"doc_hash": "8e88383b3c4ab4e18af9795e30dfeed5d72123f4c78bfd632236659c4eb82b68", "ref_doc_id": "0318d49a-342a-4ca4-9449-2436cf1f0ccc"}, "0318d49a-342a-4ca4-9449-2436cf1f0ccc": {"doc_hash": "4d0f923147637515724486f6114dbe2314bd363c645c0d6495079bfeb95f1526"}, "1946a552-c35d-4c7d-ba81-135d6a1c4c8b": {"doc_hash": "aa505c5a2df23209cb33ef3a60aa3d2505cdd972561049919efd58aaf62b607f", "ref_doc_id": "b87810de-cc1e-41d9-bb44-a72f685dcbc6"}, "b87810de-cc1e-41d9-bb44-a72f685dcbc6": {"doc_hash": "7729c1e027cd51f26ecb28a1b58fdf60920e3c9c80b008d6f0473de1edb38c4a"}, "1b114976-ad8c-4404-863c-2d9c0611c3ea": {"doc_hash": "b2489b4b0d7f481af11d4592368d51625c21c0d71e56c278fa96752eee54b502", "ref_doc_id": "cc2d5143-9eb7-4818-8521-2da64743047a"}, "cc2d5143-9eb7-4818-8521-2da64743047a": {"doc_hash": "25c8060b926d3533aaef7265ceae1c4e936b60b53cef952cd1f59acffdfa1c3f"}, "eef15daa-4182-42c2-908c-db3a26e122ae": {"doc_hash": "224b4fc466ad6ce94c52d39f3c37381d913f63617d3a1cf172b04ef53861bd6e", "ref_doc_id": "ccd1bbef-a1f9-40bb-843f-749a1c7dd4ba"}, "ccd1bbef-a1f9-40bb-843f-749a1c7dd4ba": {"doc_hash": "e0bfa06f27ab3504b87dabc5277edb908cf02bf87a2214ec1bad81c098055174"}, "de3c4d0c-6406-4fd2-9896-782b4d2e2674": {"doc_hash": "c57d421743b53e8dd1d8e2b5dc7c857159c5e302973e35b84076c6fcb1fa9f91", "ref_doc_id": "7ce7fd8d-7fa6-4b47-bd30-0adf46568376"}, "7ce7fd8d-7fa6-4b47-bd30-0adf46568376": {"doc_hash": "c242b486713aaa5ccec6c194995df820535e4c4e604f40724abb31e2ede2cbc9"}, "268da651-ae3a-4df9-ae31-b5d4239fe728": {"doc_hash": "b6365a0dbc1ca3be1096adab6bc818a476c86cbae31e3e72f16a6a457ff25581", "ref_doc_id": "1e149010-c0ef-45e3-a48a-3f4fb63925de"}, "1e149010-c0ef-45e3-a48a-3f4fb63925de": {"doc_hash": "6599c114ea96aaa1f558ae56385a8921df3087a22d627d529a346657ae426694"}, "55f8e941-d0a7-419c-8399-788d88809a03": {"doc_hash": "05b4476a8c8ab9d8971e2e7b1cfe6f9bae8dc727d866ead52037ea9e2e99e000", "ref_doc_id": "c55b4077-d252-4f49-92dd-f4c38e06feb5"}, "c55b4077-d252-4f49-92dd-f4c38e06feb5": {"doc_hash": "ca11fa1ee9035bdec449d8ba2feac1627787a9406f7dbe6d1f42eba120e71d41"}, "b4eba33f-9464-42c5-9b1f-f143df051e2d": {"doc_hash": "0ffb60a2fa3c1905d9e56da60df4580206fe0a00cabfb4cd2e858970a68fb4bb", "ref_doc_id": "96d95bfb-09c6-446a-9c3a-f360e339af06"}, "96d95bfb-09c6-446a-9c3a-f360e339af06": {"doc_hash": "8dcf1557ae0d54431aff4bb0e6b3c276c50aaa4128a7f2edbde2c8017365c11f"}, "73c6fa6d-c2fc-4a54-9768-ffee5a41c080": {"doc_hash": "2c8b9d30bd19edcc7c9c2168a4947638e2e094e9e2e167ad8cb27bd8320c8a27", "ref_doc_id": "a12781a4-59d7-4ae5-9f1c-3971c7694b96"}, "a12781a4-59d7-4ae5-9f1c-3971c7694b96": {"doc_hash": "b5e8886c72d4944447a58816edcaa179c9de3edf4f75ae9301b26e9554cd3080"}, "bb7487ca-3805-47f5-97d0-c2964dfbbe51": {"doc_hash": "53cdac011c568922137a70eef8853b6346cf91a04bcbd960bd645b95e06721d6", "ref_doc_id": "9cb6dd0e-83b2-4b00-ae98-c4fa330284bb"}, "9cb6dd0e-83b2-4b00-ae98-c4fa330284bb": {"doc_hash": "5dac4826e5bca226750489621d7749eddcb88ab096808b0634b9dc10ffc9da75"}, "7d09607c-3274-4142-91bc-e65b80cf252e": {"doc_hash": "8049e0592b9a6f7e3ed3a14e23d6d5e5a5f1ea8544ac6851ab9c535b7d7ec7b9", "ref_doc_id": "4abee0cc-815a-4d6f-8ffb-bf25daa10ac3"}, "4abee0cc-815a-4d6f-8ffb-bf25daa10ac3": {"doc_hash": "245ddc3a4a27ae395285996799a9b54464607b379796ed7303038f10f3a0b8d5"}, "3b0ae7c0-c278-423d-b2e4-4a1b9836994d": {"doc_hash": "9cfd1f3b8fdc8a64e1b1cab60ace27cac3609b79103d8ac026918daccae54498", "ref_doc_id": "1475f156-f228-4de9-b99b-f729f15d5807"}, "1475f156-f228-4de9-b99b-f729f15d5807": {"doc_hash": "e6249cb0c7ed3468f681784ff6c426c0574f06b83a35a81080607caf2befd608"}, "0bd2d91c-4d79-4909-b820-5595e341d082": {"doc_hash": "13563f4f65bed7e260d27b27d4a5fdcf7abb76ec4a3e72c48f01e4868eaf029c", "ref_doc_id": "388c1da4-8c9b-45d7-8e80-4abfb946d9af"}, "388c1da4-8c9b-45d7-8e80-4abfb946d9af": {"doc_hash": "a08f286b0773f5d109e3db630ffb427a60545f09f4a765e42020ed69e585d90c"}, "6fcc3f14-98ea-4a68-8d0e-335105513b44": {"doc_hash": "af117981ed1b9c47599ec5531cd6261a4f8cf4a0a71f8459703d7016b3d96302", "ref_doc_id": "a28e4b84-1ce1-4fd1-b95f-bd501611d125"}, "a28e4b84-1ce1-4fd1-b95f-bd501611d125": {"doc_hash": "a79dc509484f525c53fb8a4a2725b8fa13ed6ffedd4d7b7ecaa0f9bf513e68be"}, "8f07caa3-dd39-4fca-8d0b-924e31e2f334": {"doc_hash": "3f5ead183b82565100799d48ad873ea89639fb7678a56f21ca7dd2274e8bdd3f", "ref_doc_id": "298673f3-fe23-441b-9ce3-ba4f564659df"}, "298673f3-fe23-441b-9ce3-ba4f564659df": {"doc_hash": "cf7fd3b198b69643d0b457211ebe406f0e6b01cbe678dfab6fada2513e6393c6"}, "d9dd97ca-f8e6-4c1a-9e99-a448cacda8ff": {"doc_hash": "d6e95cab39d92f9396008c9e51832db9bde5f2128f48975f5ef91f74c342a89f", "ref_doc_id": "8f3b69c2-36e9-4aed-8c98-dc3602c04af4"}, "8f3b69c2-36e9-4aed-8c98-dc3602c04af4": {"doc_hash": "962562e9802ab9642dd6c1ded1da128abcd2a8a7e81305d41d3f0604fb87310f"}, "3f89d198-6577-41af-832e-e0776c41423f": {"doc_hash": "5d01789baf49038b86c98e508fa6e6cc10ad740664c313455662f3f178c507b0", "ref_doc_id": "49af145a-e1f6-4024-bdbd-539b2531ef2d"}, "49af145a-e1f6-4024-bdbd-539b2531ef2d": {"doc_hash": "63bc6f8c1259341e5679b7e765db93f665b9a993c84bb9151428606f9754c7f0"}, "e02315a8-fad9-44ff-81e7-92f9e837829e": {"doc_hash": "5c6c94b6449b5f997887d4e548d46fa571d93b12e7d651daeadfa73ab8bf4e2b", "ref_doc_id": "3e7097a5-25d1-4b64-a03e-e5e29f23dce3"}, "3e7097a5-25d1-4b64-a03e-e5e29f23dce3": {"doc_hash": "9d04fef5852b323ffcc70b2186cff1f6cebfd56e545ebd0044a1b5215cadb8ec"}, "7f3bff10-9bff-46af-ae3a-f8583759fd87": {"doc_hash": "b56dc672e8eebecdd3fb2fc93e111fdac6aade6354d0ee634baee1679fc4daac", "ref_doc_id": "09042b00-d6d7-41a4-879c-ff905fdd131e"}, "09042b00-d6d7-41a4-879c-ff905fdd131e": {"doc_hash": "d6cc70a455fa54ccc00f57b0aed20f419fc800d751397a0b057e10d2f4952faa"}, "e7330047-ad52-4fba-9b12-b35d32eaa7ac": {"doc_hash": "c9bf9a92ea043739a860e0ff799c60d4009d7eb5dec847a1c628ad3c83f2eccb", "ref_doc_id": "5c85fe46-4f4b-475b-b4ab-f15fb29f98c8"}, "5c85fe46-4f4b-475b-b4ab-f15fb29f98c8": {"doc_hash": "636503e106a205dd0b718407deb2b634fb98d1dfaacfd1ac9ec0c41867935479"}, "b6864e42-c368-4ee3-8f83-946fa183dd0c": {"doc_hash": "c85502518a18e6c7ef9df3d9aeb2f1062c916199203484961ad3cdd816c309a8", "ref_doc_id": "4e9e77e7-b3a7-4a2b-81ce-a0b8945a0d1f"}, "4e9e77e7-b3a7-4a2b-81ce-a0b8945a0d1f": {"doc_hash": "d19dc9f2fda933982741926d84b257e6f443189762202b440af373a70c29d56f"}, "5aa50165-04f9-4b30-a938-d9c46955a4f9": {"doc_hash": "a843dce92f82b2a1c18fa8a88c49478c7033f4508ac6e9f618b82d5d9583258e", "ref_doc_id": "b621c161-c769-4f48-a1f0-39716952e53f"}, "b621c161-c769-4f48-a1f0-39716952e53f": {"doc_hash": "87240bd0566810f4dc2c5ef2580d3bd4f40773cfbeefbb28dd1c2f9bee741d97"}, "ff473386-015d-4d01-95ad-f687b0ccd9a9": {"doc_hash": "fb8274e7719ecd7b9664d7dee6e833fb1a32db13848bdaab8737bf8ce400e214", "ref_doc_id": "ac08d9c3-95b2-4436-96ce-a85b1a5cced4"}, "ac08d9c3-95b2-4436-96ce-a85b1a5cced4": {"doc_hash": "247267b6bf5f7f70f7621c4724b7608fa849193df89c0ca86c4d5354e5c183a5"}, "b0c44be1-a37a-4caf-9017-5f29cb807740": {"doc_hash": "87f3ed9fae98deae84949bbc9c40b06a9f438df442c78e52477d144c821e330a", "ref_doc_id": "c8de334e-306e-4a41-90d4-65da2e252d33"}, "c8de334e-306e-4a41-90d4-65da2e252d33": {"doc_hash": "04af448cb3c58cce22d9538e4ca661de610bd9c965677a7a8acdc29c82a9ad7d"}, "02198f83-6a75-4b3a-a567-907c86ca8197": {"doc_hash": "9de6c55ab22962929566706a888bf1130b6284b1d94ab406bd2f65fac5b06e68", "ref_doc_id": "6bdcc7fa-935f-4039-8ed4-9f423a99370b"}, "6bdcc7fa-935f-4039-8ed4-9f423a99370b": {"doc_hash": "909f794864631ad28069a12d92ff4a7be2c07a7e4f29c649f75b2393be6735fb"}, "994a1bcd-0425-4ec3-91f3-d916016fbc41": {"doc_hash": "6ef0ffc7b58a88eefb993f763160955ff32171212f503f0f6b0b08300aa494df", "ref_doc_id": "ee6010c0-8bdf-4e7f-8f94-2b399585946c"}, "ee6010c0-8bdf-4e7f-8f94-2b399585946c": {"doc_hash": "14dd6b4258b705a3d02ba854c31ee9b91ade4bc84c67a2de6e3e5e98f9410d02"}, "0fc7b4e1-fa2d-47f1-a8d2-8860789844a5": {"doc_hash": "8c403954f963d5379f51c6fe5e05eee97f17ce8cf6294c3249bedf12d0b6a46c", "ref_doc_id": "b34d648e-db66-4a0d-90f4-b0a95b73a9af"}, "b34d648e-db66-4a0d-90f4-b0a95b73a9af": {"doc_hash": "a58ccc59ad7ed66edad3ce057ab0bdecd3344a4cde8557a8f0fa29a605d05022"}, "cf2850c5-67ab-4cf1-a1cd-bf24bfc00f68": {"doc_hash": "bdfb341cbc6fff142f880415816b51c2b63f4d5df41b52fe76daa6620c1d4873", "ref_doc_id": "7cc20e1d-a658-49ec-b62c-91ec7855b24c"}, "7cc20e1d-a658-49ec-b62c-91ec7855b24c": {"doc_hash": "ba2d6a0d5113648c76a8aa3113168f8980791941f1bcc5868d6af154b44041f5"}, "075fcc1b-5fd8-4220-a252-0d7efe93be6d": {"doc_hash": "c7f12cb560844b5c9236b45d167e43ae422cc53e953a04c4ee2d2f7ce0f2f43f", "ref_doc_id": "4162601f-e4f5-48d7-8f9d-48a8731e802e"}, "4162601f-e4f5-48d7-8f9d-48a8731e802e": {"doc_hash": "f89033abfd9abfc1f2d8d28469f954c85d24878e42677b46003cfdec2638c664"}, "1bb1df32-4e75-48e1-af89-3b651572ed11": {"doc_hash": "7b71ecf092caed8dde49426607f1fe15232d89ae6123b200a01af7e17b282ae5", "ref_doc_id": "f42f0d86-6789-4853-b1e8-e052fd81e81b"}, "f42f0d86-6789-4853-b1e8-e052fd81e81b": {"doc_hash": "00b110c9342217e686824bc2b679637ff557dffbe9d5496c098d71da66c24c00"}, "5d6784fa-3fa7-434b-8a02-50b698ac6ab5": {"doc_hash": "fc71b133574c2691f3632038ac3d2224acdecefa405fbd086bf23c6c672a53a5", "ref_doc_id": "3a09cda0-0770-43f6-8889-1e3ac2225644"}, "3a09cda0-0770-43f6-8889-1e3ac2225644": {"doc_hash": "598f0794110564d8b0b40b1fabc7c9963dc58067443e93975913f4e4b9e0e64c"}, "5fa51d73-17c9-4ba7-985e-50404eb9ab1e": {"doc_hash": "dc01a9897f082a39446394eae7b4c807090aad60a050098bc2a1b5483d17de44", "ref_doc_id": "cda44dee-a432-427e-b89e-82d8b90605c6"}, "cda44dee-a432-427e-b89e-82d8b90605c6": {"doc_hash": "039ba7aa5d20247c37f5788c5b84f0a8175a56b29cf81db48a24ac5acd1e1193"}, "0e8e9878-7be9-4dfd-89b7-268e73dbb836": {"doc_hash": "7392ac769d57ec551baab263fce5c9f10b69fb58d7554dceb09e9af24e55f21b", "ref_doc_id": "a35eca81-4b00-4041-a670-6481a4efa8e6"}, "a35eca81-4b00-4041-a670-6481a4efa8e6": {"doc_hash": "44a77232a58a1c16eebe1329b975dca8eacbcda30afaec732dfe03d76e28b151"}, "27ea65bc-0c19-4a70-93d3-417dd71e0899": {"doc_hash": "83f8fd24a2174778ff9e682d39462e934ad51fddf1d15a0d684c05f8e142d626", "ref_doc_id": "a3cf92aa-179e-4dcf-b05f-d45694669387"}, "a3cf92aa-179e-4dcf-b05f-d45694669387": {"doc_hash": "840076912dcf93a2d873fc396b6fcc8f3ac4fb704948d493a9e77a111ddbcf87"}, "e2ce2571-9f45-4e5b-b2ce-4b58030eb2e8": {"doc_hash": "be1e68f63c05deb3044e2bf19d1d7bca10f6c47e1b4b779a37b43d639e9ba4bc", "ref_doc_id": "ee064636-e607-4a66-b77d-d671ef4242b6"}, "ee064636-e607-4a66-b77d-d671ef4242b6": {"doc_hash": "9b96cc32b444a7667e5e381b3ded8cafcc11b15ff2d02d275a073c559f0c43de"}, "5d5d081f-db49-45aa-bc30-2e8c292deac4": {"doc_hash": "9392cae2b490388fe7dcfeef3c7863c40428a9e929d1551de1555ba2d9567de6", "ref_doc_id": "8ff2cc43-0dc9-4a0c-880d-1a06a1c14516"}, "8ff2cc43-0dc9-4a0c-880d-1a06a1c14516": {"doc_hash": "cf6491dd96e7dbd33f536c4bebe10d2a0d64f165683524fcf4fc823ecea87d69"}, "6d0dda9b-bd75-4796-808e-f27e37e1369c": {"doc_hash": "85193c4fd1bbd227cb27b3259c2bab435177a2778361eae4bdbb59a0e9ea30e9", "ref_doc_id": "7837205b-874c-40ef-9674-dd122ce79e8b"}, "7837205b-874c-40ef-9674-dd122ce79e8b": {"doc_hash": "546f4746c096a6a662aa9c906e3c008dabc920d03b0fd5ef7b9d0f96b95f2df5"}, "131db4b6-7fd9-40a8-8079-69e12df26f35": {"doc_hash": "e6d78918a55c8bed6877bcf5087c02f4972cf0bf943cd16e5b6271390dc8dd2b", "ref_doc_id": "e229179d-d08a-452e-9dfd-aaaeb4bb1394"}, "e229179d-d08a-452e-9dfd-aaaeb4bb1394": {"doc_hash": "12a47552f187dbb0504e90b3631288b4c9249be834bcd68d06a5f156e53fcc7d"}, "a34f8e48-3e87-44fa-aa5a-c3865c65cc0b": {"doc_hash": "0fca47d9397cbdfbec5acf9ddc319390848c8387d2993dad7559d8f2daa05f62", "ref_doc_id": "b734bedb-fbd7-4923-affe-033a97f421a4"}, "b734bedb-fbd7-4923-affe-033a97f421a4": {"doc_hash": "6ec0bffd7c05d0c5c287795f4100a2dbcd04230f7ab4817e0bf6b565f28f3c74"}, "67cd5c93-1882-405a-a914-7eec9594af3d": {"doc_hash": "cd5e01d6dad4ffa943091293eb4fb66d0ed607c8b060b4d1b06eaeadeee141a3", "ref_doc_id": "5e74573a-1dbc-4881-a1aa-89fe5019fc22"}, "5e74573a-1dbc-4881-a1aa-89fe5019fc22": {"doc_hash": "45255ea7181f88747297783f83d06cbbdb5b48e8087a47a44ace4a618d34c8d2"}, "0333160b-15c0-4c8b-b0e1-08f542e129e2": {"doc_hash": "79c8fd1338987b8fcf1c0c6c8f217e69f9e46a90b862e106fe825bcc092f4fe3", "ref_doc_id": "d1ae296a-6f19-49ba-a3c8-29ab82140c7f"}, "d1ae296a-6f19-49ba-a3c8-29ab82140c7f": {"doc_hash": "eed3aca9e1d09dd4bff19ed7481b31b1b0d11690313d6a06447c32183f7d5e81"}, "a0667c18-3ef4-4c34-85b0-142ceae12655": {"doc_hash": "645f89051d2803a2a35351901462382e0c6d53ede152951571a76e3e76d8237b", "ref_doc_id": "1bbd62e3-aaba-4fa5-a152-804ae52cd12a"}, "1bbd62e3-aaba-4fa5-a152-804ae52cd12a": {"doc_hash": "8bb7fc808ff1f21a8a023e6134075c71b28551efea0cef8d12e2807a1ce87b65"}, "b93b119b-e9aa-4590-ab41-a961bbc3844b": {"doc_hash": "97aeb78b639ae9bb26ec0cb1745ac56197b7539e7d3e87e062f82be1431a7694", "ref_doc_id": "a9a7cdcf-82ec-4b18-9aff-6e826cc74a42"}, "a9a7cdcf-82ec-4b18-9aff-6e826cc74a42": {"doc_hash": "585cd94647e5923d3fbaef12cb48caadf263269d3ac2358205df462094b96906"}, "391d073f-9257-4d7f-8c31-6e596ef4f43b": {"doc_hash": "62ff22b96d3893f2f79679601406d5af227b801f276642e2d664d7dcf4df016a", "ref_doc_id": "24834713-4167-49dd-be55-784f6878f4db"}, "24834713-4167-49dd-be55-784f6878f4db": {"doc_hash": "002a8050657c749a47eb3af9d63813fc80020f2f6456a7a19548044c7a85408d"}, "76ca7758-009f-431d-8a50-c1f1e0d349dc": {"doc_hash": "8eea92a00afdc14b00a862ac3ae4fcbee65b54e38008bf3e60d6e6f457041899", "ref_doc_id": "6e5d2228-8b1d-460a-a784-6a986bafb824"}, "6e5d2228-8b1d-460a-a784-6a986bafb824": {"doc_hash": "bf82ee5bd6b8e6e71b2595157fff32de71d9090a3beeaf4ed827ccde0afcc38c"}, "e3bd8fae-822d-4c25-b057-8f11e5856c2e": {"doc_hash": "745fbf76c78d022d9727dbc7448966c86a9a544f316ccee9bddee5df579f3e6d", "ref_doc_id": "71c71302-870e-4a74-85d6-02170aef8831"}, "71c71302-870e-4a74-85d6-02170aef8831": {"doc_hash": "5d10d6d53637d169226f18761040ba49fee382cd5c41fe103559b06ec60db00b"}, "9cb92825-eedf-4f38-b87c-58ac8c3c371e": {"doc_hash": "aac52c0b3bf56020e61acd63d99f2d6e963521a9018203ba2101aa3c7c49a606", "ref_doc_id": "5e6f636f-5dd2-41e8-9725-d2377da4d912"}, "5e6f636f-5dd2-41e8-9725-d2377da4d912": {"doc_hash": "07dd99af9f00630532e63bb72cfd3cb70e44640cdf7d0c22cb7d5ecd4afdfe3b"}, "6b61fe6c-4b08-4931-9253-1765b0cf01cc": {"doc_hash": "948db6354db70ec246c402466eecac685c19064158368adad03b0e73630ec18b", "ref_doc_id": "c9c546aa-edd2-482a-bb08-95fc3ebbb66f"}, "c9c546aa-edd2-482a-bb08-95fc3ebbb66f": {"doc_hash": "f617e6a3c1b13a435eb229c3380f99507af4130c75b5f426b95ee85617b54997"}, "e7801e29-6084-4c09-b14f-f36c2ef53cc7": {"doc_hash": "81018267d94199300f052aed34f2315b633cc5de0de08763021da6033eb64ed1", "ref_doc_id": "7e1e4c2c-7963-4e44-bde1-441f67db048a"}, "7e1e4c2c-7963-4e44-bde1-441f67db048a": {"doc_hash": "b7abd3ceea753cb1994f24ff45caca3c06168d7f999b79c29dbf0dd21cd5ed18"}, "3b2f6924-5058-4f92-9e89-4b4a1af8b637": {"doc_hash": "c0048c89f39df20e97cb225592dee7121a779266a0269b255b790e1a0dd20409", "ref_doc_id": "a7a7d8e7-0d75-4428-9cee-f3539180de27"}, "a7a7d8e7-0d75-4428-9cee-f3539180de27": {"doc_hash": "d85c393142d728202bbea539da4a9656156f3b2f76bc04c5fb1fb64d35a42a72"}, "45c73c5f-fac3-4ab7-9f4b-c1c12e8e17a7": {"doc_hash": "4d6e7a1ce192f3f6f1517c6daeedd58030d1e71862df5b829ebcb9489975760a", "ref_doc_id": "00f57648-3df8-4ef6-bd53-926decec2597"}, "00f57648-3df8-4ef6-bd53-926decec2597": {"doc_hash": "e11ce36a8a44d06d4ec9be762ae424356c73e01da85432b8e3eb12465cf60544"}, "4a0f1799-f1f6-4e37-a32c-a983f81b3eac": {"doc_hash": "74f571c6036c5de76ae05779ca082ac9c9e4c0be45abdfeb4711da6c1ea93b39", "ref_doc_id": "6da110ac-aff3-442a-b0da-d7882dbfbd28"}, "6da110ac-aff3-442a-b0da-d7882dbfbd28": {"doc_hash": "028ae8a4cac2a20539e368c16c999a93469de3c197c435ded161512ddafdd3f0"}, "80ee4351-d2e3-4313-8db7-cc44c5baa56f": {"doc_hash": "6a99e4e9887fd773efb6d110468d8e36998c47fad984891ed78f73adeac7cb87", "ref_doc_id": "8757f5e2-2c13-46af-8844-6a837ac6c620"}, "8757f5e2-2c13-46af-8844-6a837ac6c620": {"doc_hash": "44ee3adc2702ebcd6bf40899cad9b7be852ed7b3da02dc8300cc62ba1f768c8e"}, "15dc59b7-ab2a-40cb-9d83-95b4b884fe46": {"doc_hash": "ec86fe759e5d1db089d11ae8b5b7547b16146f8b0b941f74a5996a1e27f8c438", "ref_doc_id": "8f2b7f50-2bf1-4e7d-9619-aacfe7afc768"}, "8f2b7f50-2bf1-4e7d-9619-aacfe7afc768": {"doc_hash": "4fd0b3635e772156121868d75985336c698c11c545a5e92355a2bc6a1e8028f6"}, "0dbce0f9-b2e7-4a89-8e27-d51ae17f87d3": {"doc_hash": "ecadd4f507f8c9212dd379fce3d30bd73f418f85c53732ec672952e72599d7b0", "ref_doc_id": "d6ece9ca-b727-485e-bed7-dada89314586"}, "d6ece9ca-b727-485e-bed7-dada89314586": {"doc_hash": "6a9fe84d5c7549189b80a2941dc5d6938863a4d60e203c95f1637bd32f90ec1b"}, "b925801a-dc3c-49fb-b706-12aa3eddce41": {"doc_hash": "ca8122e6dc4bd2b651e8cba778cd984c2282259b37c79c72f45a2cf929342eec", "ref_doc_id": "266d2c3c-b80a-4cb3-bba4-e080351b7183"}, "266d2c3c-b80a-4cb3-bba4-e080351b7183": {"doc_hash": "5dd972e802556fab0775f26360267cc53a05b2c2222006c2fb084cb5cc5758aa"}, "ccdbcf9c-1d21-4f6c-a325-cba488bcba28": {"doc_hash": "501b503baffc9aa7d9c09bc0e1d950b143cbda2259a2705850c8e714875fe557", "ref_doc_id": "5967aa4b-bab7-4a0f-aff3-dc3d21eb8392"}, "5967aa4b-bab7-4a0f-aff3-dc3d21eb8392": {"doc_hash": "2ee956496f717e8e2b7440f1efb581fbc75d219f574d239ec543b9b13cd3a2c5"}, "9f20ae3d-8eaa-450c-bf2b-9adc4bbe320e": {"doc_hash": "2ae66723b8ba341ddc5f36c545add470b588c7426e4b90216889042387c52444", "ref_doc_id": "af587276-2133-4a42-93ea-3a96f3fa59b8"}, "af587276-2133-4a42-93ea-3a96f3fa59b8": {"doc_hash": "e3aa022a4aa5ac4c39b3b978b39521cacde57835cbc7994f32e5fe17c5f613fe"}, "39ee6b94-e6be-4b39-873e-786fa919f6e8": {"doc_hash": "4e2420898f0e61dfb5d675ffcd773a938fc0abccaabf3f6fd7eece58325af806", "ref_doc_id": "fb137286-c8b8-4a9f-96e7-78bd6bc76ca1"}, "fb137286-c8b8-4a9f-96e7-78bd6bc76ca1": {"doc_hash": "24ee041541c5c61d1338f30bfda13897bf542e2135f6c2e5230048e118f7e04e"}, "829f4ba2-1b03-4379-bfc3-c178cd2092ee": {"doc_hash": "ae5643d1d03d95ce91abcbd41203e4382776120fd9c86cd671f542d93c4aeb69", "ref_doc_id": "a140bb0c-ee7e-425c-b53a-a2562764016b"}, "a140bb0c-ee7e-425c-b53a-a2562764016b": {"doc_hash": "1b3fd721fcf6c0f698a078f96547b34a19fbd316a1d496ef6503efbca16080d4"}, "d822a0a1-769c-41aa-bc2c-cf433b31caae": {"doc_hash": "44f83bbcfa827eb836dfc029ea9bf2fb995a67512fb62c5d55d14b862d13b1d0", "ref_doc_id": "8f82b6fc-066d-444e-98c3-0d5c603f6c4c"}, "8f82b6fc-066d-444e-98c3-0d5c603f6c4c": {"doc_hash": "b596d601e15e3b601806544930b2ba95534d1ce3feb3913d8d5422cfdd90a839"}, "99dd902b-c2cc-4849-8038-f098727ae79e": {"doc_hash": "c45d5b85be2c051a9914507f8997f63bbc9ee8e1eddcb77a917feee23a7c41cf", "ref_doc_id": "1d5b0f39-f7ee-412f-b4b3-7b907701769e"}, "1d5b0f39-f7ee-412f-b4b3-7b907701769e": {"doc_hash": "4e40f6490850e2b5b60844285f64c643e8b95f01b8f1c16908db4d0a5395671a"}, "015e052f-b219-47e2-83a5-6aa14e383218": {"doc_hash": "196662a680e7bbedf0cdf5345a2d99ffa0e91c5e2feb59c476dc742710d43437", "ref_doc_id": "961d2857-1b3f-4615-a14a-a550306070ac"}, "961d2857-1b3f-4615-a14a-a550306070ac": {"doc_hash": "2d66c7e680afd3f57b4bdac9eecb29012951c3de66cb12fa128091d2d0ba5f58"}, "bd1206e1-6854-4d58-a884-214344c5c753": {"doc_hash": "354f9629bf46c2b1b0ac89507cb23e8bcb496b4d85812fe141f5c8e394d98a54", "ref_doc_id": "d69116b3-cdcc-4f30-adf8-510a55217076"}, "d69116b3-cdcc-4f30-adf8-510a55217076": {"doc_hash": "e7bedc25f36d8613bb4d46e56bc7a6f3f80e383a4cd461856b42eac7d49eaee2"}, "3c574f05-08e9-4c0b-8906-ecdeeaadf914": {"doc_hash": "5aa3fe36ffee25045c25a1bc238d3da8265cf8b6f35528d31954666de9ef4329", "ref_doc_id": "fbde05cb-f208-4694-8d09-9fb34fe02218"}, "fbde05cb-f208-4694-8d09-9fb34fe02218": {"doc_hash": "cd33f2968b18302f6e7ea6ceb03a3272467d50c9b2d2d26dc92a4c665532cc1d"}, "ac87b2da-5bc3-47a0-98ad-684eae496914": {"doc_hash": "9cd1a3501fbaa3dd33013e35527b0a585dc62cea84d469ba65c8539145397804", "ref_doc_id": "40f0fc8b-abbd-4d21-9662-147bd61869f6"}, "40f0fc8b-abbd-4d21-9662-147bd61869f6": {"doc_hash": "deab65b02a737161b573f80796191716b8c6fc2440a19a9c8924675247377d72"}, "91ace2d0-0eae-465e-a7cd-d96d081ecfa1": {"doc_hash": "12e33871f3d89408fc5f90cad79aae76be29f9e6622344fb33b6ca3a4e589b4e", "ref_doc_id": "3006742a-dd04-4e2f-b4e0-f3745c5dbb1b"}, "3006742a-dd04-4e2f-b4e0-f3745c5dbb1b": {"doc_hash": "61c25cabda3f2b7e78f5d7b41016e68ae0b9c1571d42c8be6ecb2a456cceb8b9"}, "6fe40d8a-f21f-4be7-86d8-4a3cc9d5896e": {"doc_hash": "10638e286424f22504980b064f1da1e58204a8266ba6dcc04816a99bcc7dd9bc", "ref_doc_id": "5d109cc2-54f1-4cc1-a882-f6ad37ce29bd"}, "5d109cc2-54f1-4cc1-a882-f6ad37ce29bd": {"doc_hash": "9cec7b62cb943fa693965166fde883dd465cd8262b77d5bb7a5f0062eab8a356"}, "8d9cf26e-ccda-467f-8367-f591a9fdc671": {"doc_hash": "38bd353adac905e63f5b4e7cdb310821b007299bc21d17a34e0d1f29f1697080", "ref_doc_id": "5678a189-d277-4bce-8ccc-281672b34472"}, "5678a189-d277-4bce-8ccc-281672b34472": {"doc_hash": "2cb6eb21a63d0fa9603ccc61ea36dc1bab62afdb394ab5e46cd511da6c566239"}, "ad2a513e-8eb6-4926-919b-9f25c6c9e78e": {"doc_hash": "c2cb65c8c5aa59cc53c657cafda06abf666ec665e3dcf2acfe153e87019547cc", "ref_doc_id": "d659a1be-6a06-4184-9187-15fcd85995a9"}, "d659a1be-6a06-4184-9187-15fcd85995a9": {"doc_hash": "cc87d8939e06b517c72245cda9dfb4bc0b5d5fe84edf730eb8e258da2c99e449"}, "a1ffeec3-f726-4f06-9f75-5d141d1e384d": {"doc_hash": "58fbbf688ec7058ac72aedc1f9208823aca7f89a153c8ab757acb640d0794525", "ref_doc_id": "c72b244e-621e-4335-8f3d-3b94be606a44"}, "c72b244e-621e-4335-8f3d-3b94be606a44": {"doc_hash": "308f0c3cc5807a9ef89af7b435a20ffd452f9a57773ed67bb1301f9ba6160c91"}, "da7b68b4-e618-41fe-9e89-c521c9e666f7": {"doc_hash": "bcf1ddc7ce7948b93df1395d286dd860075f80568b8f055a6c81aeaea0b115d3", "ref_doc_id": "87355608-b928-4694-a4bf-38528e393dae"}, "87355608-b928-4694-a4bf-38528e393dae": {"doc_hash": "e34e2bb2863000d0f683e839d62036aa2a0341344eb9e611f44cfa9a2b445176"}, "34c36b38-266f-4670-922b-9d0ceb35e88a": {"doc_hash": "80107343295659623ec521a1c5dd2a51c44bf9c374a378e948efb39c97f95fbe", "ref_doc_id": "6c81bad8-3008-4d78-b184-ff30eff78cbf"}, "6c81bad8-3008-4d78-b184-ff30eff78cbf": {"doc_hash": "79c778afc6dec75d40cb69ff02c10e6ec2880fb0cec8a0f82188b72845cad9ec"}, "fa912051-4e1b-4d23-bc65-f0260f288fca": {"doc_hash": "2f0563e22d557241d8ce24965e3400ec8f698e1ecd5ed14d013d396f0586fb4a", "ref_doc_id": "a092e841-f6f7-4721-90ef-6acdd6dd05f2"}, "a092e841-f6f7-4721-90ef-6acdd6dd05f2": {"doc_hash": "05eca7e35569e929614a597ee1043f34831b085b9967c8f8163076bdbce379e7"}, "e46d527d-f53c-4e33-b3dc-14ea2b85973e": {"doc_hash": "42fe1c497009b174512f563df758f5f493163bb7e867bb857923482b08045065", "ref_doc_id": "1a613961-8e1a-4c3a-9b65-1c3d18e86e11"}, "1a613961-8e1a-4c3a-9b65-1c3d18e86e11": {"doc_hash": "9a79dd4b16340a7830099dee6d6693e5d23e8933cc4c571818b1f999086e1145"}, "4a3e33da-b45a-4b8b-8e38-1f42e4f43080": {"doc_hash": "1020a880cb2ead61e7bc37c5fc26e061f686390a7ae004d68b516065010e630d", "ref_doc_id": "2b351626-476d-4488-a10e-775b12360a42"}, "2b351626-476d-4488-a10e-775b12360a42": {"doc_hash": "9d1b2e574a13148b300d9b5af6a0634b4ad1013c2f3a082a9be5bd953d52fbad"}, "1171bf29-bb3b-4657-a2a0-274fafd9e20a": {"doc_hash": "363576ea515060358c2183bb77a3f4f0b09aa7ad1d1ab1c64d7661fa71ba49c3", "ref_doc_id": "d1b81d8d-a3bc-490f-b97d-2d8144ab6dd7"}, "d1b81d8d-a3bc-490f-b97d-2d8144ab6dd7": {"doc_hash": "712994a3ad6a0a1242651c166d96d7a958db06a458b3a1051e9a8581c7275063"}, "bf715c94-25db-4622-a8a6-a7a1715b9889": {"doc_hash": "f5256c641e2aec37b9d41f12d5d5707fb45b2d24ce40be88a7380020cec031ee", "ref_doc_id": "a798e670-54b2-4490-9817-31a9b82bc6bc"}, "a798e670-54b2-4490-9817-31a9b82bc6bc": {"doc_hash": "a66c311348c35c885fce6e003efc556cf8426c2557295551ec2dccaee18157a4"}, "49a34094-c998-42e2-be9c-36500503ae78": {"doc_hash": "683e646502042e1e60dd5229d056d65d1320b9f0d2b2d249e81ae712f7deda3a", "ref_doc_id": "322047ab-a946-4e0c-88de-02cbd1f5622b"}, "322047ab-a946-4e0c-88de-02cbd1f5622b": {"doc_hash": "018c3f40cf83fb1495d598bc78c4762ac780bcd432696f93f25ac2c1b16ac807"}, "c1f988af-d816-4d7d-ba12-8bb3edec13b0": {"doc_hash": "d0299aef3b5e1e1463ecd86e0c05c1b9f87a6187fb270661c9df97e49d23b28c", "ref_doc_id": "f995764e-0ceb-4141-96ca-af3004349f66"}, "f995764e-0ceb-4141-96ca-af3004349f66": {"doc_hash": "4504dc772b48f8ba8004994fc569a7db0d9ce65bdcf8e78106ab0d0f78df7029"}, "44500bbf-15f2-4b98-b713-77b6bc2cc40b": {"doc_hash": "76dff55ab78b3dc03d1c7e55ef78c855b9b07adbd27e020ce438318b3d2a97cd", "ref_doc_id": "b9c54d02-220d-4d6b-bffe-67a782db3268"}, "b9c54d02-220d-4d6b-bffe-67a782db3268": {"doc_hash": "8ac0ed3169f2b35bcfd29d6407bcf27fbb098d03ccfa64a763d175c5cb8acc33"}, "c5d28357-4171-4bfa-8e9d-1db2f30a158f": {"doc_hash": "39889e05a8fe4f4d5897230bafb94df3e0f6ce9504a5dbfaf65205aceaea1b7a", "ref_doc_id": "b27bb8b0-02cf-4c85-ad7d-0a664c22d1ef"}, "b27bb8b0-02cf-4c85-ad7d-0a664c22d1ef": {"doc_hash": "5c9e4c3ca41cdedeeb5b579f3c885461b3cd6d43f70619a1addb5659d27e7c2d"}, "6c07ff97-99cc-4d91-8526-8d7922ddf6c2": {"doc_hash": "fe518149d087af501cc37e42b858ad16839d4edd033588a7df8506a5fed50611", "ref_doc_id": "d5c919ab-0f03-4f9f-be11-2c1472e815bf"}, "d5c919ab-0f03-4f9f-be11-2c1472e815bf": {"doc_hash": "f8e27d73f9c3be1898f7ce222b5126cbd11a6adda96c8ccae9e29ca4d7200892"}, "518be595-5ea8-4e62-9423-47401abd6683": {"doc_hash": "b5ab5b9cd361da237a19286a82df232d405592d2f7b939552e323c7b0722c300", "ref_doc_id": "2c9ed2cc-c769-4de2-9012-4f0023e82ec0"}, "2c9ed2cc-c769-4de2-9012-4f0023e82ec0": {"doc_hash": "bfa34e30b870043f94ee68c68ce55dc01cadc558afd1277d3813c5370414437c"}, "7886d762-cffa-4e27-b133-6f81186d23b8": {"doc_hash": "99f9d59a4ab4e21495fe582bec8a227247bce94bc506b5ce5af9df7efab3ebac", "ref_doc_id": "b974d3ca-ca7d-4d98-be7e-14c4c2e34031"}, "b974d3ca-ca7d-4d98-be7e-14c4c2e34031": {"doc_hash": "7ee17a241574c5ad349236dc30377d528f726a06f5d8719e0063df6b90f6c59d"}, "4647ae00-8cf2-4bd4-ba67-abe38c8fb375": {"doc_hash": "869467da3de70adb62ad8101b04b13b7676cffbc4ad4653b0cc5aedf53aeb303", "ref_doc_id": "c96f5f55-4236-49f4-9378-8c4ec1df75da"}, "c96f5f55-4236-49f4-9378-8c4ec1df75da": {"doc_hash": "55a88f98a58c5822106a49c22a77681431af887dfebda5f99960129ab3d05abe"}, "8d5dff5d-872d-4b22-854d-682a97e6d38c": {"doc_hash": "b013fad6c94a724c1bfaa7bc3e5793ec441ff5d32ce666d25e5c3dff47d1c116", "ref_doc_id": "27af1bb3-df49-4d55-8d6c-aa02e0d9eabd"}, "27af1bb3-df49-4d55-8d6c-aa02e0d9eabd": {"doc_hash": "25fc0ecc774db5e1a2ae575bd1c7a561daeb415d840f9ddcadd2a0c832469889"}, "1a2123f9-d05e-4639-8971-343b22eac214": {"doc_hash": "45bf301f4a0140360ff10622f66ef91ba037d722c773e411c72adb190a9788ae", "ref_doc_id": "1e77117e-93db-49e4-a612-38b0e2d12601"}, "1e77117e-93db-49e4-a612-38b0e2d12601": {"doc_hash": "147e4a46d341a0409745f570cc6708d6fac0af9888eea485fe2c1d9507603d58"}, "1b4b2385-313c-4a44-b081-ac433ac0efeb": {"doc_hash": "14c7db23581669c51a0120921b143ae8af2d5cb9b04035bb5973c2c5b152c9f5", "ref_doc_id": "efe08df7-6807-4b11-a8a5-f2b12ca98214"}, "efe08df7-6807-4b11-a8a5-f2b12ca98214": {"doc_hash": "7f1bf49f5e9db23a4a225afd10023cedd2d7bb821b22c43cc8124e5ecbbafb8d"}, "c5b26799-40c7-46cc-adc0-7fea818919b0": {"doc_hash": "d6269087ff3468e0fd8b08cd0a056e6829d73f7c17610bec97e8dcc4eea9787a", "ref_doc_id": "ec38d52f-c79a-419e-9854-5e7d812ff39d"}, "ec38d52f-c79a-419e-9854-5e7d812ff39d": {"doc_hash": "28d95d76f2c2e5fcf95c781fccc28c45035f839875b7f8df939b74e6c0fd7ea6"}, "d262c34a-44f0-4b58-bec6-b841ae7b520b": {"doc_hash": "cfda344e9742817ba507a56939d364fcc2aff2a86d63777458ef1791f8300ecc", "ref_doc_id": "b3e21805-40e6-4640-a602-b99493a93619"}, "b3e21805-40e6-4640-a602-b99493a93619": {"doc_hash": "b6a154d84fa90f26325e672f3890d2ad369fa392fb558f0a81fa63a0a5d0cb51"}, "0601cc23-c604-4970-a8dc-56e351ba29cb": {"doc_hash": "5e686ee22727658b56208dac141863729d7f5cd96615a59679bda642309c601f", "ref_doc_id": "899716dd-0f52-445c-999e-f6401f82e53a"}, "899716dd-0f52-445c-999e-f6401f82e53a": {"doc_hash": "99319ce6d5c51a91fb8dc5dc14dbbbc393de9fd6079df5ce99c2c2f8420ea282"}, "cda5aa5f-b6d7-4e19-a872-2f1905bc622c": {"doc_hash": "dd65e0382d7be2a50bfd6fa26f1fe695c744b452ebb44310c93e363838124bd2", "ref_doc_id": "7accf737-7dff-4c23-974f-fae835d06bfe"}, "7accf737-7dff-4c23-974f-fae835d06bfe": {"doc_hash": "952f05a63a7a385cd47f6b74946d58383d7f84639d6a5fd75123d0564fe0269d"}, "66d5d72f-8b14-4092-abd2-3ae331f97fdc": {"doc_hash": "686944b0039fe67ec27e3b305596f66d366db532568d0c3c9df19a46d3dd0fb2", "ref_doc_id": "a7a292c8-0442-49c3-a555-f1fbbced5a11"}, "a7a292c8-0442-49c3-a555-f1fbbced5a11": {"doc_hash": "704e3c0df134e822d4504fc391fe090806f74bbf27fdab01a840e3ee6759213b"}, "a49367b5-8166-4ef8-9c51-11e24bb9bae6": {"doc_hash": "0661917923f1fd426181784fa02dc736dfcbea233c8b89ee06b673889dc888ea", "ref_doc_id": "29a044f2-0d32-449a-abf2-0bb89fbed685"}, "29a044f2-0d32-449a-abf2-0bb89fbed685": {"doc_hash": "cf272c733dc4fc341e6958e4819c6a43514ba3d3d7a9b4f2ea99c2fe6675cf5c"}, "3cf29be9-7ec8-4227-a7c0-b7540f6f80ce": {"doc_hash": "5975c208d9f207c43a1acc9f9637dc1c589de56aa1c8bd1866fdab5355261865", "ref_doc_id": "2e15443d-680a-450d-bf76-28bbb9ba5c58"}, "2e15443d-680a-450d-bf76-28bbb9ba5c58": {"doc_hash": "83686128cec12613b31f9e96b5028e0393b0e94413a93a45f5332287cb40c601"}, "0591449b-bc1d-49aa-adf0-1afe69862ed3": {"doc_hash": "6d8379d08553b1d755ec6f64fafccdd29f292265319ed69dd5ab59c10610f85f", "ref_doc_id": "5067daf4-ce26-44a9-9f57-593e48801f7d"}, "5067daf4-ce26-44a9-9f57-593e48801f7d": {"doc_hash": "90c5a1eb9a1444f475e3c68369ec2fcefc59b77b0618fdfa179bfbce32ddcd76"}, "8554c5c7-6204-4441-ad1b-72b3cb869b87": {"doc_hash": "c3f46c4cac3bc1727c9e38a1a5ec4e5551857d286c27edee6aeb6ce137d92600", "ref_doc_id": "39e82b4c-2eea-4d5f-b363-8e5851a8e173"}, "39e82b4c-2eea-4d5f-b363-8e5851a8e173": {"doc_hash": "00a478db4aae89eb67ce9b00b5c1448252f7c8468d0dad945b1806fedabbe84d"}, "b4832df7-1a00-4374-b378-da0c65660647": {"doc_hash": "f15b531c4a01d6e3343e6a1847e3fcf52f73cbd8411fd6fa50a68e8d8a0dfce4", "ref_doc_id": "2976cae5-17fe-4e97-90a1-ccbbd4affb0d"}, "2976cae5-17fe-4e97-90a1-ccbbd4affb0d": {"doc_hash": "889c8027d810280755b1018bad4429cd465dcc7d2b711b1ac255f88e7bfbbb68"}, "6f7b327d-e7f0-470d-95c9-e555b324614f": {"doc_hash": "346638d67eb7a6539cc5edb7f685c851fcdf1625e96661c5eb9f5d1f35967a53", "ref_doc_id": "1b78836f-8eb6-4bc9-a070-b721df297f54"}, "1b78836f-8eb6-4bc9-a070-b721df297f54": {"doc_hash": "5d60459967b6dff2301904b9289d0d521a3bf79ff165b68decc552dad476ac3e"}, "80e790e0-36cf-491e-bf66-6c07378fe115": {"doc_hash": "23f0a967148b869aea28014ab21a15ecc3ba7fd95edb29f9b13ec876ee792b63", "ref_doc_id": "f1cc888e-8adf-4fb6-be26-6e8182c86e7c"}, "f1cc888e-8adf-4fb6-be26-6e8182c86e7c": {"doc_hash": "ca14130c6d08fc47158e52d3ebe762fd60c5c2eba3d56a5163f14281c5e0c24d"}, "af8eb324-191c-4345-8470-62370db5594d": {"doc_hash": "1eace2e58744810d623332d4a171621d7e12c1e9be3d5b82cd023b3d55f82142", "ref_doc_id": "8861fdd5-3a76-48a6-8c4a-7b3b12c7bd76"}, "8861fdd5-3a76-48a6-8c4a-7b3b12c7bd76": {"doc_hash": "d1f8808ce30a794f979d5059ae550be6584adb26996d0710d59375e1098de0dd"}, "4ac9a2d6-7dc0-4751-b309-3eb75031fb25": {"doc_hash": "3d31f563169d0ce0af7a0fc774e5fdf80fa0c3d33f972ac71048eddf48a50fe6", "ref_doc_id": "dd7f50d9-513a-4172-ac62-dc818f3a77e3"}, "dd7f50d9-513a-4172-ac62-dc818f3a77e3": {"doc_hash": "e1ba2a40783fff2f56293eec8cf477c0e7d04c6c05a6cb3dc6d670f829f565d4"}, "e46b8c6f-8aa6-4815-b09c-bdaa67f03b47": {"doc_hash": "38d3751e23479e42b12d838a0e78fbae278c67e27f9001d112d3b48586fd6497", "ref_doc_id": "759f0009-a9ab-4ff5-8b0f-4e1eaf337cc5"}, "759f0009-a9ab-4ff5-8b0f-4e1eaf337cc5": {"doc_hash": "8436cfa258c631b9a7d331688cf145d1495c76f6707889470556fe1fc28e6e40"}, "3847a489-078c-4242-8ca4-d3e3e64c0ec5": {"doc_hash": "e08601d5ec42faec86d4a3e042fb6ab646dccb44b18a30e10acf618708f13395", "ref_doc_id": "30541b0d-fb92-4a5e-b098-bb8d4192522c"}, "30541b0d-fb92-4a5e-b098-bb8d4192522c": {"doc_hash": "3d047dddcbe3e7773c1f0dbdb1491ee8517970a686251469d6143c4eac15a5ac"}, "45b66ae0-348f-4024-9072-b76734054ddf": {"doc_hash": "9e7b5423c665252f6c8f29214dc7958ff7ad270dd82f9baa2c01341fe14ebfd4", "ref_doc_id": "0bad938d-a22f-42ee-93eb-faad8e05c6ac"}, "0bad938d-a22f-42ee-93eb-faad8e05c6ac": {"doc_hash": "340021a9c4a0823bc705c20567ab851865ae0012ce8aec5b08ec8e564abe65f1"}, "c6c7e947-5730-42f1-b9b4-0c149e83cf76": {"doc_hash": "ec676b815c217223b1e0278fe8b0462445e3c1aa0b5bd9f61a07eb052a2a6b93", "ref_doc_id": "cd6e83af-7290-4e76-8ce6-752abd2bf88f"}, "cd6e83af-7290-4e76-8ce6-752abd2bf88f": {"doc_hash": "1bdfdc123ed6cb88910fba6de621d1fb063c799910df5819531e3e8b6d4f42ce"}, "0986cdb8-8a54-4948-b249-4d01dae7a799": {"doc_hash": "fb522b1de80927c59ac72e3405738967a6d7c92402d6455520ea77ce9961c59c", "ref_doc_id": "6ffc99ff-aaf6-4a66-8b84-8c4a6895d09d"}, "6ffc99ff-aaf6-4a66-8b84-8c4a6895d09d": {"doc_hash": "d2678ff6150e18b2081db607a73c348a520d3c8bc36d428b96d73b3b6bc2427d"}, "2e6afa40-dc69-42b5-a08e-a577a616e454": {"doc_hash": "052dccfceb1af3def2747b63e79398dfa5787db9700dc786aa30458d65de93d8", "ref_doc_id": "2a1322b4-4bfa-45d0-a31e-ba66a0cb0aa7"}, "2a1322b4-4bfa-45d0-a31e-ba66a0cb0aa7": {"doc_hash": "6f5dcfb32b38e4d86a81328d305d7098116e9e22817510ecbdee3987c41c8a1e"}, "c4f85860-bec4-4ff6-92f3-e8bbc3150172": {"doc_hash": "ce0d341855717ea0fe8b24af5ec7c125c631ee0837c744578cdaf9e609e0ef6b", "ref_doc_id": "91b923dd-b727-411d-99d9-81ec6060622f"}, "91b923dd-b727-411d-99d9-81ec6060622f": {"doc_hash": "f234fd7e61fe9586682fbf9103b2dd4b2fbfd916450f74dfdf8c1d4123a4e40c"}, "3631641e-a89a-4a0f-ac48-8db57f5b38d1": {"doc_hash": "ef27de1e3b6580d22ccb6948be729fdd6f187ace94ad60566adfbdfb9be5bd42", "ref_doc_id": "6dbfed81-1217-4441-a9dc-f60fdd0439dd"}, "6dbfed81-1217-4441-a9dc-f60fdd0439dd": {"doc_hash": "275d9d6838b6cb6157d692621f1db778d2d06be248a1f5de6a5ebea52ada1c61"}, "081615f8-c639-4a8f-b78f-ecc1da04bd8d": {"doc_hash": "6d2934b421c0a31acc080a2bad8a06ccbcf16f785c8cac4d652023769eebccbf", "ref_doc_id": "8a5479e1-0112-4e61-8aeb-c69f243a3048"}, "8a5479e1-0112-4e61-8aeb-c69f243a3048": {"doc_hash": "dae6a8aaaff4cf118b3c09d7d573fa6800289666a8c09d3af65b8c638133fccb"}, "6e640e24-51ed-4511-b4c5-7a1998ccfcd7": {"doc_hash": "dbe00efb8bc95bfadceed0b0179a029ecc5e3da8fec9ba36a1ed482bdc3bd249", "ref_doc_id": "cc231400-7e1f-473f-896c-4b69a8121111"}, "cc231400-7e1f-473f-896c-4b69a8121111": {"doc_hash": "4ca7f21cbe2ab0e6486ba4b78a02020cceb6972f1b4a42bc4771a6bbf3ed4125"}, "a6409862-ce30-4c79-b366-d5f386e6cd74": {"doc_hash": "43bc0e39686fb28d1ca3b8d933ca4336753652fa01551b30967108d93b9893b3", "ref_doc_id": "aa531ed4-128e-4161-bef7-e2d77ca6e3f8"}, "aa531ed4-128e-4161-bef7-e2d77ca6e3f8": {"doc_hash": "0c82830c01be222809c244532be3d97e8e27deb8a7eb74a538aeb3fb22796d7b"}, "5e3a13fe-1099-4c91-bc48-6980c0740307": {"doc_hash": "1ad06eaccc0be7a6a9134b78720735fd50ab61d8539e9ea1cd7e1f33945e1fb2", "ref_doc_id": "1390b0c3-8426-4f96-a059-babc10149e0b"}, "1390b0c3-8426-4f96-a059-babc10149e0b": {"doc_hash": "eae1f3db76d3557fe0f1c37af333886a452a1c27c202b87fbac479a5c54bbf74"}, "00ea1af3-57f7-43e9-bf62-97ef3fdc33c1": {"doc_hash": "26041ed3c1853604cebd111c061716f4eadfca93e3fda7a304c201cbe3551ed7", "ref_doc_id": "14114aac-05f0-435a-8483-9b8dc9ce0edf"}, "14114aac-05f0-435a-8483-9b8dc9ce0edf": {"doc_hash": "af3766270ba9d6782044f9d549033cd83df10da5ee508b040f972a50ea6239b4"}, "a9e680e3-ae45-4ef6-b947-0da06d414459": {"doc_hash": "4e3b4b09652a0a6826d05b02164bad359c207852f7880268ec1d35a7d96f4fac", "ref_doc_id": "1687a4dc-2554-4962-9a20-1422ed2a3b37"}, "1687a4dc-2554-4962-9a20-1422ed2a3b37": {"doc_hash": "706e22cff5681d668e891de7c5b3bf0e6b04fdfea450234bf2a262fe57d51105"}, "7ed148b1-ab3a-40d6-bbab-57d0f04101ee": {"doc_hash": "f5669f55f78607cbd1e6a80b36b728dfb6aac057f25e7a6ef386f959e77ceb7a", "ref_doc_id": "0da0bf71-3502-49a1-b64f-f2a2d0e9a6f6"}, "0da0bf71-3502-49a1-b64f-f2a2d0e9a6f6": {"doc_hash": "2b9f69b335d093595821d03b009e66ea1fe4faeee130e6387c050615d4de0810"}, "4d2f0e2f-c372-4946-9b4b-6d16e3c7251d": {"doc_hash": "eb4b1560035d66835084193f84a7ac701b832d7b3d9783fadf71be18b4bb0bda", "ref_doc_id": "67080765-7312-4c6e-8200-725c949f678f"}, "67080765-7312-4c6e-8200-725c949f678f": {"doc_hash": "f83d4c206b443dbad8c36cbccb45a7366e5a74a1642e204bd7e5fc99333d9a5d"}, "eafd7453-9967-45f1-a581-a50382b5c28e": {"doc_hash": "09d59bfac1b2028c9c603860e01696ba47668b76cb85fe7ef303a2d72bbfbb64", "ref_doc_id": "a3df930e-23d0-4f86-b6f3-85dc14e465ae"}, "a3df930e-23d0-4f86-b6f3-85dc14e465ae": {"doc_hash": "a5079defc305a95f8ac53c829e4d275a1cd95b0ba9d235dd3de9f46945c82a6f"}, "7d65b5f0-9301-4391-b828-34089ceba7a6": {"doc_hash": "151dfbd59de5ddfd4006d628f450d108750a65180b36c3828f02d694c8ad1f6e", "ref_doc_id": "8dddb3f2-f88b-43bb-bb84-8047a11ab2f3"}, "8dddb3f2-f88b-43bb-bb84-8047a11ab2f3": {"doc_hash": "61d358b3637f64739fd9afe18a1b9010fdbf16687b78079e4b86ff809bf9c767"}, "90b7b832-dcd1-4ceb-98c4-d7aca31bfc02": {"doc_hash": "03b1f11dd08eb1e6348476e94f64ce91548a9eebe16c2c3ea76f17fdcc321630", "ref_doc_id": "ea91a3dd-433e-45ca-a0eb-9bb966aac1c5"}, "ea91a3dd-433e-45ca-a0eb-9bb966aac1c5": {"doc_hash": "5562aacd976f9c5e096d77e75f9b0a1f02bfb9c863cd0ce8d980585937b2726c"}, "a04358d6-0fdc-4a7c-bcbb-514be3466186": {"doc_hash": "f7d6ff97c32982735c35fb3f0c26a0c8c13c9384d8a9b7c886b1a16302842b99", "ref_doc_id": "9eef6c47-abe0-4227-aae9-9530ad647ebb"}, "9eef6c47-abe0-4227-aae9-9530ad647ebb": {"doc_hash": "4e6bd2cab7ac5480d43c223d473e1fc34f9b287c0ce1d5bf66a85623f504608f"}, "bba07eca-c91b-4013-a1a0-c4297a35557b": {"doc_hash": "4b8a9a4ee416209d86258d62196090efe5688c7042f2ce2b726fc3e249ea280e", "ref_doc_id": "c7d6ebe1-830c-491e-a58a-35706c527888"}, "c7d6ebe1-830c-491e-a58a-35706c527888": {"doc_hash": "98b1014fd7fe02e3ac946172f07c80c4d5a773141723b7ff4b543588419406c3"}, "992b030b-6d80-4c1c-825f-3bd4e92d4851": {"doc_hash": "d86b0b6dcc164587fb6f1e0b113f3d22758542ff3afd01d4635bef81ab3e7e1c", "ref_doc_id": "5013d4fd-1f93-48dd-a92a-acdfe0d40ca0"}, "5013d4fd-1f93-48dd-a92a-acdfe0d40ca0": {"doc_hash": "9cb8627cc647e6f7296d058707110ebd4da9a7b0edf910ca8cfb9ba25604920d"}, "6598170e-24a5-4746-aac2-48a808b7bc0a": {"doc_hash": "7e41845e80e18cee4c61adacbdce91b1a03e42a5356070ecd2a41cb873085991", "ref_doc_id": "554a79a5-ffe5-45ca-8d6a-971f646af1bb"}, "554a79a5-ffe5-45ca-8d6a-971f646af1bb": {"doc_hash": "3e65c09ad89893ad8171be3f856ae42ec07532821634198dd2f0dae39efecd74"}, "18dc3aea-4e48-49e5-bde9-976b5fc44c26": {"doc_hash": "60b5c0a6dde5b6bb3d1a03c2b4ae3329608c6c5097422aef56ac1816871a4347", "ref_doc_id": "c847ff92-9dca-4207-9d2e-65f93c06ea24"}, "c847ff92-9dca-4207-9d2e-65f93c06ea24": {"doc_hash": "627b3c8285481741d6d5b9fec548c5bc2d70a94870c1f08bcc22b1346dcfd779"}, "d29b271d-8dec-4265-bcb1-933a1a03e860": {"doc_hash": "714c586700836c7956dc2342e6fe8069fdb058ece450c54e105c3dba327ad447", "ref_doc_id": "4436ea16-0c7b-4670-96d6-6044c12fb767"}, "4436ea16-0c7b-4670-96d6-6044c12fb767": {"doc_hash": "5621f96148468ae63e31bc3adc877fc737e77d8d85c29160c6530e20b956ec76"}, "0be0c4dd-13fe-4f7e-8832-62cf540edebe": {"doc_hash": "f0d8961c3709f750455af93afe0776629a09a0a068e10d01ef26e325e275db04", "ref_doc_id": "aad66c98-768a-4079-b1a0-f3468339e9fb"}, "aad66c98-768a-4079-b1a0-f3468339e9fb": {"doc_hash": "504fb184c82b70686720fd200caa9376e470f16e3029047f0f096198f9c3946b"}, "6b50b864-6ca1-49c8-b223-1da7ec69ad85": {"doc_hash": "aa15f4651fcb02c20f436760f4c996d5c26bcdd0368cf4d8990aca1523e46476", "ref_doc_id": "9f3c4dc2-2c7e-4689-99ba-e007f7f45915"}, "9f3c4dc2-2c7e-4689-99ba-e007f7f45915": {"doc_hash": "6616116c75a10dd6005bb14762bb2c904d32e034929352cc186b198e21b76f19"}, "0d44c4e1-bba9-4d00-b6d4-b4e22e917e54": {"doc_hash": "b37219d7a0f802a4258449190cf027d9c0ef08b5aa608999171f87ec3d6de9dd", "ref_doc_id": "fd165a1c-d804-4dff-9caa-7f91a5c9889d"}, "fd165a1c-d804-4dff-9caa-7f91a5c9889d": {"doc_hash": "005057c8082876fa818f418177a92c18abf4cc7841bca544368e6f0dcc3ffc95"}, "4331c831-30c5-4782-a99b-0a6995c656b8": {"doc_hash": "a0eaa091d015011c98608457616aca164dbe9c4784f4889bd09092245d3ca3c2", "ref_doc_id": "afb57750-d892-44a3-9e44-ff21bd8c5129"}, "afb57750-d892-44a3-9e44-ff21bd8c5129": {"doc_hash": "0ffcd61ae46b27d7514d1bd44f5efdcef6b377105f22dbc0c05b176772a8c120"}, "0fb7336b-e30d-4f1d-ac1d-cd3ade4cf822": {"doc_hash": "c7fb9f560f0d64120bea24708e872b5ba1a9eafd9da2eba1902616dfc5fec4a4", "ref_doc_id": "4bc910b8-96e0-4206-967a-7bdb180b0b2c"}, "4bc910b8-96e0-4206-967a-7bdb180b0b2c": {"doc_hash": "bba52d77acda465db7b4a8854ca9f853fb6813e0850a99a953e71ded7eb2ebdb"}, "2e6565ae-32c8-4a26-b9d2-706f455aaf0c": {"doc_hash": "ceb97987fa55a26fa51d4dc1d64d3ad85e2df199c32b43f07ce5a51fd34ae80c", "ref_doc_id": "2589c2b6-9943-4ba1-a64b-4b74a57a9f33"}, "2589c2b6-9943-4ba1-a64b-4b74a57a9f33": {"doc_hash": "ecaf5051904f07313096c31ea85efd9903593393cf50d902738915754b67d2b2"}, "2c089c49-2bd8-418f-b6d9-410de832dfdf": {"doc_hash": "900bdc460fe7f20aa5aa02221d4fdf2d0726d20f4d07341c5784b2d2ba619fd9", "ref_doc_id": "81a7893d-37f9-42fa-8c5e-5664e742e0cd"}, "81a7893d-37f9-42fa-8c5e-5664e742e0cd": {"doc_hash": "8524b17e2ba019f9d2c884a2a0c16742dc0f2d92eb6893b8280e469f71b98890"}, "376f1a79-f4c0-4b47-a481-fe50c2dbf7f1": {"doc_hash": "27dbb806473596d196404519ae93adeca67a9c1c1e1e6a8eb88fffd1d3ceb3b1", "ref_doc_id": "2fae99c9-572c-438d-846e-ba4721fdb69c"}, "2fae99c9-572c-438d-846e-ba4721fdb69c": {"doc_hash": "f071fd23b664df9d7106601f1959407903987691da075ec381e75a6e73083707"}, "7947fb2a-178f-4abd-8634-a655f235101f": {"doc_hash": "b181429d870ecb86ee73a9156e605de63ebb9cb258d44b86919f7b9ae44274aa", "ref_doc_id": "d7462afe-e96c-460b-9ef3-ffe39476c7da"}, "d7462afe-e96c-460b-9ef3-ffe39476c7da": {"doc_hash": "1d0b2af7ad295a1f49f1523edfcb23f6b5f0647e5e52696d9ee7b13fe6e1e3b8"}, "eed5ee0b-1eb7-46c3-8b9b-440f3220dc4c": {"doc_hash": "132d4fc278f0d2d6d7581656a5778d8cc4a20eb17d3f160466860411b41a34b2", "ref_doc_id": "2ec55281-0bc9-4e05-b8a8-c445a6aaac75"}, "2ec55281-0bc9-4e05-b8a8-c445a6aaac75": {"doc_hash": "354c89752189dc502ca640cec2b074643940e050ff742568ddbdf620ac0272e5"}, "eab6b231-b65f-4aa4-8c0a-58ce4f93b13b": {"doc_hash": "e36a01c6a5b8c5f52275a11cdcd2bea336b8cff346d5cab5cac41b61a26f0724", "ref_doc_id": "6f8c0c9c-80a1-4a91-8fa6-06a7b8cbef7c"}, "6f8c0c9c-80a1-4a91-8fa6-06a7b8cbef7c": {"doc_hash": "e84cba168abc2c4eb676bda8b0be9bf24962500c4d3e39ab98423d1e3f872c08"}, "f9698ab2-925c-47a7-83b5-bf24df213f1b": {"doc_hash": "796eb876a06ae5d5ca4c2891307c6d7278a81cc17981ad776852c1078a0e3a08", "ref_doc_id": "7c33f5b7-633d-4afb-91d7-cd95997c74f9"}, "7c33f5b7-633d-4afb-91d7-cd95997c74f9": {"doc_hash": "ee5699c0ee6df8ea9464357835928b83d35db06549267ac6fb9930588d54c323"}, "6b54c984-07be-4eaf-8743-19fd01c5b12c": {"doc_hash": "8cad327946342aeb509a29ff2531c4c45b4b5f607c2ceb3e2ce144b828761a4d", "ref_doc_id": "a3071fd2-2d00-4b71-b7f3-d4385766bd85"}, "a3071fd2-2d00-4b71-b7f3-d4385766bd85": {"doc_hash": "56cfe9ad283b2312032bbbf3d644276bbc84e56d461e3152445e0bc3de7d5c00"}, "348aa0a8-5cfd-40f8-8f80-f9b91ac23506": {"doc_hash": "a04eb89e5d7db677f71540410ddb35a6241ec34a871f7210ed16a83fda884e96", "ref_doc_id": "74de1da1-28ea-4353-971d-cfa838e7af9f"}, "74de1da1-28ea-4353-971d-cfa838e7af9f": {"doc_hash": "cea21c7402f712e3b9dd8a473ece94cfb0a60b12b75a6ebcfc943797b91493d9"}, "565790d9-5038-4830-8aa8-f5b53ba03da5": {"doc_hash": "07857ba10b293e695335c5149a87728d9464506f72aafc348ffb01ccb012a410", "ref_doc_id": "d22e652b-23b3-4d7b-b35f-e8dc666ef600"}, "d22e652b-23b3-4d7b-b35f-e8dc666ef600": {"doc_hash": "d04963c0625cda2a6b5a023f5212dc8370e90be869dbb19be3200f50535f293c"}, "a943f8e9-5ed3-477b-9ed0-bc4e5f2b747f": {"doc_hash": "45103d3066f5dc777da3270bcbb93b9b6c679cfa2239477f499142d3b316477d", "ref_doc_id": "d569f7cd-7f99-4f6e-981b-e5510a8aefad"}, "d569f7cd-7f99-4f6e-981b-e5510a8aefad": {"doc_hash": "ff3b5dda320e3f69036fe10900276bc036002e4182585993fa44e796c17ce1d0"}, "fd0dfe16-c066-420d-b844-f5136d2c9027": {"doc_hash": "ede127e79a9c6857b4fa4a9f44e8d23f57ed4ad9e8acbc647b3a2c07c3be7afd", "ref_doc_id": "08eefcaa-7266-482e-bd72-dc39740d6207"}, "08eefcaa-7266-482e-bd72-dc39740d6207": {"doc_hash": "c388990a2a85c56b78d6b5fcb8277d511063a0a1b84e6c53599c9df74945e788"}, "87e72b6d-927b-469d-b7f1-2bd42dfd6936": {"doc_hash": "94c69a7f0f3c74602b7f31c9b7a138d9a4e966dd19079a63ca7e7ae9d5a4e8a8", "ref_doc_id": "0f1cb1fd-64ac-4e8e-b693-e3a2e57eab81"}, "0f1cb1fd-64ac-4e8e-b693-e3a2e57eab81": {"doc_hash": "230b0d7fb60ca313b32cf43b4f383dbfb0d8893736d9000f018f4a1307a19e7c"}, "b927188e-859b-4b23-bc2b-757dad8b64b7": {"doc_hash": "d741f094cef3c84947c3c630570d75f0b4af9b115f984f65785ebfc106e0dd87", "ref_doc_id": "faaed87a-ac73-4028-abd1-287605f107ed"}, "faaed87a-ac73-4028-abd1-287605f107ed": {"doc_hash": "f2ef6cfafb674b5859f55be45053c8db86d7adbd2c379cb0feb890270c6434ad"}, "a96c48b4-0caa-457a-9d1d-98a44d4df424": {"doc_hash": "8aea284a2dbe0c1b1810c9086ad5b85786adeef8c304a73f8ae7300c8202bfda", "ref_doc_id": "7612d31b-4ef9-4640-949c-0d9a28b0ca2b"}, "7612d31b-4ef9-4640-949c-0d9a28b0ca2b": {"doc_hash": "d9c92e5301397113e857fce75913f2060a745d75d2754f225c32fe374c8f04fa"}, "a6ba3f0f-195e-4561-a77f-06f4364485c5": {"doc_hash": "ac38cfcef118800e7b8492ee9a13aad19b265fa0952c6a46544a28e737c4cd62", "ref_doc_id": "bc1d666d-3217-468c-ab86-c82e94eded59"}, "bc1d666d-3217-468c-ab86-c82e94eded59": {"doc_hash": "e79ad957e239a2e46aeb41dd08b4da184b4e614e50c435a6fa811a3f02b36400"}, "81aebd08-ad3f-42d6-b782-3dfe4a003cca": {"doc_hash": "0e05d4a89e058b764837d647fdc93b28fb229e1113fdc5360f4125b4be7bd78a", "ref_doc_id": "5bce56ea-0443-4947-9c3d-77596d9bf5b6"}, "5bce56ea-0443-4947-9c3d-77596d9bf5b6": {"doc_hash": "1ddff7de84c616278900fdbd7cecbe47ab4b3d2d11bb052ff7f5d9b6304248cd"}, "6be68313-a3eb-4002-acab-5f6fa4f857e2": {"doc_hash": "a73a3353bab80da25a752f37cab31faae75dce1fe4c2336724bb77dd88eac6fa", "ref_doc_id": "8f55d63a-b7af-463c-98cb-0acf2e22d030"}, "8f55d63a-b7af-463c-98cb-0acf2e22d030": {"doc_hash": "1bd07573fec529db600fd4dc5c79116ccf215e6ccff87d9ea897fe99aaefbb4a"}, "b34e9ee9-eb62-42fe-8909-fce4b5b0ab85": {"doc_hash": "60fac7be81057aa1af362b62ffe45c2386e9a0671724181fea63e404ab88373d", "ref_doc_id": "e076ad8c-295f-46b4-84e0-2eb7e29247b0"}, "e076ad8c-295f-46b4-84e0-2eb7e29247b0": {"doc_hash": "d8816e5fc05fc6469ef2121deb23ed09df8be533b86233b9c948ea737a22c599"}, "cd23dac7-3110-435a-a425-009e94d6016b": {"doc_hash": "5719b1ad1cd26854db27c40d2a5f7bf21035345dd3eb8394bbf508d00b635e2d", "ref_doc_id": "cde2fe34-3dbc-4a40-bbf7-7e76dc888737"}, "cde2fe34-3dbc-4a40-bbf7-7e76dc888737": {"doc_hash": "fc0d148df8878f1828cd8f79ac269230bfdfe9f268dca4915f93d1079ae3fb55"}, "6564d194-bcc7-475d-abba-ba906f67bc99": {"doc_hash": "ada411eeaeb9342d049a6d5677b336202f9dd88feb011a6632880d73c66a0112", "ref_doc_id": "06fa7d7a-26f5-4678-b4ef-3e4d9a722230"}, "06fa7d7a-26f5-4678-b4ef-3e4d9a722230": {"doc_hash": "12bbdb4b38cc94862a3eae0cd3a2d280a928bdc8a88d2298d57aa6d4d9a2e1d1"}, "87c5df61-76c4-4d14-b6df-f510e146736d": {"doc_hash": "03174fe6a0824e66b3546f7b69aabc7af14e0a9ebc589efccf35c5bb61b0a09f", "ref_doc_id": "8c535be3-cf42-4e20-a38b-46a3d73544a2"}, "8c535be3-cf42-4e20-a38b-46a3d73544a2": {"doc_hash": "20d5b903657fd5f044af8ab63b88b9f57c7d0c816dee5bdf2a4b5e0c5374893a"}, "9b08e1a2-7570-4caf-bd93-446617714985": {"doc_hash": "96efac80f45d33c501fd40478ce072cd3d4e40eb7ca13854ec8855a2f4f79d7e", "ref_doc_id": "325a70f8-09c0-4acc-8535-a7b663aeae7e"}, "325a70f8-09c0-4acc-8535-a7b663aeae7e": {"doc_hash": "1d07685be58e534a127f548eff85a631e0369b9596e53fbf1d41b454d3e32ecf"}, "daeebdc0-ea63-46a1-b5f1-8e83e4d5bd0d": {"doc_hash": "21baf1eb4922d35e8271fadae07e7104f9432f56490e4bee2a7fcacdc8cc78f1", "ref_doc_id": "dc74e7d5-9572-4f63-9924-8ff432d69ee7"}, "dc74e7d5-9572-4f63-9924-8ff432d69ee7": {"doc_hash": "7ab0071036d998c37d366c75ca527694e6c42e5193ff08dab35b275726ba4f50"}, "95cba21a-d4b1-44e6-a761-a81197f6e89e": {"doc_hash": "42b0f5d980d7ad4556d05081ad28cf2004ff3d369dc3a847261ba43bd22e54d1", "ref_doc_id": "4ae69d03-c6ab-4718-8adb-57792fe1e739"}, "4ae69d03-c6ab-4718-8adb-57792fe1e739": {"doc_hash": "b5224b79f545e690de6ea3c26acbe3f703d0431e30ba7487b11dd5d6c3361092"}, "76d389e6-3abb-4c22-9cdb-07ab96538a32": {"doc_hash": "c616008fc8f351efee63a6f0119b0322f11bafc088d419055d0893e95401ad41", "ref_doc_id": "7b1e35fb-4826-45a7-9249-bef79bbd8b6a"}, "7b1e35fb-4826-45a7-9249-bef79bbd8b6a": {"doc_hash": "02c40a00985576c71d4cb9d8a3718219348ad925117fafeeb73f096e58894f7a"}, "e48b9a83-2ab3-483b-9f67-d16080347b1d": {"doc_hash": "31e83e56ab74f234ff2a6c50fcfd35034a028662172163a881cefd8dcf10b193", "ref_doc_id": "da13a56d-8fce-4bba-b7ff-fe4e6be10c51"}, "da13a56d-8fce-4bba-b7ff-fe4e6be10c51": {"doc_hash": "c973575f817b161756a57869aadb60d9a9228c765bacf4b4fd32adf77777dd88"}, "b4372a48-da76-4024-8610-8ff9e7dd482a": {"doc_hash": "5a8cf1df90be7aa7fd9c4d5d42425a7cedb797e273e3ad67e703ccd2bf3320e0", "ref_doc_id": "113fc94a-e2f3-4f1b-ab15-6c549fe4e6ac"}, "113fc94a-e2f3-4f1b-ab15-6c549fe4e6ac": {"doc_hash": "9f20749c9678eb898d26686baed5235e4d05d3d66ad093cb7591be1168d18bb4"}, "cf696657-82b7-40d6-a644-cdfff1f5c616": {"doc_hash": "ff6a22cdca4243d7429ba32425c6976ba50dc9b712950bbb3171481bf15ea8c2", "ref_doc_id": "d15ce02a-2818-4ba0-afb2-ed14474a85ec"}, "d15ce02a-2818-4ba0-afb2-ed14474a85ec": {"doc_hash": "91f13ee3a54e329ae96a3a31baf2859aec74c603ff987d77f004ec52eb919e05"}, "6b9ee4b8-06ce-4fdd-ba28-19be70a516be": {"doc_hash": "400cb344498e5c5322ff1c4557e320ec7ca362dde5728f7128913887bc0b80e8", "ref_doc_id": "1b74419a-3fd5-49cf-9c34-dc9ed76d46cb"}, "1b74419a-3fd5-49cf-9c34-dc9ed76d46cb": {"doc_hash": "272b4b6ed4de25ac24950aa0720d7f8dcd52ff1689a6ec3c9faf14c204f77f18"}, "73f85509-7129-4186-9d07-bc5571f06b05": {"doc_hash": "690051d23abf34a5f996ebe4e00a9053544af8a8ed200d551c47ae91983e4de1", "ref_doc_id": "1591ea00-6029-4901-868d-12718487f37d"}, "1591ea00-6029-4901-868d-12718487f37d": {"doc_hash": "c33fc31dc0aa8cb1687f70314fd06cc0702fe5ce7a9cda8b477fc508242b53cf"}, "e8070576-4d56-4c8e-a243-2cd0fe949833": {"doc_hash": "ff09174c9792c5ba8738d947f5f8e8df261028e43328949127bc43cead612036", "ref_doc_id": "ff36db98-51de-4545-be95-89278b6353e1"}, "ff36db98-51de-4545-be95-89278b6353e1": {"doc_hash": "f67a16f5215479e505dcddeab94544cb2c7b654ac8bbe138712576d848b659bb"}, "3b4364e7-7c52-4eff-a9fc-83af69226891": {"doc_hash": "ef3f8b9ae90238aa8bace34e7a64bacb0d3b2f890ad190eaec3ab77a43b88dd5", "ref_doc_id": "39d97e15-b263-46d9-a01b-35c642aa0817"}, "39d97e15-b263-46d9-a01b-35c642aa0817": {"doc_hash": "96611b201d27581a13fc44213cdd507f78e12db36b54ef3b82596a5f90fec02c"}, "ec7a7edb-528d-43a2-8462-edb28ab51181": {"doc_hash": "27e3701ae987ce4e5cc47679b8c6245fab5e6eeb20e794c945162b3d0637d688", "ref_doc_id": "7b9a644b-c6fd-4dae-a579-e57d0a58931c"}, "7b9a644b-c6fd-4dae-a579-e57d0a58931c": {"doc_hash": "643509a2c88eecb76a44b3eecc04d34c3d7177d38a4905e50d5d7b47961fda51"}, "93839d3c-727b-4d0f-b764-42f0e751bfb5": {"doc_hash": "2c25d886ab5712c7a6e94780819ccb5ce96c554004c1724ba3d88da2e783c346", "ref_doc_id": "9caeb76e-b863-4703-8716-f08392de7434"}, "9caeb76e-b863-4703-8716-f08392de7434": {"doc_hash": "5bd883d0b7d9cc41f851aa4e559aa881e166fa0f96e97b11b654ab3db87d5efd"}, "60723f65-59e9-407f-8519-ad6abcf921c1": {"doc_hash": "7caedc5eb1e0b101dbcd724451335454af21f750c8c410b89bd0b5ad72744911", "ref_doc_id": "56e2c99c-5552-41e4-8778-e7d4543d5356"}, "56e2c99c-5552-41e4-8778-e7d4543d5356": {"doc_hash": "a98fc66f9ece9a745b579af63796b6b373a8cca079e15f579d79fb85d7e425f6"}, "19e8956f-e6eb-4069-b57b-766a1330fc48": {"doc_hash": "a31c356f8fe0e3099b0ce63ebf191d6e7ec3d80a807928ec07ff7323f798c4ad", "ref_doc_id": "2bb80e4b-b034-4ac1-9d3e-8b0ccdaadbb7"}, "2bb80e4b-b034-4ac1-9d3e-8b0ccdaadbb7": {"doc_hash": "ec86a0c88e0abaef88ff3c6851ee5ec966657759ad55cc9d400474ead4ffe022"}, "79a72844-85ee-47a0-8ac5-6937396e186b": {"doc_hash": "e966941b4db2c361dd3dabae4c09e9a8028e4287bcf9d446745aebe25fabfb48", "ref_doc_id": "2cf6ac9d-5afb-4840-a304-5add74fbc154"}, "2cf6ac9d-5afb-4840-a304-5add74fbc154": {"doc_hash": "2a0f92b753a38b0fb508157e7f7d1ea2ea010f8971a84220c45a69e107af4af1"}, "0b13cc6c-6e49-4290-9177-4ec1c61bea7a": {"doc_hash": "48c446baf565a17e6e11332fd402d01e4eec5c6c43230e3109f1b3c4e139bd0e", "ref_doc_id": "c08a047d-c8e7-426b-8b1f-2d73a5bd7e65"}, "c08a047d-c8e7-426b-8b1f-2d73a5bd7e65": {"doc_hash": "2fe1a397ba8a2e1525cf5fa9bb333b4d6d01e4796ec5b1c63e621147a6137f6b"}, "3971ccae-05e7-426e-8275-04aa01cfaad1": {"doc_hash": "44fcaa6e3df268d790b622950c774fc70bca1550617706baed9e84330af74b86", "ref_doc_id": "1a67f596-05fa-4a66-ba9d-90e594959bb9"}, "1a67f596-05fa-4a66-ba9d-90e594959bb9": {"doc_hash": "b697a55997e60e10b0b091e0135f78c9d5a8e6085086392c20fd2ce69156115b"}, "49fd31d1-35c1-40ee-b0a1-e5fb8d64e0d0": {"doc_hash": "bd31d3c8d7424b1f0340d4cbde8adf2932ba29bb2b7b62ff7d8ee7ca047a433b", "ref_doc_id": "eb35ec36-bab1-4940-a149-e2197bf3dc3e"}, "eb35ec36-bab1-4940-a149-e2197bf3dc3e": {"doc_hash": "f08dad8486aa31f758038abd49c242e7adb6573bf9cb958776f77ef8dca24554"}, "238da70f-2360-4a2c-bc16-e5a5bd8e639b": {"doc_hash": "b58cfffaa7841bbdc756cb3458314cf37b0227d0468a9c961aa985a88e5cace4", "ref_doc_id": "8c9fc755-998f-45ee-91a7-a4f7e13bd03c"}, "8c9fc755-998f-45ee-91a7-a4f7e13bd03c": {"doc_hash": "8c9def720637ce57753928867004eae33a47bda83f75ac42545971643ad46e5e"}, "56d940a0-f071-41c3-9b21-4ec904915bf7": {"doc_hash": "20b428e1540ebcee5196f740227a817a2d2e8affb6afdede3f72e58dc10259ab", "ref_doc_id": "4b70aaf1-ede9-484f-8617-0ffa8a8b7154"}, "4b70aaf1-ede9-484f-8617-0ffa8a8b7154": {"doc_hash": "d42b7c4cbd6a363972ba74fe6c8fb4d54e9f76fdc02da317c7c944459ca8bdbc"}, "4eb7659b-d89a-4b61-ab72-02db40cc9215": {"doc_hash": "8f73b073b70840a0ec5244cebcadc142268eb51a01ec095f47ed0ae60652424d", "ref_doc_id": "3e9f24e1-8b12-419c-a9a1-988aa0b8706f"}, "3e9f24e1-8b12-419c-a9a1-988aa0b8706f": {"doc_hash": "76055093c16bea5bcc05714436620ca924627cf18184e241805bb32523db0f93"}, "00f1fa25-1638-4350-8910-4ef90434996a": {"doc_hash": "ed9d195e0ba171c85357f484feda56634021b6f5bd086c9341069c69409df85d", "ref_doc_id": "aa72dab5-1dc2-4ea2-9075-5b00e1505098"}, "aa72dab5-1dc2-4ea2-9075-5b00e1505098": {"doc_hash": "44f968449b06521eaab30015ee8dfe64e3ba9e52d53345070aa2e0d061bd4dde"}, "ed3e380f-5a63-4e5e-994f-9568efb2e284": {"doc_hash": "9b293df300602dd3a429ae0bf117f30312103e6ad9e3e86872869d7205bbd696", "ref_doc_id": "00740293-5c14-4195-9b5d-9da45586c457"}, "00740293-5c14-4195-9b5d-9da45586c457": {"doc_hash": "ea0323716111a382c07b3df3d7887dff44397ce677b83733f447b78feac8e479"}, "cd045430-ca5f-4cb6-b5aa-95ff0da36004": {"doc_hash": "5ee190148fa7ab3e8a1c9a234c4bf98f61fe82694739753934185346567c8e55", "ref_doc_id": "2a077a1b-1206-4ba8-81c6-1ceedf2c5725"}, "2a077a1b-1206-4ba8-81c6-1ceedf2c5725": {"doc_hash": "5b4fd3ead34ccf0dc546107775c2eb9f05c7192391e7ed046e037151c69baa38"}, "8f5a0a96-4ff8-4666-a04d-60c1cca8633d": {"doc_hash": "0830cd26f4b45294ac1d8e0d16f646fa829656e450ff997bb2c4ecc52f7f9fbb", "ref_doc_id": "8faaaa9a-00ff-46c5-bb5e-c499e551507f"}, "8faaaa9a-00ff-46c5-bb5e-c499e551507f": {"doc_hash": "5f3d1e97880f3ecb293d3f10d2feb8b1612893cf5a6818da4405626936317c5f"}, "22932222-1007-4266-8f37-b778afb0b4fd": {"doc_hash": "3d6d207cf21de9f76938cb26593085eca78ebf2eb3013836b47c98fcf673866c", "ref_doc_id": "add62337-df97-4c8e-8621-e6255491f25e"}, "add62337-df97-4c8e-8621-e6255491f25e": {"doc_hash": "56ac5198da343587fa5f4d5caf1e90398f9e906a8b2921565ebd2293f932ca5f"}, "b418b2bf-bbcd-468a-9249-4dcae926007e": {"doc_hash": "779efdda04555547a7e3109665267738f6590ca76b2d7228ca9b7b188dc369df", "ref_doc_id": "2ba8096b-ed93-4ec5-bd8b-d3025f371374"}, "2ba8096b-ed93-4ec5-bd8b-d3025f371374": {"doc_hash": "7f739b6f656f6ceb2cf11005df774cf0ec3f9a1477f717a0eb26e80d5979bfa6"}, "0facf28e-5a61-4baf-98e5-707c943cc6d3": {"doc_hash": "39508874782ed4f53dc767c9b49d0b166e534a13df02b15e0fe9f0a9c258b208", "ref_doc_id": "38988292-1cb1-4b1a-b3a2-5ae8eaf43460"}, "38988292-1cb1-4b1a-b3a2-5ae8eaf43460": {"doc_hash": "417194ff370644b1403321162598e7497b75114995c953f75c14713efcf6465b"}, "99b84183-91b7-45ac-bc2e-1cce9453a76c": {"doc_hash": "d5030da263477f37637525872864c701b1f34bca0ef50b446f4bb574a38c0e33", "ref_doc_id": "ef4ddd3a-a366-4d61-94a6-a98c21f2effb"}, "ef4ddd3a-a366-4d61-94a6-a98c21f2effb": {"doc_hash": "cb8317b00629520700ae83579078c8fe3d7af833c21b14d45dceb5d7e61b6608"}, "aa6c5b6f-bce9-44aa-a66d-faf5aa5f7ef4": {"doc_hash": "7c99c7735ba07723549cd66478b4eedfbb9612d77d96a126489136480c01b408", "ref_doc_id": "d319dc7d-0846-4e43-af7f-96ed5d2d729a"}, "d319dc7d-0846-4e43-af7f-96ed5d2d729a": {"doc_hash": "b5cb62d2587d2bce962fad916626863940fadf6bd4f901709f3052440290bca4"}, "f5798380-5897-4c13-b360-6a8fa6d07c78": {"doc_hash": "3632bee0c055d33b0bee0b45cff79aea168bf8a67979de4058a4e297193166a7", "ref_doc_id": "b048e24d-2a83-4a68-8f68-80ec7faf22cf"}, "b048e24d-2a83-4a68-8f68-80ec7faf22cf": {"doc_hash": "44f233ed3d2553e111d0eb135868a6293440a348bca882f0a9f54207b21450e4"}, "1f1cea00-e48b-4455-846e-12c48ae1fdb7": {"doc_hash": "20d4d54bd41651530cec13f3db10fab3f95887d53316efaa9554d23526f01e08", "ref_doc_id": "7083108e-8415-424b-a96c-2981abddfcb7"}, "7083108e-8415-424b-a96c-2981abddfcb7": {"doc_hash": "12c02d612d0d36462095e2e4153d94751e4fbb8c4dd584a2b59a7b1e36ec416a"}, "54a6d5ff-d3b7-4585-9fd6-d2bcadb95dd2": {"doc_hash": "ea76ad34e6b9f52cea09dbe30ed4d467c67ea08242f1b523135a64278fca5748", "ref_doc_id": "a4f4b551-74bc-4323-8a9a-02a0f1e6a993"}, "a4f4b551-74bc-4323-8a9a-02a0f1e6a993": {"doc_hash": "f725bb18f323c586f2d032058253e151f2d396b425848a3a379a82e490a5bfae"}, "2d5ad4ed-5aaa-460b-a201-929d2434f81b": {"doc_hash": "2345bd0b7861d5b396c1b141ac33a048294d76720ba634241ea6e5c8170d0e80", "ref_doc_id": "6e91554a-885a-4e4a-a777-056e8d5a8c57"}, "6e91554a-885a-4e4a-a777-056e8d5a8c57": {"doc_hash": "2588df804622789f62723817ff662bfd01b050e64a4adf04562886430cf6e74b"}, "38cef840-1efd-449e-9eb4-5a9bd20e8906": {"doc_hash": "9065d2cf1e96eb4eda3914d1201951d887af2d195c380d0573e9e1b4f346e1bc", "ref_doc_id": "a3548692-800b-4fcb-ab46-84c0cb5b9005"}, "a3548692-800b-4fcb-ab46-84c0cb5b9005": {"doc_hash": "cb77f4609dd2367a5610fb41f06ef7f61eb26636b99f268c775ec1d952e8a280"}, "565237ec-1949-495b-af0f-3e21cfb8e36e": {"doc_hash": "b0a5a506c3a754ff5a9930e14409f0277d36984b43037492a2ee3213a3534689", "ref_doc_id": "a7a2ba92-f3cb-4cd4-a3b8-2d1267d23817"}, "a7a2ba92-f3cb-4cd4-a3b8-2d1267d23817": {"doc_hash": "faea5ef9a061602f11daf80bf0e7369fb27fd0b3fd8860b5c5ec7ebb4bd1322b"}, "6ad23681-9de1-4ab9-b140-37de2062114a": {"doc_hash": "902f05847356511641ba3db95849d9599bd40c0ab6d7e754a7e641539102a432", "ref_doc_id": "14beb26f-cda7-4ea9-bc85-9710da43e6ac"}, "14beb26f-cda7-4ea9-bc85-9710da43e6ac": {"doc_hash": "5bc892f9a71202b5ee67c9d7ea3cce4d56e44a8d87c4eac14083ca9c60ad1c05"}, "14d0cbf0-7dea-4331-8706-cd0001dc215c": {"doc_hash": "495298ffcf3a27f968b1279bb265e5708cc54aa1b246826b315a5502b1122f67", "ref_doc_id": "a6a2986d-afce-484e-a66e-fb5a0f8ac5f6"}, "a6a2986d-afce-484e-a66e-fb5a0f8ac5f6": {"doc_hash": "f9cb547f782162a77eddc1cc0e0ddf3630f0b33997e40895fa7868035b25e475"}, "5c43a70c-6302-4fad-9134-a78b3123213d": {"doc_hash": "6933f03aa923c4c9db7eb1b9d4f271c7f5ceaa7bbd0b5e04f41a83a1c97d5b10", "ref_doc_id": "86b61dfa-1138-4166-b8e3-88cc0d13739e"}, "86b61dfa-1138-4166-b8e3-88cc0d13739e": {"doc_hash": "7d5dd0778ad1f435ef8dc16a85bc59c35ad50c055562bf38afcc26744f6101c3"}, "f0cc97e0-1d67-4330-8cd6-a522791b2789": {"doc_hash": "61d5e6eeecb9a504a0388a30d3a2010d1ba83ce06005981c5b546f1bde5cd2c7", "ref_doc_id": "788eb3b6-5244-4563-9cf1-7aea78dfe1a7"}, "788eb3b6-5244-4563-9cf1-7aea78dfe1a7": {"doc_hash": "f06d68e5b0efcc9a5749a08e825519567bfcb8fedabd94378a081ee13680fb9e"}, "761b4ec3-3622-4a5a-b012-c92280e3a419": {"doc_hash": "e4631bca4aff68f05ad9546b8f98e6a0b261b0605ed11ae6511e383d1f60de06", "ref_doc_id": "1982a36b-a5e5-4468-acd7-b54524f9264c"}, "1982a36b-a5e5-4468-acd7-b54524f9264c": {"doc_hash": "778ee128c1a08732287400d5bef81f398c67ee42ece86929d9958dee58df54eb"}, "c93de882-c6fa-4a43-8698-34bc6c8c9bfc": {"doc_hash": "95d5cf74a66831c89694e922362f91800f6102f4a400e09c615263c8eb9d8f6d", "ref_doc_id": "a2142bd0-11cf-4b2c-9ebc-8f44aa906c42"}, "a2142bd0-11cf-4b2c-9ebc-8f44aa906c42": {"doc_hash": "6d4f6218bdb8b93025be2d6a17311d7bd8e43d6e68671173aa882b72473066d5"}, "473aac86-8c7a-48c9-af09-95111d1f6f25": {"doc_hash": "c246ff540bfd1cb8c9f608aca8d2815c655ce9b151a2e2383837f4f94612bf5a", "ref_doc_id": "344aafc7-2407-450e-ae54-469ab61d1900"}, "344aafc7-2407-450e-ae54-469ab61d1900": {"doc_hash": "c25409fd5056bf5c427d409e0098fa8e0f9257a0595bca1cdd09b7b0c576b853"}, "b299084e-9357-4596-b282-b15882acd860": {"doc_hash": "0cfee8dd04220a2f004a0b12529389d546e341e3ad15b0c7bca13a277ea22aad", "ref_doc_id": "2e3eacf8-8901-4ea7-b295-bf183c160cf7"}, "2e3eacf8-8901-4ea7-b295-bf183c160cf7": {"doc_hash": "50cbe7eac9529988f1d61a09d3529bf424c915a61870d9df95c54c0d79cd227b"}, "70ebc0ac-6b55-402b-b223-8d0876dff4c7": {"doc_hash": "60853bd61f695136c99056669801ff1a960fed446c732b0a8d4e6ad491ca5ef3", "ref_doc_id": "aa4940e7-5589-4db1-8fa8-3ed77aa08bf0"}, "aa4940e7-5589-4db1-8fa8-3ed77aa08bf0": {"doc_hash": "f8a935dfbd56acec4a99e7f418f0646f07ad776b4c1ac9f9c49e6d77f0491ae8"}, "1e41604d-cd99-4802-ba42-2392510bc49f": {"doc_hash": "4167051588dd7fd65c167b5fe4495bae48de73186e3a009bbe2a5f738f94c275", "ref_doc_id": "54eaaa6d-90a8-4240-8460-4c1991539627"}, "54eaaa6d-90a8-4240-8460-4c1991539627": {"doc_hash": "08365159e961f3ee3f98e64bd0d2a9c8523313439f01617b45f1d4044ea75eea"}, "22929174-27ee-4496-a9eb-fc80e8c624c5": {"doc_hash": "7a7cdd6e36d6718592cb7921c90a74bdb05d10fd3a2b370583527b930372ec68", "ref_doc_id": "a355a15e-17e2-4b65-ba87-cd6807176452"}, "a355a15e-17e2-4b65-ba87-cd6807176452": {"doc_hash": "4a2006233950561e54d31abc03f58d2d52a5588cd7525ff0934ccbcd483a0c0f"}, "aa1f3d29-3083-4e9f-ada1-f5df1a50ab7f": {"doc_hash": "5b4d9f15255d726bbe84d986279243b89fbf8c7db87e8707393bb6d4e7c1bda3", "ref_doc_id": "e4524f65-03ac-41f5-93ee-b3929e7167b8"}, "e4524f65-03ac-41f5-93ee-b3929e7167b8": {"doc_hash": "ff1b347e2801b80091203d66b9d1ef3d99f4dfd63b1e55cc1e2f039e3dec2748"}, "54d3f433-3f90-480d-9479-7a38f1568e2e": {"doc_hash": "61c9602dd7828404840b7293901b44df6908b3b38b4f0c18b71b1700fd292bcf", "ref_doc_id": "34dc9f85-ca3b-4157-a4df-b75299068343"}, "34dc9f85-ca3b-4157-a4df-b75299068343": {"doc_hash": "e90de4d23b7e7c54966af88b40d589733ae783cabb534e7fb0d97c9f74ba7aa9"}, "13e17dd2-b939-47bc-95d5-e5e9cde74300": {"doc_hash": "1aff8d913dc2f7cc0fa8ea16cf1f106aa64da8ea1bd7b14cb5c115aaf010733a", "ref_doc_id": "0a81626f-1913-45bd-ab50-53f8c3b45e4d"}, "0a81626f-1913-45bd-ab50-53f8c3b45e4d": {"doc_hash": "3c85edddc2f98d2f0ef77d44387c2d29c4d3f59f608135c18f693146cb734c48"}, "80b3d163-235b-45b7-899e-0196ebb70c78": {"doc_hash": "25553d8df261f04e2c90efee71f918470f3642b3a260264ff60d907f622a547f", "ref_doc_id": "5ec126f6-b6cc-4988-88e1-a152b8c1ecf3"}, "5ec126f6-b6cc-4988-88e1-a152b8c1ecf3": {"doc_hash": "1b8d8acdf31894341d8b6bc5fc0e0f3a51713be1bc4be13d9a559e0f22a24645"}, "14d1d358-0fa1-4589-9677-ed7678535bb5": {"doc_hash": "244fc348f7bc7138c15fddec7cac63a46efa1ef2d4c577ab11b674171a3807f1", "ref_doc_id": "878e7b74-cd68-4177-9e20-cde9449b2a7c"}, "878e7b74-cd68-4177-9e20-cde9449b2a7c": {"doc_hash": "540116414af82c6b3cb7fc1188b3ebc4f54231a9b7008cd4086749a25dcc790c"}, "d2d3c724-8cd0-4ff5-adf0-b9b5e179cc23": {"doc_hash": "7ef41843b0c0743cd463e4a3e4554ce78dad2999f79dc8af985913c85eb226c0", "ref_doc_id": "ac454ac9-bc7b-420c-873d-351a766465cb"}, "ac454ac9-bc7b-420c-873d-351a766465cb": {"doc_hash": "4b91f6072ac227f57cc42a2549a71acb1d4ca4cc1fecc88d729e9492bd47eeda"}, "6ff67467-80f2-4ac6-abcc-8b05f42e1c53": {"doc_hash": "7cb6d77ce2e1c5b623f479d2ccf524c3b6c9417c4038ad527140b60e255ce6e7", "ref_doc_id": "d4037846-a27b-494a-b2c5-1629a4fef24c"}, "d4037846-a27b-494a-b2c5-1629a4fef24c": {"doc_hash": "4c3f928410d7fe615679395c89c2bbaa7381ba044cb51d5565d9caf8b7d3fffe"}, "3bdab8b8-5661-4f28-a5aa-04b4310fa716": {"doc_hash": "b19fcc03ca59b59748871fbfe8c18cf92875b506bd44904978a48cc3fd081cc5", "ref_doc_id": "9ede11bc-6f3a-484c-90c6-74667d534864"}, "9ede11bc-6f3a-484c-90c6-74667d534864": {"doc_hash": "1e33e3c15ed393c5a50da47a2d30f0ae711f404fb76c92906055f8a875c87331"}, "41d3257d-5b62-47fa-9108-5a668cd0a0b9": {"doc_hash": "0320d92c500df0a10fbfe10adb4a7d0ce02bc07b3bf54159819258b6d193a981", "ref_doc_id": "fe7cf247-c839-4fd1-8b37-ee84fc8fcfdf"}, "fe7cf247-c839-4fd1-8b37-ee84fc8fcfdf": {"doc_hash": "a030c26c72018275b75cb9257cd666e1718affcb9c9742f1bd0a3f670604081e"}, "169e1e10-490b-40e6-95ec-945cd0923375": {"doc_hash": "72a3a53a92bf5085ad8427dcaa3f58939a061b0e661617edac753b5a3b0de24e", "ref_doc_id": "1ebcf251-6a6f-4b09-aaa2-74e159a74d0e"}, "1ebcf251-6a6f-4b09-aaa2-74e159a74d0e": {"doc_hash": "8b79c4b2451c6b60abd1c67ec24b2160c1a3273b76f5ea7d39227e2a665a84a5"}, "9aa731c7-12d6-4982-8b43-4e91452524e3": {"doc_hash": "bb7442a8da3f529a0e6e517378e4e428a4c1310ef78c565120910f04a562c0c4", "ref_doc_id": "2ac1b4b5-c959-4be3-bb99-a56f9e944ea1"}, "2ac1b4b5-c959-4be3-bb99-a56f9e944ea1": {"doc_hash": "162b73c9b9b78d6e5841cf8f8793ad16a5c300dfc4d6c5b323b0a9bd41abe1a3"}, "4b2b47c1-6d90-4c1b-a7ff-c8891d489a10": {"doc_hash": "0bac64da1b77ef6227aeb5e23bc4ebb2de6d8f593b6ab373c7d8bc9e82217ef6", "ref_doc_id": "42d5c750-c96a-4ecd-a013-f598907a8749"}, "42d5c750-c96a-4ecd-a013-f598907a8749": {"doc_hash": "6654a1279bdfcd12a5620948d15ed3511a95ae3b0c4a6b74e086a71b2c260095"}, "61cbfd59-0d36-4e50-aef1-e5d5c430075b": {"doc_hash": "d7039d6284c3b308cdec9f167f2ed9f2320f6ef85e7edc4a29db1ba09dc65c7b", "ref_doc_id": "a9587dee-3cb3-4ece-b0ea-3b2f376171c2"}, "a9587dee-3cb3-4ece-b0ea-3b2f376171c2": {"doc_hash": "05651f98c77b67e5edf73277fa3b0212340698cad4974d29a4d5445864a5d726"}, "71493d7e-106b-4e9c-883a-92b1a118af65": {"doc_hash": "86251e84c1605eb48dbf2b477dc9379db7b6997c4769438c2f14fc18ba1cbc51", "ref_doc_id": "b2e83e5e-2b85-4e9a-a91b-15c4707616bb"}, "b2e83e5e-2b85-4e9a-a91b-15c4707616bb": {"doc_hash": "f01749674286db15ed580973bcf825c44a2b796063ef9390e81f137d080a7314"}, "f150b3f1-82bc-4d41-84bf-662b826242ad": {"doc_hash": "eb41b8774b092db50a6b4f955cad1de0c402c2ff05f1461eabd983cbeea29b07", "ref_doc_id": "f42795b4-e940-4b2c-b6fd-1b90d8a4fe18"}, "f42795b4-e940-4b2c-b6fd-1b90d8a4fe18": {"doc_hash": "79ed0742ea5c2c9afefc4ce24359cc15051053c94e20910d5838d5db765798e8"}, "f896cab0-ca11-4e57-97e1-15a2cc79d2d4": {"doc_hash": "ce145e6b410ca5a03becebcccec53c27d9bb774d2dbcfb4026b6583db30cda6b", "ref_doc_id": "ce60d42f-774c-45be-8f82-8234614b496c"}, "ce60d42f-774c-45be-8f82-8234614b496c": {"doc_hash": "b8ab388a86aeb1a3ad85b5801b0c0f94202834fd260ef50ff2d3892ef111c7bc"}, "89d08691-b7d4-4c1d-9988-e9bc477dc78c": {"doc_hash": "55fe5844501ba09f17946f253e54c37b7786bb3c0a3ad37877c913e0e0ffc483", "ref_doc_id": "fa4f7cd1-6aaf-4c36-8830-5c1991ce8c46"}, "fa4f7cd1-6aaf-4c36-8830-5c1991ce8c46": {"doc_hash": "318421686bee4dac15006434f1ba311760e840ee0eeb2b44cf320daf527e7e40"}, "993b0fa1-7b50-411b-9997-526063978c50": {"doc_hash": "061d6bf83e39fd113ba575241d8c02b5d423d3a4cc3370c0224d0f2217e2d231", "ref_doc_id": "ca27478f-f999-4258-95ea-2c39924b819f"}, "ca27478f-f999-4258-95ea-2c39924b819f": {"doc_hash": "3569c9829b94c81c7233a53bddd070cb37473565b1901498321c1b4d7e219b46"}, "1dc08559-a231-4fe7-8206-b4d80d0359ca": {"doc_hash": "0a78ba0ee8d3b6c4ef6423dc7a7dd1c4a59260516547dc363520e5721da099a5", "ref_doc_id": "2b23393f-70b3-4d44-abde-b9c000d04556"}, "2b23393f-70b3-4d44-abde-b9c000d04556": {"doc_hash": "6939a80640fdc7cefd7efea703dea4d6d92c73089d57e9ac47a2e154e14e1a9f"}, "8af965c1-d008-40bd-b22b-65286d760fd6": {"doc_hash": "834e31f3cde57fc03c26e3c0d0e2b2e58f1e528cc5a4f249ee554b60bfc20c0d", "ref_doc_id": "5cce898e-c4ba-4fe2-96f2-025fad7ce913"}, "5cce898e-c4ba-4fe2-96f2-025fad7ce913": {"doc_hash": "cfc6df2e076de968e2a6fc752b5570ab64d43ff21ae38cf41b309669d12ba8f7"}, "c64b6ee7-1e25-47c5-b07e-dabb9bab3006": {"doc_hash": "bf2c1ec33cbb8c487be32e3b132a1f4fe286313e55f9c4914fc0172b49ac5158", "ref_doc_id": "1b3e1f01-c706-4ee0-88da-684c66521545"}, "1b3e1f01-c706-4ee0-88da-684c66521545": {"doc_hash": "44a068abd8813020ba9e896d01b80dfc79b083a64c2ca2f6af58139f70ac2907"}, "6ea020d7-d092-4a18-89c5-108637e539e1": {"doc_hash": "8896b8eeacd4e3d18dfcadc869948d81d6305a121893f4c4d06d8bcadc7f2f5a", "ref_doc_id": "a6802d02-2f18-453b-acda-a82718dbe52e"}, "a6802d02-2f18-453b-acda-a82718dbe52e": {"doc_hash": "25bd25a4dd15e21ff0fdbeda44c6ba045c32613dde3781a0e88bff6562ad2d87"}, "455668e0-baed-4f3a-aac7-31e8a08f8ee1": {"doc_hash": "0007fbd861838647e4451cc2cd42b2e7813dbb6d5603b13da219ca2cdd3312a4", "ref_doc_id": "73152520-c96d-44a3-b318-c7b46f501e6a"}, "73152520-c96d-44a3-b318-c7b46f501e6a": {"doc_hash": "86b86fe8ccda24f2fed9431de64908ebf2f91ecba2448dfb2a53fd5499d8a726"}, "a6d1efbd-b938-439f-a17d-f2f3fe98e6ed": {"doc_hash": "3bbac8558d3425c44caec9c8be03656046f8df18df00a2fe6384fd87e1bf6a2c", "ref_doc_id": "c5cdd5d4-6cae-4b2c-9b03-e023963379c5"}, "c5cdd5d4-6cae-4b2c-9b03-e023963379c5": {"doc_hash": "118f2e0ca68591e7444e860e7b56b2ca0749fa2d65444c6d8c640ec6d2386837"}, "a6c73f7b-51e4-479b-8a39-6edbbd67efbd": {"doc_hash": "b7be41e748db80e086cdc70e93a44d63e20bc1a77a71107642ce38be298b3bcb", "ref_doc_id": "730b7232-7bf9-4779-bbb8-d3aa655008b8"}, "730b7232-7bf9-4779-bbb8-d3aa655008b8": {"doc_hash": "61e9b3541cb8324206e9d885558701ffd44e35cb5243789518f3b0cb5287d080"}, "6a962772-98f0-4acc-a32c-baca453ad7b2": {"doc_hash": "c60661a0842f9751c4a265bdd0faac2f7ac11d50d153cf6b7bfed92bf28dcdb6", "ref_doc_id": "fce1dc6f-ec26-4afa-a285-686cfc4ca177"}, "d364f5e0-5e49-43b4-ad39-56ac7b1c0222": {"doc_hash": "1a592355e5a724a1146d4e04b3fb958f393aee5d75974ef409c0b31255475068", "ref_doc_id": "fce1dc6f-ec26-4afa-a285-686cfc4ca177"}, "fce1dc6f-ec26-4afa-a285-686cfc4ca177": {"doc_hash": "174bc8a7f11e928ac35168db0fdb164b968982c42d41637d0919b1b4af23d06b"}, "b354e15f-b3ad-4a67-b892-ee0dac7738dd": {"doc_hash": "72837a8858fd78d6b2c8209f06bd80dc1b062e4a7f2e74fdc16fd8416f814cee", "ref_doc_id": "f2753149-ca16-467d-891d-375ac1605089"}, "f2753149-ca16-467d-891d-375ac1605089": {"doc_hash": "0bce8f0470a474f5db7261cc39c323a6e722c242661db24ed7bdc0ff05bbbffa"}, "673b9a54-3e9f-4ba0-a4e3-b04b75b03d37": {"doc_hash": "397d03ad5a69a017b7b666fd91bd3aaadab3e7c9cd8e12b03333ea3388e29110", "ref_doc_id": "4a444f75-6e18-4482-b589-05a6390afdfe"}, "4a444f75-6e18-4482-b589-05a6390afdfe": {"doc_hash": "518e91f0f47a5f3c2a6576b4c6cecf5639523fa5cf590c364e85af57c8f98f9f"}, "02130206-5772-49c0-bd8e-24b1a1c1b1e3": {"doc_hash": "a694f8e2315e6f6ff4714f4afcb265b740b287d641509bf3115e641b6c552484", "ref_doc_id": "8003e391-f392-42eb-bdc4-e036de0cc1b5"}, "8003e391-f392-42eb-bdc4-e036de0cc1b5": {"doc_hash": "3f3b95efe7846c196e51244cb9424faa3cf222853907177366b25b1b953067b1"}, "a6516802-0f51-442f-b3d1-67b17610390e": {"doc_hash": "cb8b44a26e9fba0b1057e31f4f45935ac737f253194e4f0b6a137abe1e45e65d", "ref_doc_id": "5b4f9cdf-d59a-4374-bb7e-9c62710639b6"}, "5b4f9cdf-d59a-4374-bb7e-9c62710639b6": {"doc_hash": "cce209f748f8dddde728ffc7400ddcd01b796242e354c17d7e7b4db4569c4690"}, "313aec9a-8acf-4ea8-88d8-fd8839f7ec6a": {"doc_hash": "1a0839a170a2bf772cc7fb298035201df9017da7c8aedb38017bd1501b2c14db", "ref_doc_id": "8c4aacca-a606-4419-9582-63f7c920afcc"}, "8c4aacca-a606-4419-9582-63f7c920afcc": {"doc_hash": "0bf1ec91fd74a24763be82adff7a5bae99b5a01c7f62e26a3428c044d49417a2"}, "b0eb17d0-2641-49d8-8fc4-06a5fb0f965a": {"doc_hash": "eb7307bcac22e2274d98c30a96ed69a2efb23bf4d5941ea2bb4856a08dc21271", "ref_doc_id": "1745efb8-7677-4aeb-baf8-a0ce8c84d00b"}, "1745efb8-7677-4aeb-baf8-a0ce8c84d00b": {"doc_hash": "08251d995ef9b2918dd9239b5bc642356285b81e4fe35bc4fb6e7aa5265d4324"}, "064c8e96-5f3a-46ad-aeba-448c97777fc2": {"doc_hash": "eb5d9476dd04abdc16e5549c37948a548a9a69f64fd8010d2184d227cd0e767e", "ref_doc_id": "740a39fd-f3f9-46c6-9b73-87f8e8ae8bd5"}, "740a39fd-f3f9-46c6-9b73-87f8e8ae8bd5": {"doc_hash": "4a9835112f5336cdb93a8a84f96dc8cbb96d7f4c65d2650bc89b6966631e51ac"}, "5b8adcf0-21e7-46b8-92db-6cc410bbec68": {"doc_hash": "2527fa2cba60f4027e7d1a897cc389b2e76441a691ec97e54f3701836140abca", "ref_doc_id": "f615f675-b7e8-4a17-ad49-08e88ad98a1b"}, "f615f675-b7e8-4a17-ad49-08e88ad98a1b": {"doc_hash": "d995989a63536fd73a1cece82bb4472972456d5dd5464883d53354ebaa0a936d"}, "9805a311-511a-4b27-bd95-4eb342075d80": {"doc_hash": "8d4d83da4446c7fbfbd16cbf895668fc7d2d48da5918b8e33ca3ba6f54465312", "ref_doc_id": "fdaae3d2-5b84-4f71-93d0-c27b16a5197e"}, "fdaae3d2-5b84-4f71-93d0-c27b16a5197e": {"doc_hash": "a331690773a9560eaeed8ee6e0649265196ac6e86bde06360c77002a699a052b"}, "a2143cdc-e9d2-4908-a7ef-e1a9ba13535e": {"doc_hash": "63595a4147dd446a0ce8dcfd33f87a81736e7cb72a4449ec609c4a99992e32ec", "ref_doc_id": "eab7eead-8afe-4734-b370-bdb375c2f381"}, "eab7eead-8afe-4734-b370-bdb375c2f381": {"doc_hash": "73518efc8605f7ebfdfe2a2d6f13a6eec899452568ed8e65b501d8df7d228c2a"}, "7d5b5f88-0c9d-4f3e-b726-af02c5a31c25": {"doc_hash": "6e9bacdefb87a1e01c2cd9209ee4d1f70dd6460761816484a183875aa8cb9054", "ref_doc_id": "ea37d9c1-e0f5-4793-8558-3806f8f8bd2b"}, "ea37d9c1-e0f5-4793-8558-3806f8f8bd2b": {"doc_hash": "22df1b49eb4d407f6f4fa406cf4e2858a1643400affce25cff20477b87f2a8f7"}, "094546fc-9079-45c1-9f0b-add2c310c6fa": {"doc_hash": "ea86d3d22c5677749f72a1f73e733136ee55ef8bd7e6f3a49da90ebc5bc90b34", "ref_doc_id": "e85e602f-37c2-475d-a6eb-393dc47a1d9c"}, "e85e602f-37c2-475d-a6eb-393dc47a1d9c": {"doc_hash": "c91e01bb9dc3a2988ace3c801e8f137379f6b573fecfdeb6433de9e26736ad59"}, "04471d1a-a7bb-4245-8ec1-5ffeb2a51ab4": {"doc_hash": "fdf5f954454e0fcdc89a0134116daf152a9823f6f816104bd396073311fcfb9e", "ref_doc_id": "ca66ac90-4fc3-4b0a-abed-08edce25372b"}, "ca66ac90-4fc3-4b0a-abed-08edce25372b": {"doc_hash": "705f2620386d568b01ee082c54de67ee210654f845534bffbad4da95c9f432ff"}, "b12ba6e4-9629-479a-b947-83012986cc97": {"doc_hash": "c28a0540a8c1b44d68d2368dc6cd3e66c15f44ec9f793077d8bddda1f2fa2307", "ref_doc_id": "dbe39631-bd9d-4a62-932e-8e3a2053bf48"}, "dbe39631-bd9d-4a62-932e-8e3a2053bf48": {"doc_hash": "00de9bc1a7ca33f1e244201928d2e4ca7d924d42485628217772e60bf5a9554d"}, "1470dcfd-e56a-45d6-bded-4f611be7aca7": {"doc_hash": "bd457cb50f3c3f7a239c79a9cf887c2c8bd89e71d773c2b6bf8e239bd28f6775", "ref_doc_id": "f7ae5db8-fef5-4fb6-b2ad-afb312cf3c2d"}, "f7ae5db8-fef5-4fb6-b2ad-afb312cf3c2d": {"doc_hash": "d8e7ed760a526f6221db037c2b7c13c2f3e11f9a78e0861af1b37089f070c975"}, "35e27975-fd30-4268-96de-0cac6f36a7f8": {"doc_hash": "72904ebcc0ec8fd3289424815aa4d74d5e7701bdf87b19dbdb82a2a785e94961", "ref_doc_id": "93fb6c04-173e-431e-9437-27019e2d30d8"}, "93fb6c04-173e-431e-9437-27019e2d30d8": {"doc_hash": "6931e97e1b03267624be1c17bc1a9ca01ae6e7f8c4d38f4c5317fe2550180b7f"}, "ac03c541-18e1-4456-9b9e-7cc261161704": {"doc_hash": "3ed49d0af64274edecebff82c02a7b568a32f9bf4711f2616be6a457946acffb", "ref_doc_id": "b029384c-bc4c-444f-be95-86b3fc5614c6"}, "b029384c-bc4c-444f-be95-86b3fc5614c6": {"doc_hash": "8a78233d4e0b867cfac9a850575c956d09ba7ab89c9e92a75c3c4d4bfcdbdc9c"}, "aea2dd2b-066e-4b77-95bd-24f1c2ea5c27": {"doc_hash": "7487a2f12c58613ab92b79f7e2dfe2ae4fc486adc5f0c5d2b174dad084444d08", "ref_doc_id": "d170b1e5-96e4-4e84-a7db-c7af7c317b50"}, "d170b1e5-96e4-4e84-a7db-c7af7c317b50": {"doc_hash": "47540aaa71240ae9920cbbbc7ba0844719dd28dd141abde3ce35a0abf25c2d1a"}, "145da6de-e1a9-4c66-801f-94304e939a92": {"doc_hash": "6f7c794df69b726a5c3a86fb2fee106b7d817dafa59b4438c4f48d9565fd604e", "ref_doc_id": "ad247c6e-989d-456b-a419-17faa183291f"}, "ad247c6e-989d-456b-a419-17faa183291f": {"doc_hash": "8446b7bb3fa07cf5ef6cc6c9245095cc24aeeacb92e8e95bcfde993e4896c1b6"}, "a0dcdd8d-55fb-458f-8312-60e96b156240": {"doc_hash": "90de3f2bb45021021eb071813c6a9862dde4d2957d5b733cf023edaffd93be2e", "ref_doc_id": "556df3eb-5e75-4c12-8f9d-871b41a201c5"}, "556df3eb-5e75-4c12-8f9d-871b41a201c5": {"doc_hash": "016141bb2c7fd9f7cfa8f6d4629658ffb7d94120e0361a121cc94bb547a6c879"}, "022dde97-a10d-4dd6-8259-12c832150616": {"doc_hash": "77260226e7482bc2e3151565455c51028e34aabfdc28db95b2c54d27ec385bfb", "ref_doc_id": "6016b247-2949-49ed-95c3-4928a84a50e0"}, "6016b247-2949-49ed-95c3-4928a84a50e0": {"doc_hash": "c38fa752f0d11a8ddce12738581bc72806871ac1e795545e297cace794a73524"}, "1fcf48db-498e-411c-9c8f-d69122133465": {"doc_hash": "058b1092b2f0351f5613161af607d57894dc05b1a2c86a40ef6fe542f77119eb", "ref_doc_id": "8f44c98b-f497-4533-b75f-d9821704864a"}, "8f44c98b-f497-4533-b75f-d9821704864a": {"doc_hash": "af7ccc2b463950852af7f566ed3b65c636fea79076d0a85f461b020ab8decbc3"}, "b9df3f83-eb76-44b8-ab9a-589a52997667": {"doc_hash": "59d80fa4908737e62ce3d1c1099a8e8ad164b989842b5c34640423bb967ff02b", "ref_doc_id": "afea7eb3-328d-4efc-8adf-52fcfb87fd91"}, "afea7eb3-328d-4efc-8adf-52fcfb87fd91": {"doc_hash": "33cb66f560e9a639548090ebaf9392efdba4362a14ad2bff32ff6db730a8debb"}, "fded6829-6d93-4b34-9de9-b951e37a5589": {"doc_hash": "26ddda10071a9361b62c1ded5879b6942ffa07cec932a1bc9090d48fea48abd1", "ref_doc_id": "3cf97fea-2309-4345-8d25-53588bc9586b"}, "3cf97fea-2309-4345-8d25-53588bc9586b": {"doc_hash": "8854b1f4e1655a65c8c33eb7a8fd459f244d375a9531fad0148de629cf0bb07c"}, "a1869168-5a40-40ae-bf05-2de24be45cf0": {"doc_hash": "5e0eee16376136d866b8887871bab57187a18c436dcf3145e8c13b5d86c8f328", "ref_doc_id": "3100c93a-47d4-4f60-ad05-ee2843f4a783"}, "3100c93a-47d4-4f60-ad05-ee2843f4a783": {"doc_hash": "d4be91ea8991269ee0736ef1776ebd5e3ad2f0b5e71bc6ee340d2c523703eb2b"}, "f27e688d-6004-4025-b26f-4ddb1ef222fa": {"doc_hash": "90d1e1f42588f5ec6934f5bb647f871b83a6ccf766bd15a37abccb7e8e1285b3", "ref_doc_id": "b6f042b7-f885-488b-940d-39e4ce001fd5"}, "b6f042b7-f885-488b-940d-39e4ce001fd5": {"doc_hash": "513961bd4649755f10f7fdb8b1184d1156dfe5a84bd5891a48c345e5bcfdf206"}, "eae233e2-2203-4d50-8f7b-482e8af4def9": {"doc_hash": "e3c5ba187f99b97f5f47438c343dc3b47a41ab446c3b582aa7438eac96e44a34", "ref_doc_id": "94737efb-cd85-4e8c-89cf-e6c2c21043b3"}, "94737efb-cd85-4e8c-89cf-e6c2c21043b3": {"doc_hash": "2dd0080a7a030a39b415eb4966b6621cd4fbd4f9d5e742b1f0e35f0f76c5a16a"}, "93562b12-8f81-45f5-ba40-bc6e13d1067f": {"doc_hash": "0511db334ea9d332ad223359e7013b0d136e4d4a63ded179045d8b329976c9b9", "ref_doc_id": "ccbd441f-8799-4476-b6a5-3b1353e7a2f9"}, "ccbd441f-8799-4476-b6a5-3b1353e7a2f9": {"doc_hash": "484ed04a349d0d209e8fe05250b798b5f522c32eb425da6cb150dca0037f41e0"}, "78498733-b704-4ffc-aea8-6b7b28efaccc": {"doc_hash": "94f2b4a1edf2aa9a1e657d5669c2d75011b851dc29f22821f985106fd22cf58e", "ref_doc_id": "9aa025b7-5fc8-4b94-a35d-56001617d9f0"}, "77c05992-0f8f-4098-9b2c-0225933dc19e": {"doc_hash": "44191baff6c86b15a1bc7748ed429f13b87c5ebdf070cdd7bcd31ea2bbd09903", "ref_doc_id": "9aa025b7-5fc8-4b94-a35d-56001617d9f0"}, "9aa025b7-5fc8-4b94-a35d-56001617d9f0": {"doc_hash": "922ba8b86b4a3208a134fed2f489053692ef759d9de9337ea3062983699de142"}, "bf510fba-a2bc-4c4f-8c4c-7e822b0bdb5c": {"doc_hash": "123edad9bbb70c2908e34b15a686d5978ece18c006535ba33f291c4312b33b2d", "ref_doc_id": "9de5ba0b-34b2-40fa-a7f2-011ec63f567a"}, "9de5ba0b-34b2-40fa-a7f2-011ec63f567a": {"doc_hash": "9ebc9a58fc6d7cceffd9d520287b1fb24730d6ceb5b67df98982773275bc3eed"}, "afa252b6-cbc0-43e9-a469-f5df67841906": {"doc_hash": "200bab8eef2c2c6a9c19eba414873fee95682bb2c22d329c254720006230093c", "ref_doc_id": "c41a95b5-bf00-4b26-a9f0-9a345256a65d"}, "c41a95b5-bf00-4b26-a9f0-9a345256a65d": {"doc_hash": "e66d262c7b8cb74bb1392b86ce065395348022821fdce8609978fc6f1c3ba968"}, "0a1fd5d3-e992-432f-9e02-68985d83b72c": {"doc_hash": "6b4465622f0c9bc8c5aa52a5bb487102df072d0db64e321ef8e01cb87729442d", "ref_doc_id": "e0c962c7-baa5-44e3-ab37-f91c53ef93c3"}, "e0c962c7-baa5-44e3-ab37-f91c53ef93c3": {"doc_hash": "f794b4a71b1f11568cd5d91a74b84574c40c429c33c0830ed660442377e9d605"}, "fa03d660-2f6d-4246-950a-47db56a8c4b6": {"doc_hash": "0d7ff29fd527392b33ea38ac7d13af029bc28962d00f7b4b170a84a4c88eb9aa", "ref_doc_id": "50e44d53-9560-4d5f-a75f-c8b18a5e9227"}, "50e44d53-9560-4d5f-a75f-c8b18a5e9227": {"doc_hash": "1c784cd1ba4edd83b9b143a0a7f68d98c2bca8385bef10b448fff178e0dcb851"}, "3735f76e-7748-48f6-a5b0-adcd169a0e69": {"doc_hash": "57f4d9f76fcd7382b177834ccb042bfdbc0239ec0e89ad6eb8d99fbf6e798fea", "ref_doc_id": "73db9602-2ee1-4cef-8433-901e5dba4d2b"}, "73db9602-2ee1-4cef-8433-901e5dba4d2b": {"doc_hash": "5c2996d3694663f2b2838d73ab6e14e976d1142270b2feb807658c3b14dee423"}, "dce40eac-4033-4b74-b735-9b62bc62ad48": {"doc_hash": "dc8f74159aa4b731286b8db01a49763260b6c3ed5abdf1c12ce55b0a7d3194d2", "ref_doc_id": "2a2a5f27-063c-4db0-8a3d-12fecf8b4110"}, "2a2a5f27-063c-4db0-8a3d-12fecf8b4110": {"doc_hash": "5658a315abf823c7d6d0ce3eacbe8e862db3ba2b259b84443610ce3fd866f831"}, "c1af160c-09d3-4c32-af0c-cc9acc1bcdcd": {"doc_hash": "136115c71d3cc4eb344473f860dd282e6f8cb575a749e43ce8711690f896c1c7", "ref_doc_id": "aa2731c1-86d5-45b4-8daa-b224bc3eb7b2"}, "aa2731c1-86d5-45b4-8daa-b224bc3eb7b2": {"doc_hash": "639accfa340d1e5a4236fbe4cc03a8ec8243ffc918c8e1092e847f83ef698d8b"}, "9d157d34-052c-47b5-8b04-4b8f99612bca": {"doc_hash": "3dd4b9360bccf97125143b25fb3fd81ea59c16b07c803dab617407e7de81de51", "ref_doc_id": "ac4dac7b-cc44-444d-be84-13ecbfc6b266"}, "ac4dac7b-cc44-444d-be84-13ecbfc6b266": {"doc_hash": "1701f4a440283865835be4065bfe23c51b18b25490f3b2fb2e1c042527196b91"}, "5136580f-c873-4979-88e1-4115c1964474": {"doc_hash": "fc1bd4103b8fda0e44d525abe910446c19f0d488731911be023e707de21aeeab", "ref_doc_id": "bf9737d3-4054-4f2f-83d6-5fdcb2925d6b"}, "bf9737d3-4054-4f2f-83d6-5fdcb2925d6b": {"doc_hash": "f2ed4cd9de55866c8531b5b99995cabbb678e72c2e684f6960ae4a9566266059"}, "02c5a5aa-e24b-43b2-ace7-0d5e6ede6a92": {"doc_hash": "b20d4ef20cbe34f5911cd61f8776c71802cf069970a38a124d0c9968b961f97e", "ref_doc_id": "6a89546b-c389-4aaa-a279-886a20c9caab"}, "6a89546b-c389-4aaa-a279-886a20c9caab": {"doc_hash": "5aab814c6452a0f09fb2e800dc95c7a4c80709c68641ed75274b927d30be0486"}, "a22299ad-171a-400e-9a2f-b531607ad11d": {"doc_hash": "0c0cbeabb58ea2f98f574a7d3798fbf37fe0158d6854a7cd3efa882168f0a78d", "ref_doc_id": "9ae10eef-c25a-4b53-861f-f17028b2402f"}, "9ae10eef-c25a-4b53-861f-f17028b2402f": {"doc_hash": "1f520e1200ede401c0f53ed2d38b3659fce6398c9abe3976656c448b9cbf7f07"}, "9f9efefe-f719-4de3-92ee-e74dbc6d8fcd": {"doc_hash": "243769e78680268fc36734be95b1d5dbc9211806ca9359b7fac597af07c9caae", "ref_doc_id": "b31c209d-d66a-438c-afa5-ca4ad9a10f5e"}, "b31c209d-d66a-438c-afa5-ca4ad9a10f5e": {"doc_hash": "bdc871b88f136c17bb248845a279a8d3c952a225d299f2d78e75a241708adbd5"}, "c69f5b95-3af2-49a3-aee1-880349451fed": {"doc_hash": "32665230efbaf6ca4374fb2d0311b5d07a1d24d889dbe515589671f00a452246", "ref_doc_id": "5c02af17-4305-4152-ab79-a7714eb348c5"}, "5c02af17-4305-4152-ab79-a7714eb348c5": {"doc_hash": "5f2f5889ab0b88299333817d6ff0291feffc16f10a155881ab96534b59cf38ce"}, "bd5b07b9-8bb4-4913-872c-04b94267cd86": {"doc_hash": "eb3577af11705996897b39019f02a2b0d84c10eee881641d410bff635d54df7f", "ref_doc_id": "26cf7402-bcbc-444b-a875-b45d91dd48cc"}, "26cf7402-bcbc-444b-a875-b45d91dd48cc": {"doc_hash": "83f79136274255470f509974dd7ce944331e9139504183dac61fdbc5c9459cf0"}, "75eb406f-4bc3-470d-9385-cb119ae527ca": {"doc_hash": "b9581288936fbd4724ada1c95b4e5df09a63d42fda4a7ac8dad3046d58722e3f", "ref_doc_id": "6a052cab-bf70-4450-af2f-8580e6380cd3"}, "6a052cab-bf70-4450-af2f-8580e6380cd3": {"doc_hash": "fbea3267d497ce68a8dd06f2d5cacb7231625ffdf78bf46dde9d8f027a21096a"}, "09bd8f55-721c-46e4-966f-ce3c91f3462c": {"doc_hash": "e1b438db39a869bbbb8769b35df559bb7594c7803c730b946b151af0adced404", "ref_doc_id": "40a3e6c1-ec88-4a0d-b1bc-affb95e38bca"}, "40a3e6c1-ec88-4a0d-b1bc-affb95e38bca": {"doc_hash": "ac2774d9f264b77b9f7a7d0e6564a0bb26eb6064af1a92be366c3a8d8a71ecf8"}, "3196fe2e-08a4-4a4a-aade-624c43a7ccd8": {"doc_hash": "a9e7e2455dd58567200718dbd3cfb2181262045264ef8591d8f3219185328d40", "ref_doc_id": "aceb5e5e-cd6a-4922-9e39-00a5741971f7"}, "aceb5e5e-cd6a-4922-9e39-00a5741971f7": {"doc_hash": "610c1d2c8b0073d2c009f51d61bc52a078bfc039bdfdf804ee223677de269bc7"}, "1bfc5f3b-0f8c-4c22-a6d5-85f5c95e923a": {"doc_hash": "c84bb09c96ad6022785caf55608019892e317538943d390d32c608065f0b3026", "ref_doc_id": "eadf4452-062a-4793-bb6e-09dbcda383c6"}, "eadf4452-062a-4793-bb6e-09dbcda383c6": {"doc_hash": "9a0a93fcd881e689b63bf61ed4c9ec93cd526400dcb992b46695e9ad775f54b2"}, "5c7a986d-4731-4245-a0fa-2316eca4b280": {"doc_hash": "aae97dceb7b2668a11476faa694d55871ce30dacf66a0f2406e8379065c43bf9", "ref_doc_id": "41d0a0d4-9ec0-45dc-88d4-58190e850fb5"}, "41d0a0d4-9ec0-45dc-88d4-58190e850fb5": {"doc_hash": "0e1a0fc7ca5bf2ef5f4740dd5b3b787939a0875cc49087bd25b701583ed01f06"}, "281a1774-50a0-4ea9-9e6e-a5dd2ac3d5da": {"doc_hash": "79f1049a8b677c2a4c1c93c675af7079c0fa12fd90797c1e8127226e7cc52165", "ref_doc_id": "7bd0cba3-cee5-4f75-9d26-76c64796f830"}, "7bd0cba3-cee5-4f75-9d26-76c64796f830": {"doc_hash": "2c9d756677037229b20c2a51613015e055558e10d0ba332f6311f619b451aa59"}, "2daec92b-9af7-40e0-8025-fbeef76a072a": {"doc_hash": "ae6b1dc247bf10b9c088662689b54b1069cbe6027b934250791e4ab90121f330", "ref_doc_id": "de3d0e1e-dcda-4c23-be53-5a0f654e7843"}, "de3d0e1e-dcda-4c23-be53-5a0f654e7843": {"doc_hash": "61f6ba7c6358e88035c72746a42d96044dba3e40297bd80786aed9fa2ca0da69"}, "f44a7fdd-0ad4-47cf-81bb-eac8511d5931": {"doc_hash": "4fb6f5434e80e79bf9b78238b36713250b05f7a8e8080f8773deb84d16f2a50f", "ref_doc_id": "a65bfeb2-5f1f-4018-9eff-f0660f4f856d"}, "a65bfeb2-5f1f-4018-9eff-f0660f4f856d": {"doc_hash": "4a6098a543cfa1028ffc938704a622cb26a48d5eed21905f00bbf0b57ad6f13a"}, "9f5c1ec2-0e00-4370-b85b-1408c7791077": {"doc_hash": "d6bca7486db9128a21fcb51f5768fca96cac0141b6c258ad4310d5895c0daa9b", "ref_doc_id": "a57f04c9-047c-4b6f-9ba5-1ba2cb0e731d"}, "a57f04c9-047c-4b6f-9ba5-1ba2cb0e731d": {"doc_hash": "48e9c7ca03d169a7d57a2cd37c68503e612b2ca2ab42e7ceef174d82bb6de2f3"}, "2a7124b1-f880-4168-9ab2-964ef0ec1ae1": {"doc_hash": "5ac9421d8774dee30c7cc899397820ebaeabba7ad017ea2672255bce93e8a6f0", "ref_doc_id": "22575121-ce67-487c-865e-465affb1bd5e"}, "22575121-ce67-487c-865e-465affb1bd5e": {"doc_hash": "a0758a6a2fd7f1cd847c1cadda093b5fc719024d35e035643531bb5b7eff4f87"}, "3c297091-df54-4c03-8569-a149c72710f4": {"doc_hash": "ea036ea95abf07d93dce8756c08ffc3fdbe451dda25e19fb0b5d54df98f0cdc4", "ref_doc_id": "dfe1073b-abc4-4f99-8c3a-9f5197fdefc1"}, "dfe1073b-abc4-4f99-8c3a-9f5197fdefc1": {"doc_hash": "6c302de9e9debdd11785117dc6d3d3be07ae407c2817d85c2b2088cd56c5c8e8"}, "af252593-92dc-43c9-828e-3c70a912fc5e": {"doc_hash": "a4b63d87f6e520221f1e063911e6b494b83de693097d45c1ae5f3f68f40b566b", "ref_doc_id": "986b98fb-80cc-48a7-995d-b37cfa03d2cc"}, "986b98fb-80cc-48a7-995d-b37cfa03d2cc": {"doc_hash": "1158fa3188b0d61f58ec80da392d41d711033ba60c5d8783e2f735a7f9948772"}, "546012d4-d6b5-4fc0-b89a-bec2fe90a3b0": {"doc_hash": "381ee448e2e4001f190161019e54e074c061476d92e063abcd978b39027d3ec3", "ref_doc_id": "e34dc260-2ec5-453e-8102-7d51164e7081"}, "e34dc260-2ec5-453e-8102-7d51164e7081": {"doc_hash": "dc4fed671110fc3436700fe5226f2969b39d8abb8a8b21cf46d91f0ec138a62a"}, "3e9ff352-7473-453a-9b2d-18d3a2fa83e2": {"doc_hash": "ab6eebe3a9720296c90c237ca557d5354eebbf8f0b5a7f7a23e8639b3b6067ce", "ref_doc_id": "8c1c73ac-b6f4-4c1d-8f74-5ab1fee36ca5"}, "8c1c73ac-b6f4-4c1d-8f74-5ab1fee36ca5": {"doc_hash": "140152bc486884f7a1a471ce5ba789f89b2e52cad3e810efd95a7fc1040924f1"}, "9fc02151-c02b-4f0b-bf6e-3c2299ab7f08": {"doc_hash": "eb76e2ce16cdbce66dcd3a5c3a014e1f0afea623239455a7c8c5f5dda7e147e8", "ref_doc_id": "063f6dd6-b3e5-4c94-84a1-bd120a2af1f4"}, "063f6dd6-b3e5-4c94-84a1-bd120a2af1f4": {"doc_hash": "271ce4dd50abb48a18fae5a6c243594106149cb98eedf54226f2b8d66d3d5a69"}, "c4fda650-591d-4984-9682-efa8a200d78b": {"doc_hash": "01edc6d24d40f30472f5f09989813145719cff82e904edc219c62ea4eacfc8f5", "ref_doc_id": "568d1e42-3052-4ba0-8992-6930ddbe5263"}, "568d1e42-3052-4ba0-8992-6930ddbe5263": {"doc_hash": "f005a273ffef2d79c59d045bad2de20d0c3acee269762829e29b7eb0b1463581"}, "d0b05057-1e9e-400e-85cb-3193f7034848": {"doc_hash": "d4a6ad21acf074b60924d2b69ca5f6147d6d7e0ad10d432b5e7cafdd6c03a5e1", "ref_doc_id": "62007139-1bc4-4bf0-9844-c6f1454cf5ea"}, "62007139-1bc4-4bf0-9844-c6f1454cf5ea": {"doc_hash": "2203e6582a37badc563ad48f4041bcf8a51021c34eb33001fbf39bc5b8ee0884"}, "7ffe3683-7898-472c-b7f9-2ff746f3cfde": {"doc_hash": "758db165131b9470bdda37be454a56edc2576879f50789d2933ab8b7253b4a52", "ref_doc_id": "42087f5a-55e0-4801-a2f6-003c2b3be3da"}, "42087f5a-55e0-4801-a2f6-003c2b3be3da": {"doc_hash": "6effd08626bd2b334601a3c9aae1162353d26c5c33ff7b24c9fc569e274130b6"}, "d314deb0-203e-4439-95f3-9992e151dafa": {"doc_hash": "241886a499f03ecfa2602e29606d5044cc907d27a14887c930e4e692e3ccbdfc", "ref_doc_id": "dc9e16d1-12de-4b8d-a650-bb2e2345084e"}, "dc9e16d1-12de-4b8d-a650-bb2e2345084e": {"doc_hash": "65e6517b29cca62b7137f17e16a7ec084f3066151f41f64cba51f0490e7006e1"}, "ddaf2519-82e7-4493-8009-665ed91e1e0c": {"doc_hash": "d3421bb48c62deb7bbaf493dda82e03df9e17c084fd75ad166c30ed043ecb8b3", "ref_doc_id": "607008c7-e44c-48aa-a69c-0108562c7736"}, "607008c7-e44c-48aa-a69c-0108562c7736": {"doc_hash": "fd2f695af818003d49025042ae3012b4f3e24ad381ffae020257ac78dfc0a840"}, "89fb24de-5fc3-4ec7-960c-bfacc2c6b021": {"doc_hash": "764bb7706f88126d8e52990830c0c03edfaf9ed64453331e3b68646fd1356eb3", "ref_doc_id": "0c343d7d-bed8-4d29-8a8b-9f3421460efa"}, "0c343d7d-bed8-4d29-8a8b-9f3421460efa": {"doc_hash": "b8edc3dabe7ef62333d8f86a3111d5fa54108c404f06356c2ca3ef5d18448b59"}, "5b14c48a-e865-4bc5-9e6f-4ef3f1409031": {"doc_hash": "d986570f8ee0b1665ea6b058d8ca4d4f1664ec9a7eab3b4caf96ea48fc20dcb2", "ref_doc_id": "43d84296-44e9-4cc4-912d-491a9f7c7d20"}, "43d84296-44e9-4cc4-912d-491a9f7c7d20": {"doc_hash": "5ccc30b8876762bbf0ffad58f0793e74d07966da5f57c867e2dae19f53a5f79e"}, "9e54d555-4392-49ed-8b0d-e3fb38b17bf2": {"doc_hash": "faabe96d468a9ad0643ecd79e56e7cb4919423a803f30200e3b1555d161768f5", "ref_doc_id": "ab4da2db-e293-4e2f-8842-36cc560736c4"}, "ab4da2db-e293-4e2f-8842-36cc560736c4": {"doc_hash": "845e4234186007ebacd6d916f6b9eadfb2a0169668e68a31795e4b7f9e1775a4"}, "148ed1f9-274d-4078-9083-509448ec75db": {"doc_hash": "2a5d815feb2c8c6460535ad2d1d0e53d5ec990b76bf60740db808a86151bf2e3", "ref_doc_id": "06e9fc36-c8c5-44a8-b365-1561333227d4"}, "06e9fc36-c8c5-44a8-b365-1561333227d4": {"doc_hash": "6f695e7b66b950adfe86d1575ade5067d6fdb63fa761e9fad523a12980e4238a"}, "76fbd06f-2597-4c60-af4b-46ebaab317ed": {"doc_hash": "bee0c3fa34e5dbb50ef7d50f4404ae2ddf772eaba63f125852b0706cc56d21c2", "ref_doc_id": "5f7cbdc5-f5ea-4e7f-b45b-69b8a9ca61e8"}, "5f7cbdc5-f5ea-4e7f-b45b-69b8a9ca61e8": {"doc_hash": "7d07d06084c0ca0f9b37f37e411812133ac40ab6fbb18849581e29f5d3780285"}, "557afe8e-4224-434c-8c00-40f813d74da7": {"doc_hash": "8ab8cf65ad61c602d71e25b9172da3a60edcc42d638ddff901c22468018e8a12", "ref_doc_id": "4a4536af-b427-4d5c-b08b-ddb1725ab449"}, "4a4536af-b427-4d5c-b08b-ddb1725ab449": {"doc_hash": "cbbeaac0ab6fba9b57cf2c24df58a9002a75209aa911676635943ed0522821ed"}, "728bc04f-1d56-44cd-84d5-8714439b2016": {"doc_hash": "55580142a9210079b51dba895901dd45a34c5210d3106a1a71ea885d0450243b", "ref_doc_id": "a453b917-08c2-4675-b534-11b42f8500d3"}, "a453b917-08c2-4675-b534-11b42f8500d3": {"doc_hash": "c9aaebcdb5f99b0bcdd0448ec8a09042751574ad7e86c52243ac5484a0d38f3a"}, "14e4f700-08dd-4d9f-8633-08b30a4539fc": {"doc_hash": "e0df04d22dd90eb7915b1df25afb8a95ca93a729ac0b818df5dd79f7a5951230", "ref_doc_id": "b273ecee-81a3-428c-8099-909a8e4dd220"}, "b273ecee-81a3-428c-8099-909a8e4dd220": {"doc_hash": "e4e6849bb5bd7fa1f682871cf0121fe82b5c8ac3276bbab5a1107708c5636fae"}, "d27669b2-262f-4ca1-89c1-0b2efd5afd41": {"doc_hash": "fc70b2d7d49443d12ed33576db5c549632e129dc9f62b2566252ca4ada33edee", "ref_doc_id": "6a2585ec-a9ef-4159-93bf-bc7f1b406f14"}, "6a2585ec-a9ef-4159-93bf-bc7f1b406f14": {"doc_hash": "f27bb239b955db4b98aef2d7b8230cc2b36e706798754e1e1807584c1677da40"}, "ec7959b1-326c-4644-bf65-8614a7d9fa98": {"doc_hash": "a82eddd76051f90bca2b75bfd19ffae7e35fa7279c48bafd48802176f2f4593e", "ref_doc_id": "771266c4-c2f0-43ec-819b-de99af9edc98"}, "771266c4-c2f0-43ec-819b-de99af9edc98": {"doc_hash": "199bfcc96180115b056f9f7e851182741bda9adc2234990bcdba4429bd7c83a3"}, "b9b7b5fe-84b7-42c0-9ba2-135780349c26": {"doc_hash": "d914c8be3fb6ae8a67c650970d5cdf31a6b938ade67ec6ab2ba668410d779aab", "ref_doc_id": "4743713b-1897-43f5-ba3b-0ad67f2cb42f"}, "4743713b-1897-43f5-ba3b-0ad67f2cb42f": {"doc_hash": "6fdb728c1761f60ef018affd30589c19b8dc4b2a0b20c7cab75381c133aba99f"}, "98fbb5f3-f44c-493b-b4ce-74b09ae519c8": {"doc_hash": "fc4772031067094d5a7c012d26490f16567660eb04b69b401672e1b5363e3ec6", "ref_doc_id": "fc834d20-807b-483f-b70e-d074bc3a1c1c"}, "fc834d20-807b-483f-b70e-d074bc3a1c1c": {"doc_hash": "080555054562a8fe7377034234b53f72d2f8d3632d33e3f36396545e09c9a3db"}, "a3775415-993c-458a-8661-7e2f69c7ad43": {"doc_hash": "20b0a385666665a55e92f8d171519846d341c7268652bff5290dd3e6abb5bc49", "ref_doc_id": "47f5b28a-d72e-4d8b-9a2b-57bffa6f3929"}, "47f5b28a-d72e-4d8b-9a2b-57bffa6f3929": {"doc_hash": "a15fd971b95db6bc20d02a2be531c3559953c727787aa5d3658b4435e505c102"}, "69467209-6ddd-405a-a876-7d609e3a81d2": {"doc_hash": "ce29fc8e85e000e0f55374ded4905f3bc122cf8eabbcc8230956b6055e4b0ebb", "ref_doc_id": "9cfdff68-8adc-4ecb-b607-a425500ddd9f"}, "9cfdff68-8adc-4ecb-b607-a425500ddd9f": {"doc_hash": "fb40c3d2992ca8a00f2d689bda4736058f749273f49a73c9f01fd09a254f3686"}, "85ea7d8a-f538-4d2e-b96e-74c72381c891": {"doc_hash": "6ee0eb41e77c3d947d97f0968f841b452374e27622a769cb37205a4ee0fce2ba", "ref_doc_id": "3cf69a79-91af-4678-9048-65efc3bebd8b"}, "3cf69a79-91af-4678-9048-65efc3bebd8b": {"doc_hash": "ac173e10a45493a4d278b9382bd435592a816fb48bb0066bc56902c3787cbf00"}, "8530acb4-603c-4bd1-9262-a92f1ff6c29b": {"doc_hash": "edfde845388467d6fd07528ca53d808cf3fb3dd3784d7a1de7ddc3de6a05f9b3", "ref_doc_id": "2c421db4-d62b-4a01-beb0-a7887462f08b"}, "2c421db4-d62b-4a01-beb0-a7887462f08b": {"doc_hash": "68d6b0b2d6e180e8abb055410df66f645bbba40445560166c5ad312cc0cf658c"}, "9ce6f5be-aee1-4296-abfd-26b3663f140f": {"doc_hash": "1bf182b0a272573a87956cb0de9968f4e0005a95dd51b323d2586467fa0fec1a", "ref_doc_id": "98d259cd-9f81-453d-bf62-7ff0c957662f"}, "98d259cd-9f81-453d-bf62-7ff0c957662f": {"doc_hash": "d819fb44ab11222cc0709a49f452f4f146f62d87312a2dd372252505900263d5"}, "ecbbc5c3-a770-4e60-9a4a-56384c9afc66": {"doc_hash": "a332d811e44729cc02cc475891271ab6c633f937a39e0cafec6af4a6de991487", "ref_doc_id": "0a84be4c-a3fc-4aa6-a26c-491c97d6c982"}, "0a84be4c-a3fc-4aa6-a26c-491c97d6c982": {"doc_hash": "c901eae72497e02e2853ff4b0ba8f849e129e264e42b6249b959ba33329908f6"}, "9f087958-aae5-4c87-b927-59d19b8bc4c5": {"doc_hash": "c4f559d0dd742c7ed4d40e563decb0d578977d0ff560f723ed5439f1920cdd6d", "ref_doc_id": "6198b53b-fb1f-40fc-85b4-788f6365adfa"}, "6198b53b-fb1f-40fc-85b4-788f6365adfa": {"doc_hash": "020eb4ab7a37302decf35c9a4120442884fe38a43684bfba1cb59c0cc39c0475"}, "80b2c24c-27dc-4129-b2c6-279c7751f942": {"doc_hash": "d268f32d873487ccc132e906fed3a07914ba67e5bf6acc82125e7e5295ed447b", "ref_doc_id": "bc2859e1-b884-4e96-8b7f-88dd0ec0c20c"}, "bc2859e1-b884-4e96-8b7f-88dd0ec0c20c": {"doc_hash": "527c1f43bb72dd8214cb64c3a7038ca050b67c3e9e06dec840889a772eefa0d5"}, "60f2ac86-be8d-4e58-bf3c-53201713cbaa": {"doc_hash": "31687ec8d50fe625deacb4bd08e5d5b6a3557e4ab26fea79f26b56df29bd0433", "ref_doc_id": "76f84c99-3bbe-4f61-8908-9715c4ab1485"}, "76f84c99-3bbe-4f61-8908-9715c4ab1485": {"doc_hash": "49b4c0c247465294451cc1677cc3f14a6724637e953459e183e373d8da848d22"}, "4433fcdb-b224-4ef0-94b9-0377add9c674": {"doc_hash": "915b3e2508dd070ead6e0130fbf86a1a94c394e8d2a4b3ab9caaf7f154719a5e", "ref_doc_id": "152edc16-c920-437a-b0ba-f35581ef93d8"}, "152edc16-c920-437a-b0ba-f35581ef93d8": {"doc_hash": "3a204a18cdd4333ffdb38ce975c463d8c59ba02569a25f7e14949644dabda872"}, "2f978a54-0acf-40b0-80f6-5684f06acd25": {"doc_hash": "42bc5609fb86587b846145d4a36c08fa5c9371845c77b5ac8e5cc2ecf14bc32b", "ref_doc_id": "93eac258-2d68-424f-9aaf-d72d778453b0"}, "93eac258-2d68-424f-9aaf-d72d778453b0": {"doc_hash": "a1e4d7be4587b6dca9aec616e6c25712b308f133761366fbaed8ad0113bdf748"}, "3d89c03a-aaee-4768-8242-966922ad3ce5": {"doc_hash": "6e60eb8044939efbc20b73b2f0edd012506ac584de6fc9fe31f4c8f0f8d6792a", "ref_doc_id": "6e656f5e-02b3-401b-b505-df91fe32ea06"}, "6e656f5e-02b3-401b-b505-df91fe32ea06": {"doc_hash": "4d37fee1f55d7e45825e4a342ece0b9094ea86041a6fb55ff7c0e30fdd60e45f"}, "8ce34de2-1475-4d46-9132-ea21a7202f7b": {"doc_hash": "5f8458f559d202404a712d5546a43d4a73ede3cc180c3ac15da71c09301b2b81", "ref_doc_id": "3464d2e9-13a0-49d6-99a8-6c6dcf36c2f5"}, "3464d2e9-13a0-49d6-99a8-6c6dcf36c2f5": {"doc_hash": "32aa82748825cefcf9f178bb00c43617472d37f8ca21bd6f02180c2c1905d163"}, "49843578-c758-48cd-a44e-4c539c5bb422": {"doc_hash": "1aea7864692a2ac3844a5672df4e36d86c5c3811a55b4aa18566695c8ee38a48", "ref_doc_id": "d6516930-e907-4f5a-b0ea-f75ee045e244"}, "d6516930-e907-4f5a-b0ea-f75ee045e244": {"doc_hash": "3fe196a5b424ab55e5fca61dff5b4c19c72b81049d7ba9d1c506e97c1ba235a8"}, "5163eae3-c83b-462c-85f6-77ae72c61835": {"doc_hash": "1cbf30ecf8581801f3564ce1155fdd4f8f8d94847e2e031f56d925b3ea6887eb", "ref_doc_id": "0243a187-3d87-4bcd-bb20-126432441bef"}, "0243a187-3d87-4bcd-bb20-126432441bef": {"doc_hash": "0f5d61d1be6eb27eaa80863a3eb3bffd85beef18a47ef4f6ac233d99cbcd14bc"}, "70bc87f7-acb1-404c-b066-e632d50f9f34": {"doc_hash": "b95f9763850d3b42cc11383255ce596ecaf495b53342ea37de4ff9758f301e1f", "ref_doc_id": "44a18c7a-1916-4ec4-b88c-ff5ab8794657"}, "44a18c7a-1916-4ec4-b88c-ff5ab8794657": {"doc_hash": "782e95ba1c21bc94dc30d67bad4b0fde27ac6e532eb494bb4aebd2e51abbcace"}, "8d41604f-ccf3-4720-bb83-47e03db28606": {"doc_hash": "21dee05c687159d909041a455517082a425c753a9e2b2339063276c66dc6e347", "ref_doc_id": "7d412a0b-f7b9-46f1-bc62-a0739570e40a"}, "7d412a0b-f7b9-46f1-bc62-a0739570e40a": {"doc_hash": "056367591d19bdb94b098f048eb6e793095b255284f0259f519986163b3b21fb"}, "0bbc0af0-26c9-47aa-95bf-5c02799ecb32": {"doc_hash": "db4043f9a4e5ad110af8edb8c0c3bc93c1250512afca32b7ba0b8336b8e03fd5", "ref_doc_id": "8cda882e-c3ec-423e-b6c6-6cb7b0986f20"}, "8cda882e-c3ec-423e-b6c6-6cb7b0986f20": {"doc_hash": "527166682af951849cd7bfb2337417948e07de619022946f8dd10490a2cea069"}, "6ba662f2-8a46-4641-9d20-03df369170b0": {"doc_hash": "1814745c0360a454298145e0b92116d5cdff0b260ab6c1c6d395c07ea139385a", "ref_doc_id": "e23ea3ab-a4b8-4949-a436-5e59373a7b76"}, "e23ea3ab-a4b8-4949-a436-5e59373a7b76": {"doc_hash": "866fee241851044b46ae301f4fc0da946c19bab10120d9950ec888d5f6fa68d0"}, "1293141a-4ed9-4df8-9fe2-bf7f5c8b93df": {"doc_hash": "b548312c3777d05855dc04ea27b6c75b108179e1e76867d02904ea9b20c34ca5", "ref_doc_id": "9fe088f9-2ef8-4423-a3d5-62436e7fff08"}, "9fe088f9-2ef8-4423-a3d5-62436e7fff08": {"doc_hash": "14e804ab6c1b5cfeb0d76282ba9256e110265cadd86a0acc29571b4c45160466"}, "0952c587-dcbe-4775-8254-649de5d73d8b": {"doc_hash": "725069acd7583221b21d1d61246d3bd21a9333f07a9ac9e95a8ab344dd949329", "ref_doc_id": "749ed0a1-0e6d-470f-9c78-872325577a9e"}, "749ed0a1-0e6d-470f-9c78-872325577a9e": {"doc_hash": "0d191d03182d36e011b9faa06ed4571a1d98aa810960dce31155b377aa0615a6"}, "19750fba-4c0d-46cc-b01c-66c5a3a01144": {"doc_hash": "79ba8cc16ebf245c409ad57f486e4515dcf7d7539defa41e720a3c24035fdf06", "ref_doc_id": "078502d8-ea4d-451f-89cb-2a4389055b0d"}, "078502d8-ea4d-451f-89cb-2a4389055b0d": {"doc_hash": "ce7055190f2744685decc24ccf69229a01dafbb56a90fe1f8afada0ddadddeba"}, "9bcff89b-8957-42bf-8ce8-ec024d6dca0d": {"doc_hash": "a8b55c59670334fd301051f6b9908a2fedbdfde268d4087d335db462f42ab91a", "ref_doc_id": "b99946d8-1495-43bf-93f5-337eea7ebf34"}, "b99946d8-1495-43bf-93f5-337eea7ebf34": {"doc_hash": "748132dfc1937dd10477b8947c370b0c9498b9ac505911f10eb28794beb133b0"}, "895b7cb0-029c-4158-be4c-8ceb8eda3f39": {"doc_hash": "92ca1fb8597011bfcf4c0bce141f5f15e268867732a0f0c25dfa29c1eff073a7", "ref_doc_id": "3bcb1699-795e-491a-8d46-c4b2107c8145"}, "5f8842ec-53ca-4559-8590-2d471000e749": {"doc_hash": "b8cbdf0617cf1d0df0a96b89aba5abb2c1aa2d3b693a8f1d8cfcf4fbf3580232", "ref_doc_id": "3bcb1699-795e-491a-8d46-c4b2107c8145"}, "3bcb1699-795e-491a-8d46-c4b2107c8145": {"doc_hash": "7ff987e9c8388ce1e990cf2dabe69791af42c41224c84709ab3d6eb3ed98de68"}, "2226b3f8-9a47-423b-bfb7-9f1c3c19e811": {"doc_hash": "d7d523abcd2cee00a757bbf0e1b81a9ed29afacc870f15aa6b65a6563b861ba6", "ref_doc_id": "4e861827-dbc3-4c7c-8acf-0832b29737a8"}, "4e861827-dbc3-4c7c-8acf-0832b29737a8": {"doc_hash": "9794cacd8de3241126dcda03033b8dcd919985828add842c87c451a83eb545f7"}, "e2472239-ecf0-4729-854e-86369be33f4d": {"doc_hash": "fd75b5201cfc84192b44260a0c718e1fabf09974b92eda1475bf69824c5db905", "ref_doc_id": "6bb28efe-b03f-453e-a3a4-9ca9a3c10dfe"}, "6bb28efe-b03f-453e-a3a4-9ca9a3c10dfe": {"doc_hash": "04b8739f65c6563e1cd1c0eec47d3dbc486b6968fe28c7444f631bb0959c3969"}, "32d17c28-a73a-4de7-8dd4-7d4d94907749": {"doc_hash": "aa5de9666a4d921d31f8ef00aec045acab660830d9d64f2b1a9f6b55d3d6414a", "ref_doc_id": "4d267c78-1ef5-4a18-93eb-cf93685669b9"}, "4d267c78-1ef5-4a18-93eb-cf93685669b9": {"doc_hash": "cf8f71f0e26b92359b113d8998423a6fd2c9349c215e51737a16400caa8056a9"}, "c60e9ae1-94b3-4a8f-ac00-108993561cba": {"doc_hash": "716c665a4ab8cfc891d834d1c1a575d36c588bb77ec04672db5c1c3974ff1055", "ref_doc_id": "cf9d54e1-c2df-4961-9b91-25c4c54db7ea"}, "cf9d54e1-c2df-4961-9b91-25c4c54db7ea": {"doc_hash": "62265c232d227f19bbcc6252e1d339580ec57040c7318b25c0fd8bcfdd7ff985"}, "94c5d420-cece-4681-acfa-00357f41916c": {"doc_hash": "bd5d82cadf0371356b1c656120e3aa92858ce82915a770b7a1ef84a45f60676b", "ref_doc_id": "61633c9d-7881-4c29-a960-1e0db00f6700"}, "61633c9d-7881-4c29-a960-1e0db00f6700": {"doc_hash": "5ce7c966d78805a1352bdabcfcb59f662a7995e06be5510deccad52d5a7dcbb0"}, "569f92d6-1f26-4b58-962e-54f2b7bce4e4": {"doc_hash": "f0009f88f7bc06c2b9f2672cb09b94877456acdba118f3a80a2595ed42c9416b", "ref_doc_id": "ac68996d-f79c-42b8-b138-1351bcbf1f2f"}, "ac68996d-f79c-42b8-b138-1351bcbf1f2f": {"doc_hash": "2405bed36482e30b75a9a7277e64b9ba6d6bd0ef47c367549fec9bfd58dbfbb1"}, "ba03d2ec-0d06-425e-a6da-21b577b28d8f": {"doc_hash": "98344fccc6af1a309bc105083ad92f00c11f93ff14ddb6aecfdf64ef502f41a6", "ref_doc_id": "8ffd5cf7-5ef6-4e1c-aee5-80d2472b1b93"}, "8ffd5cf7-5ef6-4e1c-aee5-80d2472b1b93": {"doc_hash": "e1eb7a2e8093322b9baa6b2ea21e5b9935ac0cddc8bab61c44f1a1db9228b2be"}, "860b4059-cdae-4448-8a59-c839916365c4": {"doc_hash": "78925584fc6918cd7fe6e55f721b791b2fc933d4b282c2b4e94dee8972129732", "ref_doc_id": "dfe96f9b-45ec-4b99-93f4-5c9a29b03785"}, "dfe96f9b-45ec-4b99-93f4-5c9a29b03785": {"doc_hash": "084c763a0f697d655890d80da2b3a4cd91c398768bc0700c3336eeaacced9350"}, "4362c638-951d-4f4b-bfaa-d1822e60860f": {"doc_hash": "52d878a04d18cf29c43ed140c830ff6e4dff06811e79655d402ac1c97707adf0", "ref_doc_id": "fdd64d34-b5f8-48bf-a526-1bfc739811d3"}, "fdd64d34-b5f8-48bf-a526-1bfc739811d3": {"doc_hash": "cecd5f312f754600ba65d1b36165ff6a18b98d6ce6d8e74e063a65c9140e60a1"}, "3d72b014-630b-4897-8107-60eb0f1acf86": {"doc_hash": "cb3d79c52c1baf9188e63e16c2747f7cf4a1161821ca63281a79996c56f78303", "ref_doc_id": "f27af0db-5d61-4d73-8439-a49ab1b687cd"}, "f27af0db-5d61-4d73-8439-a49ab1b687cd": {"doc_hash": "fe7dd1ca8c522405fa2ff5c2f623cc33d2154e136d5ac3caf454cfba691fc0a6"}, "970c747c-5872-4284-99cc-a989953733e6": {"doc_hash": "988df5c14147ee5aa853d1251de020be8b867479af5816134695624279567c22", "ref_doc_id": "2310afd9-90fb-4ca7-9fa6-a180b7bc204c"}, "2310afd9-90fb-4ca7-9fa6-a180b7bc204c": {"doc_hash": "95b1e2c3f2c79016495979344e3d0eebc8acd2398f7c1e1965874cabe4c4699f"}, "92b340f9-a62d-4c23-8bd1-5bcea6ed6123": {"doc_hash": "51f27ffe1573ec2f1ee6279784c4c0a4620cc9f8fee5cce7c5440e5eefe95a8a", "ref_doc_id": "79d3249d-23bb-44af-b504-04cd52c29379"}, "79d3249d-23bb-44af-b504-04cd52c29379": {"doc_hash": "eb9c73a412dbd4e3d3f1e91b75ca7b1b075bbcaa0993abb6bf5cae47fb70762d"}, "60b85182-d6e5-4b96-9fda-0a4833547f99": {"doc_hash": "4e12417cfec7c2c59928ad4e191501ab9b8d97479011830c4775c36d3d7458a3", "ref_doc_id": "0ac1af02-820b-4a37-89d1-e073bc6368d6"}, "0ac1af02-820b-4a37-89d1-e073bc6368d6": {"doc_hash": "d3e06198cfc571941cc161d65b7de458d71c0828a4b6cc20225a9d6dfff9d9db"}, "b63bd7f6-f324-421b-9c6e-777ddb94f673": {"doc_hash": "2afff41dc7426278cd5ef5b0b65ed20149c18ad570cf711aa8a425d039c5cb1d", "ref_doc_id": "ecf78f4d-7ec9-4bb9-988b-7df436dfc86e"}, "ecf78f4d-7ec9-4bb9-988b-7df436dfc86e": {"doc_hash": "58a9137da16061cb1a153227e6ea90d45e03baf3be7f5b4b4186b603b3b3a8e5"}, "c6bc7b54-dc8d-4b4a-a711-1f5bc596b2d5": {"doc_hash": "463d608a65a2985954edb732090fdc6fe4153e387375a795561a37b86f0aed5d", "ref_doc_id": "06845a24-060b-442b-8534-d74ff8f75b7c"}, "06845a24-060b-442b-8534-d74ff8f75b7c": {"doc_hash": "bb40460a169a6d70c19c5152f46fb0d261e26ce98f7ca8bfd5b55802de0406e0"}, "7b2e8681-c142-4677-b713-ceb5945e89e3": {"doc_hash": "3bb3dd3f4c879ddec2ebeed894808655c9341e18432141d0f934579ce2953db8", "ref_doc_id": "816da3f9-5b41-42dd-88bd-2ea5ac55438d"}, "816da3f9-5b41-42dd-88bd-2ea5ac55438d": {"doc_hash": "d69083552fea67fe4dbbcd19295734c0b04bf58e75fd7c53618792fbedd05c0a"}, "2888cca9-6403-44d6-a8c7-4a5eaedd17de": {"doc_hash": "2e5f903ecedbc93724a7ed66cb4d0f625150e8775679dbde4084f8b5b93c97e5", "ref_doc_id": "7ae45023-52d3-42aa-b85e-1f645b677ad6"}, "7ae45023-52d3-42aa-b85e-1f645b677ad6": {"doc_hash": "b22d41909227128a92d3120e4479170819008f180d59ad77039ab43ca87c52f1"}, "50231e6f-349c-4eae-a150-43ced5e5d842": {"doc_hash": "3d310798f4141dddf681b5fcbef6d7fe9c7a9a12e67ef99ccdb29596b52f8553", "ref_doc_id": "6995170c-9106-4d29-a47a-4ce2a3f4e86b"}, "6995170c-9106-4d29-a47a-4ce2a3f4e86b": {"doc_hash": "ae1ce83ff3703557f3c751654a667e3f83fee8d2f59b82b4d85f0aed8479b567"}, "2af6906d-c13f-48ca-83bd-2aae04bd12ad": {"doc_hash": "47d39b4d7895dd86fbe3a64a98e1c643bc58a30c3fceb6a829d9925809f3be88", "ref_doc_id": "195ac748-dbe6-421d-83bb-6986ca46a829"}, "195ac748-dbe6-421d-83bb-6986ca46a829": {"doc_hash": "9506b7834a38214254baff76d0cddb7daee9bf1a4495ec41d92e91b5b68564a8"}, "63193667-7336-4ecb-bba3-9144e2275e97": {"doc_hash": "6da38be6e4c47f193c80f735c3fd42a454d55b75b957ed734b69a36ea0333117", "ref_doc_id": "896ba819-470d-42da-ad54-994460cbfe57"}, "896ba819-470d-42da-ad54-994460cbfe57": {"doc_hash": "48a2b1884c17746316246421c0240fd554a5ebf03703be389ba042bc301759cc"}, "01d86669-adb9-4c8c-b142-31f921e79c79": {"doc_hash": "48f622eb58c1bacefa5e12141c666a1c12a614b1ecdb6de633c3ab58867a18b4", "ref_doc_id": "642d6733-882d-4b31-b1a3-6ac2d039eb2c"}, "642d6733-882d-4b31-b1a3-6ac2d039eb2c": {"doc_hash": "64f983cbcd4b4bdca65aa97d95dcc0a5777738dd57494a9e8a469709fcd220c0"}, "3d0181fc-f232-460e-a52c-5e942e54cc92": {"doc_hash": "c55bb182b9c6d90a1f21d78e7f8000f79c6502e9544119e3c44746554ce66921", "ref_doc_id": "16da0020-2364-462d-b933-7ae036657379"}, "16da0020-2364-462d-b933-7ae036657379": {"doc_hash": "278146d6b25ae99e2de7cd808f715842d7cb07ac8251a52265ca3a7ee4941fe4"}, "8153c5d4-07bf-4d47-b397-770829bb2604": {"doc_hash": "d1cb11c1249ef868660faf242df26d76fc3413f7f3b495c324f413e11dec49a7", "ref_doc_id": "72174a2f-75c8-4f33-b59c-d7238cfa2269"}, "72174a2f-75c8-4f33-b59c-d7238cfa2269": {"doc_hash": "f93a5e1834ec2e5067e87a2696dd3b35cccc926c55d9d702c2f3be50994febb0"}, "3d6a1113-dfaa-40f3-934f-1d756b8ea0bd": {"doc_hash": "ba989c06bd7b919cf85ba22cc670b38d4bf15101cb9923415a266d4c80b005e9", "ref_doc_id": "5fda9851-09a4-45a9-9932-3c425534ee85"}, "5fda9851-09a4-45a9-9932-3c425534ee85": {"doc_hash": "755222dc350989c7b33a6dd6416a647e4587ebf67e07a7a06e0af148f550f5c0"}, "07b948e6-2f87-4ddc-b172-dc81e9514c7a": {"doc_hash": "f63648b6a2f42db0cd7cb9df1385309b50d23b0d93190e5f8d7f952e07f2ce36", "ref_doc_id": "c68617d1-f8f0-4702-85d0-b3afd8ffc724"}, "c68617d1-f8f0-4702-85d0-b3afd8ffc724": {"doc_hash": "f5a50499b591535a227d2f1ad12fe12d70402f157da1cd57490cdf6c4e5f18a8"}, "a41a406c-eb68-4302-aead-cffc922191b9": {"doc_hash": "2490a6388669553be65d078b26bfe0370aa43b5e2d8d9673ff20b87e74497015", "ref_doc_id": "314055b8-7bc4-470f-81f3-3e92b27bdf40"}, "314055b8-7bc4-470f-81f3-3e92b27bdf40": {"doc_hash": "2aa92cb8ecc9ed7f47f48064814f25c2a38045494aa5b2c1cfc874c2d22fad7c"}, "52d6b7d2-9032-41f8-b54e-6efda932d479": {"doc_hash": "8e1f602083a940ff3cb961cb64508b84477c766d449a32f22ac84db73d53cc6a", "ref_doc_id": "50122b4c-c8d6-4a0c-9fcf-5d027871f863"}, "50122b4c-c8d6-4a0c-9fcf-5d027871f863": {"doc_hash": "bf555388484dd71ae7764b232ddb5951b6154362624d99320ab8614303dec3ff"}, "8ab6ac17-f717-4382-92aa-8b0acb620dcf": {"doc_hash": "5444663f7c2afd23e56e7118de6180d627116a10bf7cc4082219f73dad8ebae5", "ref_doc_id": "3a515d3b-83da-4cd6-aeb0-a42223e71059"}, "3a515d3b-83da-4cd6-aeb0-a42223e71059": {"doc_hash": "e4b4539298c2c64cde06c9078a0ef3edf49150511ab5a85a4fd0f575bcb8465a"}, "af461c86-afa7-4f98-aa15-b3af34742f54": {"doc_hash": "82f3f117b5710599db48a618d057bbeeb1602afdd425c5cac97481cfb9759d58", "ref_doc_id": "94c708e0-5040-45a8-94e1-a3fa5eaa49d0"}, "94c708e0-5040-45a8-94e1-a3fa5eaa49d0": {"doc_hash": "a880da4f3f4e21f3f8cec7808409ab2cd51f775161b2f74f4a197073155cd25e"}, "12aabcca-962e-46fd-99a2-b3525d102c78": {"doc_hash": "c84f4f313d3d747edbd5f114a9aecc96e42b04e63cd1eb761eb1634fd5bb7817", "ref_doc_id": "cf1be8e3-f1ae-461a-a11d-d49e09db5ec5"}, "cf1be8e3-f1ae-461a-a11d-d49e09db5ec5": {"doc_hash": "4c49dfb19235d957d786f4e11d031073f48ab70c687ba88f44b3d142ddcb849c"}, "2be00d2a-9957-4a88-998c-d5e5db173c66": {"doc_hash": "2438d979f8b97576d1310682e6cfc404475eee0be4601c9717aaefcf4461fba4", "ref_doc_id": "e788a4e4-15e9-47df-8bd4-48fdc2fb0b7b"}, "e788a4e4-15e9-47df-8bd4-48fdc2fb0b7b": {"doc_hash": "ef01a83f4c061cff99a99feed0b26253418f6df7eed0ef92815800527f30c8d3"}, "8d077e62-1044-4535-b6ff-e8808fd97425": {"doc_hash": "a474812b77eabf2e8d29c8b1a2d3eaef8c66dc214ae2cff4b6f9cf62edec51f9", "ref_doc_id": "e9683055-78ac-42fd-845f-1ff50d3d03c7"}, "e9683055-78ac-42fd-845f-1ff50d3d03c7": {"doc_hash": "5f2f4da117a97a5d459952dde3617c6ba876b65e58fbd4715d31bc8cac28962c"}, "8808c8e8-fb0d-432e-9d5e-89c30ee3b43c": {"doc_hash": "36333653bb17d4a2979f7a8d629ab57dc0e8e529d02c6c8a282378df747aabea", "ref_doc_id": "b202c7d3-d116-4f9a-a5c8-38e4cefc5a7d"}, "b202c7d3-d116-4f9a-a5c8-38e4cefc5a7d": {"doc_hash": "f1f24bdd8a897c05a60f97fdfc2e01f8e87bd1f2f62c614cd83c5ea630bff754"}, "8ec2d9fa-7673-41b5-a9bc-a252244010ed": {"doc_hash": "ebeadab6fd852ae4a403cf2b64520d174ae8a858c8e2d983a9fc44b7ef37870b", "ref_doc_id": "2bc7caf0-40cc-4dbe-82be-f500dd0fd271"}, "2bc7caf0-40cc-4dbe-82be-f500dd0fd271": {"doc_hash": "3cf6ecfd769f217f231f2c84d20558c6b9a1ed4597b1e59835d4103fbaea3d8e"}, "51189d5e-0c0d-4da8-acbd-c3a6aa0169f9": {"doc_hash": "219fb8cb579ad3883bdf648453bae61153e9bdbc90164dc9922ebd3a36691a18", "ref_doc_id": "514ea317-c2e7-4a4c-b87e-2818f235e22d"}, "514ea317-c2e7-4a4c-b87e-2818f235e22d": {"doc_hash": "a45c2c6eed9bb8308b856410cddb31f2bb652089743dbb715957eaffe8366026"}, "43a8200d-5dd1-4f84-878c-ceb6ba62cc49": {"doc_hash": "eb6b089c4b03f979bba9e326def174013331e5950f2a428bcb2b3fc0955a0b73", "ref_doc_id": "84da65eb-0d7c-4813-9e35-39dbf0e2790d"}, "84da65eb-0d7c-4813-9e35-39dbf0e2790d": {"doc_hash": "31a26074cfc6e2458e829cec88e9859cbe9f6468b84ce1b3dc2f0c5b4235b431"}, "17755531-2f7c-4073-9bdb-c13d7a4e5d45": {"doc_hash": "e5413c829c8cadcd3069f0ea4e136c02f30cb4e976a5ef82980f8592745db133", "ref_doc_id": "f3f33dd3-1faf-42d4-80e2-8620431240a3"}, "f3f33dd3-1faf-42d4-80e2-8620431240a3": {"doc_hash": "ed6dbebb8acdc4b47ffa11bb6de29efacd87a16f13c7ffadab2381624da85375"}, "964eb663-d927-4cb5-a573-0aef8810f2b5": {"doc_hash": "1a4818246a3a7761b30cacf62593d564c5a472a7c4f53372f474eeea1b9157a3", "ref_doc_id": "09f663b3-7ae3-42b6-85f9-f44131912f34"}, "09f663b3-7ae3-42b6-85f9-f44131912f34": {"doc_hash": "e2210c23fa6a3f690490617630b287fff995d31c2dd959b6b5532ac1d5d6a41e"}, "d7a4997b-b460-4b5e-98a8-6e0a0a4f6e6c": {"doc_hash": "d7b1680274986ef3f6aba459a52b21d047f4ca165a291b54a839fd40be3d20d3", "ref_doc_id": "9c5da269-4ae3-40fe-9809-a08872ddf5ab"}, "9c5da269-4ae3-40fe-9809-a08872ddf5ab": {"doc_hash": "77e8b8f11b0ca304bd0dc3861e9d64ce7e42a121e5f4dad55e972c1d38693c7b"}, "97fbf733-c9f5-4700-9f9e-41a6fabf1b20": {"doc_hash": "41a44dc0a24da1c9b6d5b6fcfc33d5b77778d6bc1ed4513ae50305aa514ec641", "ref_doc_id": "4029c6c4-7d7f-452b-8e35-6b88212b0b3b"}, "4029c6c4-7d7f-452b-8e35-6b88212b0b3b": {"doc_hash": "a6ad4afb059cf31747d8cd1a0b29f44ff66b6758c72e2c0de58926fe5cc16d21"}, "0d4f797e-9985-4483-8104-fe1927bd8b5c": {"doc_hash": "110a18f3b13409cfe894ee866831449a6d1aa62f3bb735d11c9edc15f12c4294", "ref_doc_id": "e56cd5b5-e39d-4fd4-98f3-2460c2e252ae"}, "e56cd5b5-e39d-4fd4-98f3-2460c2e252ae": {"doc_hash": "049cde75307319d7ef74c1e69fac5ffa9456dcfc30485b7c194428d3fad50d5a"}, "787d813b-1ab6-4dee-a0e6-49d957f9e274": {"doc_hash": "763dd858f64c5ef07bed035577b5a04c3de4d58c50778041d80ae9a796e5a4d0", "ref_doc_id": "a4e6c93c-47cd-4e41-8a78-3dbeeb5c34bf"}, "a4e6c93c-47cd-4e41-8a78-3dbeeb5c34bf": {"doc_hash": "b3bf52015c14804d1e9599028021f1b8ada59809e772bf524bc87528d0fe7abd"}, "3c3f90c1-d851-4f7c-b9d2-350fc5592566": {"doc_hash": "8e1fc5610487e066decb49c726885558e689025dbc9fe8daf9f4bf740637c9f4", "ref_doc_id": "e03ca417-2d71-4e1c-a7bc-a25ef548ac2f"}, "e03ca417-2d71-4e1c-a7bc-a25ef548ac2f": {"doc_hash": "293edf449526db0d65d9a599be8f70687a64e539026121b8802456e1eb5ddd60"}, "c3b856e2-7053-4ed1-bf06-4c3d2538b613": {"doc_hash": "e6d4931b009c161461afb88e7a4fb43b12c6bf610f4d80a0dfd4045596ca90a8", "ref_doc_id": "e0bba792-72c9-4fdb-a0b8-5e3da1913546"}, "e0bba792-72c9-4fdb-a0b8-5e3da1913546": {"doc_hash": "1303ba7fb01badab0977c6669ceb38b17d7c73efc1ecc6336474e8d8dcbe76c0"}, "68f2d445-fc60-4725-8eef-911788692de8": {"doc_hash": "dadc38c27d3556e8ae08a1899e48857cae8dbd2d9a1f244278f4972d4dce28ee", "ref_doc_id": "14a5cbb6-7253-4615-8c05-4e79d1fdb30e"}, "14a5cbb6-7253-4615-8c05-4e79d1fdb30e": {"doc_hash": "262adb13d3fa743ccc14c6540e42125e837a4e3259751d6ab5d0e66928942b38"}, "1f89421a-9671-405a-aba9-a3949ff17da5": {"doc_hash": "4ce1b250185c122eeaa8dc5695b0df1d00dca7134d65c82327778940f4d78010", "ref_doc_id": "bf5091ec-4cf1-4144-8886-174d3d0f9af5"}, "bf5091ec-4cf1-4144-8886-174d3d0f9af5": {"doc_hash": "5dbc80e93541431487ea2e82878ca765948c86159dc144f0e086cc833fbe71ed"}, "b1159d31-79ce-4b9e-869f-75cde235395d": {"doc_hash": "2982c1e86e0d389c842d705cb8ec5c93f67cc17a6e64b2d38c6b8d93e4578bdc", "ref_doc_id": "adafa2cb-411b-410a-95ec-3069faa7a0af"}, "adafa2cb-411b-410a-95ec-3069faa7a0af": {"doc_hash": "f4c8f0608aa2a393e1bc826fdeef60245df6a8a8689fc1d5a00dcb62a82f977a"}, "471e69ec-4447-4f32-b0e0-6c38124d0b5f": {"doc_hash": "660945e0a46ebb1489e8966312105812b027cf28675a20e39939b733274d1263", "ref_doc_id": "61575fc3-24fa-4f47-8b43-68d8e7fdc638"}, "61575fc3-24fa-4f47-8b43-68d8e7fdc638": {"doc_hash": "3db94dcbfd84158c7adb42907007f008b5789551e9fbb69acbbb03eb54ba1a64"}, "9d276082-74bf-4feb-a42b-303a4665b7c6": {"doc_hash": "8496f3242a5075b5c7af3990c94e9f312f0a775e743924d3b8d9fa548f77f459", "ref_doc_id": "5a63520f-9330-43c1-84cf-67eccac4be74"}, "5a63520f-9330-43c1-84cf-67eccac4be74": {"doc_hash": "9951d3748542aaf9c55fa28d1f1f9235356df58064fd1ab1a18f8201dc39cd1a"}, "4b613efc-6fe5-4ac7-b6ca-5e557770667c": {"doc_hash": "9df394d0afc8fd0e9f5e79c2d7dfc40f68dcf92ad0624818d1e44222a3daa0e5", "ref_doc_id": "72a424ee-9763-478d-9508-c753ba6c8c51"}, "72a424ee-9763-478d-9508-c753ba6c8c51": {"doc_hash": "7b2fe39d5dd43d8c2b6af82743cf6a7c874989719a25ad468623199af7bd31ea"}, "b74cf6d4-de87-4e09-9638-8dbf3f4f8726": {"doc_hash": "e6e46f9833f587f5c763831a8b68b2662c6ebbec0db7b8ef32580ae53c76fbf1", "ref_doc_id": "82b44829-a534-4ed8-9b66-60fe47d3e5fd"}, "82b44829-a534-4ed8-9b66-60fe47d3e5fd": {"doc_hash": "1c84ff6f0c6f3f22333c84fa9e7ac986c35770a576b65f1132f4df9e21b95d4d"}, "3244239d-a4aa-4b1c-b19c-750ef7dbd3af": {"doc_hash": "5e3596e29f94c0103a20cb7d17ffe9bd8a62e61959cc4ded80716a93ebbe6f61", "ref_doc_id": "48c402ad-313c-4181-bc4a-8d2997250b7c"}, "48c402ad-313c-4181-bc4a-8d2997250b7c": {"doc_hash": "af7ce9591c0c2d30c0969226cf3024ae8b1ab23a2d0204d16550def88c097ed0"}, "2d754c5f-f169-4a3f-8139-95bbecd7c23b": {"doc_hash": "fd119c6f352d68c6a6fbb4b1026904a6fdcd820e33cba9ae865ec28426868fce", "ref_doc_id": "b88a3a67-d85a-451c-aac5-77a507f29ce3"}, "b88a3a67-d85a-451c-aac5-77a507f29ce3": {"doc_hash": "e6d5a284bb906fda643b4b4b195c4cc615e8ad14bc7f501681cfc49618be0460"}, "c0bb3e45-b69e-447d-b5a4-58416d9f8d5c": {"doc_hash": "3e9970e0291e52c438aac7d11c5aeac573e98e9c29c7d1c85731872f1e7f7a38", "ref_doc_id": "977507ab-d922-453e-a3f2-dcda52e5344d"}, "977507ab-d922-453e-a3f2-dcda52e5344d": {"doc_hash": "c28eaf34050550de300ec7cdf1f9e67c3cebb1faca8d580ecf56158078044fb9"}, "2d156c58-40e5-4710-a013-830b05915263": {"doc_hash": "fe44313678cdf04827c6acb963ad6911ea0cbd2a57828fb48ec30d5eee69d38f", "ref_doc_id": "6b68b636-07a0-4f54-93ef-561b1fc63de5"}, "6b68b636-07a0-4f54-93ef-561b1fc63de5": {"doc_hash": "84d81bc43f70959975e825e8dedc40d722542ea815ae71b459a10fafc8618dd8"}, "5cd17b0c-0dbd-42c8-8d17-ecb39c8c3588": {"doc_hash": "b6bbb7a7b5a3b257396c5368bb79694d60a3a409d73d44c970e30bab88844128", "ref_doc_id": "481f9f36-a631-4fcc-961d-23598cc3a83d"}, "481f9f36-a631-4fcc-961d-23598cc3a83d": {"doc_hash": "7a35141462ca5a6d42bd3d05a9ac4a054ccad0ece355a623fafd3a10605a17ec"}, "cc2f60c7-dcc5-4813-9923-5bd2294b88fc": {"doc_hash": "998a94d72b18d47ea9016c3136f5baa69e4060648305c1908ddc218dad898ea9", "ref_doc_id": "15cb52a3-6501-4504-924a-e4b2e19e3a58"}, "15cb52a3-6501-4504-924a-e4b2e19e3a58": {"doc_hash": "26a581093e7670d0d192e5dc00cc3854366a6da5d3b850254541ce77e248f910"}, "622dc20a-3231-4758-b22a-6d77a0dfeee2": {"doc_hash": "e1bb3e2145233f17e1190d09bf6a212f02d865883e42b3dd3a0227f84b177330", "ref_doc_id": "bbd3ae42-f5b3-42e0-b4b1-e2090eef440a"}, "bbd3ae42-f5b3-42e0-b4b1-e2090eef440a": {"doc_hash": "c1a74fdb626677a81b80065923616bc53e76e896490b0e14e7245face71f941c"}, "52324635-1791-4763-9c51-7d077921cc88": {"doc_hash": "51c7deb01f3ae35ffb7162ea4f86164be3c137c437075096fe434b7df2cd14b7", "ref_doc_id": "791f0259-fe3e-45c6-972e-5e1c252786b0"}, "791f0259-fe3e-45c6-972e-5e1c252786b0": {"doc_hash": "a36fb69c03c0d92c6dbbcb42155bb769eb1faab6f3311192c8543073cc8996a7"}, "6858370b-12eb-4b6d-8914-206cdc817a40": {"doc_hash": "484c77fa98bb198c258787a7d030f4b293b5aa36204a10f5b24808165d831369", "ref_doc_id": "64c67caf-15b1-4dcd-a046-421762e8a85a"}, "64c67caf-15b1-4dcd-a046-421762e8a85a": {"doc_hash": "097762b0937449004b56b543f22ed32a918c63ba4f3e33cd96f270d3242608ad"}, "5e373bf0-aaf1-4de5-89d2-30d911a52869": {"doc_hash": "108ae0faa6e9e2e6a1c1f6a52c294cf1cab7955298c90e59f799b350a80e0660", "ref_doc_id": "bc11e2b6-fe0c-456b-90bb-ed46d44aecba"}, "bc11e2b6-fe0c-456b-90bb-ed46d44aecba": {"doc_hash": "3df5b5c89e3640fcb6559497fe1a8b79ccdc5758053ed30f2cef105543023ad0"}, "acebda19-b11e-4861-bdd5-c180e1e89079": {"doc_hash": "df793e5c2541b3dd7ae01ae4ad4764d314d6ac51b44a6abd504008166032b125", "ref_doc_id": "93c1599b-7d54-44e7-9347-6b746e4d7cb8"}, "93c1599b-7d54-44e7-9347-6b746e4d7cb8": {"doc_hash": "26a74ac42e4722c5d4ae278c1201a79295cee79963ee5afb0a7dc773ee9a8cc8"}, "a6a5c7a4-88db-4088-807c-d960df4b0794": {"doc_hash": "3a99d2b92e48b05dbc52fc4456a4bfd165bfbc433fa9c5973f52ca9528753890", "ref_doc_id": "ef4b4f75-4a76-4140-85bc-50e25dc262fd"}, "ef4b4f75-4a76-4140-85bc-50e25dc262fd": {"doc_hash": "d570b4d52b8142c6d0e55549cea5fe974adf6e303b81aad87f70cea92cda055b"}, "8d50af42-2b4d-4ace-8838-c09b93e09197": {"doc_hash": "100d9a5ab0763725a3a9776c037d2b845bb843f60e09c25b79b1a2e794088170", "ref_doc_id": "7dd39cad-9633-4b9b-ba63-ac82f4d02aff"}, "7dd39cad-9633-4b9b-ba63-ac82f4d02aff": {"doc_hash": "882ea979dda1e4afa896cbfd80348b7ff9ab7ac15bef176fe0391606ea9a6ac8"}, "88c25460-9466-44db-89ef-c587f87c6377": {"doc_hash": "30ae5e0ffd3df9a8dba31fea18c65fca50de0b100b10719a8c351f5131b3142b", "ref_doc_id": "b3bff095-746f-47f8-af97-095c5038ec1b"}, "b3bff095-746f-47f8-af97-095c5038ec1b": {"doc_hash": "8dc6276a0906721df58dbce4e5259542a3bf84a57d0448927bc957d044a70a4c"}, "c525ba9c-6067-42d2-8c80-790d4840013d": {"doc_hash": "e0141d08c1e80f42aaf4f8a8ad1a9662480478a250cd877213933f256f393978", "ref_doc_id": "77ba68ff-937a-4ed2-9c5d-01665ba1f1b7"}, "77ba68ff-937a-4ed2-9c5d-01665ba1f1b7": {"doc_hash": "d7b5587bc426e54c3f8849e82ed963729f83e3e55826fa57c6cb32f72c86eb2e"}, "50ead9d8-4657-4fa4-b0cb-8840d2a06f05": {"doc_hash": "a39e34fcaab8c603e0bc51a86770c59cd5a6abb5ff0b37ff746a8ccc8d9aeed6", "ref_doc_id": "b0a987dc-d3ca-4ef3-b304-668868c09180"}, "b0a987dc-d3ca-4ef3-b304-668868c09180": {"doc_hash": "8aedc86d77bba47aa63dedb4ca354778c5831ae0558b080317a665d3a6e42e8a"}, "d9854c03-7fcb-416e-94ae-8c97bbdc6856": {"doc_hash": "54b9f25ec831044ad9f3312dabc201f7db221db98984b67e949619a189d414f5", "ref_doc_id": "877f7f59-df91-474b-b75c-afcbf2d4b9b7"}, "877f7f59-df91-474b-b75c-afcbf2d4b9b7": {"doc_hash": "3e7821f6352f3f7d7de129c8dc004dacb1d623a49a13b47f39c176f80bcb87ef"}, "6531b6e3-f81a-4c5d-9863-c6e395414efe": {"doc_hash": "6861aad22f5d8340ca07748f0a817b871a8316d2b44a3b5be1e0ef8e283942d6", "ref_doc_id": "7051b3dd-4d79-43a6-b1b3-c89d556d2e68"}, "7051b3dd-4d79-43a6-b1b3-c89d556d2e68": {"doc_hash": "2020c3b725b64dc316c1afa5d3971a42e35c0d38d273275d25b3351e6d9040b7"}, "173623bc-35ef-4ad8-a0c0-f9c1bca862d8": {"doc_hash": "fff8d519a6a5d92b5092b5553ccb5f5df7dd808c591993c74b5711dbaa5f2b69", "ref_doc_id": "fbbc8503-1475-4947-b912-3059e446b2bb"}, "fbbc8503-1475-4947-b912-3059e446b2bb": {"doc_hash": "5646a3551aecb81a7e51a50ade7a8af6fb34e45ea357dc54ea8e0091a87ff145"}, "dd85f7f1-3f92-4e0e-ad6d-6f918facf12f": {"doc_hash": "47461fd83ae59de8f91b324b26c941c72f1933a7c22d5de934086e381b966dd5", "ref_doc_id": "190a9d68-98f5-4d75-b0d8-b5e165b4694c"}, "190a9d68-98f5-4d75-b0d8-b5e165b4694c": {"doc_hash": "4900278a18ff83150524d1c174793ef81cbd277ca31ba3c49c44d6e897f9f47f"}, "97bd0c57-bd33-4c1c-82be-79ef73987bf5": {"doc_hash": "f19a444de51690d30fec4278b99a05547f755f6b233aa21fba011f5e8faa3282", "ref_doc_id": "ea137193-e93b-440a-a277-b607cafac298"}, "ea137193-e93b-440a-a277-b607cafac298": {"doc_hash": "b87f2ac440263726809e5d80bfc8542e5f4462267e7a4c87c1099338104fa5cb"}, "a86aae8c-ca6c-4a22-a513-e4022181376b": {"doc_hash": "bce945f7de1bdf43d66be5b92e519f3857ab91ea587bedbafe99385555b71f41", "ref_doc_id": "d67ab403-8372-48a9-8776-d300dc869b4c"}, "d67ab403-8372-48a9-8776-d300dc869b4c": {"doc_hash": "f3db8bb93db64684a0ca79eb6ff6575625dd948cc0d050851a398c3e68a8f8c9"}, "d4c5a479-b3f2-4585-a19a-a89b3b2a75d6": {"doc_hash": "c8480d3e2f8d13e0e448d7df18c7d60b8c261f85666791fbfd2db54ff2f8a086", "ref_doc_id": "b1480fe5-791e-45a9-8b8c-0b0b2d4c9191"}, "b1480fe5-791e-45a9-8b8c-0b0b2d4c9191": {"doc_hash": "b9e0fc3415f14ed11c88b4c292309846e8d83d110613da3169f2c35cd92386ac"}, "bba72d35-cd5e-440c-b039-9a0ba1a428d3": {"doc_hash": "a91771af94c769a949028d6799b035b17825e3c673870ca7d8889d23dc47fa4d", "ref_doc_id": "a03b1efe-aac9-4cb9-acf9-277ac12ec752"}, "a03b1efe-aac9-4cb9-acf9-277ac12ec752": {"doc_hash": "05caa0292d9060b6456d6ca680b2beb9c29813c2cc2095348c063cf3b90de503"}, "37475df3-c871-41a1-a4c8-2ffeb3067560": {"doc_hash": "f0629edd3603f785132e143a3dccc1b9e2b3ef33f8561a1f3662b7ed0e9e5b50", "ref_doc_id": "203d4f46-f24d-4a0b-b43e-3c428de86a23"}, "203d4f46-f24d-4a0b-b43e-3c428de86a23": {"doc_hash": "78e5711190f872941a4e0063d61f687874fc72f36436a96f85ff02db2873d2b2"}, "a2c56ade-147e-4fb3-85c7-c13323d6e6f7": {"doc_hash": "863a8dec6126efbc8948bd24174bb08455d7666b1fea8eacd9d120cf0730af25", "ref_doc_id": "96b4781d-2e91-42e4-a79b-2fcb4e315d8b"}, "96b4781d-2e91-42e4-a79b-2fcb4e315d8b": {"doc_hash": "2ffa926e05bca8eb814f8710d970bb551398dc133914e254fd31eb69f33baa72"}, "9dcc91c2-a801-4919-b325-4a8f4bfc15bc": {"doc_hash": "4eaa10739396082b432eb718fbc230fe24e1d6f6599e64c2b633b4228af6bc67", "ref_doc_id": "be887a72-739b-47c8-bb4c-35ae9e606b99"}, "be887a72-739b-47c8-bb4c-35ae9e606b99": {"doc_hash": "0d53c42707aa862b5946325b4e0b3bdf1d002d9d37c5ee2d9c32cfca0641cdd9"}, "1ab389b6-2115-47bb-aeec-7be32c6a2053": {"doc_hash": "60f3e07087cae45c472949334a48e5cb86a084994571bb3fd75810f4845e355d", "ref_doc_id": "4d6c8b3f-8932-4f5a-81b6-edd95343572b"}, "4d6c8b3f-8932-4f5a-81b6-edd95343572b": {"doc_hash": "91ddeb461cf35961c425823aaaeebb7afcc9e7c031a32d75f409eb95952ada90"}, "1a9b4364-f598-447d-a712-772063d6729d": {"doc_hash": "1aa753d87da2b4f2dbca4fdcf115410a720665886cb034e3de8a71713ef1cda4", "ref_doc_id": "0ac034fb-3054-4d67-a943-46b8389c2984"}, "0ac034fb-3054-4d67-a943-46b8389c2984": {"doc_hash": "c54147b827fd7e6e4a76e7abb069f6ff72ceaa62525f190e026d980c30140b33"}, "94aa738d-b63f-4c85-b782-8cbb06c100c6": {"doc_hash": "9277f7f7058b266c516c9784c4d68f2e2b424ca731091a40055ad44b5c9d98af", "ref_doc_id": "a31b2f55-034a-4581-b274-1436e3ca8d0f"}, "a31b2f55-034a-4581-b274-1436e3ca8d0f": {"doc_hash": "42f0d7406cb23fca12a5c6232ee2e8c99736f86d9bf98cc2d260ee5299139625"}, "5d140d26-97c5-4ca1-80e8-a0c1e0730325": {"doc_hash": "6ebd4bb234a3d9314fdc23e8168c1a8d0ddefe959efcbe06181115993e046b60", "ref_doc_id": "ff3870d8-2c67-4e1d-a9c0-37eb56e8e33e"}, "ff3870d8-2c67-4e1d-a9c0-37eb56e8e33e": {"doc_hash": "b9412f8887bbe6cfba0c6aab68112bf7dc8d0405750dc95ec8c5402f3af910a9"}, "9806ef9d-7f5a-4767-8f8f-eb5e23df388a": {"doc_hash": "c8580f3cb0dc608aee2d1bbd7701f96837ad138183a2601a855dffb3f9f883e1", "ref_doc_id": "58af28c2-21a2-4387-a0d5-7c817fac3bdc"}, "58af28c2-21a2-4387-a0d5-7c817fac3bdc": {"doc_hash": "78698da552489c3422ee8f0319c987ff101a9e098f6dbdd8b1d113cb5fa5af84"}, "8e574618-3f03-49ec-a32d-ec32cdb3f66d": {"doc_hash": "9c6b7de2ce3570ec82adbe7a01dd7c52bcef5f138def995f1a114a6a3b72768c", "ref_doc_id": "463740aa-a3e9-48a1-86e3-990873fee07a"}, "463740aa-a3e9-48a1-86e3-990873fee07a": {"doc_hash": "1a084ca44488de516da882f21c4d7bcd84ea1004581b4b2373485df440474db0"}, "6f2b2508-4d53-4a5f-bf06-7a5223712aab": {"doc_hash": "a7d12ab88cbd9ee93f54a63e09217d8d073a2bb7aab06b77daebcc10827a3cc3", "ref_doc_id": "4a9acad9-d56f-486f-9978-e86c027d6fd7"}, "4a9acad9-d56f-486f-9978-e86c027d6fd7": {"doc_hash": "c54b833fc7cbf59b192a9f857717e85648138c7ff41f0890f0b7dc2e8c40cc2f"}, "b016ffda-8016-4a12-ac99-767a81d312c4": {"doc_hash": "266fbb934d7aae58b82935dccc52a762e8aa45584ac0b794091322cab4de0a0c", "ref_doc_id": "e6657ff6-19ed-4955-9d87-14b2acc56ae4"}, "e6657ff6-19ed-4955-9d87-14b2acc56ae4": {"doc_hash": "e8d7572b5806fae0f9abc7f8e0901e86bf8109b2543d06063a97df03a4f37dc0"}, "c7640200-2ced-44fd-a3fc-f4d11c51b289": {"doc_hash": "f74eea4d1022fd5fe103b499ca419c84a674cee5c11523ed07f19541082ee86f", "ref_doc_id": "29240b77-2b40-4355-82a7-df92e3d0807f"}, "29240b77-2b40-4355-82a7-df92e3d0807f": {"doc_hash": "8a92a9a698c3657ce8e0548181953c8166c06e70d2a5c601a9ef83ec798a2a79"}, "b4fe4dde-c229-4758-a86d-8c601aaac4b1": {"doc_hash": "cf8f70e7d2e5219dd67859ffdd088d5533d429a37f7c8e2a09758983626733ab", "ref_doc_id": "38a42405-03b8-46f8-ba7a-b5e548284cb1"}, "38a42405-03b8-46f8-ba7a-b5e548284cb1": {"doc_hash": "a26bc357f66b1594f400986d8bc274002a3ad91b0a0701c9667e3261fe210714"}, "1cbdd9ef-d700-4ffd-ad34-fa80fdb9705f": {"doc_hash": "32b470b75c255adf2f9a1f67257e097258dabcd9378c9cf83458fba6c3440238", "ref_doc_id": "7294040a-b290-4dde-a92f-fcf941383279"}, "7294040a-b290-4dde-a92f-fcf941383279": {"doc_hash": "242ec8619c13b243ce27dab892dc3231529bc641535f7fd14b806f5586f4bc1b"}, "7d1f8691-b244-4496-8764-5bc383b1b366": {"doc_hash": "cb36d1eeae9dd2fbf14435434c3aa2f01778dbd47c57aeb453356a8a556e3395", "ref_doc_id": "f9fd4cf9-d8df-4d74-b628-8895b3d9b3f0"}, "f9fd4cf9-d8df-4d74-b628-8895b3d9b3f0": {"doc_hash": "f1e832760c65bbe3c0cc578daa5a3547157bd2b597c9cdf4cfad26aef2da01e2"}, "6584d311-cbbd-4b61-a621-152009a2cc7a": {"doc_hash": "f33898d339fd46c946ab30fc1527c9106aefcfe11438ceb2f712a3ca56128b19", "ref_doc_id": "639e9ba1-8fd7-4bac-9837-71b6592a1e4d"}, "639e9ba1-8fd7-4bac-9837-71b6592a1e4d": {"doc_hash": "e283be842cd3a028a14399df921e059d830337e52ff81134130bd0710420266d"}, "fa7cdc8a-c5ba-446a-b0f8-457b61db1163": {"doc_hash": "0b6c6afe7090a513492ddcc066876fb7c2315bae51136bee01064a9acf5d4936", "ref_doc_id": "e49c7fbf-64ea-4378-9a82-41820ef9d0d5"}, "e49c7fbf-64ea-4378-9a82-41820ef9d0d5": {"doc_hash": "ec0818acdb4472201e9a0e1a82e7e2e5b7d36c36c59986f14e375224bc24d8bd"}, "830f85e5-fcd5-494a-8a2f-8049a11902ec": {"doc_hash": "4dd4c943e8563e8bc03abff0ed329819d5c0c6835d38b25e7ddff4ac5b1569da", "ref_doc_id": "659255ba-ffce-489b-aa81-9ffc24801bb7"}, "659255ba-ffce-489b-aa81-9ffc24801bb7": {"doc_hash": "6ae6f071220dc1126d3c8e19379cbee907c3e0fd7ed0610f5f942df4e4a1b2a9"}, "35d83263-4765-45bd-a834-247ab205c9d1": {"doc_hash": "540f3d135a279ecaab468dfdbbaa00b4f408df9ac7c34c05c3bcc3a342913941", "ref_doc_id": "f1e2e5f0-9f8c-46ec-9ee5-bc2302936e83"}, "f1e2e5f0-9f8c-46ec-9ee5-bc2302936e83": {"doc_hash": "d3481f75e91b11b8e9b6627e938dcaec88821d8cf84c22909eb9ac020b760f5a"}, "92b966e7-f5b5-4ebc-a62f-fe6fb6749cf3": {"doc_hash": "0c66c67eb2ff726c6236aa5eac15001385cf2d9e70a77a4375b92c330cc26c68", "ref_doc_id": "7b4f12db-a505-4a9e-bc16-27c766ac8d8d"}, "7b4f12db-a505-4a9e-bc16-27c766ac8d8d": {"doc_hash": "8b7a172bd1572cac5d70792c4db6b28dc3e7d17b3ab11432b13abbb5bcbbcc75"}, "0a65cf1f-dbae-41e2-811d-ac85377c65b9": {"doc_hash": "4c1f8dc5973ad975d7b20d144a0c2cf644c311290d33a378de8491e14c23ac83", "ref_doc_id": "40852467-32b8-4ed4-869a-2b9c97fed4a4"}, "40852467-32b8-4ed4-869a-2b9c97fed4a4": {"doc_hash": "e701bff97cb0eb3f30ef9d4c1f47d168856941f9958197028f51d0a69228361b"}, "26754b02-10ac-4294-ab61-8606747481a6": {"doc_hash": "63fe284c2dbda352a992b516ab4ce5aa84002e0e4e5141bf766e4fa7fcb25b00", "ref_doc_id": "dd7f324f-8b3d-403d-a752-7d7936b87f2d"}, "dd7f324f-8b3d-403d-a752-7d7936b87f2d": {"doc_hash": "cb30e04d7528be39f7bf7af26a4eed135a0eba6deba6d5824b331e1b1d1c2d44"}, "2f4cf99a-9d9e-497e-a129-57fba644deea": {"doc_hash": "7d6fa3bea90dd3f14869c1420847adf8b81741c507db93b414e63b72d610dd9c", "ref_doc_id": "424275ad-bfe4-44f9-8e20-f68bb6b3e631"}, "424275ad-bfe4-44f9-8e20-f68bb6b3e631": {"doc_hash": "1ade6ff7d0d9049aa8ecdb80a502e91348b3ef78668b85ed91f3b473cb518f72"}, "e077666e-9b56-4f93-92b1-58bd1933b05e": {"doc_hash": "458ef566c2aa1541a83affed8935ca8c0335fdaf38ac7d5fd7bc0ff3dcd058de", "ref_doc_id": "fff9fcf0-9f03-4da8-9131-513b4e0534c2"}, "fff9fcf0-9f03-4da8-9131-513b4e0534c2": {"doc_hash": "cb84be251633265d661ae667b03f02c25a1de6058d528b14a1e6283b8835fee0"}, "bec45c04-2c03-485c-b436-b4a2edc8f488": {"doc_hash": "b80214895805228a59ef19e1f6afe19291563f73ab8ef55196eed099062d919e", "ref_doc_id": "87d81d5a-f08d-4faa-9eb5-d9715453b9f5"}, "87d81d5a-f08d-4faa-9eb5-d9715453b9f5": {"doc_hash": "c3001970a23acfea666405edbf730aec4cc231409b420a61d4b14273a7042b17"}, "b569ef62-732d-4b3c-ab1c-04f159aaff03": {"doc_hash": "879ee1b394091944f976aed9aece9d027376656d3f7c1333ea2d9cc95908146b", "ref_doc_id": "3f6f8cfb-88bf-40ae-8f11-5b1b2fa52eb7"}, "3f6f8cfb-88bf-40ae-8f11-5b1b2fa52eb7": {"doc_hash": "b4d7feac49c326d388314951d2399caaba500e626ca697bf76aa3f3f6f586bdd"}, "ed58abdb-3f42-4596-8078-cc9c6f3f6296": {"doc_hash": "d71b210fb74105ec157fba53437710e757a2ee13b57701f322e49377d6ff68be", "ref_doc_id": "126920c8-87f2-4454-b2b5-3917950c9d56"}, "126920c8-87f2-4454-b2b5-3917950c9d56": {"doc_hash": "e08a13977ca67440731402493d8b6d1464f59d3d08546fb2ab9bb955628c3c99"}, "3c3d20f2-afb3-4943-a101-964027605d63": {"doc_hash": "0ab0d4c39770d745900b4980e1abff57650ae85fd4664a7d3499006539508069", "ref_doc_id": "a5b66cbb-659a-4699-91a1-a7c87eff186c"}, "a5b66cbb-659a-4699-91a1-a7c87eff186c": {"doc_hash": "72eb7a8fa8875336815dc4cb9835f79c7024ece8902035570186fe4d951023bd"}, "54b72f60-84b2-4cfc-8e5c-2dc029ada0a1": {"doc_hash": "5d250468187cf487e8e34f7a09cc8357da33a95575ec24afd5e0d05d817930da", "ref_doc_id": "9e9984fe-10ab-4825-a75f-96736ebeae2d"}, "9e9984fe-10ab-4825-a75f-96736ebeae2d": {"doc_hash": "f7e53ac2da19139d50275cda0321ca7494f991dfa5d294023e34300c680c3be9"}, "8e12c694-d733-469d-bdc2-8a084e09398a": {"doc_hash": "93e88b2bff69ba40146321c8b0468c7d58592762654fcf108f4ff0890346f6f2", "ref_doc_id": "204961a7-a0ea-4479-b96e-3c4a7d355c08"}, "204961a7-a0ea-4479-b96e-3c4a7d355c08": {"doc_hash": "91303b63e46247e6bd480b334b5e517070fc6b7d07a51652ad2416279820645e"}, "63f0ed18-e2bf-4692-a2e5-c2e4ac901f27": {"doc_hash": "e86500bb0c50692244070f38e779bbd4f7bc6953a1be968479ae4879285c20f3", "ref_doc_id": "3031a8dc-c4ae-4e40-8aa9-645dd78b2f84"}, "3031a8dc-c4ae-4e40-8aa9-645dd78b2f84": {"doc_hash": "d472367c00c8eb2942ac1316fe4e6f614ce61f6d06552aa2a13aa2423a4bc3f7"}, "d9124f19-9d86-4ba3-a55c-ea7f965a7fa0": {"doc_hash": "b2da53fc760fc2dd97cbac660f481b056a3de4b628517a7a525e75d9f5d31337", "ref_doc_id": "ecc8bbab-8428-4ddf-864e-d49c42263547"}, "ecc8bbab-8428-4ddf-864e-d49c42263547": {"doc_hash": "30eee91942114d19de897f0df884b340070fc9c925c55eba4f9939fbc53a1be3"}, "4d31d5d9-cdc1-48b3-869a-69b3c97849e6": {"doc_hash": "09227e036caafe0c74fdaf7e9f87b622b3b18a80410987d3c77236a7bb03f18a", "ref_doc_id": "cdca87fe-14e0-4772-88ec-a4ece88d26b2"}, "cdca87fe-14e0-4772-88ec-a4ece88d26b2": {"doc_hash": "975cdf3374a76dc5668adb121146af2eaa3d984bfe30d718ee1a6bb9c0ba0016"}, "e7952109-965d-4f0c-b838-4da2a935753c": {"doc_hash": "5c123ec5475470b69baf8e9c8a4ff1a014b0a5737bdfb54b2d6b31441e9ec194", "ref_doc_id": "bafdd229-b208-46cf-a444-031e80048ba8"}, "bafdd229-b208-46cf-a444-031e80048ba8": {"doc_hash": "520c48c1f1ab50dfb39302c6b37a5ace935f8dc2a21201c7b46562bdb63588d6"}, "5e3f567c-1b7c-499d-b269-a9f4df8a3ff8": {"doc_hash": "e69440b2b205fc64fd44e5e8ca4fdfc7b62a7ea0ec5e29b7599ae8c30d37c817", "ref_doc_id": "5a9d375f-c894-48a1-9e4a-7ad413f4071d"}, "5a9d375f-c894-48a1-9e4a-7ad413f4071d": {"doc_hash": "45b31987465e0446fb6c01de9397d1fe0b6ee9c41130234dedaf5466bfb98b2c"}, "a1312908-8d75-4d1d-a16b-7c21305160e3": {"doc_hash": "49ce857af44b63aaf206dee72f43b1a3cc7d1bc64fe70111dc148f32d3957e02", "ref_doc_id": "d4ad1757-00d0-474c-b1e7-be0618f2c4d1"}, "d4ad1757-00d0-474c-b1e7-be0618f2c4d1": {"doc_hash": "4a53e8b7663c93d0457ee74866c878dcdd287902b5f3b746d8058f68f86b7ee4"}, "f86f2c50-07e2-451d-93c6-7d749d3d404a": {"doc_hash": "bd164ed23d77a9e0d91ca949dd6c4ce6a23a072fd30c08824de5538727c0b7e6", "ref_doc_id": "b433b04b-dfe9-4aa5-8c12-756881f00bae"}, "b433b04b-dfe9-4aa5-8c12-756881f00bae": {"doc_hash": "0ed35caa7d5eae5510476e0de40c6a5e571ca7e0650853ed2c74f096fa652080"}, "66c574e5-e577-4e44-a34d-379b05c6c269": {"doc_hash": "59ec4c1e2d88fcf01fd8282154b83019ba065a4ba28f505e35fddf921102d8bc", "ref_doc_id": "c8d62847-e439-4736-8535-d336cbf0fa00"}, "c8d62847-e439-4736-8535-d336cbf0fa00": {"doc_hash": "2d62b75a80dffad011a8132e2eb67a53866fd23c295b7d6c1d258cc0a8bebf14"}, "ead62cd3-b4e9-4706-a9d8-89e6998f47e0": {"doc_hash": "c4839b65ac664669d48285a00cf57521d74b515014d2edaf518fa06b197fdf19", "ref_doc_id": "2dbf7dbb-c3f9-4c54-a58c-82815b6ebffb"}, "2dbf7dbb-c3f9-4c54-a58c-82815b6ebffb": {"doc_hash": "da848cdbe93d5d14c09a75892a58e663ac760645a4800dc46ef25fcfd46178cb"}, "e4f61d22-7aff-4709-8b12-89bea09ecd26": {"doc_hash": "f47776e832ed297ffa8a81db49213b3c1c6d4ae3406b2322109c21da3b9032e9", "ref_doc_id": "9470b431-53c2-417d-96c4-0d925b15ee5d"}, "9470b431-53c2-417d-96c4-0d925b15ee5d": {"doc_hash": "458f9b8825d9c1c43f663727e1b7edca1c883478839f270f97097011d26cf325"}, "7e90c132-f83b-4af6-9a0e-ff3203d90f93": {"doc_hash": "f777a27b1e763e4811772de597a7d5d88c486855bf6ad7bc2060667bf6abfa9f", "ref_doc_id": "7bce44c5-2d28-42cf-a196-13cfda6929e2"}, "7bce44c5-2d28-42cf-a196-13cfda6929e2": {"doc_hash": "ac2ea6da5a28ed3a4eb79e285991fa85e20af6872a7496170becc1347efa7cc1"}, "5ed2bdfa-b0b8-439c-a1fe-df50b414bc64": {"doc_hash": "07fc9309908262497d5b2cb88e8cbdcc455d100749da70cc174401af30865fe9", "ref_doc_id": "7a27f286-5258-48e8-97fc-c550284db073"}, "7a27f286-5258-48e8-97fc-c550284db073": {"doc_hash": "6b78e68a0cef586221824fbbafb7ddadad4c01b838aaf46378515b0b403a11eb"}, "3a36a66c-0ccd-4b65-980e-f30513ef37cf": {"doc_hash": "6c65a91a4649c0d2bbc126458c277f9aa89b2a6e49dba8a58217e4f1f228e74b", "ref_doc_id": "946f9fb4-b712-4008-89f1-8a20df9b2957"}, "946f9fb4-b712-4008-89f1-8a20df9b2957": {"doc_hash": "b250783bbffcb0c54a985d72e6422ff5d956a661be6adfaab03da5084307f6a0"}, "2bcb55d1-52f4-4f83-9018-7bd6cfc6e478": {"doc_hash": "fd6833ec71471e708be5b7aef8909441a577786feb0634f5b615fb802005e436", "ref_doc_id": "89fda37e-572f-47c6-a8ed-201090cf3364"}, "89fda37e-572f-47c6-a8ed-201090cf3364": {"doc_hash": "49655146bb810e1b8bc09f2117d8d0fe9b421cc14cc496497dd2e39a08230c00"}, "2f5e8d25-a51a-4ef0-8ac4-00d5605ef63e": {"doc_hash": "f7c4f7839ed9d8e27b64182b7f71b5475c8b13545f64413d8e5fd7bc64909b2a", "ref_doc_id": "c036f34b-4133-4b44-83a1-97ee91807928"}, "c036f34b-4133-4b44-83a1-97ee91807928": {"doc_hash": "ddf81baa3d939d34e5670b875109ec02d2747fbd8bcd21e360f3eaeb19c66b26"}, "28666901-e172-4b2d-8562-666e62017c36": {"doc_hash": "415d235a21783b53fc2688fd5d6d1c70333c4a46ca4f257d204788775cfe7943", "ref_doc_id": "5829d8da-addf-4211-9134-15402624bf5e"}, "5829d8da-addf-4211-9134-15402624bf5e": {"doc_hash": "f526e58dfb9a5efb7d564e5de9070e75068601fce121d48f1ed06b95e92f9f2f"}, "cf39c3da-ef51-4a22-bad6-33e41397d96a": {"doc_hash": "838a4f993bba21403d1f01c40246b21810dc5f43793cbf22803150443915e637", "ref_doc_id": "be572f60-6696-4072-9a71-80a9bc07e30c"}, "be572f60-6696-4072-9a71-80a9bc07e30c": {"doc_hash": "4bf9db522c66f39776d82eda7764e28e8dcb489a5dd01850a2feee0f3e77da0c"}, "b7684f27-11f4-4892-87b6-9ddbdce4a7ba": {"doc_hash": "a27ef95477554e0ed23b007fc004727789999331daa03a15837b9e18e981f2a5", "ref_doc_id": "068c0f46-d480-46cc-95e2-4093b0aee543"}, "068c0f46-d480-46cc-95e2-4093b0aee543": {"doc_hash": "2c08f0fc97dc465086fd2b43f6aedf6296d41306f419089ff390162ebf4c319e"}, "e28c467b-4967-4309-b988-7403cd49ba04": {"doc_hash": "f903b6dbe0c39676e905492dfddb278aee23d7752de312b08bf3ccd71bcd3f78", "ref_doc_id": "a153a91e-1881-4d93-8098-42b3bb0965b6"}, "a153a91e-1881-4d93-8098-42b3bb0965b6": {"doc_hash": "4bc5bbcbad965c0d6f00de823a317fe857f1fdc080e15bc1f5fcabfc8d4ad347"}, "2d474c2d-0036-487a-9933-74465cb57184": {"doc_hash": "aadd49cc0079d847ae51f8cbcbca7a6c12e5cb834876a6738176d52b6f657059", "ref_doc_id": "04f3c222-d1d7-444a-aca3-1f02cc1f306b"}, "04f3c222-d1d7-444a-aca3-1f02cc1f306b": {"doc_hash": "208aa82e3992d7f287d5a71009054cb01e141e24e81d4412bb31649f55a7be5d"}, "065dead1-4d2d-4034-a92b-b4c48f135092": {"doc_hash": "075650aa06d1403f5e2f28a5f882c0d5c457d8385f7b8843fad71b8d823e1690", "ref_doc_id": "7198435a-678a-4867-8f63-5f12ea61b07b"}, "7198435a-678a-4867-8f63-5f12ea61b07b": {"doc_hash": "971c03e4df8b6205d13bc06d45f24839950318840c6e944917dd8b94612ee2fe"}, "dab06e0a-f372-4659-be61-c79fa044233e": {"doc_hash": "9fdbf964fff1f7776bb40c1a86899595b52226a2d5850272738c4b8b5926b532", "ref_doc_id": "71e9cf54-9bbd-46b7-963c-c08f2cb189d4"}, "71e9cf54-9bbd-46b7-963c-c08f2cb189d4": {"doc_hash": "4401d264b32ea801a52035c47adab53a3289c071c2ea461ce23518c538206b2d"}, "7f80f496-c869-4a66-b880-b51b5cc24f37": {"doc_hash": "be8184335b2fc2c11e0e14fac4de517f94fb18aba987ebdb9c08a99fa763c233", "ref_doc_id": "0631cdd4-19a6-42ad-b8a4-7b4f690323e9"}, "0631cdd4-19a6-42ad-b8a4-7b4f690323e9": {"doc_hash": "3e1f72b5042e6f4eb7d737dbd8358501d8ce0ca8c3cf1652392842dbd6fa51c9"}, "09e10d3c-9b24-46ac-9ae5-864571a4abda": {"doc_hash": "fb523bd814f69d0e4341a9b748559a2e1e5058cfdbb27252325e8fc50a9217e3", "ref_doc_id": "03f25ad8-6a63-4ec4-9475-6c819ebf5ca3"}, "03f25ad8-6a63-4ec4-9475-6c819ebf5ca3": {"doc_hash": "e4121c9f72d5334c4754a235a6f765fa9a27f61aeac3106d006ceb49028c465c"}, "34a8ed1f-0385-43b1-8440-791ccf228f68": {"doc_hash": "f022445317e606e784721d15fbcaee3acca49cae15eea0b2e38cbb27c404eae5", "ref_doc_id": "593b3180-e873-4a9c-8268-04e773247b22"}, "593b3180-e873-4a9c-8268-04e773247b22": {"doc_hash": "3b1d40c90888f4058993d9d39071e88ee9456d6415ea3fc6879ee19024de3e55"}, "007d7afc-0a97-44d2-84b4-c2fe395bfbaa": {"doc_hash": "0976bc91c554a8f7cb428c424bec409b47a600b569ca922d9c35a8317b88d1c3", "ref_doc_id": "2bad4e9d-0616-47a0-805d-4fa9f7bd71ae"}, "2bad4e9d-0616-47a0-805d-4fa9f7bd71ae": {"doc_hash": "19f6c5c53578047d587cdee2725107df7448e0d9e0f7a01db3081a74dfd40ff8"}, "91682a16-0db3-4259-ac00-129233f0e2e6": {"doc_hash": "ca63a5020e762a8462eef751ec26539ea5ebee61ca77b2e918008ddd94674594", "ref_doc_id": "226c3a6d-b458-4852-b4b2-263f0c16aa50"}, "226c3a6d-b458-4852-b4b2-263f0c16aa50": {"doc_hash": "d258fe920f955145baaefa83e56680f67f322ece9ae5949c63c43aeeaa7d3dca"}, "c0a69061-8144-4412-9b81-f2ffa6608f32": {"doc_hash": "717a3a60045887d89b1337bfe86d6039329a39829220929966ba8a31d9ede433", "ref_doc_id": "2ddf17a6-0296-422d-a820-6d742d1eae70"}, "2ddf17a6-0296-422d-a820-6d742d1eae70": {"doc_hash": "5b65523af85631f074573cda0557bda6a9206030a44c798f776b2dd4744a3ef0"}, "a7d3c121-c54b-4403-a667-241210094ed5": {"doc_hash": "2d6a1e6ee9604ede8e6816629ba3e0ecc39c1bcf2546b02ba494584ad5c13e4a", "ref_doc_id": "60e19b7c-a004-417d-a410-126b2be1a4df"}, "60e19b7c-a004-417d-a410-126b2be1a4df": {"doc_hash": "49662bfe000cf4c13eb790b2510fca690db9ea42422a8ae9a4b6a5ad827142a8"}, "e1d9dd2e-41ba-490c-a082-a73e9cf73571": {"doc_hash": "5290db40b6164159ae84f209f051f4333fd77406deecee15067c3f12c061d4e6", "ref_doc_id": "6471dc92-b93e-4f30-a43c-efb8f060d3c2"}, "6471dc92-b93e-4f30-a43c-efb8f060d3c2": {"doc_hash": "88671d2a22893084f777d699da9a3a8f9209066bd977563c3cb06c210f1a88f4"}, "6cab47cf-c2e4-4022-bb5e-b13188ebc3ce": {"doc_hash": "ef79b0905f818b143dd705ff53afafc3ec4557bb00d0e4c2826c1ac6197a69f2", "ref_doc_id": "5e858da8-01b6-48cb-ac91-7b5ae3bd16f1"}, "5e858da8-01b6-48cb-ac91-7b5ae3bd16f1": {"doc_hash": "736b94d45a22c7198b4e7056a250a403c759c6e63c02e5d0900d7e2e6013e4ea"}, "25875abd-2b18-493d-9083-5124a865f02b": {"doc_hash": "44e23e4cf665302a3b8628f09b5198c75f07cfce77c1c9c75688904dc06c86c8", "ref_doc_id": "a34f71e9-940d-4c04-8bdf-97a8bf33a08a"}, "a34f71e9-940d-4c04-8bdf-97a8bf33a08a": {"doc_hash": "e9e05e98f866ced25f82a884ad48a9645a7241d4eb5f6b1ed9ba3f4e324cd247"}, "5688ccc6-0121-475a-9ddc-2b7a947c3e1e": {"doc_hash": "7dccc8a80cc0f19ca5e1ee7b61b0390a106281ba7308742342ada5071a65cc9d", "ref_doc_id": "fc212e69-299f-477a-a4b0-739f4541bb26"}, "fc212e69-299f-477a-a4b0-739f4541bb26": {"doc_hash": "e6b5c6da55faee6f31e2ce374fef78511b2532e86e947bad6c89761fd4851961"}, "a7b60696-7573-4b97-879a-3d5d7155a8d7": {"doc_hash": "75176fa6b3c3251d91d6af24057893b0ef35ce15a9dc4e68913d6fe0327c4e65", "ref_doc_id": "f2644a50-fe9b-43ea-984c-d4f852cba306"}, "f2644a50-fe9b-43ea-984c-d4f852cba306": {"doc_hash": "d1456deae198fd97f5ae1801611d14cbe6f3741c6b3476317e64d6c5bad20dc2"}, "6c691297-621d-413f-836d-4a77e2eb1c23": {"doc_hash": "1929738c8f0cecbd539c9f4a8b81a36999f318e3d47445bb1e266c1bbbaea6fa", "ref_doc_id": "1f8313ba-10c8-4b6a-863a-c61464eafeef"}, "1f8313ba-10c8-4b6a-863a-c61464eafeef": {"doc_hash": "6f7a48149b09dbe2e05683223664b842f77e008fbcc4f40ec8e43fb1753aa1a0"}, "d87deb22-42f8-4ec1-bc49-85725578042d": {"doc_hash": "d394f82be8e6892ed36d5d18dfec609b2f6f75f879ff81c54fe0baabd4ef348e", "ref_doc_id": "8d6ba957-ccfc-4d68-8ee4-a84ad890b44d"}, "8d6ba957-ccfc-4d68-8ee4-a84ad890b44d": {"doc_hash": "accea5bc8beff43e64faff2a0d604926a739523b517c03ca0c47ae8006fa4cfe"}, "de17239f-a396-4936-90b2-06a173c12c13": {"doc_hash": "54998756b7f10cd63b4e92343b7678ba68eb94ae74b9092c9dc28773a99cf49e", "ref_doc_id": "99bdbcdf-81f4-4ac2-a966-73034197bcde"}, "99bdbcdf-81f4-4ac2-a966-73034197bcde": {"doc_hash": "8bc854ce983a3c79f63986725af21d33eacca61fc3ffd78167a949f772c5d211"}, "f02b7e7c-a6e9-4e3a-be82-4fef2b610908": {"doc_hash": "09a113ea477bfc080bfac0ec48fa3b382b98487ea15de25f34d4a35dff770b18", "ref_doc_id": "93e0819d-79aa-4c36-8132-084c6f85b6f3"}, "93e0819d-79aa-4c36-8132-084c6f85b6f3": {"doc_hash": "770bb6cefcfa42d3a8ccf682087e3b13c58bb193b30f7eb76e1582bbfc1eeaa6"}, "da4d94e6-3263-43db-a764-dee47ad20dee": {"doc_hash": "4368513e0408c85e13bfa06dcfe8378e27e5a8e53dabd472d0f1d8bb70c79f28", "ref_doc_id": "8c4d7806-aaaa-41fc-acf0-e6161d4d7a34"}, "8c4d7806-aaaa-41fc-acf0-e6161d4d7a34": {"doc_hash": "ee39b349ddb1aed3d91c346bf62d2d60838527fce7000c8ee08d42fc76a5cc70"}, "275a2b8d-41bb-4aa4-8fed-22d1748b22a5": {"doc_hash": "a14b0f6c2fbcb7f6e22e7efdfabe3eb73705146b5e04f610ee9bc080586ceecf", "ref_doc_id": "d5c13ec5-fed4-45ad-bff4-1a3090dcdb9a"}, "d5c13ec5-fed4-45ad-bff4-1a3090dcdb9a": {"doc_hash": "d317467d781773ecbbc68475f310eae5e7278f2583948045b84678c87d1c9d5f"}, "728c14b1-51ac-4928-ab65-0dc6bb642299": {"doc_hash": "2a0136ed32e1278aafc8836e37f4e81e8dfd900d5bd8b2056854e3b388374964", "ref_doc_id": "af8823c5-692b-4fb4-8812-4f0740c44d09"}, "af8823c5-692b-4fb4-8812-4f0740c44d09": {"doc_hash": "435a34353195897340f34f2a817b5279933ec83026c9fed9adca02f1029f27a1"}, "0ffb9621-b4ac-4fda-9ae6-ef6ec12a31e1": {"doc_hash": "7fbf9d9f84e345345b42b392c81bd15b771aaa3f8a9b7ac9038fe04f776bf022", "ref_doc_id": "efd3da35-ecdd-4ed5-a692-f63fa32efd33"}, "efd3da35-ecdd-4ed5-a692-f63fa32efd33": {"doc_hash": "bf0f5bbdf9c986e94f31a6aded84c3449336d4cecf029b853fe63ba87fc1d646"}, "557df62f-9923-4ecc-839b-115034ac2e66": {"doc_hash": "901dcd3cddba0ae7d82ff1fe99b487c0d01cd87c0afabc63715f54c34c5649a8", "ref_doc_id": "6b3c56d3-ca49-4534-a4fa-f5f4a723891b"}, "6b3c56d3-ca49-4534-a4fa-f5f4a723891b": {"doc_hash": "1d98c86a8b66ca1a6b7b8b9cebd23d1701a62375a084293ef6d6e207eac97982"}, "30608ba5-da91-4451-87e5-2e4280996e4c": {"doc_hash": "2fe1848cd5e7f0c9e958271f239ae3fb56ebc0622bfe0dec019a2d37131efec3", "ref_doc_id": "979b7276-3617-49dd-bed3-5ab8b31e5e68"}, "979b7276-3617-49dd-bed3-5ab8b31e5e68": {"doc_hash": "4f7e7ab09c2d53ee0271976525ac320989da3d733c6f2b66dc32619d329051ce"}, "c24ef5c8-1338-4124-8ecf-5de63727dcab": {"doc_hash": "9d1916c3ed897fa98a4d1f7c9c0091ae90b8015b9110d0180ba13d2d5eac8332", "ref_doc_id": "e1d20db7-6a39-428c-9bfb-8206312bac7e"}, "e1d20db7-6a39-428c-9bfb-8206312bac7e": {"doc_hash": "3094d4692805d73d7a8c148bc1ad6115b6298d0d9d89e3cad94f747db99746d8"}, "5d817f88-3ee5-4db8-8aaa-ca69837cc6e2": {"doc_hash": "586685ef1771aede00c0ae31426e889b71eca5a584014839c312ae3a2334edb3", "ref_doc_id": "9b7cd8ad-14a4-408e-8194-28fc3ead0488"}, "9b7cd8ad-14a4-408e-8194-28fc3ead0488": {"doc_hash": "65a0a541cbb6308acb633bb864ad071722ed34429418cae538ac0b9964751835"}, "73c66621-0f4f-4d0b-b1db-e04e16259eb7": {"doc_hash": "5351eb2e6c3cc5666968f90f1cc50682a1a5d158a4b35ae81010b96e498c65ac", "ref_doc_id": "ec8d3f5d-fb22-445b-88a7-4e5ce35e21cd"}, "ec8d3f5d-fb22-445b-88a7-4e5ce35e21cd": {"doc_hash": "56839438c414deb64c6dd5181120e904be769a95c76debb7c4f502c8e8fcb293"}, "414c27a3-6472-4d23-afc1-06f622688d74": {"doc_hash": "3c469f9bc54c688151f08e4769e5b9c0938e45b36197e96229b56fa17e1aac76", "ref_doc_id": "b43fdd4d-fc0a-4212-bb9a-fc538eac2795"}, "b43fdd4d-fc0a-4212-bb9a-fc538eac2795": {"doc_hash": "19cb8dd5a5bbfe32c53a215b6b2d0f959544eb9a36a91bb7a619a0c44b9ff4e1"}, "15a098c8-df09-485c-83c3-9967b9f697ca": {"doc_hash": "79a8a46acf2696920f51a7b9427f65dc7012b830743c09687420bf5b048d62aa", "ref_doc_id": "8e4d1a49-6cae-49fe-a6b5-c4d9e66f6928"}, "8e4d1a49-6cae-49fe-a6b5-c4d9e66f6928": {"doc_hash": "91cab62321ca6f983969d87b97ead05116a1ee884aed172ca3f49f5b7c7c74af"}, "e10558a5-a8e9-478c-9469-b8398081f5a1": {"doc_hash": "3943d144bafd4818b5ecec6d5463772d2630c968cc1a18f652950a1d39c3299e", "ref_doc_id": "a66fa939-82eb-45dd-9d78-a631744f0f3f"}, "a66fa939-82eb-45dd-9d78-a631744f0f3f": {"doc_hash": "d6703d77b46c6bd81d7d6f328f3b35fda9b7aacd5773f562cd9cbe0945d9cf3a"}, "0c97c806-8af3-4cb1-8e7c-884d9076b55a": {"doc_hash": "bebee8ca93c4836ccb598bb3aa566df0cf7e492d84bd16c8054643f2d4fca1bd", "ref_doc_id": "77eb1218-0a57-40bb-89de-b641499015bc"}, "77eb1218-0a57-40bb-89de-b641499015bc": {"doc_hash": "f8f081c9d8632f656cfddcdbf59deabfecad450e9d09bd0f6c6b15fc9219b187"}, "026d317c-659c-4231-824b-acd61ac88fc3": {"doc_hash": "ffb06d852ba9dc7544971c65ac422a85a11f692e640797007178346816963542", "ref_doc_id": "f6e8205c-d9c2-4952-b053-b3133c8f12c8"}, "f6e8205c-d9c2-4952-b053-b3133c8f12c8": {"doc_hash": "59fedf9efc64752147623a677484a8d4e4aa5af0bae3859a7445223b0014ff0a"}, "a8741110-6a31-40fd-bf40-5030bc87b40b": {"doc_hash": "85d38cc275f6b19f433dcf7789698dc32ddb83cb590e30a529c888eaf599d5da", "ref_doc_id": "33901706-5176-4c71-a924-da3aecbdc8d4"}, "33901706-5176-4c71-a924-da3aecbdc8d4": {"doc_hash": "ce566594650788d4f831279d4a5b443896f049a10640c3f0a2a339129f81b564"}, "e3fcdce7-53ff-42c4-823d-13abf1d1ea3a": {"doc_hash": "9ddef5dc13cc07eb1d35bd2acc35db85529f8bc4e827d7dbb5ed242d2471f6dd", "ref_doc_id": "23438934-ee15-4e87-acfd-cc34b9fd2112"}, "23438934-ee15-4e87-acfd-cc34b9fd2112": {"doc_hash": "8c43b94de8f279b3fcfd4e307d82c6e2fcb223120977d0520030546341ef7ff6"}, "b0e5b886-f092-47c2-9361-c74ba4432ead": {"doc_hash": "698997369d96e0210d0e859a478d53c142971a81a8fe666f9b0720bc54603778", "ref_doc_id": "18cd83b7-2c26-40f4-bc65-9ea5dfcf196d"}, "18cd83b7-2c26-40f4-bc65-9ea5dfcf196d": {"doc_hash": "c6c88ad4948aea2d92157a3f2eb18688450cc5ae85898a008e46ec4a71f607e2"}, "8d65da26-7878-4ed2-bafc-76e747f237ad": {"doc_hash": "d8a3473315bc5e2432077b11b1562369f105b3fc7b6fae7bd5b3f0be31a505f3", "ref_doc_id": "200ec2f9-2fa4-4de0-984c-f3bc384813c7"}, "200ec2f9-2fa4-4de0-984c-f3bc384813c7": {"doc_hash": "33bb082e5576c0878201d8bee0087732cfd3b737c16baae83f69f738f8b2c5ec"}, "2f965bef-03b5-4a67-8b22-b46f5467e6eb": {"doc_hash": "553a6502f099e3a4ff21462772b7caaa18f0010e7223706b2a3f68ffb8065750", "ref_doc_id": "4a827d1e-7925-439c-b632-378477007b21"}, "4a827d1e-7925-439c-b632-378477007b21": {"doc_hash": "560af1c5b50f59b1d7f3c08f266daa85c667d344a926b23c7279df6fdb74653f"}, "0e0c5c9b-9afb-44d7-bf98-b7a5c1a80aa0": {"doc_hash": "5c80c168c00720279d9e6e97243154deed4d6e1f5ebcd0919f5ae3b04e0a246e", "ref_doc_id": "dd1e6e11-db2d-4854-8b59-3d18604f9971"}, "dd1e6e11-db2d-4854-8b59-3d18604f9971": {"doc_hash": "4899f4f66cf4084d39842e44f80029d7bf638e21e8c7de865edd7b8838420a84"}, "2c3cd011-9abb-48c9-bcf7-8056bb73c568": {"doc_hash": "81fb70ebafe20626b9548be4c7c10f71e43b1468099dcca7002de86cb332139a", "ref_doc_id": "2e105a24-68d8-43b8-b162-b80e3f83d12f"}, "2e105a24-68d8-43b8-b162-b80e3f83d12f": {"doc_hash": "52487f3fb76ac0494118d804e073c395f77fee91b6f7056100423400241c997f"}, "5796ba79-7e7c-433d-b48d-22a655968aeb": {"doc_hash": "73efd6f66c58112caf13e220f4999d3de4577cee2bf32f1826be13cb89fd59b8", "ref_doc_id": "52cf2a6e-47de-472f-84f7-b80b6c0944a8"}, "52cf2a6e-47de-472f-84f7-b80b6c0944a8": {"doc_hash": "62fb9d63a3c63fadfb75c9c8f0b34c34765e2fb92c592829693346f8d7997750"}, "8efa8173-f5f1-4ce0-9b6f-fb3eb938898f": {"doc_hash": "1fbcd54e98192ca1874d6648ed4d559896c538f3af454cdc9109725a8fdf4148", "ref_doc_id": "a310a22c-a977-4018-a8b3-63cfc47b9d76"}, "a310a22c-a977-4018-a8b3-63cfc47b9d76": {"doc_hash": "6750fcc0def7bd3bcae117a589d07b0acf905676f5649aca9ac088d42d9a965c"}, "5ed184a3-272f-432c-9e5b-04a3c02bcd92": {"doc_hash": "8d0989801243437eda99307423ddaa0369d2398d098f4d8356f2bc4443c4e5d6", "ref_doc_id": "09632e4b-9c2c-4f3d-8e8b-17c3a983bfd7"}, "09632e4b-9c2c-4f3d-8e8b-17c3a983bfd7": {"doc_hash": "b7e99a43b400db6f71762d416ab66b2cc2cf55dd917330607d124596d5da1004"}, "c73b8060-9483-4686-9e13-d6b0eef84b5e": {"doc_hash": "be75fb1052f594d9c27bf9a5be5a8438733937efd0ec4381a3ed6e18f365efd8", "ref_doc_id": "4bee6f71-ad54-46d0-bb6a-2488041fe94c"}, "4bee6f71-ad54-46d0-bb6a-2488041fe94c": {"doc_hash": "aa8d1fa1df7c36296a2246250ce36d8733241e4bbc7c3aa539632eeb955779e7"}, "4555b0c3-63ff-4cf3-b86f-861d9b77dfa1": {"doc_hash": "8efb0fcb0f23e2cdef1323d435816603664847a6f41a0143042c8359d0eb9c56", "ref_doc_id": "849c8e65-06a3-4493-8b4f-a6bb19a5e7e1"}, "849c8e65-06a3-4493-8b4f-a6bb19a5e7e1": {"doc_hash": "d00fd6ef89f5ea2923479744da0b9f894e35b9001f7ed2707fe806c0fa93ea6e"}, "090cb24c-9b6d-472d-912f-6a4448358be8": {"doc_hash": "f7e4c80ccf340d26b7728339a5c4b6b1768534e436faf359dd903aa5a04d680b", "ref_doc_id": "2cc71083-62de-4379-a490-fd8c725c98de"}, "2cc71083-62de-4379-a490-fd8c725c98de": {"doc_hash": "95f50e5c0409396c2ef331706666579d7a2c30875be9a78c2f06884252e7ceeb"}, "69c4306d-c4e8-447b-ac3d-ecdbc55f66be": {"doc_hash": "e3ebd99b0da79d4e3915d16e0bd4092e1daf312e2a23c9477c191c6310058055", "ref_doc_id": "55ce72d0-e872-4f01-8316-85de990989b8"}, "55ce72d0-e872-4f01-8316-85de990989b8": {"doc_hash": "17461c22e380a486e3c23fee27fed720147322474788e657b3965ed3e6965c1e"}, "6ce170d0-de6d-47f8-9cc2-9d93e545e26c": {"doc_hash": "e67dbca86b9ad9beea27b5277a576ab31ec158f3cbe18da9a760b4e13154e378", "ref_doc_id": "96a5e1d4-3a44-4808-84e0-006d4e50824a"}, "96a5e1d4-3a44-4808-84e0-006d4e50824a": {"doc_hash": "ec694bd200db97c8af8c3057c666c48f4c511fb01a7950d83ea4a3460cd7029d"}, "774a44b0-3088-4750-ae97-3bbb49d0d6f9": {"doc_hash": "ae392b22446902d8b826e816e8000e2368c4e537f7a110045b93c213b3b7fabb", "ref_doc_id": "d960c8dc-b652-4b42-ba69-fcd908e69af2"}, "d960c8dc-b652-4b42-ba69-fcd908e69af2": {"doc_hash": "722573918b7255b910ea5d28723fdf2a686783449210b829f345771a96e4df60"}, "8d79d967-2eb5-40bd-8145-dacb456a947e": {"doc_hash": "4f5764f6da3923b995caca6b459142feff890480b42239aab53834f93b2f1221", "ref_doc_id": "820f09a6-3d45-42b1-a963-1051ae33190c"}, "820f09a6-3d45-42b1-a963-1051ae33190c": {"doc_hash": "c6fd5001dcec4b3fc27eb568eb964090ac4c7d479eaee7a33c6cb91ea2a3fa2e"}, "edea398a-2304-4ef2-b6d8-d7a0df04bfa8": {"doc_hash": "2ebb416f49a870446d9c99a9d959640f59f8e5d46406ba75faa4c905ca1c1c12", "ref_doc_id": "8b00d762-35d4-4261-a871-f369c4d16de5"}, "8b00d762-35d4-4261-a871-f369c4d16de5": {"doc_hash": "fc9649da7f3b7085a9f1ff68066b781792802ab038059b5bdb5b4a09b5ec59f2"}, "d456bff8-0bd3-4b17-a9cb-df318909f8e1": {"doc_hash": "d27fd1b860ae07155a8b8ad59e0b1ae049346cc67324c5c6180d2557adeb3b83", "ref_doc_id": "850a12ff-ae48-45b5-acf1-881323c2c2d9"}, "850a12ff-ae48-45b5-acf1-881323c2c2d9": {"doc_hash": "46c0384c6ddb273ab8c019faa9ae00d409b136eed4238b242150834c0240cb56"}, "d53ca97c-808b-407f-b32a-f104583871be": {"doc_hash": "568f21ebfb1924e90c85120ae208017b8a2b9c7dd13f9b66bb2cf4c317b3c2f9", "ref_doc_id": "bd111ff7-ee33-442b-b5ae-4698486cfb7c"}, "bd111ff7-ee33-442b-b5ae-4698486cfb7c": {"doc_hash": "0e4c6c5124d7af643c07e11c9b598b44a02bce4d9272f656460c71609de1ae02"}, "d0170b27-876d-40f6-8ba0-9eca6eb7e0e1": {"doc_hash": "941e09bf7861b1fb624723762801d9598743c85afc14a52014c47a28c6f856c5", "ref_doc_id": "d5eadb0b-0ad7-401f-af1a-19e9608e7dc6"}, "d5eadb0b-0ad7-401f-af1a-19e9608e7dc6": {"doc_hash": "7c4d66618acf0e05fd6295dd5978d748556f7d61c158aa5fc5ba94e5d5c7fb4b"}, "257fdbf0-91f3-4e4b-955b-08f4e325e421": {"doc_hash": "b22ae41129adf18b3138688fa319c7fc8fa11bbc46069a54133bd2d39427e36a", "ref_doc_id": "17865a76-1af1-41e5-bc22-b6c1face7709"}, "17865a76-1af1-41e5-bc22-b6c1face7709": {"doc_hash": "51290d1c48fa69d7e24562c57bafd2fa843cde1cb4d4b3c75502ddce5a79475f"}, "ef67e797-b336-4a1e-87bc-f5c8a992b115": {"doc_hash": "91bfb6f3309e61e0dc0e240002f353d1aec13e49b7853d9cfed670394a4ef8a8", "ref_doc_id": "5d90dada-a0a8-4ed4-a5a2-82ce9e49ecd2"}, "5d90dada-a0a8-4ed4-a5a2-82ce9e49ecd2": {"doc_hash": "6f26ab1f0ee872218e94ca8da454bf45cd4efe43f3b87da7d8854bbec4ee112f"}, "14b7f516-a77e-4422-9c4a-cb3f224397a6": {"doc_hash": "ecf918d490dd0b9391aa8262a0c89960cd4bcb5221597bf9a9ab61eb42f732b9", "ref_doc_id": "433d2c75-b036-4963-ada7-8cdb5b1dd316"}, "433d2c75-b036-4963-ada7-8cdb5b1dd316": {"doc_hash": "d7c3284297403aac1f328ef6772739dee8a786b9af12d9648bd23c9dfe70b557"}, "48e638a4-84b2-4916-8957-7725cba2c9c5": {"doc_hash": "6a0c191953a6310d353c0ee36421c21013cd7b2d2ab5e91025d12dc4383579d3", "ref_doc_id": "f0af1888-0f79-470d-a37c-a36d516f4dc9"}, "f0af1888-0f79-470d-a37c-a36d516f4dc9": {"doc_hash": "ed014e993f9382fd0ea277d53212969dd89c0515908fa7037f85b815dbbda55e"}, "9f7d5b09-883c-4a16-b9ec-7d77d995a07f": {"doc_hash": "b27c98b8bc7a83f4d822228c83e433f814e1f0d1dba6d3e55d7ecee67e6c5ea5", "ref_doc_id": "a989aa71-c288-4976-9e56-076abf2ab5bc"}, "a989aa71-c288-4976-9e56-076abf2ab5bc": {"doc_hash": "99bef9b47c0c4fca39c43cd7f88b0318e1138f6d018fb3777f9486b6a3ea483b"}, "b01ec726-5cc6-4f56-aa39-8b61db71a386": {"doc_hash": "066ba3037319726a6c054ef7040a8b5f6c64f848a4628df382d947ab54654e9e", "ref_doc_id": "77091342-8a0e-4f23-9c16-b6b1fbbb49e8"}, "77091342-8a0e-4f23-9c16-b6b1fbbb49e8": {"doc_hash": "6b16b5790ae712a00173dfe659993be626648b8b61415d3de2554a6c78b8f82b"}, "fee606ec-0b7c-4b2e-8d1c-083e872d5135": {"doc_hash": "1bb07b02a7634e9c3cdc294d8162fe3f8e8d156fe12594c946a0124956e8e671", "ref_doc_id": "9cc55493-15dd-44d7-861a-02186be7e170"}, "9cc55493-15dd-44d7-861a-02186be7e170": {"doc_hash": "437fa8d4783dcc061f67987d9817240d6515401e36b5375ae77dc042c89a83a4"}, "b2ea1f89-e316-4e2f-ba47-29c769737331": {"doc_hash": "ada2b4bb5f5a480e3fd90981b4e87d656efd1d0110d2a2cb0463231f3d3ea651", "ref_doc_id": "972303b9-f1ec-449a-8d42-7b650f9d457b"}, "972303b9-f1ec-449a-8d42-7b650f9d457b": {"doc_hash": "a21fec4e8d1f51c20c22fcbeb373df6fac7f9800588e2a14d69b8c44ae7429d9"}, "0080e1d3-6727-4daa-9f3d-23e80637ea38": {"doc_hash": "e3b27055f62760f12d4f438e0ffbb4d80b5395082af287a88c3f78b2c63da3ea", "ref_doc_id": "7ce7b465-fb9e-4488-ab96-36fc28afb7a8"}, "7ce7b465-fb9e-4488-ab96-36fc28afb7a8": {"doc_hash": "d03cbc0fda18cc88906259b2a6136676f3dec370dc8ab51e05bf22ef5894746d"}, "ce51ebcd-7973-4f54-a9b9-2f36f14e0b57": {"doc_hash": "1206bf76b34e8b4bc89ee77628588423ac4fc6f3a2cea17c4a1b9906708956ab", "ref_doc_id": "dc2a2cbd-7261-4f67-8a85-be3bcdfec953"}, "dc2a2cbd-7261-4f67-8a85-be3bcdfec953": {"doc_hash": "697f021cbf303f4ffb68590d9e922d28a015aad63af6d43b11e4f0da54e4c04d"}, "38318fda-ea12-470e-a3b8-195bff811fc5": {"doc_hash": "26dca47da33df24aeea391f9abf209133f38d141fb1cbbe06cd9f85998d3b246", "ref_doc_id": "96e085e8-1061-41de-bf6f-84218fdaef29"}, "96e085e8-1061-41de-bf6f-84218fdaef29": {"doc_hash": "5e18322add8baf6919ba3c974c419a103015e5085965f3aab734fc346d1d8fa9"}, "fd44d322-205b-4916-bc1c-69d9c746c6f0": {"doc_hash": "14ed24266ac9531bbcf8b1bf7b7992b9b1d454ff27a625dbba5aab84f379a4bb", "ref_doc_id": "0003f322-1862-4b88-902b-c3047c20b95f"}, "0003f322-1862-4b88-902b-c3047c20b95f": {"doc_hash": "6333708f61680c53e4f1f2f07460b6db427e500e5da8d33385c15dbec3266e4e"}, "6b93ba28-0f3e-4e5f-b318-38617dd07da8": {"doc_hash": "bdace48c683940da81ad2ca41c4dcc2da7bdcf434c18e48a82dd9bb274b6862f", "ref_doc_id": "e378900b-5579-483b-bfac-7cbe0c154480"}, "e378900b-5579-483b-bfac-7cbe0c154480": {"doc_hash": "8515a21915c7126b1ba1b1f16f624f1c5eec56751bf07bbcfd2b8953d85dba41"}, "11ca59fd-302a-4a91-9a66-dad17526e1ac": {"doc_hash": "fcbec1288ef4c3746f5459725bffef22d7485f2d33e8840e10c8f8ea2475885a", "ref_doc_id": "37b1bf66-4b24-4612-8d0c-f0961a0ac4fe"}, "37b1bf66-4b24-4612-8d0c-f0961a0ac4fe": {"doc_hash": "a4fdaf00b43d47823587177d5ad6b4bb339f46a2d0d7c80c656f7173afbdc062"}, "d7298e4a-e931-42b5-b0ca-10e58a947139": {"doc_hash": "aefc9e7be759e3517f05e220bdf086ec3521cd32e94af4306428c5c6dae5a4a9", "ref_doc_id": "959e2354-28f8-4f99-9e10-96dce1ceb07b"}, "959e2354-28f8-4f99-9e10-96dce1ceb07b": {"doc_hash": "b1133922333629505c600834bfcd9e6211b2230946a4575645c2947946a8b850"}, "ae4b13ad-8da4-485c-8090-e4d20dbc685d": {"doc_hash": "e84b0dd379eeccbc5c0d9123fa7b2728f2ce7d97a372777c9bbfc11a4f4d87ca", "ref_doc_id": "53dc8fb6-9ec2-408a-8fad-81b8c9303ff0"}, "53dc8fb6-9ec2-408a-8fad-81b8c9303ff0": {"doc_hash": "ff2168e03d1432f34eb9dfd3fed752133d35bd0a795186abca66ca0ded499a64"}, "22029af3-752a-4b90-925e-fac3652be058": {"doc_hash": "34d7d66d2281f02a6a264d0360a44ffb25753c8d3b18c383a1bb191c42ca6b49", "ref_doc_id": "05f11ef0-fa2d-48ca-90e2-e9f12fb84917"}, "05f11ef0-fa2d-48ca-90e2-e9f12fb84917": {"doc_hash": "7b88e8e7fcc5c922d4f2aa576b856ed3dbcf2ca514abf0662987851a15833874"}, "a9db3d6e-f6d2-4371-b3bc-092fa1bddc51": {"doc_hash": "b6121268bd8baa532511dc76e3448c6523e6ba560753c8f7c1b4b6ac24988816", "ref_doc_id": "a08353db-c8a8-4f4e-b29f-c2287160fab5"}, "a08353db-c8a8-4f4e-b29f-c2287160fab5": {"doc_hash": "8139899bf3ca5961891136dd4df8fc6feba23b23a029aad80bdf5bd4663a9028"}, "ad9fa682-2df1-4886-8ae7-d616ab983b81": {"doc_hash": "6b888d86f83eef722cc992e7c9c62d7ffaf6f9be9e91b4bcf5c4e3481a23cfb3", "ref_doc_id": "fa1f8998-39cd-45e2-9d1d-745e33dac4d4"}, "fa1f8998-39cd-45e2-9d1d-745e33dac4d4": {"doc_hash": "5857c88f270c87679a05741f1f88736320ba27ec0d4e2bf69dcc00ff394df8f5"}, "3ee44ab7-7a10-4fe4-bd57-1842e699f120": {"doc_hash": "2c7dcbd8a8f14403d5dc7b0cc36cc723f067c6190a42392ef5e2bd932aea4db9", "ref_doc_id": "0565f8d9-7eba-40cf-bea8-8a11d7cde435"}, "0565f8d9-7eba-40cf-bea8-8a11d7cde435": {"doc_hash": "49af37af4013a1a1abe207b33d4ea183bb59dee33fa89a7b3a9a860cafbc9ccb"}, "50ddf094-a331-459d-9a7c-d8a48cddca08": {"doc_hash": "c3e28675a064066a98cb5179b2ab2669cee105eaa6c3648f17dd4f2260e6bf79", "ref_doc_id": "77672d43-e4b0-4999-88a6-69a551604fdc"}, "77672d43-e4b0-4999-88a6-69a551604fdc": {"doc_hash": "57f4d65ad0e91fca0841e5fb3cc49388a74092dd83c6a6e4fe92851a43feeaf8"}, "32cb20ce-4500-413e-b496-d9ce2802e311": {"doc_hash": "1be0a1790aab4ca2891aaf35fd3f12c3a7cb62a537626a5c3c1e260ab2594177", "ref_doc_id": "285aeb43-e3ca-4417-9adc-c5a6771c61f9"}, "285aeb43-e3ca-4417-9adc-c5a6771c61f9": {"doc_hash": "78cd7c3b62ff70f5d719842bc34ee2a82e6f06f99b94422a533dc8cec9264932"}, "7fde53e7-27a3-491f-ad05-586817f6ad03": {"doc_hash": "c3e52acee3fe9541fb25274578c53a072196580f98c42c62fa9c4bee0914f584", "ref_doc_id": "e66c195c-d82e-4269-9a31-5deb43e94d49"}, "e66c195c-d82e-4269-9a31-5deb43e94d49": {"doc_hash": "40904850d8c5a1634ec43661516e1e2da4f1021bac14ff00273982171a26f012"}, "e4ffe82f-bcfd-44db-b683-ea6195a5163b": {"doc_hash": "348641542629c8b9f1e684c35a628b1b52d196d2ec43c5571618c1856d576fa7", "ref_doc_id": "3e30467f-1d4c-485e-8fd2-3d22eef0bdcf"}, "3e30467f-1d4c-485e-8fd2-3d22eef0bdcf": {"doc_hash": "8791ddce1b0f6879e8ef57b887d646ccedb9718db4f21a4cfb1f0a32464b1826"}, "dc397f6f-2134-4a15-92dc-51d9a98b24fc": {"doc_hash": "f952e774ba3d39bceb2eacedebb8485b33bc67ae5e704c5120361a590248e54b", "ref_doc_id": "52b185b8-5f6c-4bb1-bf94-30f19b347ee6"}, "52b185b8-5f6c-4bb1-bf94-30f19b347ee6": {"doc_hash": "6dcad74d5bbb565d526de14ad5e237acbf1c1191fad0976ba0a0c3c340775778"}, "5a9908fb-ac0d-4dd4-ab76-ed0d0a77b2b8": {"doc_hash": "073ccd0313d64ff56f37d7517aef11b87a93f5f3788324b5d0ea737c82972766", "ref_doc_id": "b7bf983b-b6dd-401c-8d62-154daf97e269"}, "b7bf983b-b6dd-401c-8d62-154daf97e269": {"doc_hash": "ed1b7983a2030b18bd8d6a6d0c3dc407daf16fa70e864806a44a755e0c66f42e"}, "1ce8506a-4a39-4d4d-9090-cf991674e9d9": {"doc_hash": "f88f4a0e77fa9b57f604b6fc877aefac829c41b16943864c11580a4655d085db", "ref_doc_id": "a1587175-d422-4fef-acbb-a7de0af05fa4"}, "a1587175-d422-4fef-acbb-a7de0af05fa4": {"doc_hash": "bbd7fdffc60a0f0dc51e1bf213a2172d1352825375ea32ced9913d792fcbe403"}, "c1339826-7773-4b98-a407-6c7c217349aa": {"doc_hash": "d26b43f83c8d0c1c61a2a8f7aa9672e1634d57a0768224edbf4399940f82e9a5", "ref_doc_id": "0f7ff6c8-e613-40d2-b8bf-3cc509b3c98b"}, "0f7ff6c8-e613-40d2-b8bf-3cc509b3c98b": {"doc_hash": "3b72d0fb3daf344ff5c0afae1ff55db47398ae4f7958b0398bdb307942c86578"}, "eddaa69a-a249-43af-aba0-e287507c512c": {"doc_hash": "a456350b6e0e667150e6bf478927775cab21338e93ce4580d83e76386d931d11", "ref_doc_id": "8ab6606e-62db-45dd-bb72-f407ce65c29e"}, "8ab6606e-62db-45dd-bb72-f407ce65c29e": {"doc_hash": "484d631ffd467e9c9aa3f6d30b4030d0a51889f1e0606eff12cb77bc7160f89a"}, "0385826d-de6b-41d0-9a8b-7a7903c7f459": {"doc_hash": "8f7cdca6eaaf6c3c0f5cc36229281fda02339835e61cc9d1b2839b229948fe79", "ref_doc_id": "5bd66240-4543-42b6-aab5-49a5d04a4e11"}, "5bd66240-4543-42b6-aab5-49a5d04a4e11": {"doc_hash": "c08b386339fa84e4ebc76f4836fecb0e0c002584dc16aa4443b96578b110d389"}, "936b1d2d-91a1-4bf6-809a-85802025ede1": {"doc_hash": "259815aa67c9623b4f747a7f939b10bd5a236f3a604ac3a46f4a5e67fda6784b", "ref_doc_id": "9e53ae31-ba24-4f86-ad48-1a7d745cea65"}, "9e53ae31-ba24-4f86-ad48-1a7d745cea65": {"doc_hash": "6ad893dd7933f322ab0461a71e2046a8709a63ebffbf1a9d23658ebfae6f39b6"}, "591bf9af-ec7e-4a53-bf01-215b27e8f1d4": {"doc_hash": "88e62b1ead36e742b67fdc06ac8e3fb21a8e197befc5ec0e8e040c3c4238b942", "ref_doc_id": "b3008b2a-ac12-49bc-89ba-4c0617781400"}, "b3008b2a-ac12-49bc-89ba-4c0617781400": {"doc_hash": "7c753553b6baf825bdc4fc03054fc21f5d1f018baf96186d3a6589a3fefe7b1c"}, "cb9e0c36-9700-4eca-8038-536b64e1ad3c": {"doc_hash": "17570a5ade0f733b75f1d72aad77d7af170343a8eccd3617c5831258e07a00b3", "ref_doc_id": "9c779b89-3f1b-47be-89c4-34f3406302cd"}, "9c779b89-3f1b-47be-89c4-34f3406302cd": {"doc_hash": "b220251ba34e95223795635959dd8130b3597c4fa175e5460d39675094b5ba1b"}, "c25b58f4-8de6-46df-b9f5-7db7d6fe99d2": {"doc_hash": "9d953ab9a561f78c84d553a6cb415693fe7353f8b0b4b520b776356dbf680680", "ref_doc_id": "7e0f3e04-25d5-4709-92c5-ea6c6f68dac0"}, "7e0f3e04-25d5-4709-92c5-ea6c6f68dac0": {"doc_hash": "dfb636a62cb8592a3b9141ffc7bcebf4cd0552f3e0f101734ed5876fd147eaba"}, "227ab497-c3cf-4541-acd8-f98cc888156d": {"doc_hash": "c4fc4b6bb0e342b992ea5cd895ec7964ce1746c3796bce287c1916cc3e7c145b", "ref_doc_id": "86f287a5-2c1a-4341-baef-e98c75387f62"}, "86f287a5-2c1a-4341-baef-e98c75387f62": {"doc_hash": "58bb067b34d85555013bdd050e9564d96596f1e374b9aa31e84a0e4940ecf411"}, "b1d13147-09e1-4118-91c2-25fe75d05a95": {"doc_hash": "3712c71ee581339f688a09282a4cf995dab1dd8db09d4485da1be91dd4752d67", "ref_doc_id": "9882f8bf-0325-407c-bc54-1306a1b278e8"}, "9882f8bf-0325-407c-bc54-1306a1b278e8": {"doc_hash": "fbafa46e611d0a51514e01323a1d3635356e202bc646cd81ea0c852d1a3037ca"}, "ec41c5c9-27e6-41f0-8eab-94ed1a184da3": {"doc_hash": "ea5ef4e59322eb1322c0eefe5d2a71c2a924743584ce94bc3fbca8b325466c90", "ref_doc_id": "1bbbe7a0-8936-4ef6-90ff-055a365293f9"}, "1bbbe7a0-8936-4ef6-90ff-055a365293f9": {"doc_hash": "773174403f224ba7b60c37e8f7cbb67a416c0d55684d92b8f58f71a84e4adcc5"}, "4c129e56-a557-486f-b35a-230f790b0fe3": {"doc_hash": "de681e8039df77e04c8943c9ff5ba520872fb248226437cdfb612579d0213437", "ref_doc_id": "f3ace595-1395-42df-9b6b-e2798ff90d30"}, "f3ace595-1395-42df-9b6b-e2798ff90d30": {"doc_hash": "932575de5a9831053fbcb015ce79910aa7841e4b2e798281cefb254fdd68b503"}, "3e053218-ffd1-4ef3-ab64-ca76e076cefc": {"doc_hash": "4c64c99ed3dc1c8aaebff3d22ef95a139053bd3bfea73151bdcff46be2416575", "ref_doc_id": "c2033555-c02b-4f7c-8cdb-eadfefeccda7"}, "c2033555-c02b-4f7c-8cdb-eadfefeccda7": {"doc_hash": "43d0bfe3d9b81349eb199822fb93ede29b7eb65d13bff47fe0a8beeb3219dcea"}, "8f9ca842-b03e-4bb2-905b-9722a421525c": {"doc_hash": "bb62a5abd691b0d47cb7ee2aa0011e7552ac784fe893e14cf47b59f0759faa5b", "ref_doc_id": "a71e606e-e7e3-4fa0-93f9-eb311f92baf3"}, "a71e606e-e7e3-4fa0-93f9-eb311f92baf3": {"doc_hash": "b68ade13125f0566955fe72c95aceacffa85b741c94bf5d5e6d463969991aa38"}, "23c50a80-545e-4c8f-a09a-74c15a6b3c6b": {"doc_hash": "96e054ecab6400d16be1bf35fbd6bcad66e3adfc40c294080af01b3dee37b81b", "ref_doc_id": "f463fa3a-d974-4fd8-9f7f-e8ddd2821326"}, "f463fa3a-d974-4fd8-9f7f-e8ddd2821326": {"doc_hash": "963c02b91a3e4699d96f09cd2d277b61407c457ce1fd0967df794a710800072b"}, "85ca2f50-4681-4609-b8d1-1d6812bc2242": {"doc_hash": "ae1de3035587ddec5f534f933b28b94fc927cdc555b449ff9b37e6ca3fc4fd0c", "ref_doc_id": "1c559c90-9452-4db8-8681-c7a54a9c5286"}, "1c559c90-9452-4db8-8681-c7a54a9c5286": {"doc_hash": "8df0828326c77529d7d48dc4d800d2af623c3c2dc9d7c12117793f2cc7d30a81"}, "db79a153-140f-429c-a1ed-41c7e09473b0": {"doc_hash": "0f26ce9c7fe6c2244c11ea33efc308e817229c557432cc7e3004ceea6153eea9", "ref_doc_id": "292bec32-a67c-4008-a728-f4568e2d8d44"}, "292bec32-a67c-4008-a728-f4568e2d8d44": {"doc_hash": "3df0b8589384b6b12b8782d0b90925dbd9293f9fce291bdbe44796f744d2ad67"}, "7e892f75-5666-4f65-a282-9e59746d45ec": {"doc_hash": "c79669e0fa8b3880e2ec66daaaa5e10b5169e673a57f59ee2c2ceaef1a5ee196", "ref_doc_id": "0fd7590d-bb21-4ccd-b111-9b097e1052f6"}, "0fd7590d-bb21-4ccd-b111-9b097e1052f6": {"doc_hash": "f9c89f2c8c196f5efb1e9b04968d02ef5290916efa81b68b2b5527e42b5ab462"}, "c16839bc-c1f0-45a0-8563-993209dd64a5": {"doc_hash": "7035745740b95c96e545ba12a539871b2ebb8da7fabb82185f9eefbc00046750", "ref_doc_id": "0d022d69-765c-4c7a-864b-760064a5ade5"}, "0d022d69-765c-4c7a-864b-760064a5ade5": {"doc_hash": "bc55d83ab8ce0481d21a453d217570cb59f7a7ef10d5c5795d2f8439d523f603"}, "ca069203-9a54-4aa8-bf18-75e84b31731f": {"doc_hash": "9dc9e2cb0c863b8deb97ae1e9dbbb965fc8cfde3cc1ed1ceaa018e1054ae837b", "ref_doc_id": "70f27a3c-a3b6-4855-9f21-ee29b16fcece"}, "70f27a3c-a3b6-4855-9f21-ee29b16fcece": {"doc_hash": "f83a9a6a596accb5e159394585bde639cc904f5adcbb49f33f14c253707ac44b"}, "a9fcf9bf-5845-4bd7-8fa4-f8ac201af5d2": {"doc_hash": "56f1570726e20e92a7466740b85aa494b5fd15ce0495d0823687702157c73e12", "ref_doc_id": "f6994e75-4882-4e96-a83b-775aaffd2c4a"}, "f6994e75-4882-4e96-a83b-775aaffd2c4a": {"doc_hash": "103fc844153a0346be4275221de5294dccd6cecb4475e86c98a23ad5b59ca2a7"}, "7283b19b-71af-4f90-ab86-04a6a55641ad": {"doc_hash": "0c2231c0d18c8dca0c1b61ee4557b1c26bf369d93afd31b3591e5f3b8a6f386a", "ref_doc_id": "4edc1e1c-0fb2-49e5-9a06-53b018572931"}, "4edc1e1c-0fb2-49e5-9a06-53b018572931": {"doc_hash": "1c4e6d0030bae7670f170047aec5344f92b14830a8a5f215cbab01f02a3eefc5"}, "cd13a2e4-d353-4b12-8e54-24c57c39a859": {"doc_hash": "e661b092b7397138f3b9ac7a77e51791d238913e6a4a9b6ee484e02c6d5b8a55", "ref_doc_id": "9db427bc-1d47-453e-a478-48e7685ef756"}, "9db427bc-1d47-453e-a478-48e7685ef756": {"doc_hash": "6d1273455ccbef88a6266475b6d5066b07b3eb3d0ac70320661028beb4fa0964"}, "dc55a138-91b5-4399-8f46-b26f7fd57b30": {"doc_hash": "2bafbe39f8438d4fcbbabf0b809d85cb373fccff16b3671f3fa07fbdb34156c7", "ref_doc_id": "79ee54de-9447-49cc-ad78-0bc197a0447b"}, "c8c8e69b-8376-481e-9704-bb217aa74301": {"doc_hash": "c686507cc2cca6676d3cb23e7fe21a725db59c5604cbbcef0d85da29b40629a6", "ref_doc_id": "79ee54de-9447-49cc-ad78-0bc197a0447b"}, "79ee54de-9447-49cc-ad78-0bc197a0447b": {"doc_hash": "6e672954390577b454118d671d77585a85642d7d0e7a1ba7ef0f3e4dd758864e"}, "8dda78d4-ad91-4963-ac8f-dcf9e839b2d3": {"doc_hash": "d411fb68ff2288d36950c5481a545f11c07b96e49915e004fea2028fb22c5a5e", "ref_doc_id": "85067c64-69ac-4bd4-bac6-bf2eb961e5c4"}, "85067c64-69ac-4bd4-bac6-bf2eb961e5c4": {"doc_hash": "b5fbe9cff189031aa7a61b5883dcb91a35fd179cbbeb56bd5cdfff47ad79dcf9"}, "8c5cf998-4c13-4302-97ce-d24b8633b858": {"doc_hash": "c30baec1fd336a536f6eddfd2d2ae44e51522558f1e18c75572e93f2e16d9263", "ref_doc_id": "2d1bc86c-6e1c-444b-ab3d-6baf335ed473"}, "2d1bc86c-6e1c-444b-ab3d-6baf335ed473": {"doc_hash": "8f093cdb5c891ff7e56572b3751b40d100fcd4f677278b0b486b48bb3fdc4da2"}, "ca0f3026-cdba-4f66-83f1-b0be87846b55": {"doc_hash": "be02ff0be74f5fedd59e28311bf1ca8dc3a4b6fe3f3771e6acbb02918efb003c", "ref_doc_id": "b32d3b91-f722-482a-aa43-30f30c57ddd6"}, "b32d3b91-f722-482a-aa43-30f30c57ddd6": {"doc_hash": "0747b76c809224a95f1e50cd6745e41e89dcb1f653251cc1892e2b0d1941553b"}, "dbba36b9-63e0-4bf3-b014-eced9ad47700": {"doc_hash": "3d23c0091592c8e4ba07eaa437c995aa50faed017065b0c4dd2e9e69f82356f3", "ref_doc_id": "c28575e4-9878-4488-b406-964327dd23f5"}, "c28575e4-9878-4488-b406-964327dd23f5": {"doc_hash": "83510d7fc4669041068da7917eca48e48f3e76c9c55838d38b153a7e707494d5"}, "dc462d90-6867-4bcf-ba4e-104a2d69eac2": {"doc_hash": "cdac9bfeac1a58a340d99192dbadea9e59139f20ec5c065939d4074a2f2fec7e", "ref_doc_id": "6979f85e-e551-404a-b491-ba4ffdfb5d4a"}, "6979f85e-e551-404a-b491-ba4ffdfb5d4a": {"doc_hash": "c1e93070056ae007c9576869da4fc3061b0ec2ac7369bd03b4765ef940a844c7"}, "01444860-860a-42da-8879-c976bcff6301": {"doc_hash": "5be0cee2279cdf3ce744307c63c3afc279026afd457f28c6be7db98182276814", "ref_doc_id": "e8b07e38-2a7b-4fad-bacd-b9afd304e9e1"}, "e8b07e38-2a7b-4fad-bacd-b9afd304e9e1": {"doc_hash": "cec95f7763c417cd394fcd731b12ded8444afede5b728ff0052b96e23e723970"}, "0744e485-3832-476b-b10b-14ead35d15d7": {"doc_hash": "b9b01c68179a97c193927b0e1865be2f75080a9027a7ea1231be2a51031395e5", "ref_doc_id": "8499928b-2f98-4446-8f35-a37641daa79f"}, "8499928b-2f98-4446-8f35-a37641daa79f": {"doc_hash": "1a0958f4b16b9d54b29fc0e261cc4a6d3ce72975e0b33c9dad58d66f6596f5b7"}, "83cd16e1-3b29-413a-bae6-583b104989f4": {"doc_hash": "57f8eea7795e84dac47644695a63fc356c70141cdea3f2322b15bf8c4c11f39a", "ref_doc_id": "5e37ac4e-6cc5-4ed5-87e1-d3a4131137eb"}, "5e37ac4e-6cc5-4ed5-87e1-d3a4131137eb": {"doc_hash": "8cd784aa4d48e655be915ccd3fba59998b2e17301bd029042a9c966046bc2b50"}, "d3d4d6b5-42f9-49b5-9015-6c6bd301be2d": {"doc_hash": "f21054fe3922db3ea92d4c2371c89af37f0afaea76d5b0f29e2bd8ee12dc7d2f", "ref_doc_id": "042c61c8-34e4-4260-8e3d-6ba01244bd2f"}, "042c61c8-34e4-4260-8e3d-6ba01244bd2f": {"doc_hash": "c6c9bc3ee5d9f30cf1695a0fd22eab041c9618e6f331837b21fc5ef28bb20d04"}, "72e8cc9a-9e26-41e7-a08e-c7bcdf71b1c9": {"doc_hash": "f0a3fb574135b4aa1d1ac305d7d59d0cf3defdd8f36626256d3a7cafa65c2378", "ref_doc_id": "085ad039-a817-4643-9154-cb8305ce5d20"}, "085ad039-a817-4643-9154-cb8305ce5d20": {"doc_hash": "ca5418686c1e3d287b5a76af89ed8e68449fde8f9a34cf6c79c09ba8c2b09979"}, "9caa47b6-5999-499b-8e5b-762a2a84968a": {"doc_hash": "bac00d0e23da479fdedcc3802ab0ab9da0c82f597909c98383f68b04fd8d0bb1", "ref_doc_id": "12838b53-4e33-4df1-8107-d08b9569c7f2"}, "12838b53-4e33-4df1-8107-d08b9569c7f2": {"doc_hash": "6a768b6a239b2a2002c157ba75ecc5064deb53590ce980171d0bdf5f9ff2f68b"}, "902e66bb-6ea4-429c-b2ae-de56c3fe4dd3": {"doc_hash": "7f07ccebc292b0dd2914b41ee94022e6c5a66ed9f07fda283f2cca915cf0dfc1", "ref_doc_id": "9eee640d-dc80-439b-ae05-f9b8a79a6096"}, "9eee640d-dc80-439b-ae05-f9b8a79a6096": {"doc_hash": "64722774738db271b53fc3429d9da7c2bdeb25e754a9605050ca5effef5e022c"}, "51ba8e47-06ca-418e-ba55-e104effe5347": {"doc_hash": "5c9ddbd8d34ad060bd5ab17001f1f995f7d5f615c3e6c49961dcafe916725b00", "ref_doc_id": "90a3f105-cbe2-495b-bd13-c0e2978438e8"}, "90a3f105-cbe2-495b-bd13-c0e2978438e8": {"doc_hash": "da3a9c4f1501aad098b811d5f867bae796d759e508624282d2510b714fd31106"}, "bee06b5b-5a02-444a-bb65-f6f6a79df9e0": {"doc_hash": "67e40948a99c0e758c894a2005dd4a09e7db502a45ce27ec1f4d799528ecd837", "ref_doc_id": "a5768b26-7696-41a0-b868-86e3986dffcb"}, "a5768b26-7696-41a0-b868-86e3986dffcb": {"doc_hash": "3dc43d13c7342ff5e7d0ede427e23bdf18e9f2f8f345043c3e0ff38d18a0aa54"}, "4764cda8-f885-4660-b945-0ff6400c7307": {"doc_hash": "58d08d84a2b5c116ad78deca128ea4d8c9a4c16a7055a8bfcf2d4e4f09fa90f8", "ref_doc_id": "0797f499-e696-4f72-8201-e6c75148a7c4"}, "0797f499-e696-4f72-8201-e6c75148a7c4": {"doc_hash": "64c0f27a4094faa1ec28d6d05e113fec6171be77417065a27cb5765643c7f395"}, "bbbbd032-7319-4ed8-9143-3a0a59dcc43e": {"doc_hash": "0f5d298ec5a427e305cb78698cd2bf8bbfb04b7bf64f49e2e2aa61bf7a2873f6", "ref_doc_id": "0df4e757-64a1-452f-b671-9280aae4dac0"}, "0df4e757-64a1-452f-b671-9280aae4dac0": {"doc_hash": "ad6ee40311646c1db056c9daba05f63c36d295f60408a957ce46eda5f97ac3a2"}, "26fd60c7-e2e3-426c-ba56-9d76645c5139": {"doc_hash": "d1994ac64cb6f423065bdde0ea661192f2e41714cdb972061c2cef1acd8c086a", "ref_doc_id": "65eea34d-2136-498d-b7b3-516d0a817ef7"}, "65eea34d-2136-498d-b7b3-516d0a817ef7": {"doc_hash": "9ad9aa86fb9e0e8c4b07e7e23806ff35b36024f51942b09e89299c8a7c63bfcc"}, "5fccc8a9-98d7-4587-9f8c-07882c2dc165": {"doc_hash": "28017c9bff0ee33132f8c0d46f5819bb6970e7b386c6a55111cfafb3769daeea", "ref_doc_id": "d55767f4-f8f7-47d7-9b3a-60c20e383c10"}, "d55767f4-f8f7-47d7-9b3a-60c20e383c10": {"doc_hash": "a439bd5607e3850c422f5c02e8f92a4ff0e992ffa5183a001db5616f9b10798c"}, "b915c724-fa4f-47ca-9c0e-36488528123c": {"doc_hash": "2fc5ed04da5e3b46e9142a458b3bc25489689d06fe9d6d1058c35badb8c19aa4", "ref_doc_id": "7ac84f70-c0f7-4f70-86a3-1fdbac58f97a"}, "7ac84f70-c0f7-4f70-86a3-1fdbac58f97a": {"doc_hash": "802a145ecec00c7d07d321229d0935f0052ee1c0213dee2dc123e26c0710045d"}, "064d9689-bca8-4b74-b78c-5b94cb9955a9": {"doc_hash": "4a95cd13f9e9783606af3bda339e005940bc5f3fed4e0f8026601885386c7f24", "ref_doc_id": "5544d1a1-d01f-4ba8-bac7-b9b9e4815bea"}, "5544d1a1-d01f-4ba8-bac7-b9b9e4815bea": {"doc_hash": "4100937331eb2c9122da8b033e2db2eaf2b7fa152cbff789b2d1d2a02c95119b"}, "feb33e0a-e7ad-46de-809f-e0a1ed768482": {"doc_hash": "0e862db225e3592f9aa1bfa0cbfc7980a588137542949b182a685fb16fa6416d", "ref_doc_id": "4e17fe43-0b9c-4226-834e-9eaaa6b2a263"}, "4e17fe43-0b9c-4226-834e-9eaaa6b2a263": {"doc_hash": "5e81ad0c3cbf834523d751e957f7d86b8fa5ad433a3c735dff620e2d360649e8"}, "3cbb7f25-a96d-4d47-a931-9c3ad6475a24": {"doc_hash": "060871737954125ef04f49f7cef3e4744883d582ae3dc1ae246ed540ae0f23c0", "ref_doc_id": "8aa6e372-ae5a-42f1-b2bf-187dd7328366"}, "8aa6e372-ae5a-42f1-b2bf-187dd7328366": {"doc_hash": "75dcc93cda9d98aac3b0e1f2baf46440aa1d211b0ea96d35008fffac7ff7728f"}, "1348de6a-9381-4213-8705-6a52225ce36f": {"doc_hash": "91ee7b3bc02afac336f071b7fa27cfbea3b7135fbbf649942802a50f4c13a234", "ref_doc_id": "ea80808b-5465-432d-a0c8-6b23a1878bc7"}, "ea80808b-5465-432d-a0c8-6b23a1878bc7": {"doc_hash": "b26eb11960a2073aebcd43375c3e43255e381674b26ddb7bd03d111a54f2a522"}, "4b7fd765-1ee4-4698-9b87-23f30f80eb5e": {"doc_hash": "4cfb98cfb8a8d1c97f9fad61649a90edf3c94c180c0fbe24127b66ebd330f504", "ref_doc_id": "6b2a0b57-9e74-4fb1-98b9-b65215d0ba22"}, "6b2a0b57-9e74-4fb1-98b9-b65215d0ba22": {"doc_hash": "82b406e9396035a5e84e246387d0ae359e704c964dc426bd5474f3e9f3d72376"}, "f84ac2a0-e6c8-4c75-8c68-4597861acc46": {"doc_hash": "eedf57ab7fa64972be773174ff2f5e34169e463e1bd249bea3f2eacd11e0c60b", "ref_doc_id": "b5088f63-d52a-4d17-9b95-8de06dd2000b"}, "b5088f63-d52a-4d17-9b95-8de06dd2000b": {"doc_hash": "8311d7f8511ffa4ef6dd69df845a8300ba4ab6b4fa8b1a3b409e89b356046ff8"}, "116d2211-fd50-473b-83cd-519df4c30c60": {"doc_hash": "34841953d70f42e4033d36979977b313cd43fea36941ae27d4ab400e48d04bb8", "ref_doc_id": "4ab71bd7-b6d0-4d60-82d2-3c39075663ef"}, "4ab71bd7-b6d0-4d60-82d2-3c39075663ef": {"doc_hash": "99fa66c7ecd5f16c774cdca267b49bc165e022ddb3b121006438d45fb75c2e42"}, "c9c813fb-fd73-4e46-8233-9b3998de8102": {"doc_hash": "2b29abab71b16bdb6960095f18fc04d23b1d085f81e2317e5ffa65005793e68c", "ref_doc_id": "4632f6a8-82a2-4ea5-bac1-3b15b943b35a"}, "4632f6a8-82a2-4ea5-bac1-3b15b943b35a": {"doc_hash": "e3ba5cdf5f2f9647e2cd432c3e650090dd7d432b9132aca94983d1a77e68dd64"}, "1b16dc86-13b1-4c42-a857-ce02de8a5940": {"doc_hash": "c4d2684971b384bef5209699cbe5d25150d8f467412fa9245a5095f292423966", "ref_doc_id": "e46acca1-5422-4598-ab84-d34ba83c7c20"}, "e46acca1-5422-4598-ab84-d34ba83c7c20": {"doc_hash": "a9ac0b75a0d942b7e24506163ad055524e2cd354dd5468eb941c5460a1b7c11b"}, "fa57ea10-4774-448e-8d05-bea7b6d6a0ba": {"doc_hash": "a6be054cd9ff38222c64f2e309c975fbce6365d3d856d2cdbc5f9f4c53b5da9f", "ref_doc_id": "b322784a-5fe9-4029-b54d-1eabc143fff0"}, "b322784a-5fe9-4029-b54d-1eabc143fff0": {"doc_hash": "434b3176b1dd17431d1b38486ea43ac8c04e61710d93d5cb0aff163b653a8d5a"}, "a0e19e5d-7135-4db3-b4da-d146b540b97b": {"doc_hash": "0217fd09fe65f5674cdf864ba1b614369618c0b0b2340e2af3c12fedb63699e0", "ref_doc_id": "0abb6ac1-6c17-42f3-b041-9a0918b54f96"}, "0abb6ac1-6c17-42f3-b041-9a0918b54f96": {"doc_hash": "bfbf485e70505108d0c876e206c0950ccec8c1364e60ac18be1419e086b40193"}, "e88e6a95-af59-4d41-a235-7e6ded194165": {"doc_hash": "0c8b3bc971807e82fdd313ef978405d8aab28c2b37eb454d887d5a0e22229198", "ref_doc_id": "94a717c6-62e7-4ec8-b702-2554e6dd727b"}, "94a717c6-62e7-4ec8-b702-2554e6dd727b": {"doc_hash": "b5388199e75e150223b0eb32c0f7ad29b30fd5c789e3137a3ec3f08fe9295257"}, "59786032-696b-4482-8391-272678e3edd8": {"doc_hash": "bcd977ebeed5920c5f7aa95b42d895920cb13a263077407bfc53061e13ac31ec", "ref_doc_id": "e525d31a-de2f-42e3-98c0-400cd916858b"}, "e525d31a-de2f-42e3-98c0-400cd916858b": {"doc_hash": "f05b5ee7c855f519dcbc841c4ec14ab86d3763223bbe3b69f5ebe8fef12ce2ad"}, "1c88a6fd-a0b0-404b-9049-54a2b8452198": {"doc_hash": "da83a362319ed6bfc1651aaa6cd3a7fc49c832cfae977dab71cceaacf38ecf47", "ref_doc_id": "54a47b57-4645-4c7b-a016-2d7797caf81a"}, "54a47b57-4645-4c7b-a016-2d7797caf81a": {"doc_hash": "8c1f6f0cfe72c8284b69c62220b76d1b21c29e54a3a92f9b5d08b8188fae99a0"}, "a804996e-693b-4160-be9b-1a59ef285781": {"doc_hash": "b62278c2cd55e3cfbe1079f50c1053ea8018e417c75d085df3a9b31d91555f73", "ref_doc_id": "77b55822-058d-4f77-bbb7-21a5acdad6d4"}, "77b55822-058d-4f77-bbb7-21a5acdad6d4": {"doc_hash": "d868fc194ce712ee6b0284d0a206ea736bd23bd4fbf76c761e1415751749815c"}, "b85ef640-cc34-4561-b75a-9a0108f16462": {"doc_hash": "8a30b6d69dc0ecb628a01c1c20204c245bba188d87557cff16db56b6270e701b", "ref_doc_id": "8940f755-031a-4ec6-8680-ff6d3a6fe5f4"}, "8940f755-031a-4ec6-8680-ff6d3a6fe5f4": {"doc_hash": "3a8514919aa0a592158c2d30616b3d402195e29ed625d5c9f82762fb95a661a4"}, "962fac05-c1bd-4059-a964-0eacc2442fc0": {"doc_hash": "0e9db29daeb0cd5e6705e7edc0d2f026db0c3cacdbcc94b5ebb34e5798581288", "ref_doc_id": "cb2aff72-bb40-4367-9724-a929433648cc"}, "cb2aff72-bb40-4367-9724-a929433648cc": {"doc_hash": "1040eb382af8fd68a129b6d7b47e9c057b26a8b1748ebf24dd3e606cf698cf27"}, "9b2ae2ac-7b81-4572-9892-e1650d2f4109": {"doc_hash": "07252610f50dcc8f0492ea677f4bbf8071a78dbfb8106794c332d0b303536a95", "ref_doc_id": "875127da-e07b-461e-a8a1-b1150f0dedee"}, "875127da-e07b-461e-a8a1-b1150f0dedee": {"doc_hash": "5b47a585ab08fb88fdabb187a4f6461031abc7d520f1157d10e4e6eb52119b3e"}, "2cf3cb68-f6dc-4d1b-9109-4e468a1efbc4": {"doc_hash": "1e65b7981b23df148d735a4b55e84494810f6ba433326c5bf2471ac5d317d17f", "ref_doc_id": "fb39a5af-8e25-4989-84b5-18a980862b55"}, "fb39a5af-8e25-4989-84b5-18a980862b55": {"doc_hash": "2a688530da7ba6c4617c3def82bcef4e382997f5aba9f500594b5ecdf2fe8e33"}, "f3d040e2-0232-45b1-ab5a-3fbb79d342ab": {"doc_hash": "2bae0e531e5f17efd46ca0af02082dec8148cb835bae9bf1f87495f07bed5867", "ref_doc_id": "fbcc9fad-7996-48c2-819d-446635fb3a59"}, "fbcc9fad-7996-48c2-819d-446635fb3a59": {"doc_hash": "91cf43ff0a215b03fe935ee8d45ddc58f44a2f612323dc7918e2360de2af217a"}, "3345996c-6312-48d3-b6f0-38f55c57bc45": {"doc_hash": "e2ca06a9b31ef7420b2fcf1cf94bce54f4d8ee6ea73b5d7970ea070aa2ff1616", "ref_doc_id": "3c134616-817e-4580-a266-0b4e38cff838"}, "3c134616-817e-4580-a266-0b4e38cff838": {"doc_hash": "5cfd0d1a43424ba2c03e1201cd21eb7858e538a6572c9c77a8251cbad821027b"}, "f9ec57fd-7992-4345-9d2b-7974f8549950": {"doc_hash": "b5c9ef82b511bc382505d185824d9ca3b0b0f56602d3df31264550e81880ac4c", "ref_doc_id": "646b71ee-93df-4104-bfdb-f33cf60b2f30"}, "646b71ee-93df-4104-bfdb-f33cf60b2f30": {"doc_hash": "7b46f669af6d8845843ed77ea87b2c46cc55e6ef1570b65b8d84b2f8f4447b45"}, "0a876bb4-0f31-403c-b58e-d1160d276818": {"doc_hash": "525b08d4ec153d70069d587e91d33d5ce0c7030e7d77c14a9123ca9465271c74", "ref_doc_id": "69fbb569-291c-492b-a13f-e76bc1d513d5"}, "69fbb569-291c-492b-a13f-e76bc1d513d5": {"doc_hash": "c367a1b958cae64cc10f96d52e36c1055d187842ea2ef2bab2b4655b47949d81"}, "7dc3ff70-34f8-4923-8af7-3b9d157ce14d": {"doc_hash": "c99dee49c1d17616c75b3cda4e8dbda4118afed27b33d541e59e132fb4ec0db7", "ref_doc_id": "2bd609f2-3a13-48fd-8b4e-761f4cdc77f4"}, "2bd609f2-3a13-48fd-8b4e-761f4cdc77f4": {"doc_hash": "d4b84c29b9234aecc3c1d2c6b4e95b2e326a720be6bcd1b002e67536532f84f3"}, "193fddf7-e36f-4693-80da-15f748115cda": {"doc_hash": "82df02815b80808f3fef943d6cc87f7145c017454aebf896df56ab75f7202569", "ref_doc_id": "57c49573-7dbc-490d-9a8f-8f2e520d1390"}, "57c49573-7dbc-490d-9a8f-8f2e520d1390": {"doc_hash": "b286edb63251748ad1787d2612a7beb3580f2542d58e60fd436ed01692d4e5c9"}, "c158ad55-4c8c-43b8-9eb3-e74cbc9ef65d": {"doc_hash": "04085044075b39ca807a2740528ab926804e77664dd89b2a8a590559a7a5dcd8", "ref_doc_id": "58ad2fdb-6e81-4218-9643-83f058d3a0aa"}, "58ad2fdb-6e81-4218-9643-83f058d3a0aa": {"doc_hash": "86c9dff3d0990c11977faac041398bcc298865a87565fe3c6f2fab7270e1cf93"}, "7719425c-ac43-4099-bc01-4d0b4b66fea1": {"doc_hash": "0b5b7d81ca1cccaa9169ceff034d2d19f43623901ff2aa41859ba817e3ee3f6d", "ref_doc_id": "620c4bb7-bbd7-4f69-8f83-51a7b210a803"}, "620c4bb7-bbd7-4f69-8f83-51a7b210a803": {"doc_hash": "b3f5ead26424da479f07b851d8f7884a6579283a452ee11a729e316500e78630"}, "450d2224-4322-4949-8a64-4dd14ccd1386": {"doc_hash": "4cb1c378e9060ae7fb98ea8cd63da1f5af9dc47c0762c1b70a43afe60f7db3be", "ref_doc_id": "a05f1d8a-e2c5-4844-a86d-01fd34816939"}, "a05f1d8a-e2c5-4844-a86d-01fd34816939": {"doc_hash": "da500ecdb822af00abaac8f6b67339c0e7a4926934f6e07ba0007861697498ec"}, "0eb6fb63-0063-4290-bf64-67cfa8e12f70": {"doc_hash": "4508bb354a1ed811b9a19c7d5b693d20bb166b550e8e2367b176cf16ef8add24", "ref_doc_id": "aea43ed6-806c-4e18-a86b-6c106a7ec0a0"}, "aea43ed6-806c-4e18-a86b-6c106a7ec0a0": {"doc_hash": "d124debb6191a74feee7a5c411b7f9a15e32a4dda66b06c3beb360af09daa160"}, "9fc47ce0-46ac-40c1-8216-4c1f1e9bfe0d": {"doc_hash": "08e322161f70c054e82b6f30b00af9007b108342e376b1030985ce5f5c1f8b8f", "ref_doc_id": "a13153ae-6dd2-468b-ad0a-1332002ecff2"}, "a13153ae-6dd2-468b-ad0a-1332002ecff2": {"doc_hash": "020a6b2b711dca006482b7c7861d4fe6c53cafb4473afa783203ab8ea4d1ab13"}, "cab1ed8f-6910-433b-96f3-0e50962f12fa": {"doc_hash": "f7b403d3a52862c24cd306ca982c35ad9125c2b3b9946b470c5b5304df6c1c20", "ref_doc_id": "c0c492a3-bd70-46f4-a0cc-99538b346d0a"}, "c0c492a3-bd70-46f4-a0cc-99538b346d0a": {"doc_hash": "dbe3c44f8c35570651b6599905d4fb8b57b9948b0b811d9ace6e49e6d672fcce"}, "19875395-4eeb-4841-8025-823c836aa164": {"doc_hash": "e2b136c7b4b12f92d23657335f0c6957049044f06086d072b10d75bedf045130", "ref_doc_id": "d5b20b14-bc34-4c84-8388-0bdd499e44ad"}, "d5b20b14-bc34-4c84-8388-0bdd499e44ad": {"doc_hash": "60d4d445c6003a411a33e68107a6903e4765121d6c23416dd94a2d012c8293ce"}, "7729555d-1d0c-4e40-b998-87af8b1a70f0": {"doc_hash": "c7d9c26f7e717546c43c8081ee69fac0ebc4d0243c078fd3cf59b627876f0293", "ref_doc_id": "8edcaae6-cc68-4627-baed-0d0fa16409f2"}, "8edcaae6-cc68-4627-baed-0d0fa16409f2": {"doc_hash": "db55241a3c27a252a45613d4e71d570d7b6d3cc783ad7b23a26acd7380950b8f"}, "856bbe0f-01a8-4a8f-8ce2-ed9ccf0d0245": {"doc_hash": "963f2b7c4b77801aa4b07dc85a63ed1031e24da944132b2443b9bf368accf328", "ref_doc_id": "b07b7cb4-75a6-462b-a825-c21b3fa769ff"}, "b07b7cb4-75a6-462b-a825-c21b3fa769ff": {"doc_hash": "67cccb22c1e341441e4da6b9136fe161c67712b76433aaa60b246a54dd0c7fbe"}, "a6339315-ab35-4ba7-94bb-047adbcaabd0": {"doc_hash": "361af72b290257c99c7fa0e4bee60019c1d081b409fc88708fa3393bb12011be", "ref_doc_id": "573c541f-0e6b-487b-9b96-fe98361ebfe0"}, "573c541f-0e6b-487b-9b96-fe98361ebfe0": {"doc_hash": "024625182c3d58aeba705a62910070e125b5bfb11593628e9d420ffb52c1bf21"}, "3ce71bba-25f0-4c53-b3fa-942be2597af9": {"doc_hash": "6a4dc993a6b03e0fafee36046f3db0d2acf9bdd45d13568c52c2d65a998df7ed", "ref_doc_id": "aba2442a-a388-4514-933e-7a1badb4cdd2"}, "aba2442a-a388-4514-933e-7a1badb4cdd2": {"doc_hash": "b0a6a178dd5b5d92fa9129df1d3563c372d0452e95f611b74e7b08606ba823bf"}, "439f5fde-3b93-487c-be2d-1ac7f600d84c": {"doc_hash": "1d2c62e737c681379052a09a0d913ef1fe330da3f1edabd53b7da67e49776a2d", "ref_doc_id": "130fbc49-517f-495a-be31-c1945c802564"}, "130fbc49-517f-495a-be31-c1945c802564": {"doc_hash": "77eb5080390d37f8c78e8f9b30c241a193b3871fde2a9b6754af8a2f9be5501b"}, "97c19ee8-2295-4266-bc6f-51b874b34d69": {"doc_hash": "e86c102318526438aa2564fb47b7bf775fe6c4320141c78e20aa92f7674491d5", "ref_doc_id": "c97300a2-0565-46d5-9a7d-af787c746f22"}, "c97300a2-0565-46d5-9a7d-af787c746f22": {"doc_hash": "14e11cecf9789e68a642f9ed790223dc6202f0db10aa094ad6e05fe56d662df4"}, "1eeafca9-737c-4b16-a6ab-88ffa756bcf3": {"doc_hash": "2e5c0d0545032ab2dd16fa86b8450c8716f9adc9003781176f3aed8774b74459", "ref_doc_id": "0fca1f0f-ac3e-4465-a69d-d1d2ed929b6d"}, "0fca1f0f-ac3e-4465-a69d-d1d2ed929b6d": {"doc_hash": "697b1b890496d59a69c52f4a808c5774c2a33e6b8b5ecb3bb90bc85a4e6cc58f"}, "0d91d4a5-e541-499f-8aef-4b36675e11b7": {"doc_hash": "9760e177621b63923b40d41a9bbac67282ca5d977b81dc1fa44c23fef9a29df8", "ref_doc_id": "b39fe785-1aeb-4715-adae-ca6084531563"}, "b39fe785-1aeb-4715-adae-ca6084531563": {"doc_hash": "b82793a3fe1c4ca420c69dfa18e7cad10ec7a0020921d45e82a305a97f45da48"}, "0fb888db-a05b-4930-b272-cb10c3c8973c": {"doc_hash": "350e5c3ce1131b8b55ccddf8721ec317b07cc362ccdf315cf86a09c3a3634aec", "ref_doc_id": "990c8f06-dbd2-4d4b-9a14-df02c328e945"}, "990c8f06-dbd2-4d4b-9a14-df02c328e945": {"doc_hash": "2b0bdad8d206165168c7646223520e2b1ae50f16069327ff052cda58691b7976"}, "5ba29234-170f-4a04-a6d9-967bd023aa01": {"doc_hash": "d4e75e820185b6869c55b5994d16653665465e4847d67cf5409787af1a64c838", "ref_doc_id": "fb086dad-c5db-4e85-bdc8-3413c7801935"}, "fb086dad-c5db-4e85-bdc8-3413c7801935": {"doc_hash": "a5aea25000e3eb556f8433c9a52dcad985bac4062e07a5971ca60952ecc4d537"}, "27a51c7f-94c5-4f86-8e21-4b54aadc8a3d": {"doc_hash": "81f04f9d2abb375bbda6f94bd24c671c66605d7b2e0aa478e3e6c908e42dba98", "ref_doc_id": "c8cfb321-c13b-444a-88b2-4d522aab499e"}, "c8cfb321-c13b-444a-88b2-4d522aab499e": {"doc_hash": "3e23934de083decc93b7e5713acb6a49276fb34099215caad2168417e6ed706d"}, "3740446e-61cc-4172-accc-e8f2add77742": {"doc_hash": "342a177eb4087e2f074a7cd1d9107604c8e33361ec454c1df7d4e0987666a023", "ref_doc_id": "e17b9223-2220-4379-9bf6-1783335585b7"}, "e17b9223-2220-4379-9bf6-1783335585b7": {"doc_hash": "06224eebd7ad2af11066fc5cb97a31eb151d7086712c913bfc0f93fd3d361d6d"}, "3add3248-ef7d-4108-a10b-e9e287f78eb9": {"doc_hash": "4365aa476e96f415655385f807905aa683d13adf6fe88168fee50999af02b752", "ref_doc_id": "a3a95eba-1ddb-456e-bb5e-c432f2b2ce45"}, "a3a95eba-1ddb-456e-bb5e-c432f2b2ce45": {"doc_hash": "550fe6b4d78972ce9848ef5556d04beca28ffa9ba436a1c8be13bd25bd403da3"}, "253e50a4-96a1-4dde-bf1a-70a7e7724435": {"doc_hash": "c06cc5e5ec72751c1158d4c6b0348e9fa5c68797c31c63a9d8fd268c7b070375", "ref_doc_id": "5c22f98e-f8b3-4d8f-9864-4ff21d053d5b"}, "5c22f98e-f8b3-4d8f-9864-4ff21d053d5b": {"doc_hash": "689036fa73dfa6e867df1454c8032dea1443accee6c2b6d7ff2e1fc4da1a132c"}, "b1bb2d02-ee69-48a4-9fe9-c55588dcc8f2": {"doc_hash": "598baf682a9cb7384aa0dcfb5f4ec39f7fe6805ee4ead391a1978a6777619c7b", "ref_doc_id": "c111f4b7-35e5-435e-8518-51f0c3ac2200"}, "c111f4b7-35e5-435e-8518-51f0c3ac2200": {"doc_hash": "b5d2025b10520a50c2a6531c0c247ff9bb3c0c8835ecc8d974464899cf66b977"}, "7139f466-15bc-4998-b4df-fcbab76581ed": {"doc_hash": "07f43164220f04c9917c211e42d9f6f2c66e6889b168b74e809248b063d42d8f", "ref_doc_id": "ab49e505-6b3f-4e87-a61f-5d59f6295288"}, "ab49e505-6b3f-4e87-a61f-5d59f6295288": {"doc_hash": "dc30bb108aef1e560a7be1860d0cda1f265dd254f10f8e4f4915a918f930ace9"}, "fc7b0a31-59ee-4737-a98c-0760f0a896b4": {"doc_hash": "1b6746f9f255f38f017933c334be0aaf7d5a368a474c256df7645c75829bdee5", "ref_doc_id": "41342fc2-047a-4cf1-b772-74dca44459f7"}, "41342fc2-047a-4cf1-b772-74dca44459f7": {"doc_hash": "b546987de0fa89d692f467b6ab28ebf0df900e32d1b18050cfd75ce717a7f5bc"}, "503697e5-a94c-4e27-816d-494f04f21f75": {"doc_hash": "21dfc7612ead7e9f53621d90048baf6e2457f8683fefa59624772de936601282", "ref_doc_id": "3e80166f-993c-46e9-a037-98fcdcc28b9d"}, "3e80166f-993c-46e9-a037-98fcdcc28b9d": {"doc_hash": "95a81b9e8ea6389d830731524c0f20aadcd072582337a4d6838564b58d5c2ac5"}, "0fa8d65a-9ad9-495f-82f4-b98fb5408966": {"doc_hash": "477895f84b5ac2692a216cf5a7d674e4067edc3a7a1b0011f6d0f4594ff887d7", "ref_doc_id": "d5864625-c9be-445f-9e4a-c30cd44437cb"}, "d5864625-c9be-445f-9e4a-c30cd44437cb": {"doc_hash": "a5151ad9b12d6ccf90a5b147b2ee43b65b20f7ab6d0b8e6a4044822e299f29b4"}, "87210355-db43-422a-b548-8847ff487536": {"doc_hash": "b6e1db907976c0d257ee689083cce8d553afa9dfd731a1b640f62e2767ab6336", "ref_doc_id": "42a5d6e0-eab4-4b77-b093-ba614715da6e"}, "42a5d6e0-eab4-4b77-b093-ba614715da6e": {"doc_hash": "22322cfcff119cafefc974bb06f16a85b59e06659233d64121518a73db88d043"}, "a6749a63-50b2-4c64-8b4d-96d6fb87ed7b": {"doc_hash": "b7bb1769be1b834201a00a3b14b763bfc332a97718f1c4d10b1e0ced7e994fa8", "ref_doc_id": "fee92934-aaec-452e-86bb-1d2ec83bc2cb"}, "fee92934-aaec-452e-86bb-1d2ec83bc2cb": {"doc_hash": "ef223873d41edf800992fb806e84e62350b7b29fbc562101cb116353f7d9f08e"}, "d3b733f8-884a-4ca0-9fcc-ca200dc84628": {"doc_hash": "5f07469e0aacdd6cbf2dc79addb212c50c62489bf706c427596106c0e479d084", "ref_doc_id": "ad50ef99-e2ad-46b8-8a38-aebb5391ceaf"}, "ad50ef99-e2ad-46b8-8a38-aebb5391ceaf": {"doc_hash": "f5a742398a90932f81a00e5cf3d2c345d72e2856b2783d119d9fbe83a36a4271"}, "2663b813-7343-41a2-a80c-5355c9f7e0b0": {"doc_hash": "e16e6e91ca73dd6a98cd7aa1dd5ac5ab71bd843edcd7a2ebc7e6cbfc286a2638", "ref_doc_id": "9af3c669-bac0-40fc-b901-cbc5fcd5b2a6"}, "9af3c669-bac0-40fc-b901-cbc5fcd5b2a6": {"doc_hash": "1b6944291962aa8a889d2c5bc5c242af221ae74ee49e46389dd2211013831c59"}, "fdae2512-8514-49fb-af28-d91d67f5317f": {"doc_hash": "ac05b476a09b14824ae5eb91387ca9140d1f10ab5da80d02f47d2d71711ec41c", "ref_doc_id": "53f7dc9c-e37a-4196-be54-483b167d975b"}, "53f7dc9c-e37a-4196-be54-483b167d975b": {"doc_hash": "cdf1fd97ab65aeb50067f0aa89d781ede4a0685fafc25f76c5c301c2fe085e5a"}, "c81e9f7e-2f7c-43bb-89b8-79ab08c9c730": {"doc_hash": "b4328f34e01962111df6b4284add3c5e750303670aa1028bf97263e4c95ce383", "ref_doc_id": "3c7aa30f-7357-4b7f-b640-b7f4bcb86dee"}, "3c7aa30f-7357-4b7f-b640-b7f4bcb86dee": {"doc_hash": "79cdad4aee34ccd5e70c0630f42832e3e28d74e298e2b851db001bb3f14d3b87"}, "6164be7f-4986-48ee-b712-c28304adba66": {"doc_hash": "92a2f2ff6b34387977f245a06f453c54c73d01e63b8d2909f8861ae759192a07", "ref_doc_id": "6e17e445-2582-4888-8765-4b614aa41f47"}, "6e17e445-2582-4888-8765-4b614aa41f47": {"doc_hash": "f6fee3f79b3378dfa594ba5d4f3fb8e1be81b93c9729db371f175df76d3d64ec"}, "440cd232-b6f6-4f2d-85bf-b821d0e78f33": {"doc_hash": "404b26ce2c1a43247405e721d2c4dec3521589d00d68a0701a25cb62a65e8044", "ref_doc_id": "f3a61259-32ca-4b6e-aee5-d3566d5f791f"}, "f3a61259-32ca-4b6e-aee5-d3566d5f791f": {"doc_hash": "c1a7626c4b56c36d6d75a537ed97e47b04ab43dc2a6752cf35b0a5d00c2bba8a"}, "caa23d73-62d8-421e-8d8e-be748af860a1": {"doc_hash": "c1a2627ae24fa18180140556c07bb38daa1d0a7c70aed33927011426d918cc5a", "ref_doc_id": "06404be2-f5ed-4c2f-8b26-2cd30b9f9c51"}, "f72bb77e-280f-48cc-b8d8-cb49f491a3da": {"doc_hash": "f7e1d1044c9681d06c4d22abb49fe94147be66c876091842f1d9ebab11bf699c", "ref_doc_id": "06404be2-f5ed-4c2f-8b26-2cd30b9f9c51"}, "06404be2-f5ed-4c2f-8b26-2cd30b9f9c51": {"doc_hash": "0bda12e909b31cb5a35537e1447eeef531273f43b458e6e76a45fc54bd88a36a"}, "349ad651-5541-4d39-a543-6878cc4088a0": {"doc_hash": "e1ddb466355c0f983568371c04be1a082f22cb9f3d0b3aeaa068fb00b353c875", "ref_doc_id": "6b2e297e-cc31-4af2-925e-7a7e882b9bc4"}, "6b2e297e-cc31-4af2-925e-7a7e882b9bc4": {"doc_hash": "d6ed8a787c8b6d7d4ccad0c313ac2342a96accef56e04df8b9035793574ccd63"}, "f326ebd3-a8e9-4d5c-8f3f-562d5c67bb88": {"doc_hash": "891ae241588ff8d9d61565965020493f747f876a85d6804aa7c56e4c30576bad", "ref_doc_id": "7af7a1be-b0a0-4073-85e1-85bb3b1a090c"}, "f5138396-7f9a-4ff7-b9a4-dea45a933b62": {"doc_hash": "5d25c58a47f7b8bf8f32bd8ce5e815d70dbfb189e71d451be4854226c926397b", "ref_doc_id": "7af7a1be-b0a0-4073-85e1-85bb3b1a090c"}, "7af7a1be-b0a0-4073-85e1-85bb3b1a090c": {"doc_hash": "5e16f4966a9dea600fe18daf00b8ba09676c5c9ae4daf3eb3c4597a3763d1d01"}, "399928f1-52b9-45fa-b4de-34a17cb2255c": {"doc_hash": "1f1ead352d8793e2be2949a7b37eb735ed671ef19ca96ce25dfad4345843f435", "ref_doc_id": "e9b4ed23-6302-454e-856a-b46b2e1ad595"}, "c3aa7a63-78be-42b7-ba50-b186b28f1709": {"doc_hash": "a62c51f192ed736deba04e95556631061d482f8c89b45a6bcacfea44a534615b", "ref_doc_id": "e9b4ed23-6302-454e-856a-b46b2e1ad595"}, "e9b4ed23-6302-454e-856a-b46b2e1ad595": {"doc_hash": "d8ea012de97845328cde1c2324e0a448fb246bbcbeb54df39edef1665a8e9e38"}, "4b6e6cef-8f5c-4187-9b9d-540a013b48e4": {"doc_hash": "65f2198d31471d84ea1d894cddfc05659a196c9630d56bd5af5ef45df99400be", "ref_doc_id": "f0c6d9b7-c3d0-454f-9d33-da6698bf5202"}, "d1b23f3f-6a56-4e93-8430-d641a8e46441": {"doc_hash": "4985937df610cc252ae13a25411e4384ba39602daa70a2f9cb0bac86fda71c81", "ref_doc_id": "f0c6d9b7-c3d0-454f-9d33-da6698bf5202"}, "f0c6d9b7-c3d0-454f-9d33-da6698bf5202": {"doc_hash": "111c6721eb4de84b2d43acca5d8b139475365b76ff8541ea28ed7f5dcb4eb4e1"}, "3265af36-ab5e-4f9a-845e-da4cee60776b": {"doc_hash": "d812c02f2b4431a532f472a84b78b565f166ca597d404cccaa1f95154b92101c", "ref_doc_id": "924e4d4f-013e-42c4-b985-9159ad2887f4"}, "4dd31aea-b426-44a7-90b8-4934175498d2": {"doc_hash": "01746ce627ef29992fbe50f81457282594bbe2bb97887813fde020e839c422c6", "ref_doc_id": "924e4d4f-013e-42c4-b985-9159ad2887f4"}, "924e4d4f-013e-42c4-b985-9159ad2887f4": {"doc_hash": "f200e50f2d8184c299b98388673bf037d94f4376efe8b89de4a1eeb35613862d"}, "b08b0287-c781-4e9c-a633-4e3d1dd9b864": {"doc_hash": "44425b9c1cbb2f2bc09f3d231766db2d3732ad4ff66ec51123b0dbd92c47fdc3", "ref_doc_id": "fc9c6221-a543-4ff5-baeb-5b2b1421c3e7"}, "cbcb5b53-8510-4887-9300-d896b7c6c4d9": {"doc_hash": "fe78a079512ae2c1583cafad63cfd0f6c329e7943527311ffb87c175cf66aac0", "ref_doc_id": "fc9c6221-a543-4ff5-baeb-5b2b1421c3e7"}, "fc9c6221-a543-4ff5-baeb-5b2b1421c3e7": {"doc_hash": "8b96eebc38e845bb45886c1e776888fc995ccdb8a47f1ce94eb42c9367e7e6c3"}, "5277f552-6d6c-46b6-b636-0ffbb583735b": {"doc_hash": "3afb25393ba8506a9bd94b93b8100bd1606432adf40498b5e02747dea7dab3fa", "ref_doc_id": "32f8e853-2230-4c9b-b480-3101b50a35f0"}, "e82c0de1-f6db-40a1-b354-fc85962a0ce2": {"doc_hash": "4c88ba707d43d0c43a6a07bc4f812b15558bd73df5bbb5b4e1dd6aeb20e44993", "ref_doc_id": "32f8e853-2230-4c9b-b480-3101b50a35f0"}, "32f8e853-2230-4c9b-b480-3101b50a35f0": {"doc_hash": "28965ea844771789b36d7a71126afcae549047922ce6dda9917b0b26f6d50208"}, "ca8c7592-4a9b-4e16-96df-a633ac2dbf6d": {"doc_hash": "8b0b122fb5e903d957379f789f8ba6cf659d53ffbe568caacb04fa72f81deea9", "ref_doc_id": "ff9de819-784b-4c17-8647-808862e8ae44"}, "865bece9-a27e-4be4-914a-4be381469195": {"doc_hash": "e28a9b9f8c83aca4274df0213c6ad4b441058b6565165594e6ba6609f0a5b4c2", "ref_doc_id": "ff9de819-784b-4c17-8647-808862e8ae44"}, "ff9de819-784b-4c17-8647-808862e8ae44": {"doc_hash": "66ecf8f70af3f76e7ac4f9c526d4840291f8c218e2563903e7b7cfd003486cdf"}, "f023a46b-7a71-4216-a144-02688eff4aaf": {"doc_hash": "a7a73b40aac3bbd5b28240a4d73e3c41061b15afd8028e1a5e471f994074e97c", "ref_doc_id": "ce801ccf-e814-4685-b425-5d7543da3593"}, "7bde4273-3465-4015-b487-458b0abb7a12": {"doc_hash": "1b065730528fb139558656ac3af790fbac74d3aee11cee9289bd8e8fb5f2369c", "ref_doc_id": "ce801ccf-e814-4685-b425-5d7543da3593"}, "ce801ccf-e814-4685-b425-5d7543da3593": {"doc_hash": "9e9de1c2f7341b69b29509d5dd0e38b7bc5e213c473a52c7845bff4495aefb3c"}, "ac51e598-6ab8-4a16-bc06-7a4287cd218f": {"doc_hash": "9760beee9887cbe50eb78ae54c77116fd91bcc13a652c7bd17b8be3884335731", "ref_doc_id": "1c086f2c-7bb1-4802-8cdb-f6bcdcfb1730"}, "80d069a0-251b-4429-a9b6-421799997b9a": {"doc_hash": "ec0adcb96c83c899e00eba1606ab34198244bb3037be03fc87542776b390f8df", "ref_doc_id": "1c086f2c-7bb1-4802-8cdb-f6bcdcfb1730"}, "1c086f2c-7bb1-4802-8cdb-f6bcdcfb1730": {"doc_hash": "a79b3c59003e1c5989319433d8488cd9be90afaf10e86a4d1627386fc37a8315"}, "704fb551-9606-419d-b3c8-b2b28a6bebca": {"doc_hash": "33801b26d011137388b9798e151833c40d6fa8f06e27ef23837aa1e58be2a990", "ref_doc_id": "9ce07126-afe6-4bac-9e61-f57b88febf97"}, "33c9ce2a-fb27-44d5-bbf7-36cd02421762": {"doc_hash": "92c0ff78a8196fbd52be18e3e4869d688f931ebf1355f9d6285899e16a4932b7", "ref_doc_id": "9ce07126-afe6-4bac-9e61-f57b88febf97"}, "9ce07126-afe6-4bac-9e61-f57b88febf97": {"doc_hash": "81d67ea6bde646a26d44d64e1a09025156b19f774095c2e5fa412254652e6043"}, "1f8a5636-b169-41da-ae1d-8da9fc11ce5c": {"doc_hash": "cc4a1c7113b87463c65552d0e4a0a291d1bcd40094261850b6227ae9d8aa7b69", "ref_doc_id": "b102015f-6e3b-44f9-93a9-b2f62c79d676"}, "5cf21468-4245-42b5-a7bd-3d61776124c7": {"doc_hash": "8bf95230ea01957db243d908b99d27a08ce66249012db93434bf2998d816688d", "ref_doc_id": "b102015f-6e3b-44f9-93a9-b2f62c79d676"}, "b102015f-6e3b-44f9-93a9-b2f62c79d676": {"doc_hash": "7dc0b314e8acb8c5c859ba81a713bf027c1564cce709e7225fb38a1a5366088e"}, "6758de60-e2a8-46f6-910b-d91fcf3473a9": {"doc_hash": "36be5a8347503f880403afcaffaf872339dfa6638cb6fbe67b0d75b2730a828d", "ref_doc_id": "a6033241-ebac-44af-af9a-9cc49aa0e123"}, "e0c6d0ec-d049-4542-9b04-22c6592e113a": {"doc_hash": "11f45a32ba8d2b44a631e1d313a1a6fa683d5bebdc2fd0afa399b5b095912708", "ref_doc_id": "a6033241-ebac-44af-af9a-9cc49aa0e123"}, "a6033241-ebac-44af-af9a-9cc49aa0e123": {"doc_hash": "93451572fb156c9098ac94b6578c2fe4be6aee6d58e0f8d53b80edb5651db617"}, "adaca468-4596-4142-a862-2c63cbd522af": {"doc_hash": "32c738d43471ad4499f42a24a9f2592b9d909444cf78f825acdae1a23600a671", "ref_doc_id": "358bb789-a27b-4533-ad4e-a7a2d5afb115"}, "01aa8caa-e272-433d-8501-23c318d4e632": {"doc_hash": "e669b44d2276e7ecbad6cc721981d6a75189b9b5c3a2e4dfeb4a6150b2dc344c", "ref_doc_id": "358bb789-a27b-4533-ad4e-a7a2d5afb115"}, "358bb789-a27b-4533-ad4e-a7a2d5afb115": {"doc_hash": "54cb7359f4262c386f8c801c70151b0f513746ca183da1704d1a09d3ccc64612"}, "d9247f3a-987b-49ed-aafb-bf03ec0dbbcb": {"doc_hash": "448f5d5ea0a3a01896e390fbd2b04e216123e0611acf8edacd32e0b8e933e05f", "ref_doc_id": "47a17007-4a08-4d87-96af-3831a84027b3"}, "f2887c0a-bb19-4cb5-a3d5-674c4ad6537b": {"doc_hash": "4fe52f7d00d20f74423252861d622d7d074b6ce4deb79279d1d77b89cb681ae8", "ref_doc_id": "47a17007-4a08-4d87-96af-3831a84027b3"}, "47a17007-4a08-4d87-96af-3831a84027b3": {"doc_hash": "e8419b641d08275897f57ca739a5738f15a4f4fb1c8decb1566078205cf9a236"}, "5f3cf013-de30-469a-b104-741977a7946a": {"doc_hash": "d554a4d9364701d54d175b0ffa3f954943b1230c1b290e0f43fcb390dacd7cbb", "ref_doc_id": "91d77b80-b8fd-4863-ba2e-909379bf911e"}, "71896282-7ca5-4b1b-a0d2-2e0d31f29389": {"doc_hash": "5b49ba4bfaaaad33faf104c2347514f0fac7d83206697eee6383d75f9b64cd10", "ref_doc_id": "91d77b80-b8fd-4863-ba2e-909379bf911e"}, "91d77b80-b8fd-4863-ba2e-909379bf911e": {"doc_hash": "20a6a2e930e1fccc4063caba73513b1d63a75312927a661567ee4a0c3e30d6db"}, "0a95e94f-69b3-41b3-b39f-fb2e489d5985": {"doc_hash": "51a54c4dd8eaafe9c0e4ad72e88b667d8f06a20d4b74aff3b273d6dd9e127614", "ref_doc_id": "ec3730f0-80bb-4c97-9530-2fadd6ab0ae8"}, "e347acd8-9558-4957-856e-96a0592d5583": {"doc_hash": "c096ccb593bd2296712637b9caa22343d38c735d3039d7638061b6ab7554a12e", "ref_doc_id": "ec3730f0-80bb-4c97-9530-2fadd6ab0ae8"}, "ec3730f0-80bb-4c97-9530-2fadd6ab0ae8": {"doc_hash": "fb10246a1b858f2b24d7656f5c107866377bc728e141a4aff04cc0920ba5d41e"}, "f47659c9-1dc5-4bfc-b39a-3014c7828736": {"doc_hash": "5876a78c8a99b1512b0d145b2169d72c978e8a4f377158fd7c7f8e62ff05c86b", "ref_doc_id": "064c0af8-dcbb-4743-a3d3-3d39087ed765"}, "349e2184-1f68-430d-9bde-98fd3594d4ca": {"doc_hash": "949e73c1ac6da22293bf47b9d0b4dc58e237d6243fd21de28126671915348f3a", "ref_doc_id": "064c0af8-dcbb-4743-a3d3-3d39087ed765"}, "064c0af8-dcbb-4743-a3d3-3d39087ed765": {"doc_hash": "040524e305d9f02173ad83f1e9f92908ec1c8d1970de3e907fd326afb09ba037"}, "bdc90b98-9ea4-4d31-81ba-79418630a920": {"doc_hash": "9d646fbe1abda0b03168a7cc121bd5b12a1da4e48cd8ff97dc59ef8d75b95559", "ref_doc_id": "c8aa2e5e-c915-40e4-a5ba-5c109b77a9d2"}, "0050c67f-4b8e-49c6-b8f9-32bc458866a0": {"doc_hash": "b9e81edc4379fba831e544d39a8df16db3be51947d9f00c7acf05c8c8103e18b", "ref_doc_id": "c8aa2e5e-c915-40e4-a5ba-5c109b77a9d2"}, "c8aa2e5e-c915-40e4-a5ba-5c109b77a9d2": {"doc_hash": "d4573edfe8650588efb9f46a81c00078876d24e9463b8dc2d1de8f8c3e14e810"}, "4f3c8d74-ca06-429f-9600-807dfe996b3b": {"doc_hash": "0b9775c7f624cbf44657e2b320babc668f5a13c28f1b3f114053dc7f58c7f544", "ref_doc_id": "d48eb661-131f-4ebc-9a1d-652b0e12d101"}, "65f70ebc-854c-470e-aaaf-cb5901ce7a35": {"doc_hash": "c34374f8e1cd70a56cd028cc3cebf399131acdcb0e0c0608510b9f5633238663", "ref_doc_id": "d48eb661-131f-4ebc-9a1d-652b0e12d101"}, "d48eb661-131f-4ebc-9a1d-652b0e12d101": {"doc_hash": "d7f0719b404968190211ccaf196f53dd5a7192153386ab3bf5ed414d1c413031"}, "574dd432-24aa-4978-9c24-b55be5f2f83b": {"doc_hash": "86dfc03e1eafa21d82b9b2440fddfb1d9e81a0acadbfdbab706e7b567edd4a5f", "ref_doc_id": "50164492-6ab0-4027-a7e0-c3d2b0b6c44c"}, "c0fa3ed4-cbe4-4aca-98ea-35be62cfd346": {"doc_hash": "ff45dbc94503bb716abf51b6a3be79ae4bf875c07fbb44cedcd5bc75804aa114", "ref_doc_id": "50164492-6ab0-4027-a7e0-c3d2b0b6c44c"}, "50164492-6ab0-4027-a7e0-c3d2b0b6c44c": {"doc_hash": "5526b181892b2b35928b6151a27253c850c0bd804ed3d52054c73ebfb68739e6"}, "0f46b6ed-1094-4dd0-b715-37e8363ad5b7": {"doc_hash": "0b639c90f38770c7d30383d7e4bce84709256ebefcd814ee47f6b5611fc1c480", "ref_doc_id": "1e729a09-41f9-4fc6-babe-f24c071a836b"}, "11551208-76be-4d91-b828-8e932381db15": {"doc_hash": "2cca3671b760bfcca907ca459616e094279309f2e7249d5ea6fcc2fd4e9ce99d", "ref_doc_id": "1e729a09-41f9-4fc6-babe-f24c071a836b"}, "1e729a09-41f9-4fc6-babe-f24c071a836b": {"doc_hash": "ff8ac8a95b50015f476d4ae32484e1a70474d78dd88c85833ffd2c0860263bf1"}, "f9308aa2-d315-440e-a8f8-021faeda9479": {"doc_hash": "9d9f90510db69c15546822e1ed0b76853096b328dc15cb63238933d752a13e83", "ref_doc_id": "902ca4b2-266e-434f-9a3d-b4cbbae6d0af"}, "bdc49586-5b1a-475a-92e4-fee9bdf8e193": {"doc_hash": "bf916537dc6dc245ee85a57e32ce44fff6f2063d4917cc74b0e8c1b88c3c8f83", "ref_doc_id": "902ca4b2-266e-434f-9a3d-b4cbbae6d0af"}, "902ca4b2-266e-434f-9a3d-b4cbbae6d0af": {"doc_hash": "54dfac8b6c789ff89b493e5ad93d1e15c08fd71bcfa614303e5b67b9e497e0b4"}, "232ba979-8a57-4bed-8051-3299d5fd8ece": {"doc_hash": "62ee998533cf66db209a83904a9dc159ec0ea83f46aa5788eafdd80ba928ec67", "ref_doc_id": "3082f703-7407-4588-8dcc-1cc5040d80a1"}, "f743108b-482c-41ba-9775-f0122fcb0e20": {"doc_hash": "0b5eacb2365be07ce289d2ad7f7bb64083751a69541c11c843aa26bed9aca3ac", "ref_doc_id": "3082f703-7407-4588-8dcc-1cc5040d80a1"}, "3082f703-7407-4588-8dcc-1cc5040d80a1": {"doc_hash": "2e2d16d0e2346a7714deb99a90cabe3b6918aa2bfc1c5093b6f62ca46c7189ed"}, "0809b442-30b2-4a73-8b71-e5311f8c78f2": {"doc_hash": "c00fdc919e6daf5e36022e594c34a9831ab196d1f07ee4fc62afe70d2754ada0", "ref_doc_id": "24eb9f5f-f2c9-4b97-9515-3d2606a6a646"}, "24eb9f5f-f2c9-4b97-9515-3d2606a6a646": {"doc_hash": "cb9009edddaa76ffe4e659913ee8ce99c3af04f27143cf5a2589dff61550b24e"}, "bf860b7e-516a-4f78-a709-7ce7f052ca49": {"doc_hash": "d84a70d649cf585aab24981a39142cc903784ffa19c79133db0bb8a728fb833d", "ref_doc_id": "2615e661-07d6-4b96-b150-176712710820"}, "7c92c64c-5fa2-40af-a61d-84efb740473b": {"doc_hash": "027249173d0d8ce455da537fb112cf09f69dc48e49c3ec31be6afe4b30ae08b0", "ref_doc_id": "2615e661-07d6-4b96-b150-176712710820"}, "2615e661-07d6-4b96-b150-176712710820": {"doc_hash": "b0ecb83d766cdba259755be7784caa87d519d6c63f8aa80b515e618e20932cda"}, "12b96c35-320d-4bbc-8cf0-4de78613af05": {"doc_hash": "525ca163ad2b21789e3609c5a98ee6213cf292a06f0b9c432d9f269a0ff12dbf", "ref_doc_id": "db682d13-1ac3-478f-855b-3cece37ac8bb"}, "99047b82-41e1-499c-8fab-34b70540719e": {"doc_hash": "5631ecfb4cba697d2be3543c27c9c26e175489acff905854be7fc5a419d70c5e", "ref_doc_id": "db682d13-1ac3-478f-855b-3cece37ac8bb"}, "db682d13-1ac3-478f-855b-3cece37ac8bb": {"doc_hash": "111c468813d50d0227584ebf64e090f3c2df1d46991c8a47faff9f13b30fa80f"}, "72d98900-a444-46aa-ab5d-2d30a56bf24b": {"doc_hash": "4ec4cbffc8062154eb6fa22ba02c39fb547f786d75bfdd4605f4a445567c1109", "ref_doc_id": "d00857e4-765e-4200-b2d2-7e7ce5dee666"}, "45116969-d656-48a0-9ecc-ddb03c4064fb": {"doc_hash": "4e926b9f6102297b77d231007243e847ac27fbda6ad7dc107da1da4ddc8469cf", "ref_doc_id": "d00857e4-765e-4200-b2d2-7e7ce5dee666"}, "d00857e4-765e-4200-b2d2-7e7ce5dee666": {"doc_hash": "91c905875821328111e25aea3ad5f2e9b7ef95e79806cc4b63defda03c675ac6"}, "c530f08c-d0fe-4afd-beb1-9107d81f9add": {"doc_hash": "06e167b3004e7f012b20b2c5da22fab3cc80a30647e0cf6d57bebe0c729888eb", "ref_doc_id": "80e19c0d-183f-4fc3-bbf3-e2d14bce68d6"}, "80e19c0d-183f-4fc3-bbf3-e2d14bce68d6": {"doc_hash": "1f47648e18174d1666d03b7c2881d8f00caabe66a91f63c16c403ef5d760eede"}, "7196a3ff-df61-42c2-83a8-9bdc332aac2c": {"doc_hash": "5a6a4bf6dfaca1d3bf1e23a09f21eb1ad6b0229ead3bc61cc9a2a65394c20bc9", "ref_doc_id": "1ae64888-27a5-4928-a4b3-5f429dc9c097"}, "e46c0bb8-52b5-463a-9b7b-00194c3af9ac": {"doc_hash": "854607836ec46a61ad8dcb3e5ae303787212ad62ee628cb7a47b68c4a1537937", "ref_doc_id": "1ae64888-27a5-4928-a4b3-5f429dc9c097"}, "1ae64888-27a5-4928-a4b3-5f429dc9c097": {"doc_hash": "90eb19573aec4e90d21b54614878d8e59d41378e9dead54adc1794e73f4fe126"}, "4a60d729-daef-4def-9eeb-dc87a848843d": {"doc_hash": "fd875c4cd93cd0861031ab334d6df32f4f23f1c2386e049b58b283ea04f221fb", "ref_doc_id": "f3ca6720-4221-460e-898a-6e1e12d423b4"}, "f3ca6720-4221-460e-898a-6e1e12d423b4": {"doc_hash": "11d4bbc6d9de878557c93518624532cb812c6bb4271e6f4afe7d3a972dea160b"}, "f52103d2-dc8d-4fdf-86ab-11327aa67c18": {"doc_hash": "a78e9ad5849755dce5413168655ed0eb2d1a6bef4a35f6db59fa7636e7518a2b", "ref_doc_id": "da406491-6449-4aca-9174-fad6bf5cb954"}, "22c9cb0e-7efc-489e-abf9-9700fae651f7": {"doc_hash": "6d416525a0bf6248d8a359dbe3cc7c338dbfd9f63bc756a9f8950866d598973f", "ref_doc_id": "da406491-6449-4aca-9174-fad6bf5cb954"}, "da406491-6449-4aca-9174-fad6bf5cb954": {"doc_hash": "49e0974af5ad04070240e35910e4436abc9c5798bc350fd6f5cfdafd2b43d3a3"}, "9da34a3c-c97b-41f6-9f19-dc022dafd7f4": {"doc_hash": "992d7e21c3e65c7198ce6011fe6863972925847a4a3ff1dd306fc301b34c925f", "ref_doc_id": "fac0f3f2-6e9b-4d43-a810-6388eab12b8f"}, "5ea7565c-6786-4cda-934d-5139badad18e": {"doc_hash": "1549548b9311d4cb0c4aef0ddb4c693462cf6c28ffd1ea5d939fa3b747f56742", "ref_doc_id": "fac0f3f2-6e9b-4d43-a810-6388eab12b8f"}, "fac0f3f2-6e9b-4d43-a810-6388eab12b8f": {"doc_hash": "5653ebdaef1c4e8f693fe3743a65e2e513c7e1eb8c31a4828a0a29863685d9df"}, "e0b3ca43-0c41-4b12-bf82-dbf352bf65dc": {"doc_hash": "ad5e6aea74a1528e416510c87a2e324f2b30f50c1011950cfa2a4127532424ba", "ref_doc_id": "ba2d068d-951e-4ee9-b44d-aa0ddfd7b5cc"}, "ce1264c4-a478-4cf2-aba0-79def8c91177": {"doc_hash": "4833bd7ef0fd6feaeabc7b50634157f3f63b2b8b0f6265263b791e4b9e86fa40", "ref_doc_id": "ba2d068d-951e-4ee9-b44d-aa0ddfd7b5cc"}, "ba2d068d-951e-4ee9-b44d-aa0ddfd7b5cc": {"doc_hash": "0b3509861a9758a0d7395d37d8501ce070bd76e0847a2d481985c9d26c0953d1"}, "43ce5aec-9d84-490d-ab1b-923a2073ea6f": {"doc_hash": "53c31ef168a750679412e66e3ffea5dab9c98cdd2286eda9c2bac4ba81afb956", "ref_doc_id": "b6a6436a-3fb7-4e67-b2ca-6ae6ae6ba45e"}, "7b4c107a-8319-4745-b437-9ff271b97811": {"doc_hash": "5d1302d219b1fcc71a04b955a19a8101c820e882f77710c848801a11335741dc", "ref_doc_id": "b6a6436a-3fb7-4e67-b2ca-6ae6ae6ba45e"}, "b6a6436a-3fb7-4e67-b2ca-6ae6ae6ba45e": {"doc_hash": "a83029e3b766237d1686753d02ceeea0fa17855e65b200a83816aea53b759066"}, "3b625432-35dc-43e0-88aa-075869771f12": {"doc_hash": "b6a5dd432b7742c4ef0bb58cd9068de83ed5a743a5ba83d02c2f7c8cec8cda50", "ref_doc_id": "5d97e345-c4b0-47fa-9b54-2f57b4cbf1c5"}, "3d2bc89b-89f5-4961-b4d4-e582a1f349bd": {"doc_hash": "7dbedef1fd8d552aedc839a1aa5b7cff054494b00e1fd4aedea796f378049af6", "ref_doc_id": "5d97e345-c4b0-47fa-9b54-2f57b4cbf1c5"}, "5d97e345-c4b0-47fa-9b54-2f57b4cbf1c5": {"doc_hash": "3364b9b8492bafefb5372553c48f8caf5e6da33019422df50c7e63ce9a18a63d"}, "744d69e1-6e50-4abe-82a6-0711b381bab5": {"doc_hash": "4cd2726653eb634bc9dd88ed4a0764df97fa3f180920361d68f53ff1cf472271", "ref_doc_id": "73a993c3-6382-40c6-bd98-66696b8ec897"}, "73a993c3-6382-40c6-bd98-66696b8ec897": {"doc_hash": "961e0b2b8ece3a40cda80fde101a846fb922a50742d23fc22f2df3758e778983"}, "324fcab3-3e33-4e3e-8b77-648bd55d0261": {"doc_hash": "775f14c32b34c1b4b449691ce78fddc7357e0228b213b34f73f7ce2c7f603de6", "ref_doc_id": "a7969e2c-51ce-44f0-8a9a-c3fab2d158c0"}, "a7969e2c-51ce-44f0-8a9a-c3fab2d158c0": {"doc_hash": "e54ccc92231acaaca22a1a28e347b3d1ade2a1265f6afdd519f1365952f24c98"}, "c293048a-7ee2-4867-866c-3812f3d145a5": {"doc_hash": "831330b2865c6ff17f731d095db5a45d5e52f372d822e766ce69f89df677c293", "ref_doc_id": "5ffa3258-a07b-4392-8e79-8f67e325ebd4"}, "0ffc8dde-7090-4f22-be02-0d50c6178815": {"doc_hash": "045285e2b0ff6844638f64c5c6df7191b17e5ab8db8504c8836d0b74f7820832", "ref_doc_id": "5ffa3258-a07b-4392-8e79-8f67e325ebd4"}, "5ffa3258-a07b-4392-8e79-8f67e325ebd4": {"doc_hash": "f87948d9747102606dc270742d7557010a7bffe8a0321d7205f75b3946355385"}, "9df41178-0edf-4f06-bad0-b37584a6aadf": {"doc_hash": "a081cdebfd0f6f2b8ffe1942733096b00185ec001515691c8ec1a2ffafa48f83", "ref_doc_id": "e379bf22-1e75-4d65-8854-4e22d5118a15"}, "0c6a5788-8cdc-48f7-974b-3cffa6eca624": {"doc_hash": "8696e21449c7e4a766a34d189e31d6a5f3e67c0b196e17f959ec26650d1e417d", "ref_doc_id": "e379bf22-1e75-4d65-8854-4e22d5118a15"}, "e379bf22-1e75-4d65-8854-4e22d5118a15": {"doc_hash": "0c063bbcb56628e37fc9fa32fbf871db3f3508eae5dde3204a95a5f12e241899"}, "91bdb95f-7974-4792-8a59-441c661ac12b": {"doc_hash": "620dff14bb9d6085b4498080fa0397589c917855379a753622066cbf7069da37", "ref_doc_id": "a1960744-7195-4181-8b69-e11bb541bebb"}, "6d72a0e6-492a-4b5b-a726-65efd801dfd3": {"doc_hash": "3cb52f7bb0b5101b1f7afb8c437bdc790afd966fcf7dab0bc98336d1fca73fde", "ref_doc_id": "a1960744-7195-4181-8b69-e11bb541bebb"}, "a1960744-7195-4181-8b69-e11bb541bebb": {"doc_hash": "e5b64dce51746d000da15c40e63571a41a2ebb71d3ebbf9c893323d4786125c6"}, "81799b67-5d97-4c8f-8b7c-61b934fe97dc": {"doc_hash": "66c4a58541038c44ed31f2e587f7ded14eaf1d800fe9d3f9e487465e0092c4fb", "ref_doc_id": "c0b28c08-6f67-4705-be98-a243077d7fc6"}, "ef6e4763-9e32-4029-9d17-2815a17861e8": {"doc_hash": "ac18512474633403ce5354df7a2d17ced042dd8461d4e3d97f1c1a6955d02444", "ref_doc_id": "c0b28c08-6f67-4705-be98-a243077d7fc6"}, "c0b28c08-6f67-4705-be98-a243077d7fc6": {"doc_hash": "5fa6daaa44e5f60ece3b26bec50f6e7a4c2a53463d7dd4d4a44be483c88f16fd"}, "9100e1da-cd25-44e9-922a-b44dbe3e9adb": {"doc_hash": "5f34519c78701a6a386a3249b38b0567cb230d933cc8bc263cbb020d795e1c89", "ref_doc_id": "2e126897-77c0-46e6-a66f-27d3b704ac78"}, "011a72ce-6c19-485f-8e97-8b89762e9476": {"doc_hash": "31cdae3c7d765f5576365f4097457eba8b5d030684d5f10adf6664913e4fb05a", "ref_doc_id": "2e126897-77c0-46e6-a66f-27d3b704ac78"}, "2e126897-77c0-46e6-a66f-27d3b704ac78": {"doc_hash": "7013a6bbd6c5531ff039a5cdc0a1997dcf40b909051b1980298457358eda78d7"}, "4713e071-a6d2-41ed-aaf2-00c315f0188a": {"doc_hash": "9088204b3f39641d956fab62e8af5902e0092747e31b5693604f0054898a4b02", "ref_doc_id": "d55d68cd-e013-46c9-bf85-bcbe005861ea"}, "e4052a00-190a-4ebd-976d-5ac985730e3c": {"doc_hash": "c7fb263c402ca2c2a1e3ab6b0612edfed243c7cc02457dc9281b4c36ced87263", "ref_doc_id": "d55d68cd-e013-46c9-bf85-bcbe005861ea"}, "d55d68cd-e013-46c9-bf85-bcbe005861ea": {"doc_hash": "48948b01202aba400d44fe01f01e71f426a308a0b7f324cc5a041eb20f57da98"}, "aaa96581-8c2d-4da4-92d7-f7262b6396f4": {"doc_hash": "23b24945d216e003a8ba31970bc37983e1f4e28030330030c4b69897d174ef7d", "ref_doc_id": "270521dd-ab06-4994-b12d-8a12071828fe"}, "68889eaf-2d44-4291-934d-41187c3df005": {"doc_hash": "e5730107f2c10edf3e86467d3a32b03ebef646268a77fd5eb18909404028643a", "ref_doc_id": "270521dd-ab06-4994-b12d-8a12071828fe"}, "270521dd-ab06-4994-b12d-8a12071828fe": {"doc_hash": "96a441d34ff7715092caaf454b2f4954ec279d29d37251bcc83b416ecb0978cf"}, "6b84357c-8b3b-4414-a458-2ba577cdf1b0": {"doc_hash": "c8779778420819a454e6cd9cbf4469f498707e60abc7122387804aa8303868b6", "ref_doc_id": "68bda86b-1129-40f5-ad93-f8da9dc62b9c"}, "a34a8564-b22c-42b4-b8ad-3245c7adf2a6": {"doc_hash": "3844c31fc38d311f3847f823c7f6e6f1e8b7bb6482b8e5479ab2f4abb596902d", "ref_doc_id": "68bda86b-1129-40f5-ad93-f8da9dc62b9c"}, "68bda86b-1129-40f5-ad93-f8da9dc62b9c": {"doc_hash": "29dbe1feffa4da840a08442b83d7f60a27d6d97500814551e1c049eb454fc03f"}, "7fa8b6ee-051e-43f2-8dff-2a534b0cd611": {"doc_hash": "a805b2c658c84b33e2eb129e9c364b41512df4d60325ff0b4f375aeb557e3c06", "ref_doc_id": "3f14eea4-a471-4300-a64f-33aefdb9d886"}, "0b4aaeba-381e-4cda-a169-f4628a06f7cd": {"doc_hash": "e8510ad32c4cdfd25ebff6c0a0c884efc9003bd59bb66066aef6db236cc84325", "ref_doc_id": "3f14eea4-a471-4300-a64f-33aefdb9d886"}, "3f14eea4-a471-4300-a64f-33aefdb9d886": {"doc_hash": "bd6ae8908f2541798895fcf0309ef8a9dfac15b28814173e10e2877cb7a77388"}, "dc1bcdbc-3909-499a-bb95-6f7311ac9970": {"doc_hash": "544d9e5dad488e498adbab155ed11e8f40ecc6348d0662fb505e6ac7248f5db5", "ref_doc_id": "6bde58a7-52d7-401c-a9dc-b3398bd77340"}, "526642ea-f296-473a-8b15-123104aeee45": {"doc_hash": "82d7065f2965474ec75ddf994cddafde63d84207763a50e96daa0ddac5f8c63b", "ref_doc_id": "6bde58a7-52d7-401c-a9dc-b3398bd77340"}, "6bde58a7-52d7-401c-a9dc-b3398bd77340": {"doc_hash": "e41de57e31ce2326c436679e91f0f4204f0a0b84bbe63a636ed4c638a71587c4"}, "4dcf984d-2348-44c4-b9be-4af4611d7b56": {"doc_hash": "bee01a82eb52c2ade39d1599c9182c18a0b8fb22a3196a1bf2777f801bf0e2f4", "ref_doc_id": "df0d90d1-f48b-4eb6-a0aa-d6b2e6fc4b75"}, "d90a6e64-b54d-4b75-a61a-e3a6a8b29519": {"doc_hash": "4c27778d892d7fb359f1b6c1a00390e70fead91afd96c076a98698aff3c6b376", "ref_doc_id": "df0d90d1-f48b-4eb6-a0aa-d6b2e6fc4b75"}, "df0d90d1-f48b-4eb6-a0aa-d6b2e6fc4b75": {"doc_hash": "578cd727f8934625877277d6a6bcf60a48af40db2306a33e1eb2a8118aead6f7"}, "02e25d7c-18fe-4b01-84c2-246320251797": {"doc_hash": "e59fa5427cc86a5538b6e413ef0ede878daaa93d9b5c57ed1262ab71ea348568", "ref_doc_id": "55df7199-dfb5-4d4e-8d8f-7ccd1678457e"}, "55df7199-dfb5-4d4e-8d8f-7ccd1678457e": {"doc_hash": "beab9bfce927f5422c77a6f49daa165b721744eaadd878a0c00ebe2eacad953f"}, "781dc339-d858-4c89-a1f9-46afa6c1c838": {"doc_hash": "f34cc44b06f0829deb7c270c8561a54aff995671de5b24db88c9f412b274e27b", "ref_doc_id": "670371a6-ba32-465e-b09d-b856ad588836"}, "ebdf1ad1-79e8-4189-8978-9220710d45ef": {"doc_hash": "a2ca4e5110af4200c46e39ae63378f1ee190bc9006c9af60ee187a8a1f3355b8", "ref_doc_id": "670371a6-ba32-465e-b09d-b856ad588836"}, "670371a6-ba32-465e-b09d-b856ad588836": {"doc_hash": "5921869737af8afb522e34ff4fd19670e108b7f8ba98689a52b04dd5d411f48a"}, "fa2e2347-de35-4ef5-82ae-d4c8522bed41": {"doc_hash": "2f4e524b0f0a1a9f79534239cb989f9cc3adefbe1d1de01003514d3a4a488508", "ref_doc_id": "9734b56e-f035-4853-8553-7a05c3a8e22a"}, "4c75878d-9f4c-4244-8120-d57ad7c2ae65": {"doc_hash": "db1935ec5066f88d45dd58b437598d9200f6c5b77ad2ae55cf7fbfe60a3ad64d", "ref_doc_id": "9734b56e-f035-4853-8553-7a05c3a8e22a"}, "9734b56e-f035-4853-8553-7a05c3a8e22a": {"doc_hash": "48464ea0aa4d9b015f4f0cc628abb317c9eb78956c0caef0fb3e9e970b526bb8"}, "4d97541e-d268-42c1-aea6-76f4242be1f8": {"doc_hash": "62c421572eb2ca9a5ca285dd0569ce829301acf73915f7805fd976f5cc02f56a", "ref_doc_id": "d0ad5319-88cf-4d45-920b-e5b1b4d55dcf"}, "8f85c303-6c8d-42f1-bf51-817e83a35c30": {"doc_hash": "de3220a632193774d9b0d882a4e6854cccff74b5ed684b96b95e460d835b08a0", "ref_doc_id": "d0ad5319-88cf-4d45-920b-e5b1b4d55dcf"}, "d0ad5319-88cf-4d45-920b-e5b1b4d55dcf": {"doc_hash": "fe64eb3845e9be5d232657eda4e64e985940fc7d7a6d289cec3f30657e1f3b63"}, "6b5d66f0-1114-457b-a3e3-67da1e8d6d99": {"doc_hash": "1b60fdce81f1cf9029a6730995532a9b92a4a36fb09cdaae5f8d7868fe20ed85", "ref_doc_id": "a8a8894c-2001-4641-a7fc-7b4e033c16cc"}, "abd0c3b2-9ec6-40bb-89ec-30a864369492": {"doc_hash": "12b4e26b8d96fd089aafc1469f6d1749976bfe7373ad5301731e52b7411e1fcd", "ref_doc_id": "a8a8894c-2001-4641-a7fc-7b4e033c16cc"}, "a8a8894c-2001-4641-a7fc-7b4e033c16cc": {"doc_hash": "d103299a774aeabe7a6f7ad0b79c50817ba99a3738f95fa49ac0b4f4148b6611"}, "016d6195-182e-46c6-b8a3-be732245c0e7": {"doc_hash": "7cbde696f652aa70d9f86f4aff3c175c71e3fa2aa3d96e9450dc8d37b2e8854a", "ref_doc_id": "fe8e6459-ab0c-440d-ba38-af73b34d13d1"}, "fe8e6459-ab0c-440d-ba38-af73b34d13d1": {"doc_hash": "374d280bd3df772851bed9bc6a880a965e301032be53da1c5ab2a84b96b020d8"}, "38b2c6a0-c770-4716-9062-f32e30148c7e": {"doc_hash": "721bd81da1e11e1134f29efd8ad5149949887373d1a7f1113f3bd30f1e28efd6", "ref_doc_id": "4e01b025-b557-419d-ac46-26cf780961d3"}, "29dd9225-31e0-4d76-8661-a05b73337d1c": {"doc_hash": "80b67119bbfe19064b3f2f48c0d0554146552872eb3a17ff5a55ba470db0be62", "ref_doc_id": "4e01b025-b557-419d-ac46-26cf780961d3"}, "4e01b025-b557-419d-ac46-26cf780961d3": {"doc_hash": "13231779e57f394c5db61535c1998eecc4a86b789e12db2daa569938f2be79d2"}, "9d08900e-783e-46cb-9a10-d3ba38dd11b7": {"doc_hash": "fbbca6afbf02a0fca38b618adfcd0890512a621498531b6549034ff2daf48adc", "ref_doc_id": "126443c2-698b-4747-8b05-e3b7790a77b8"}, "30765315-99d9-4c2b-9cef-575712e3dbec": {"doc_hash": "143543ea192e143ad97f6e3a6f800390033539323adcb9221e5fdba0785d853b", "ref_doc_id": "126443c2-698b-4747-8b05-e3b7790a77b8"}, "126443c2-698b-4747-8b05-e3b7790a77b8": {"doc_hash": "fa0ec804914e8c54fb1e142d7d085640d584f111d8f848a880532319181df2d6"}, "a2a83a21-c192-4650-a894-3ae1c7c43c47": {"doc_hash": "7d8890bd541d5c2d22fc5dd99d9b7677f9f449d89ab6ebcf97f42c7047d1e014", "ref_doc_id": "8a1e1e52-e76e-4cc1-889f-8aa84f7b70c3"}, "7819aa04-ab48-47be-ad02-d3509ac7c1a4": {"doc_hash": "e784e32f2014ca038df3e730ef262ec195aab19178ab02aa5641b26788596959", "ref_doc_id": "8a1e1e52-e76e-4cc1-889f-8aa84f7b70c3"}, "8a1e1e52-e76e-4cc1-889f-8aa84f7b70c3": {"doc_hash": "61df0d281b6ad9ee33d844a50124a70cae007b8de7ae954bc62b82b037833f19"}, "0a35eb35-ad0e-4b2a-a887-1ae52d0caf61": {"doc_hash": "b7bf2c9f5b29c404d40a0abcdfdf21b5be279f8b6259357cc322c1483babb87f", "ref_doc_id": "70f03fdc-17c1-4a2c-8499-fe56d2de4667"}, "548fb47c-8295-4687-86ca-eadab0daefe3": {"doc_hash": "b25791991fd1b7f66c0354767db74075d8dc4d15ee6194c3c987a6d4ef75378f", "ref_doc_id": "70f03fdc-17c1-4a2c-8499-fe56d2de4667"}, "70f03fdc-17c1-4a2c-8499-fe56d2de4667": {"doc_hash": "24be27c2414b4a5daf2ac31e1c76b9f2e98f677b597506c83775c1c057f1fab6"}, "c457b770-efbe-45ae-9abb-15f5915f50e7": {"doc_hash": "c0d235d7a73253fe7564322e77410f06faed82f921a41a37c7fc2fcceaa3489a", "ref_doc_id": "9117bb24-9114-44c6-a872-19b7b8539913"}, "e2a7ab99-f8f8-4c3f-8019-e9d46f67e496": {"doc_hash": "55eaf1ba6c745f6e7867c081ddbe9da49fee09a691487b4dc868b0c635911db2", "ref_doc_id": "9117bb24-9114-44c6-a872-19b7b8539913"}, "f68121b6-7ab1-4668-9610-b3a0322ed1a1": {"doc_hash": "7707b12f5aa3d4c4768551f0d22f3e9552956d3f2f975d77bb3e2c3cf3907863", "ref_doc_id": "9117bb24-9114-44c6-a872-19b7b8539913"}, "9117bb24-9114-44c6-a872-19b7b8539913": {"doc_hash": "6a4c6dddbd98777ba217180a37c41fe3b3bdd1aa5a4f46c6d8f67dbdc2bd1fe1"}, "9a302642-0d11-4eb8-9ce1-5c7302ddcdd3": {"doc_hash": "23fe728a2626b1e0902cf5e7c4273ba1750e1d1bb77b634520c77b3983b719d7", "ref_doc_id": "2de5941f-0a8b-42d9-ad57-2c7f696bbbbf"}, "cb62514e-a30a-443c-a871-a02a475ef5ea": {"doc_hash": "a4d13b2481050be50781625c635908c951acb6d665dbb3819e37fa0b8a91f336", "ref_doc_id": "2de5941f-0a8b-42d9-ad57-2c7f696bbbbf"}, "2de5941f-0a8b-42d9-ad57-2c7f696bbbbf": {"doc_hash": "091b5a5d46c1576ce93e813cd69f614e0224828f571014c5357d8a0dc3131003"}, "9ad3150f-a64b-414f-aabd-bc167128898d": {"doc_hash": "373bc1fc9adcbcd377e82f7ce6471bd954ee9b3e6b36dfc1be85e0fee0ea47c6", "ref_doc_id": "0b988ea1-8646-4c73-ba8e-a111123a9719"}, "3f131cd0-709c-42bb-8811-6fe27ad78d00": {"doc_hash": "1c4f0886e646bd97fad8ed75047b38ca335e107ee7d9d57252fb69713a0cee6d", "ref_doc_id": "0b988ea1-8646-4c73-ba8e-a111123a9719"}, "0b988ea1-8646-4c73-ba8e-a111123a9719": {"doc_hash": "e1b1cf6d34926485ca819a53177c69d4ba1458a50bbf2c34047d8c4b913520b6"}, "98f2f163-8bb7-4021-9a9e-fd4c87b2e1ae": {"doc_hash": "309f38556e3715fd7ac323e179ca9b3d490d2ee67f9cd96e54028d3bf70f9b27", "ref_doc_id": "a6667b95-a83c-40b9-91e6-8bd41e77f90e"}, "a4d9224b-eee6-4a07-a1d1-252dd935e981": {"doc_hash": "02f1d58aa5fa75006414c9d8a860360713ea93dd290f61d3c038616616018649", "ref_doc_id": "a6667b95-a83c-40b9-91e6-8bd41e77f90e"}, "a6667b95-a83c-40b9-91e6-8bd41e77f90e": {"doc_hash": "be1c9ac8ef36b4b2ce1381bc0c62ad7d030095fe2c56fa4565b13af0047a2c89"}, "8058d037-ec0e-4218-8911-4cd1d325fb0a": {"doc_hash": "61116a20f3a38e6c0e34e5508229846720c3203fc41d3a113ce8cf7239752a16", "ref_doc_id": "4402408b-272d-4e52-8a62-6dd7dfc8ec19"}, "bae5443b-c8a1-47a7-9068-0628106ec594": {"doc_hash": "b7594b581d1fb8c339f8958c56af969eccf62859b0b6886eed5ccc4c11abd3b0", "ref_doc_id": "4402408b-272d-4e52-8a62-6dd7dfc8ec19"}, "4402408b-272d-4e52-8a62-6dd7dfc8ec19": {"doc_hash": "f4c76a5dc657c6f4108db8ee73e14777bd6a1bf07bc47a488ddb49727725968f"}, "23105f73-d96e-4520-ba21-b824675c5639": {"doc_hash": "256abc72d2d1c4f27a57352bce73d1f9d3a18c218b22bfa79ee42d911f7bcd88", "ref_doc_id": "137bceab-370b-4526-b524-5d373b9cca23"}, "3a927d8f-e5a7-45af-895f-c8963ae0a533": {"doc_hash": "4dc7398432609bafd18d0b140ba9256635dcaf4a998973365ee66f8c7bed3766", "ref_doc_id": "137bceab-370b-4526-b524-5d373b9cca23"}, "137bceab-370b-4526-b524-5d373b9cca23": {"doc_hash": "c893d862d0c0d71b6c4aa675cd7f58863d7551aadf784302e5bd36c1f79a1a2a"}, "8abfeb21-760e-4235-b5a1-e5e0c36919d2": {"doc_hash": "f348cffd2e201165b9f94ca4a33b058cbe1370ce8a0f018f17c3d93a51dcfea4", "ref_doc_id": "433e5758-8a5a-408a-b537-6e55204f9f9b"}, "8f0045a4-502e-4c25-9e1a-8d9366e86ef5": {"doc_hash": "76e39142de73ea1918b0e856bd5dc1cfa74d03efbd8b5c3724529e1fab0d95be", "ref_doc_id": "433e5758-8a5a-408a-b537-6e55204f9f9b"}, "433e5758-8a5a-408a-b537-6e55204f9f9b": {"doc_hash": "e0021b46a2a64dc15ffc08a83f0d5ff06694ecfdc38b6972d1ec4895570d5eec"}, "0f74543a-ea51-4d04-af29-d39b1d047dd5": {"doc_hash": "e327494c9ea15954b676013b539991e3c0cb6986be32f69156938a1af77c161c", "ref_doc_id": "1bd50407-7ef1-4ae3-bafd-79cc04e3f54e"}, "1bd50407-7ef1-4ae3-bafd-79cc04e3f54e": {"doc_hash": "6a0ba227624970986e78aa78f6df3d784e86ffacd9d4b58d72450e253f39f95b"}, "9f063f5f-5659-4f67-9d1e-b9d70c0a1bb0": {"doc_hash": "4e9f0f20c7bea3d9c4b9dc65f6b4bd7da06ea4d0ca47cdb5576e2c844e45c6d8", "ref_doc_id": "10394f42-35fc-4590-956c-e2560e932aa3"}, "10394f42-35fc-4590-956c-e2560e932aa3": {"doc_hash": "3d12bb01206f17317b12cc73016ab2f63a3949af690d272d3f0ac1c80b5cfc5d"}, "16574fa1-75cf-4d52-a934-6121a89cd11b": {"doc_hash": "329ab65776f477309d6f59f47621dd8ed50c4b43d6eb1dcab06dbf5dcb633afa", "ref_doc_id": "8bf12b64-8306-4b09-b710-f3083615d607"}, "8bf12b64-8306-4b09-b710-f3083615d607": {"doc_hash": "73e91e3c8af43d351358687754c98597e9c1a67c842fba9e70fef6d2704dd759"}, "64a2026e-5108-4a9a-9a29-98ed34d3ad3f": {"doc_hash": "45f6ec257fd45cca3f4a79611fe3b35d406684fd491611bc107f5bf7f6cee900", "ref_doc_id": "73f36a54-c93a-40a6-8dc5-20fff6b4d625"}, "73f36a54-c93a-40a6-8dc5-20fff6b4d625": {"doc_hash": "0a327a7f28094dce1f0d443c10b996257f277cbd84961c5d13ed22c3c40707b0"}, "481f8cfd-84c9-4318-80b0-9fb753817978": {"doc_hash": "2ee766a8083d1ea67c2496449c32fbd3f022332c67ffdd7e4bcae67a931f0b1f", "ref_doc_id": "6611b480-b8ae-47d7-a786-df17580de002"}, "6611b480-b8ae-47d7-a786-df17580de002": {"doc_hash": "4342fb24b1981c9996e4a124370ca02762bd148cb1bb5fd4eb81e82baad08263"}, "b3a76d4c-a414-4ac9-92f2-edae53fdd0c7": {"doc_hash": "8ceb781ee0b390bf0fa8e8c3671e7a8b63d034015160e31d9172e6653173b477", "ref_doc_id": "88314352-f86d-4ab3-95ce-dd5ce9d68e21"}, "88314352-f86d-4ab3-95ce-dd5ce9d68e21": {"doc_hash": "ed4a8e5dc778c55d6fde8eedc487b7a7da57d73abe3f7e300dc58eb68d06cc4e"}, "627f12ce-a0b4-47bd-8794-89b16c8be51d": {"doc_hash": "c8e0efc9f52dd07aa1f6a5c9b84d0e51539cc08308f9dcbdf17ea8d44c7c6030", "ref_doc_id": "18f7632e-b5f7-440f-b068-c6dbbf3e87fb"}, "18f7632e-b5f7-440f-b068-c6dbbf3e87fb": {"doc_hash": "f8f7079d9bd43caa2b68ae9a79a1c4ea7d2f48c312d14c5c6edc7ef319e9f003"}, "4a4c9101-c64e-48c3-9332-7e09aaafb852": {"doc_hash": "b5e2fc8c5f19551ea663dbface1c36a65e9b5ef6b70f9b100ec12025ca3efc13", "ref_doc_id": "6b70a31d-f201-49e9-89dd-c5569c06e4ad"}, "6b70a31d-f201-49e9-89dd-c5569c06e4ad": {"doc_hash": "71251ba9ba5bf77f19626e665a0818e53ac2ea2b0720267cae7e9fe6f88b22c3"}, "2e9afe7a-1103-4ed9-ab8e-326d03f11817": {"doc_hash": "35e0cd77485cdaf89416e0c4c8a84864e0fe817bb0c68287a47e1b942c3d06c7", "ref_doc_id": "59855c4f-335d-4391-9e83-8a4acfc0bd19"}, "59855c4f-335d-4391-9e83-8a4acfc0bd19": {"doc_hash": "08fb6ae445565363b5df23e73f22a8352ac3c2a06e5a894b8f2fa57bf9b83cbf"}, "910a5a03-ec10-4792-aefe-814c6fdd3590": {"doc_hash": "ff716c1e06b8f737486bbac8ad4c268379b845b03cc8b1d18293f38c133f7d74", "ref_doc_id": "aa5625ba-d371-46fd-9ee0-6f5b1a0ab90a"}, "aa5625ba-d371-46fd-9ee0-6f5b1a0ab90a": {"doc_hash": "ff64ac874e6be9da6deb060d35101619d6b8d77dd87350cc7daec2b5b53e2a0d"}, "3b413ecf-433e-47ab-8f80-3a9b97c4eabb": {"doc_hash": "27911f6dfd9e4f0ddb45c1391fd5e6da17cacaf224dd215156246d7214b4d381", "ref_doc_id": "a1749e84-25e2-45b7-bb03-49c37dd49bb1"}, "a1749e84-25e2-45b7-bb03-49c37dd49bb1": {"doc_hash": "61b053cb0844610661b5857fe6c09a6f574df3a1e631daf5ca26ab568fde21b9"}, "c4d832b3-2758-4507-98c7-a31f99e7aeb0": {"doc_hash": "7f306cdf5bf4bf64de5faa50acccaa7625f4cb4692aa9fe55c9c6910214b5ee8", "ref_doc_id": "1f19ace0-9a90-47be-95ff-23ec376c9d59"}, "1f19ace0-9a90-47be-95ff-23ec376c9d59": {"doc_hash": "3d43ded0795ee8aef974ed27c31024efd5cb75d7a7e92789a5fd294fe2b693b8"}, "55d66bad-b7e7-48af-990b-672e99a74a7f": {"doc_hash": "f27eb725442dce2f7fe4f86d85004ba2f925812a3219043d205f329cce70abc6", "ref_doc_id": "1a6ffbce-b766-4645-a3f1-9ff8e5f099fe"}, "1a6ffbce-b766-4645-a3f1-9ff8e5f099fe": {"doc_hash": "4962fb2ea216bd1c636a4f5b41f1fec78cf078712832e4fbfe30ec0d01013134"}, "e6d86c7a-dfdf-4f59-9ee0-06a4e9013df4": {"doc_hash": "472bb9b92d9ec72806a61d5428fc447789dfc1ba32e08ba404ee5d274a7bce50", "ref_doc_id": "f380c042-fe55-4440-a2f2-542598f35cb6"}, "f380c042-fe55-4440-a2f2-542598f35cb6": {"doc_hash": "8ac5fa28163751d92a9b4d0f49fa135140daec47185396a40fcc37ba7ce852d1"}, "23a4432a-69ca-4a2c-8e00-30c57ba15c15": {"doc_hash": "2fb95b551244adb4a2af58e2cd54d7eb0facb31e63aa61d41b835fcbcdc6a938", "ref_doc_id": "89e09443-5e2c-4a1a-8bce-7316e006d6d2"}, "89e09443-5e2c-4a1a-8bce-7316e006d6d2": {"doc_hash": "92cdb7f55ca6954243eadd6f08bcfa88e781d672b3f6f11f5f086861e1f4486f"}, "c6a96fdf-1139-4482-9c9a-de48a1fdce78": {"doc_hash": "9e27ca9f56d63c11819649353cae1079fda2ccdd7046e30266503442a9404294", "ref_doc_id": "50344488-04f3-4bb9-a752-2466d79f196f"}, "50344488-04f3-4bb9-a752-2466d79f196f": {"doc_hash": "45cbe76478c5e2e86e1e7988eb26d1fbfae30fcbae1f1e9577526da8512ec52a"}, "b3d31cc8-1043-4d2e-a34b-5be6865b43a6": {"doc_hash": "00718a334b2d1bc9886664c2b87da10d832fb2d8d5346f13885949ba6e7b1342", "ref_doc_id": "4b83be5c-3d59-46f1-b11a-98c359a78ed6"}, "4b83be5c-3d59-46f1-b11a-98c359a78ed6": {"doc_hash": "399a6b0b97f2858a96dba79f48e820b144de91b347dc19e27eb0b70374ad5413"}, "016d2eae-5d6e-4e92-afa5-67a2de30d57b": {"doc_hash": "0d752f482a81e1deb7831257da5847ad647f59421292c53c6ff6c8378dc8ab76", "ref_doc_id": "c76da34e-7ea9-4e1c-8701-a5a4b2c4d549"}, "c76da34e-7ea9-4e1c-8701-a5a4b2c4d549": {"doc_hash": "caa401658fbb66fefdb3f728fd704ba62fe285a7e72de27411be53359b39bc72"}, "8c24cc1e-9370-40ae-9f15-0a3db1e3c547": {"doc_hash": "dd9e41356e01fc1f61b413ec3527ad189d295e548fceb042072a40b6c84e034a", "ref_doc_id": "cf0e6cac-6adc-4175-95a9-72ce24cf8188"}, "cf0e6cac-6adc-4175-95a9-72ce24cf8188": {"doc_hash": "c9d4f1a129a496d77d03a8c4acda261ae06f6d5c9b53b3f91c7937f21bba78c2"}, "830ecf92-5635-4028-8af3-2e8c6db0230d": {"doc_hash": "2f4e04157870401431d07ff4b7c3713ae2e237c02e41ee80d1513afc67e55b77", "ref_doc_id": "460f22cc-661b-4909-9d3c-4ae719a99a5a"}, "460f22cc-661b-4909-9d3c-4ae719a99a5a": {"doc_hash": "916c67ad908bf30c2eb3cd88143f58c6090ede01180fa4ea3a6b385ceaa622be"}, "6e6be80d-75a0-4c44-a907-46129ad9bb48": {"doc_hash": "413d2f246954c590c3cf27a9598379252b18bbeb925a9a2fb14bf81c92d48a9f", "ref_doc_id": "b5e09ec4-cc9f-43c3-a206-317f3aac3d01"}, "b5e09ec4-cc9f-43c3-a206-317f3aac3d01": {"doc_hash": "11243fa7b1dd5dcd63bca88d48785d19ed4ee5d7b0cd2072f8f19c33a3c240d1"}, "5d5c1f22-d098-4f23-a152-af2284dd3652": {"doc_hash": "f9ee05868183912a9addc884772b000cb3865057d83b6d3cf26836ecebd21def", "ref_doc_id": "c1052afc-ed3f-431d-867a-2a5d652d3d1f"}, "c1052afc-ed3f-431d-867a-2a5d652d3d1f": {"doc_hash": "d648d0d46dcb531e6b10969c2ebc3f1f3e4f138f3145a801a241884112d55411"}, "62d84c78-c987-464d-827c-584ff3be00ba": {"doc_hash": "5c1905c8eb245001cd465c09e78e27e900a2f1f72e087201626b84d6d23cdf26", "ref_doc_id": "54695d38-e8eb-46c3-86c9-f4f91f28228a"}, "54695d38-e8eb-46c3-86c9-f4f91f28228a": {"doc_hash": "d6b3ab85bdfc76dbb606f106da11ae7f18674683aba74a7801e2c1d9803ad094"}, "1c821ebd-3e87-45d4-ba54-306443b336d5": {"doc_hash": "862812e5d396cf6a1b114cf5cca7e2da99b2725fc7294826eb23ef6490c41d3b", "ref_doc_id": "8f922c41-c0c3-4728-9a86-7aa0aebd10fe"}, "8f922c41-c0c3-4728-9a86-7aa0aebd10fe": {"doc_hash": "493a147f1b1d7c806e96b4b36200b62e704ef7e8672adcf58a56cb7b4d55f9ab"}, "bc9356ca-2520-4c59-9026-2f398569de33": {"doc_hash": "31f96dc4cfe674d15bb293280b0644231a2bb67a9389c45737b657ee3978a3ea", "ref_doc_id": "d2eff9e8-03e0-4a2a-aa6f-1fb967333d5a"}, "d2eff9e8-03e0-4a2a-aa6f-1fb967333d5a": {"doc_hash": "6af3a356e02ffdcce00b5d8fcfd535026cf2983c20c04a47c1ed85bdc9357a81"}, "e7778f03-a372-4606-9308-63b985488d92": {"doc_hash": "3466c8c90dd04eab102d26e6c56b26b0504f319061fc9f922c18870a547fa216", "ref_doc_id": "3ff27585-7985-406e-9aa2-fc9bea23307c"}, "3ff27585-7985-406e-9aa2-fc9bea23307c": {"doc_hash": "eb8a57b7d69b3a4f7a07e360ae1cfb6bcd8f7028e2935488144299d520bac13f"}, "d3667365-403f-49e6-b8cd-1e39ccc56c71": {"doc_hash": "225638a1ba6adb4722c97cac5b3efa1d85e3691cc856e0d309032ff631c8328c", "ref_doc_id": "1395a7f2-4e6c-4dc8-beab-da74aef3ee62"}, "1395a7f2-4e6c-4dc8-beab-da74aef3ee62": {"doc_hash": "a1e09dff08802319078bd7132df424f2ab0be4b4d79ec9551c0c6d482644cad3"}, "ae2cf901-51d0-45fe-86b1-d2a99802cfcb": {"doc_hash": "bcb27e397a5926f96328d4a25d140cfb3e6f73dfd485e8b917e74687087d5a10", "ref_doc_id": "3e3044ce-1509-41c5-a557-60b20de22061"}, "3e3044ce-1509-41c5-a557-60b20de22061": {"doc_hash": "47dd49d271eac562ea09f7bffaf8b73460d27be9a031ebc252a6b4577d4b9326"}, "53945ba5-c990-4e7e-8f22-88d7a59146db": {"doc_hash": "b4bfa0edf67ed7189b2fed8be8490f34bebe9dfd8b6d15448dd694322db2661f", "ref_doc_id": "8c112790-838e-4736-af6a-4623feac1257"}, "8c112790-838e-4736-af6a-4623feac1257": {"doc_hash": "22c616e5a3270387974b545d38d69a978f7695d3e0aacf6024468efe072b7a4d"}, "79107f28-55a2-4e84-ac14-749e8cea3e43": {"doc_hash": "6a869b931df2a127d964599dac38b30b88bdb0e260c622be9dc90398fe6ada99", "ref_doc_id": "4db5aff1-480a-4e2d-983f-d6f8ba002d4b"}, "4db5aff1-480a-4e2d-983f-d6f8ba002d4b": {"doc_hash": "d1d5ef2e058dec3748f3790551029537d64cfbf94cb987dca94822f509cab2d4"}, "b82337a6-389c-4e03-b48c-527f43ecf23d": {"doc_hash": "c3b84ce74a64dbef0fa3d4ca0bf4f9ac6592e538844fb722fdde68321beb9ea5", "ref_doc_id": "10bb1224-58c2-45c6-aca1-2d2278d263fd"}, "10bb1224-58c2-45c6-aca1-2d2278d263fd": {"doc_hash": "1bfe8ad4189a13f681f68b5571879f643d23d5bcda559bfcbad45f8b56515af5"}, "01eb6ed3-097a-4bdc-9c5d-b971ccb866d7": {"doc_hash": "a27119c5200bb221086d68e452c2815574a079494bc00616b35ff980d3be7a10", "ref_doc_id": "38261782-6ceb-4335-afee-4d2b4d129b9c"}, "38261782-6ceb-4335-afee-4d2b4d129b9c": {"doc_hash": "d6acb977ff2e4eabedd03717ae40369d7a51b4392ffebf52e6427956a9bd9dc1"}, "3bac20e3-6bd5-47bb-add6-d0bf64b19638": {"doc_hash": "306b1b8da64481b4118dc7f92229b7ffe0396c2a7b09fba236a62381836ea8e2", "ref_doc_id": "9168f233-dae9-45ad-8abe-93abed1b5fe7"}, "9168f233-dae9-45ad-8abe-93abed1b5fe7": {"doc_hash": "d5f136846d9815885f03bf387eb9ebb51971a397c4c110c3dd70617e9f81bffa"}, "caf48bca-9fb5-4344-acec-81a0d6753b45": {"doc_hash": "2c61336db6a57c578beeea937e15e30372744f492511a921889d8280be91a66f", "ref_doc_id": "eac62f56-be14-4c81-b14e-2d9684f1db5a"}, "eac62f56-be14-4c81-b14e-2d9684f1db5a": {"doc_hash": "14f1bc2d71d23954aa2b571c039461fb20efe7e1eaa9602591b82c54f3d805a9"}, "b7ca8406-a7e7-4eb4-b89c-d97e37c3a6f7": {"doc_hash": "2570864dc38b53ce53370445be0a0cdeff136c26bc79fc1d8d770cb37ec4c10a", "ref_doc_id": "e72b2881-ebb5-4147-b7cd-51297ad6551f"}, "e72b2881-ebb5-4147-b7cd-51297ad6551f": {"doc_hash": "edfe852215f5dd9abc43eb239813c89c4d8468aac06ee0c37300c6cbbaf89e0b"}, "8e2464ca-053c-4e70-9072-3a979fc9790d": {"doc_hash": "8976715b6da12695b49c061a1fdcea394c0fd7b02fdfe6109463ba0417d05ca0", "ref_doc_id": "c4636b61-d9fb-4cf4-ada9-d3d3271c618c"}, "c4636b61-d9fb-4cf4-ada9-d3d3271c618c": {"doc_hash": "e07b749bdbd50865245d2b2ec4cb116d401adcf643c5e939356d11d0c857da87"}, "8b03040e-e89d-4226-8090-46f285a22ba8": {"doc_hash": "45e7ca2236a96ed7a2a2e3aba35adb6ba1b87836cfe99a9dbb82329631a83044", "ref_doc_id": "ea1fdca2-572c-48a9-bfc6-3009e9585843"}, "ea1fdca2-572c-48a9-bfc6-3009e9585843": {"doc_hash": "7f1c55f66e86c9cf00437962fa6aa055cb4aaaae9951aa4b25e152575ff5e83f"}, "2b6e40be-dd63-4724-a881-eccfa637ac42": {"doc_hash": "1c395d0399d72c08f48005880ad27464214704d47a52e2ba4b53922ba0c23dda", "ref_doc_id": "be4dbe9e-06af-4285-8ccb-79fe623ef33c"}, "be4dbe9e-06af-4285-8ccb-79fe623ef33c": {"doc_hash": "d4c92c9ac2164007e9aa21b49de2554d200cee6de3ac93e96e7365edb8906b3e"}, "46f58001-b5f5-40e7-bf3b-7899e55c94ea": {"doc_hash": "27797f714b272d6134dd6fc1a408f1ccd3db321a9d2354c25d66454c56b7ab1d", "ref_doc_id": "4551556a-98d1-44ad-8536-cf6a5eba0449"}, "4551556a-98d1-44ad-8536-cf6a5eba0449": {"doc_hash": "236bc3cd30024e034f6f9b4318493aff3134450cb3b834bf78598dc432293bd7"}, "e239097c-ba5a-4cc2-852b-a68892ac94a1": {"doc_hash": "02a7ac2be0eafa52aa1e1ea20c6865a32f5863449ec1c47d62558bb8fd51b4a0", "ref_doc_id": "f856d32b-03f1-4c57-bf34-ce38624f506f"}, "f856d32b-03f1-4c57-bf34-ce38624f506f": {"doc_hash": "91a8cb308e51e8a267d25251d4f7ec36b3348e432c84094ad1be04f1fa9ea681"}, "b13249ce-a164-448b-9131-b54a2f2032d2": {"doc_hash": "ea53ea421482f9fac32d27781eda46dc4c6699487cfe893f54de8874ab41da03", "ref_doc_id": "50783030-ebb0-4fdf-bd12-6d558fb91473"}, "50783030-ebb0-4fdf-bd12-6d558fb91473": {"doc_hash": "45933b8b95a092164c99f860e984016d8ee1e60dccc6cbfebe9588ae9542f3b7"}, "b150701e-a2c4-4ddd-8f20-142efb3a9e3e": {"doc_hash": "91ee1c6ec76b26b4baea5009498e2d54a62ea3bf57c544044c53a4da45abbf79", "ref_doc_id": "ebce0090-8e32-44b6-a16b-3c35a7a6f517"}, "ebce0090-8e32-44b6-a16b-3c35a7a6f517": {"doc_hash": "f390d9ef88475986ee110a7e4f91e25d41d6a7216b6e734e6e0fd3a2a222b433"}, "ec029116-f1b8-45fb-997c-f4e2f7e82e92": {"doc_hash": "fd9e91a236e301008e419aee25c46508546e9d39385d0cc9d7545e2f26a43020", "ref_doc_id": "df38730e-0a34-49ad-957c-bd2607f80521"}, "df38730e-0a34-49ad-957c-bd2607f80521": {"doc_hash": "1eba7f6faf74563e20edea3171309c41efeb9a3883114d8798fdeea6e736f76b"}, "7e92c5e1-e311-4567-848e-17ab35c6cfd5": {"doc_hash": "d4c305a4c4ae19196a5e6f637e2d6d4d1b71634346f7809d0ea0fb8f8f229290", "ref_doc_id": "044ec92c-448c-4ed7-8df9-e76b97075c9e"}, "044ec92c-448c-4ed7-8df9-e76b97075c9e": {"doc_hash": "dd31ebe718a899eeaca11009d1e769b0399fc43e6e11c5fed2a8acc4d405f64c"}, "afd60cdc-ccec-488d-95ab-f990c8584abc": {"doc_hash": "aa1f37af57555c21226e2577c89f11ec990f58ead3e302958e27c35a26a01aeb", "ref_doc_id": "07b23a38-40af-4c4d-9388-ca2720904281"}, "07b23a38-40af-4c4d-9388-ca2720904281": {"doc_hash": "3d7e09588952aeaf8649b1e49050e4bc58cd05415579d97399c63bd3e89a6ca4"}, "c7e9b39a-59e1-4f81-9a4d-0281710a36f7": {"doc_hash": "dc84c29d9a2cd6aaad72482928fb20fbc75994706258a26b33bc9ddcf263c074", "ref_doc_id": "11af0922-d576-4b5e-ae2f-c3549607116d"}, "11af0922-d576-4b5e-ae2f-c3549607116d": {"doc_hash": "13a2e570b2b2efebe172a9e8587a6119ab5dba85f72f175802f95eeebb7be1c8"}, "f6ad4367-1725-4063-a121-8c10644a3577": {"doc_hash": "1521f90c32561ad5f1012e1cb05570c842c3d345779b16ca7e3a2fff65f3c1ca", "ref_doc_id": "918e1af8-855c-43c8-857c-b57f2913d517"}, "918e1af8-855c-43c8-857c-b57f2913d517": {"doc_hash": "6394f42f1b0531e4c06ddb3680cda4623a37d34132e680690d1e42f8afee0755"}, "00d33e93-b2f7-4a35-92b0-e2bbe39e0de2": {"doc_hash": "084fc6e186a3a12454adfff17034211bc756fbdcda6837cc92c086be2433a3df", "ref_doc_id": "940e8cf1-face-45d4-8940-0487fac93d23"}, "940e8cf1-face-45d4-8940-0487fac93d23": {"doc_hash": "be6a7299cb214ce9cc1e55442de557cb8e785f5be84c33d189f84999249eb094"}, "df954e97-b5b5-40e3-ad12-437e0d73a9f0": {"doc_hash": "e086e452444782cca3751e4f79b64cd131843e41bc505f8965fa406fc504c537", "ref_doc_id": "89fed957-f366-4e31-a87a-4599a8780f60"}, "89fed957-f366-4e31-a87a-4599a8780f60": {"doc_hash": "264d20e520f7b41cdc7cab03e5634e89067085f683f29a72d1b3b3d69302b3ac"}, "08a1b59e-b813-4a88-ac48-bb413953c1d6": {"doc_hash": "6be70f6191f5765784773de1bdc5a63411c7884f3813b19c26d6afc065456a8c", "ref_doc_id": "b91e099a-3135-4d70-be08-23bd1dd5c9e9"}, "b91e099a-3135-4d70-be08-23bd1dd5c9e9": {"doc_hash": "0daa6a40b06e4780eb0a733844b38cfe055312432fc31eed0aa2042811830486"}, "c131b625-eb03-4754-be81-5c6bd75f1905": {"doc_hash": "0e256633a7d884b465d9f95254770785d00ce72c1b4445597dd3b015e96466a9", "ref_doc_id": "0170703b-d0c4-4348-ba91-ca1efc8a9622"}, "0170703b-d0c4-4348-ba91-ca1efc8a9622": {"doc_hash": "e33da21bf0211e1e233cb7d91e213f855f6216ce4ede85f68681bfe78ca65ccf"}, "ed3a5288-7470-4209-ac97-1fb2e176d581": {"doc_hash": "65ef88c67958cf0090d69c4660b4858c850221fb763fddef0302d1bab251dffb", "ref_doc_id": "469753a1-9fc5-49ec-86cc-738ad17c0a6a"}, "469753a1-9fc5-49ec-86cc-738ad17c0a6a": {"doc_hash": "50bd04f532d535bd49e25557fb49dd98cf89acf8a4136f7b09d82306b0228834"}, "7b18d53d-90dd-4b3b-ad3c-fb606afd12aa": {"doc_hash": "160a95376ecf4179907dbee5ea13b23b739d9ee8b094e7c042551d165b10e23b", "ref_doc_id": "8013ac9d-3081-448f-b2de-e97e88658bf1"}, "8013ac9d-3081-448f-b2de-e97e88658bf1": {"doc_hash": "18b80cdf2ce59fbced8d316bb389b815b7b4b7fe8d8e9455cd7318eb95842f08"}, "d7c298f1-0594-4b4d-bee9-a5eebe80a1a9": {"doc_hash": "2cedad72f6c4eab3c84dc7f5dcce5b03092f3e24a589595e735873f147353b5a", "ref_doc_id": "5c0da684-1f8d-4b34-81fb-130444e5b610"}, "5c0da684-1f8d-4b34-81fb-130444e5b610": {"doc_hash": "dab501fe6fd1bdfab0f9be0d8e91b2ae399cdbb24a6cf1f31acae9730ebf0dba"}, "dea8506f-66df-4cbf-8c4f-a6bc88e5911b": {"doc_hash": "e0d67f3da4fbacf83e06a33b883227f5382f369a420dad1ea9cfd96e51cf89ea", "ref_doc_id": "e08ff3f0-c1b3-439a-b235-201483086321"}, "e08ff3f0-c1b3-439a-b235-201483086321": {"doc_hash": "3e76246277b7629ce9b7f3f790e629cedfc249afe59808ad369ac4f8d8059adb"}, "a4c39a4f-5bdd-4fc6-8c0c-79c825f80234": {"doc_hash": "63edff5ccc46dec156c2494ffcdd7e71b86b6999f1f1efd5aa348740f158c2b2", "ref_doc_id": "919413f3-4b34-4115-a4b7-205cb2b230a3"}, "919413f3-4b34-4115-a4b7-205cb2b230a3": {"doc_hash": "ab8a82f125683f2e96cd6991e1fd6bf181d96bceab3e788405ca3640070c2153"}, "75c25815-2ee1-4999-aef0-12aa2ad234e0": {"doc_hash": "22d10e0b3815f10a6960d42a2c71d1ae5083054fa1113f942fe8457de4685455", "ref_doc_id": "69643f39-218c-47ce-9b8c-687714a406f0"}, "69643f39-218c-47ce-9b8c-687714a406f0": {"doc_hash": "b36c1ec23a41bae8ad9b5e57f9a1de93277112b54d85c1dcefe4393376b8c6ba"}, "070bbedb-7b70-4e13-8d6e-8f645940f1be": {"doc_hash": "f4bd1cf4f0d6bfe7c1d762518bb38e3edf2239630306b0a1b12970476b05c6f1", "ref_doc_id": "29e5951b-e72b-4e48-9f59-4a26a771fff8"}, "29e5951b-e72b-4e48-9f59-4a26a771fff8": {"doc_hash": "ee9a9e54e4852ef50133e813872d05324e60828a8b5f653fd08590ec9ce011e5"}, "1e6c31e0-91be-4e24-894a-17be19b78f89": {"doc_hash": "688892272fc47a8ffde611bbc65313498205eafd484bca7e1acfd56f8b240ff6", "ref_doc_id": "9716e860-dcb6-4d91-8d87-efed44460d97"}, "9716e860-dcb6-4d91-8d87-efed44460d97": {"doc_hash": "0dc3df8e87316f7979b9e2637156f57500c2354a61baf5696191a8edaf840f6d"}, "7c3f92c6-8ae5-48ab-8422-fba966069999": {"doc_hash": "02e5db73cedde2ff9e625457da98031d5ad3713e2d307de376268ce4279afdc7", "ref_doc_id": "b5a3587a-5387-4166-9797-9d41b326e718"}, "b5a3587a-5387-4166-9797-9d41b326e718": {"doc_hash": "63cb58f9b93ba591b37ef8463d15d49f67ba8bef29b36a23d2c37e0b9d55c910"}, "1c710b36-8375-4c23-8b0f-1a35d58d6a7b": {"doc_hash": "3ce87673a853a540df297e5bb28a780f40d030dd74645d6cc1afdceea5e5e8bb", "ref_doc_id": "a59e102e-39b0-4f02-b623-cc445c9b5682"}, "a59e102e-39b0-4f02-b623-cc445c9b5682": {"doc_hash": "5fcbba9541ed5331f0b820c96ee5381f578331975160900304ec17dd1008b8eb"}, "3891bbc1-d439-46ca-8bd7-7806173cd1eb": {"doc_hash": "607a31d23a9a7f4eeb238ec5a918162b5e29a92a9873f78d4c481dbc82b61bff", "ref_doc_id": "2a3403e5-e127-4309-8343-011bbcdc17a5"}, "2a3403e5-e127-4309-8343-011bbcdc17a5": {"doc_hash": "17add210fe7518300ddce736bc0b1fd90b475e79cd3aeb15b4d871c4165b819f"}, "fcf6de11-bbb3-4a3c-991e-4665156206e4": {"doc_hash": "77e6519590710049a7e978d907e091826829b07aa64eb8cebb36ad9c6a82b817", "ref_doc_id": "f6937158-68c5-423d-95ed-7863f1a58a31"}, "f6937158-68c5-423d-95ed-7863f1a58a31": {"doc_hash": "a4327d1775eafc498581b564bd332b95a94f9deb72e5ab0c68de924633b0c65e"}, "2be2d239-3829-4fb9-bf6b-c39a23648f51": {"doc_hash": "a07a6855cd89341b5bed93c1d192a31e10246ab7ce6ee6625e88151e370ad0d1", "ref_doc_id": "4a0779cc-03bb-4408-bc8e-7975080c96b3"}, "4a0779cc-03bb-4408-bc8e-7975080c96b3": {"doc_hash": "5e9d18e4bbe7e455994ebff0b3182a247ccea7c1ef5c74be4fe96dcbff34ab7f"}, "37d7e496-4d67-431e-ad6c-9fe9403f33c4": {"doc_hash": "746f1e6b2ec7fdac74fda6adedf17f0380a62d8b07229127d6e42d2b493936cf", "ref_doc_id": "48ca6ba7-3608-4441-8971-25995fdabfad"}, "48ca6ba7-3608-4441-8971-25995fdabfad": {"doc_hash": "5aaafc126acb4e0e43432a8ab5615ee5f5fdd2462da38574232bfe7726e4f115"}, "23de831c-04d9-4fc4-9286-8d96091b38bf": {"doc_hash": "f086a131fec11a9def7b4d64ffa388bd645f23927674212be46f5b0fffaaaf58", "ref_doc_id": "c8e7225b-a4fd-4e11-9b8a-86b15763edf1"}, "c8e7225b-a4fd-4e11-9b8a-86b15763edf1": {"doc_hash": "c6348dc71ccee951f015a9b9485140cc15eb1a50dbb9fc92c595228fe4ccc539"}, "2280c4c6-642f-477d-8f5c-64cfc8dba4c5": {"doc_hash": "26580bb4812ce919316c63d6978318a705aca9a3a591657e78a6e24cfcaeceb4", "ref_doc_id": "6bbc7683-bd13-4f04-b2a4-b5de187a74dc"}, "6bbc7683-bd13-4f04-b2a4-b5de187a74dc": {"doc_hash": "7694f3d059fc38b11ee913077cc967c6833384c273e37c3c708e385d9d2f61ab"}, "60e41624-77e5-428b-ae75-5817f76da9b6": {"doc_hash": "6e099007fcf1f1349148ee1925476b22d51161252e224035bdf0cbb53dcb9a81", "ref_doc_id": "34fef496-1ca7-4b28-9953-c02ede808d32"}, "34fef496-1ca7-4b28-9953-c02ede808d32": {"doc_hash": "3001a894f7f06f92dc64ea2818d3ae73e5b33abed0207d11ae1a0410e0b1416e"}, "20c7886e-5de2-4ccb-9c32-a0da6786fb45": {"doc_hash": "605f062aab8be138b6bb68b604711c9769d014d548aff72c09c70c28c1d28de6", "ref_doc_id": "87c648e6-47c1-4b86-b905-7508e0715706"}, "87c648e6-47c1-4b86-b905-7508e0715706": {"doc_hash": "0f6ed5fe2a73e226fcb9099edece7a2815105fc801248fd3143136eeda5e5205"}, "335875ad-a325-4ab4-a8e5-31626ffaae75": {"doc_hash": "534866f890f7a45848d9023e204b0584e1ed6c3e5cb56c7cf4112533c0f1b5c5", "ref_doc_id": "320e192a-1134-40d2-b7ed-e3b1891e95bd"}, "320e192a-1134-40d2-b7ed-e3b1891e95bd": {"doc_hash": "e05ee610465dfdb1178fbe206d3840213deddbe079473c1e88129f3c6ec797a1"}, "f3ba2599-94e6-4369-91d6-95b8fbdf1b64": {"doc_hash": "dcb13e0e3f4d71924a7a8552f53fa6860a84613b7e80ae10204fb43f0269eebe", "ref_doc_id": "822b294d-bfba-42f9-bcc2-46d3e97eb8aa"}, "822b294d-bfba-42f9-bcc2-46d3e97eb8aa": {"doc_hash": "1db4d921b19fd6e2f0b8722af6468ed644fb64e6cb1fd1a79909ee60383c924e"}, "9d744d44-68af-4e4c-8669-35e1d4119f6b": {"doc_hash": "09505d2b96df017ba4a36d195464dfc0250c9fd873655e9029066964c252be82", "ref_doc_id": "5dbacaa6-59be-4a89-8257-f82a4f0cbd52"}, "5dbacaa6-59be-4a89-8257-f82a4f0cbd52": {"doc_hash": "3d8b9d2ca882c3c8348198b81f62f68277adba6bb5e86b535d1c0a0d6ecf3504"}, "6e5436fc-7997-4412-a418-f7a0a9009fc4": {"doc_hash": "839560eb4619cd6abb59be34d08d0cb48717a867794fdbbf05dad445674fad9b", "ref_doc_id": "c7ade4a1-4dae-4828-9e2d-a4abadb3ad80"}, "c7ade4a1-4dae-4828-9e2d-a4abadb3ad80": {"doc_hash": "a583ede48e90aa08824284ccd92e41ab01d26d52207524e23b01a33431641483"}, "b65302d3-2037-41d3-bccf-dc3d7e002445": {"doc_hash": "8aa18f00d3eb0468a05a9c82cc12245d11776b5a18aaa7c1c4f71eed6f5f29a9", "ref_doc_id": "738a1616-55e1-4fc4-917c-f00c33851467"}, "738a1616-55e1-4fc4-917c-f00c33851467": {"doc_hash": "8d7f0ff2fdc15823c66d8619654baa0d6c6093b4e061a49f01edfaacd686c4e9"}, "d448005f-4628-4aba-b014-5cf6cc4d4bbb": {"doc_hash": "d7a1c256c23d1c29a6fae9f82b9bbb38d964a0f77a8369dc9c82a4bd64269946", "ref_doc_id": "a2406327-a05c-43ab-a523-b94b71dfb8e8"}, "a2406327-a05c-43ab-a523-b94b71dfb8e8": {"doc_hash": "363440d3703c5d5669ca8887ba7b0805da3b51742879002d526f71d847c21470"}, "ea670127-b831-478e-8089-691603dc8bbc": {"doc_hash": "48947886b1047328241acb97781074b972e02af5b5b9507cc5fdeeff651d20fc", "ref_doc_id": "459cbe4f-864b-4ee6-84e4-9d5528f0ab2b"}, "459cbe4f-864b-4ee6-84e4-9d5528f0ab2b": {"doc_hash": "4427d500aad71489f2c3afead903767b87388df1b85a32e888f39431e09cc35e"}, "18254b7b-c554-4f13-ad9f-e8fdf4c4cc78": {"doc_hash": "a6ba9f053741d4320c6a62efba8e90f27b117543888cefb79b6c9edd49dabe88", "ref_doc_id": "96e64037-016b-434b-86d3-50909c995059"}, "96e64037-016b-434b-86d3-50909c995059": {"doc_hash": "b0441894fdeeb948a3c137be6d01523addb909866e32054a8adbf4c36cc68766"}, "d15626c3-9419-4cc3-9433-91bfdc6f0b3b": {"doc_hash": "9cab26da48500ed869aadd326586c495ac826f1e4f2a5566622082cfeebe8f10", "ref_doc_id": "ede9cdd6-df47-4547-a6a8-9dc311207c26"}, "ede9cdd6-df47-4547-a6a8-9dc311207c26": {"doc_hash": "27d4c930088b8a6aacccb03c6083fddcdd86a0e46a9ae34eba0306f34f76c55a"}, "9480335b-cdb1-4f51-be2e-bcb0a5c20329": {"doc_hash": "7b50f4bf665ac298e25e76b11920f3f53fe0f6e5b9f0bb8e99534ded6fe0a8b0", "ref_doc_id": "34cc02b7-aba4-42a7-a0f4-b5f8d795f066"}, "34cc02b7-aba4-42a7-a0f4-b5f8d795f066": {"doc_hash": "a7705e196b833bd516a8437fba49d90c1295fa7a9c1cb75b1d671991925c5ab5"}, "106200a2-0389-4779-900f-293f1b1d6816": {"doc_hash": "0934d61ac198de12459c1c7473b68f8e33dd6e155ab912005c6e429dd012ea3b", "ref_doc_id": "13d67913-a837-4132-a899-9806a0dd2e28"}, "13d67913-a837-4132-a899-9806a0dd2e28": {"doc_hash": "fec8a7d4b47c02244fa3e5dcf40913a087264c3737ff28fd74595b05292441ce"}, "d66ca358-ebec-4061-89e4-50d8d8c795d3": {"doc_hash": "f52bc83dab9168d956497f95a5cda84a385af02a11ae591b0d7c5aaf4a0c3653", "ref_doc_id": "024cee3e-501a-4949-8819-ba8ee5c71dd3"}, "024cee3e-501a-4949-8819-ba8ee5c71dd3": {"doc_hash": "100ec3cb425ddc2351400cf8537079a499f9d3e7c8889fb195b25438bb25f634"}, "be3f978b-d76e-4f49-99f2-98840691b73a": {"doc_hash": "3021b782e4de50272a8eccd5933190f7ceee6cabc6f72f67b307e25073cfa66e", "ref_doc_id": "0bc29098-04d0-4476-96c6-6985df1b9511"}, "0bc29098-04d0-4476-96c6-6985df1b9511": {"doc_hash": "491d50c68670c9ddb574b4c442313c5b2b5b4dbeec96b1e8698557e8ea03380a"}, "7c55d182-7372-46dd-b968-32daf467dbe6": {"doc_hash": "83e5b0b1df55691a6a357961516cdbd747ff8bd2a05a13a76777cc5990e5f1cf", "ref_doc_id": "dfe9cd7b-7607-40a8-b84d-0ddb2dcfb902"}, "dfe9cd7b-7607-40a8-b84d-0ddb2dcfb902": {"doc_hash": "4089d0acade470ea3c598fe93de24e4ca1ff4bb9434a273173d2c72194a0e73d"}, "a4df9aeb-60b6-4aab-8cda-d96bf3fe966e": {"doc_hash": "3d6c52033c7289275d02d216d8d777d79c26d88e5b0c37fd27b9c749599d6bab", "ref_doc_id": "500a3a9d-ec76-423f-8d3a-989b0622fd77"}, "500a3a9d-ec76-423f-8d3a-989b0622fd77": {"doc_hash": "230072eaec9bd0773670fa336942d34fb077eaa7b4366b73f175aa7ea5859ff0"}, "f1e27185-aa99-4fd9-8a02-99a6f36c9fb8": {"doc_hash": "e8eec129d5235e69397b95c0b478ce0b4cce467f68b5f5c4b6af169103834618", "ref_doc_id": "0380dfb7-1021-4932-842a-2cda8b103062"}, "0380dfb7-1021-4932-842a-2cda8b103062": {"doc_hash": "3f9a4b9205922756466cb79811f94c1be5cc8adef58be767cca9da87b309e359"}, "3c23f89c-8775-477c-8649-0e98717d8c5b": {"doc_hash": "7703df012e41f5d12d0526f33fea644768f865ac7556e1ee47e1ee65300d2f9b", "ref_doc_id": "ac32c456-417e-49d9-9f5f-bd21b075e559"}, "ac32c456-417e-49d9-9f5f-bd21b075e559": {"doc_hash": "669d4fc857140506531bd8ccfe46871245f67b00932f401acb0496e671e3b781"}, "563c0d1b-2c13-4504-8a1f-0816c0f703c5": {"doc_hash": "ce59f2851a98ea04f7c8b91f1743fa9dc59f5f4c042c36f45ee1a46251e7fbe8", "ref_doc_id": "e0da3927-abff-4ebc-9da3-b1b4b1081d67"}, "e0da3927-abff-4ebc-9da3-b1b4b1081d67": {"doc_hash": "2775236324ae9bf96c7ab0212141dba654da79db30d0f89d38947abca86160cb"}, "91c780f2-e00c-42e1-988f-5b4c379400ea": {"doc_hash": "3685a0c4342c80bed00f1fd1d14a7fd12f1220403e6ee0e780920975255d0cf1", "ref_doc_id": "47159003-0512-450f-846f-3541daf0bedf"}, "47159003-0512-450f-846f-3541daf0bedf": {"doc_hash": "1cb80429d5db5292653cc5a678a1e4a61a964121e3ef2d6c8826251420c8d6d0"}, "637c2fb9-2c58-4ac3-9fff-7ee4474f2ab2": {"doc_hash": "6c556fd017da9090cac0f26e2b6e9ff63bb615ba054721f23fbeb37d2fc6bb23", "ref_doc_id": "ba457e8d-f38e-435c-acef-3a3ca2d16b2f"}, "ba457e8d-f38e-435c-acef-3a3ca2d16b2f": {"doc_hash": "2e701874210405f59e61ddd4fbb7fc83f61b960085809bdd04a274f9d8d3bb61"}, "05742c33-5a3e-4f48-9562-b43d68de0187": {"doc_hash": "8c079c549f29b73667a7fb6f7eeec72a21e919e1f34a8e948fabe6d00ffc6464", "ref_doc_id": "c2de9332-bb6c-4412-98fb-5b7e36011ebe"}, "c2de9332-bb6c-4412-98fb-5b7e36011ebe": {"doc_hash": "695ebe435ee77b183b465d6129068cfbe9f9280d1614b7b11c013e6b5d33532e"}, "1677548a-0abe-450e-8a62-b4b87242c011": {"doc_hash": "d1064fcb5d5a538742247e30cd7ccd93794131d6e372ba28a8f1ffbf67434666", "ref_doc_id": "dc895550-ebb2-4cd2-a2e4-4d1f52920ee9"}, "dc895550-ebb2-4cd2-a2e4-4d1f52920ee9": {"doc_hash": "f718f7d31363aed34f053a74057122ff82657ee8a27c31d22ad6c633be483a2c"}, "f6d91c48-260f-46bd-b7ff-9c16806b590e": {"doc_hash": "d289927082611591fe961dcc206347316ba0d1884252dd3c3351b3f294d56e5b", "ref_doc_id": "98cd22be-4fe2-49b4-9ce1-180f1674d6a1"}, "98cd22be-4fe2-49b4-9ce1-180f1674d6a1": {"doc_hash": "f5f740f09c5711fd608a609b45d4ed6d4e667faa5ac2583d91aa1490b5173f3c"}, "ce986c5f-e23d-4d65-8d51-00dd825485ff": {"doc_hash": "c47a01e699bb00e8ebd4599154eefa2372c4bec951df3b0c0bd1aa1aefe580de", "ref_doc_id": "ead5e181-28b1-46dc-bc30-b2cda2aee85d"}, "ead5e181-28b1-46dc-bc30-b2cda2aee85d": {"doc_hash": "fe0860fbe7f67acec016e6e764169c857a0a93acf99e5f91a543a842a6d9a540"}, "0fa35980-8ecc-44db-9b93-2d4c2c704a54": {"doc_hash": "f2beefe10ed7d3e22ab3030a0c1a7e2b39e6f62e34e74dd9b3cc5f12df526e3d", "ref_doc_id": "7ebd468d-8ad7-48f7-90d9-54e94a44710c"}, "7ebd468d-8ad7-48f7-90d9-54e94a44710c": {"doc_hash": "d5710ac8e7c5ef12c64e2b33b65a5362362f89bef07acc8881ee108a8a7ed76f"}, "ec84fca1-2917-4f94-9c99-15045fb8a2bf": {"doc_hash": "b707762420f5efd25119569d1bc7bdcdeab13baa2845d21cd28b5ea83eb4abba", "ref_doc_id": "85eb2f03-bedf-4763-8f1d-b3faa72838f6"}, "85eb2f03-bedf-4763-8f1d-b3faa72838f6": {"doc_hash": "891ed65b3aaaed0b1f2a2aee3dd9cfab820b26322b80cc7f455b0392f9695597"}, "009985dd-369a-437f-a9a0-d476ad6ecbfc": {"doc_hash": "498f22a399fd72c6ac296ae7c0c8d31060740070f2499d293224ebf607663a2f", "ref_doc_id": "da441aeb-0a98-4cb2-928e-8278e2e9e4b7"}, "da441aeb-0a98-4cb2-928e-8278e2e9e4b7": {"doc_hash": "884d8eada9960d38fca35795d48e028e5ab3aa391b32324dcf4ea5cdb3b8ad9c"}, "8e30b37c-66c9-4333-971c-beae3904bdb8": {"doc_hash": "734637bc613a74f08c44b60d42160d9e7599357487ebbf824768106ccd55e8d2", "ref_doc_id": "df296e86-3ed4-47f7-830b-6231dadbd94d"}, "df296e86-3ed4-47f7-830b-6231dadbd94d": {"doc_hash": "dabac975879849e92b7df2a815181dd30c1eacc5a18059462201abd9105240c3"}, "7bff3ef9-85ac-4bd2-997a-6ba6f6f7dc4c": {"doc_hash": "aae0a600de2ad4b1d1669191a6935e79977de1b87e3ee0e64b5e28b22adc8be3", "ref_doc_id": "360123c7-2220-4213-ae4f-0fdd58de1dce"}, "360123c7-2220-4213-ae4f-0fdd58de1dce": {"doc_hash": "1b727aa6121ae3f1a4ce3a929620316addfbc9aa82461d49d34b1ddfdd6739c9"}, "dbd8ef2c-aae2-4d49-b487-93c305b1645f": {"doc_hash": "85bc91fea5cb9fdea900423ef38807a2b6d00b176ab8ff42f34b62799b21b056", "ref_doc_id": "5056afae-9e29-4423-876e-974c69b47b59"}, "5056afae-9e29-4423-876e-974c69b47b59": {"doc_hash": "bf58f930d64fe2eb7c971bfd090bfff35ac351f2b0804efbdc845c0db0136b5f"}, "0775778f-2e80-40e8-b3a6-c343d02b1b1e": {"doc_hash": "c5cd2a5f512c8cbde8166317652ddebef9169d3920bcd33dc5ad14483d558f61", "ref_doc_id": "3ee165b1-d5d3-4eb6-b21a-759e12d5e62e"}, "3ee165b1-d5d3-4eb6-b21a-759e12d5e62e": {"doc_hash": "194259c931c7df2f4b3a7f1d8bce3b14af7b37cd85dac58e9e4f4584407ccbfd"}, "4a268878-05fa-488b-9f62-45d882265e10": {"doc_hash": "e13459a625ceceb364cfab8568dd558f7f7b4e52363496b66e3128d4bedf0781", "ref_doc_id": "ad4b58a7-9f70-482e-b9c0-49e492104513"}, "ad4b58a7-9f70-482e-b9c0-49e492104513": {"doc_hash": "09265ded6ab5bfc1373cd3e0862d248d3039b6f51d8722d738b588a57f5d0ad1"}, "fe559364-d6a5-4d03-8fd4-fcd789455bc8": {"doc_hash": "b3694c71c2b80d07d852a6bb91898b253c75285a021cceb7974125c91abec331", "ref_doc_id": "73b33eb7-22dd-4ee6-a733-977e67167ca2"}, "73b33eb7-22dd-4ee6-a733-977e67167ca2": {"doc_hash": "d83b233fe2c8f87cb3277294d2dad563219849392ad58139245eb1daca7ec1dc"}, "4ff6ead6-613f-47e9-8b1a-a10aec732d85": {"doc_hash": "fd819cf2993b87b98e0103d59a25684bd743e4e227a69a7b1e0323271b0a8c2a", "ref_doc_id": "2538f572-4f95-4240-adb0-85a953fbac78"}, "2538f572-4f95-4240-adb0-85a953fbac78": {"doc_hash": "13a322594b616c5ab479fdce5731b43711ac039ff597ebebd7a8e306c13bbb00"}, "4ec4f539-6fea-4775-9f79-50a91aa4701a": {"doc_hash": "a6885cdbf1d8175c1ed2dc6719258d162dcd8b5deb4d5bc065a053ba1810469e", "ref_doc_id": "1af466b1-c965-4493-b940-01336d5e20a2"}, "1af466b1-c965-4493-b940-01336d5e20a2": {"doc_hash": "b0d380ad67190e80c83ee87cbeea30a60a78fa12f05123114930355fcc6972f6"}, "03a065b3-c424-456c-b532-b1ae6885b411": {"doc_hash": "48129d3410e04b7cc1aa159e3f920e8b60d07658ca7a7be00b362ed6c15ba2ae", "ref_doc_id": "ee4531e0-8ebd-4ba2-b55a-9d1ee792f8c4"}, "ee4531e0-8ebd-4ba2-b55a-9d1ee792f8c4": {"doc_hash": "9b94396a07476a790bdedf933ec3776cfa617ace2b9355533a2b730ca9b69c57"}, "56233dd2-61cb-4b65-aa74-a4ecf1e62ccd": {"doc_hash": "924b7ea5c503776cd96d771a8cbd04c84451be27541fcd256bae674c554e51a5", "ref_doc_id": "ecabaec9-7053-4fef-a028-7a5e90451106"}, "ecabaec9-7053-4fef-a028-7a5e90451106": {"doc_hash": "2bf3ce03a1d07b9bb7d952a364d21bd1ba20f9270bac2a5c11e20608d9c3447f"}, "6a028ebf-c93a-45cf-bc23-bd8af32af4ff": {"doc_hash": "46a9fef8191ea4ce15968a12b13a13cd4dd0ccafc79e309cecd3debcc183edc7", "ref_doc_id": "fb9e593d-47c3-47f6-9436-b3ead9af19a8"}, "fb9e593d-47c3-47f6-9436-b3ead9af19a8": {"doc_hash": "24adae9af0326c6aabcb98cd7d3800abe67246d45b3f41828007f8bcbb1732c4"}, "94a60deb-68d8-48d4-8109-1033c555d3fc": {"doc_hash": "5359bdb7b0ea33eb0673422c73ee053587e594a4aa40c25595f7a29c8c89c77d", "ref_doc_id": "b9d9f8af-944e-455a-b554-6eb573f8b5af"}, "b9d9f8af-944e-455a-b554-6eb573f8b5af": {"doc_hash": "becb479786c3001327bef4d6aca90a1169814470e35a2fd6a59e0b9823dd5ad7"}, "af281cb5-f6cc-42ea-bc43-8b5c1fe4208c": {"doc_hash": "7c1745d500e0a4527d85ce93eb291cbefca8f5062d713c7ee9512346bf78f3ff", "ref_doc_id": "c561844d-c9ad-48fa-adcb-0ef7a4761663"}, "c561844d-c9ad-48fa-adcb-0ef7a4761663": {"doc_hash": "afaa855df0d646995f6b7897aa434ae51e4bb2089bce2e5312db6b6807dfd23e"}, "252fde62-e6d8-41a5-b9ad-d5e64f528247": {"doc_hash": "2aba841ef332b9eb22260897e206b4fc14147e245413538c87401ff6bb8d899d", "ref_doc_id": "ef020027-009d-4754-a551-7febde25fa66"}, "ef020027-009d-4754-a551-7febde25fa66": {"doc_hash": "3e24749ef97e8b8d44ca7c643f522bae40d54f59c1f1dbdfbe0bb8667ec7f4d1"}, "67497bd6-5a50-4182-b7fb-75130a4a74b3": {"doc_hash": "3c649b3c718ed5c52a5e76ad6d5791173b5f5b1b2d50c52ca78e2dcc067069ca", "ref_doc_id": "6b9915d2-15a5-462d-bfe0-af34959c5def"}, "6b9915d2-15a5-462d-bfe0-af34959c5def": {"doc_hash": "9826c5c9d67d8c9a8978b0ca565c3e9a081fdb25c0da5aa61e51899a07d7cb84"}, "38659c88-b43c-4412-bb92-1d810c529020": {"doc_hash": "797cf5153ca4c259f559486cc11beb06fdd38fafe1c7c4106c807325d1cdc21a", "ref_doc_id": "b29f7818-33e7-41d2-960f-2d02af5cdb51"}, "b29f7818-33e7-41d2-960f-2d02af5cdb51": {"doc_hash": "fd1eb8d3ec5e10f731f94e808f4113013a6e635a160bd904df04e693a25bcab8"}, "dfe7201f-0f40-45df-ab44-edcc3a821cbe": {"doc_hash": "9647e0e708913fa50f914d078eec1fe005bb129b4faa4526a308b35d43aa334e", "ref_doc_id": "40235ef6-e7a4-41a8-8d19-2a80c8c6ff11"}, "40235ef6-e7a4-41a8-8d19-2a80c8c6ff11": {"doc_hash": "3a373f2c99ee7e1d562dc97d543acdb261a708173d43a284d729138a77abab4a"}, "5cb9bb1a-aa09-4d75-9c26-02790cea472c": {"doc_hash": "5226fe5627fbd8b2fd6d401d870544895c64c49578e1867f9428e390fab35aed", "ref_doc_id": "dc976ff1-86a3-463c-a420-c8234904e814"}, "dc976ff1-86a3-463c-a420-c8234904e814": {"doc_hash": "c6b46a7ead8b8ae504ef2a8cd751004fddef55b313ae634c376dbe2c21c4ed44"}, "7005d6a3-2f58-4549-8e38-c0dd4cbceeb5": {"doc_hash": "c6f6270a1ffef7c9f61ad81883416ecde9f7a023887ba2ad32403e2f0d89f3cb", "ref_doc_id": "b5c2917b-316e-4df4-bfc1-e707e2d3ea55"}, "b5c2917b-316e-4df4-bfc1-e707e2d3ea55": {"doc_hash": "d6261352f3f9b5e52d1978d2d79e858ba92132ec35efbbf8d66ac860638993a5"}, "467c75f2-3066-423b-bbe2-e14cbc1af19c": {"doc_hash": "72783192fc4a79b54ec57dfa5121ec5f14d38a07bcda835475335dee77ad14fa", "ref_doc_id": "aedea1b0-6064-46ac-a4cd-e475e1385a51"}, "aedea1b0-6064-46ac-a4cd-e475e1385a51": {"doc_hash": "7c96a865012a1975e6690e6ad6d5d874cffbcd5d0f1d7d2f5b26b277467fd7ea"}, "2d1b294a-9018-4538-b2d7-c1c2f375736d": {"doc_hash": "f158a04d54df8309cc3e9cd7352da75530fcf36ba425b18b43b2cc3e8ac3da8c", "ref_doc_id": "829ba2ba-b371-4b96-b89f-5022b5b9faed"}, "829ba2ba-b371-4b96-b89f-5022b5b9faed": {"doc_hash": "41e51808a5aa9f549980e052e1967496d637c525e9b901c3becb70f7a82db3ce"}, "537bee9e-5c81-4df5-b1ce-dab8dcf3a1db": {"doc_hash": "868273ff3e2601b5a4c5f6eb962a5d47d9ee2e31ad09f4a5648cdb26d70d17d6", "ref_doc_id": "abd18bfe-702c-4f15-a58d-4a8f988895f5"}, "abd18bfe-702c-4f15-a58d-4a8f988895f5": {"doc_hash": "6e3f21bef935214777a5107b6038033b9725aa4487f22c464293b6c6ac764bf6"}, "7a4e4224-5912-4293-afe7-96b1ae529135": {"doc_hash": "2a3b1d0eee07922ef653916dc1b8496fa6f76d39402ac1046c91fd09678e67e3", "ref_doc_id": "7ae54935-d815-4d59-b568-13471c46ca64"}, "7ae54935-d815-4d59-b568-13471c46ca64": {"doc_hash": "8087cafc1751811ddd06be7a119f319a74a8f4a10779a0f78e247264e31cf200"}, "e4023d40-19b1-4a24-94a2-bb0805f02b86": {"doc_hash": "cd2195902dd193f8ef9a39943d51e2a88b79da9a7976a4807b24d36444c82b2a", "ref_doc_id": "9a708ccd-88c7-4d2e-839c-13228a48b1c7"}, "9a708ccd-88c7-4d2e-839c-13228a48b1c7": {"doc_hash": "47a1e6486ed6385f0a2f0d05467003d22af194e422e08a87bfe237d398ebea25"}, "1e7e9c67-1a4a-4516-b61f-f9092bbb1223": {"doc_hash": "4b9b8186be2960c8d1f593955cbd91b90f5201b338dffd348d4f6f077f5ae5b8", "ref_doc_id": "f4b0214d-fdd4-476a-a6be-fb9d79d03023"}, "f4b0214d-fdd4-476a-a6be-fb9d79d03023": {"doc_hash": "a52af9b4faf7a9d477f2e7390ebd84ad2889dbac57beafc6869a63bec79bfadd"}, "72d0aaf2-5e62-422c-a095-30981ea628ff": {"doc_hash": "c0d77baac5ebba6f984e4dfe6ebb3c55fd0f1a4aca80f3d91d68182cfccec9e2", "ref_doc_id": "71dc420e-9259-4877-b126-c41ad65f1c68"}, "71dc420e-9259-4877-b126-c41ad65f1c68": {"doc_hash": "162d4c9445a05ad69032b3c804d0dbf5a2e931ad52616ecebeede22adc69953f"}, "2670f62a-c02a-4d33-8bb4-6d2c0cfb0e2f": {"doc_hash": "e846a89f7be99acb073b0385f4bb2c80630f5bccffaa582cc48998346a40f326", "ref_doc_id": "0ce680a9-c2ea-446c-a0f4-2a0590c4695c"}, "0ce680a9-c2ea-446c-a0f4-2a0590c4695c": {"doc_hash": "2c16a3b7e9d244b5948027c8a35cce424b15879475e68a3c21ac65073d2294b9"}, "2a7c6757-dddb-4037-997c-660332a80fff": {"doc_hash": "70702654db529ba1cbe8ffce43b033e974508fa5fc66f3a3a3fcaa6ea79cc61c", "ref_doc_id": "b1adc91b-1434-4aa8-ac63-c7d6d101b1f4"}, "b1adc91b-1434-4aa8-ac63-c7d6d101b1f4": {"doc_hash": "98d899a7562e04c02a7a93ca13028421141ab2166e032cc8bbf866ac10d16a11"}, "e9d56925-16d6-491c-b7e4-fdd0b850121f": {"doc_hash": "e83c5ffb08a12adc9c0fda1100784cd5cfafb8232e151ff572f72a4e6972aa62", "ref_doc_id": "1bb28e61-d109-47ee-8ffd-7175a71d0ff2"}, "1bb28e61-d109-47ee-8ffd-7175a71d0ff2": {"doc_hash": "536927685f6c42be9ef25557bbf3df6be25047dbf1bb78de14246bbfe88c2a2b"}, "0b3a0a51-6f21-4d9e-ada3-67c9294cb00b": {"doc_hash": "7c44e39e79388bcc33ae7de3fea00fd69bb5f0984f1b055cc74902d80bbe9491", "ref_doc_id": "0749bb7a-6f4d-4af7-816f-f6d65c8db5b4"}, "0749bb7a-6f4d-4af7-816f-f6d65c8db5b4": {"doc_hash": "3ac6ffdca6e96c23d9c0c2aea6d3ee06503c227eeb6b472e9db8b93fbaa0cf00"}, "a07a0763-270d-4a83-8bc4-ce856d7a44d7": {"doc_hash": "257b76c44589823e66c0f8c22eeb71fd560229901f7813d551c721f453e57d55", "ref_doc_id": "6b448192-c2ce-4af9-b692-aa92bf6e7b50"}, "6b448192-c2ce-4af9-b692-aa92bf6e7b50": {"doc_hash": "5fdcab73008fc9b5cb5a31c62a90c172018a3d1807a78bc733bf8691e2d271e5"}, "d413c4d4-b827-4491-9181-3ffc12455202": {"doc_hash": "6cb48fa37a359029083f8c79e8faed1b9857e0a7f4a3c6c410348f22ad5414d3", "ref_doc_id": "fbba7767-d745-448e-94dd-0a4707070be6"}, "fbba7767-d745-448e-94dd-0a4707070be6": {"doc_hash": "060ed40270692267852f354ee4896fd8e61000c7196cc8e69ffeafe4e98f523b"}, "6e392611-6caf-4d92-8c41-39a5d74e6f1b": {"doc_hash": "c657e7eda9e80e2cf92f2f4e918e258c8fc5750f66e71c5feb9c97792d44ed04", "ref_doc_id": "2d3def46-d976-4f8e-a02a-32df3c3da393"}, "2d3def46-d976-4f8e-a02a-32df3c3da393": {"doc_hash": "1080885938195a8cbbe35818f43956bea68649c6b8f5d00ba46cea950bf75c58"}, "b2a77eac-3a04-4b99-9ff3-7e12e279ba9d": {"doc_hash": "b231d2fd7772c39403c1bce7d412940c33b74be84b57f2ca516586cb2fd83972", "ref_doc_id": "239925cc-9e29-4b23-955f-101eb6ab7969"}, "239925cc-9e29-4b23-955f-101eb6ab7969": {"doc_hash": "c3fb6cc9ab2cda82e7ba2b73b866f47aea30b8f53e35819002d20a9e3b773023"}, "ef05fc0b-df9e-46e8-85e3-540c1d1d747f": {"doc_hash": "e7ee91530155b22ee984a64b5f4b2e7db398d2af08a7358e31d70c3b4456a971", "ref_doc_id": "a4ddfd56-f385-4e5a-8bc0-4008297c95e9"}, "a4ddfd56-f385-4e5a-8bc0-4008297c95e9": {"doc_hash": "82389cfee1deda198eb3a9b2390c3e3102a0205e6aa274ae4b92094b45a9553e"}, "65338228-3a83-46b7-b8c2-75d0f836cd5f": {"doc_hash": "303cd46ae6f025efecfe5b91b3e8d50a4c48c23f27a0e392b0506587428b9fce", "ref_doc_id": "c5db3bf3-5408-4c19-8d16-634340f30261"}, "c5db3bf3-5408-4c19-8d16-634340f30261": {"doc_hash": "f3e763910a52b95fbdc6822d72bec2887d750107ab9e1c1fd62ebf9802bec93f"}, "487a3772-33e3-47c0-ac4a-bbc4efe479ef": {"doc_hash": "a230e2b069860472847023720af7154efaa0cbba40df2429809157919db15253", "ref_doc_id": "f65407be-8352-4426-b7a3-e049dcc7289d"}, "f65407be-8352-4426-b7a3-e049dcc7289d": {"doc_hash": "a5e9d0af2fa6eda722aba5756f7fde1b8276859bed7a2668547627b8771720cc"}, "d07ea0cf-6df7-40f0-b350-5d0b2d4f5fb8": {"doc_hash": "07777fa3e2ee2db536700b47461e47cc08177ab1eacb648203013d029b6d2b30", "ref_doc_id": "3952095c-349f-4c7e-af88-d6a759a3238c"}, "3952095c-349f-4c7e-af88-d6a759a3238c": {"doc_hash": "c8296bfc6f517367f8e5b63e1082ab2efe72b9e4faf64238d3f43c5d18d2b814"}, "735c91e1-2791-4f52-9d0b-7ba6b2b8d69d": {"doc_hash": "a3b4b12cdc3c6de43128696761e2fb8a4cab5ee0af53cd0207253464f644b334", "ref_doc_id": "c3a278c7-9e60-40f4-93b3-f79c0111e8c9"}, "c3a278c7-9e60-40f4-93b3-f79c0111e8c9": {"doc_hash": "9f10549ad81b4ee9742bdcd34f2bef7827d797ea69300c3587b1ce1361674c9e"}, "d46e201b-9f26-4d73-808c-9cf3e0b5245c": {"doc_hash": "4aca9bd992856adfb7eab89ed7075036653f3a598739458e3b8e966173a87da5", "ref_doc_id": "33a3d352-5a4a-4003-8f83-7bf28ee9f9aa"}, "33a3d352-5a4a-4003-8f83-7bf28ee9f9aa": {"doc_hash": "7f5d1a638209ec6fd033b448867c6db1cb48770796601b88ae52ac7d7f6b5d03"}, "43c28715-8eed-4ca9-a895-411395b26582": {"doc_hash": "d8a0c7c2aad52373fe0e9fef553cade164c66364f1cd113b3304bf2e80f5d3f5", "ref_doc_id": "13ecc7b2-1740-4bf9-b3a9-34c6e3c8209d"}, "13ecc7b2-1740-4bf9-b3a9-34c6e3c8209d": {"doc_hash": "9eed19754f22a9a30b4abbb86c34cd8a80300db95bc43af8a476c9712f83067f"}, "dc6c472c-8b27-4697-9a5f-8fa347d7d28e": {"doc_hash": "ffb329f29bcbdacfa2bb3645d5dfc042bc60fb0edd56c17305dee7575a82ae9d", "ref_doc_id": "adf51932-177f-47f7-98a1-69e7bb87ef07"}, "adf51932-177f-47f7-98a1-69e7bb87ef07": {"doc_hash": "b1c7795f737dd8da538597b0170d32fdd5d0eebe93de9821d009604ac73c1c94"}, "49a023c8-3078-48a2-872e-bcd9cdc7c01f": {"doc_hash": "86e1fdad827ca7e66893e7ce80693727ee18dcc9dab5032fcb831c53378fe5f2", "ref_doc_id": "7fa61f5d-5e8f-4173-9150-2a855d1a0d18"}, "7fa61f5d-5e8f-4173-9150-2a855d1a0d18": {"doc_hash": "88be26d131df18090952a0a27a1db8d27c15d2a6f2aaeae5175382c489fa7ee5"}, "fe627dc6-3831-4229-b78e-6d17cb990b60": {"doc_hash": "d4e052d8311fb508f2a88acc02e1b3d126c4da7af0aaaa3f4ea8238e523be40e", "ref_doc_id": "f6385f05-badf-4a57-b1b0-ab41e35bdf36"}, "f6385f05-badf-4a57-b1b0-ab41e35bdf36": {"doc_hash": "77c4a86e5503f3c495e560b588307614f395319055698266a4d887b7f3caa846"}, "6f7b928c-d80f-4fe1-a191-016481e2deb9": {"doc_hash": "186c1583216137a6109755f17490b9fab196a48dcb7bf19998dc4fef24667454", "ref_doc_id": "9b643540-a745-4936-8b18-02adf494bd54"}, "9b643540-a745-4936-8b18-02adf494bd54": {"doc_hash": "53625a763e9b22c79f7b63237703cfd8d0b4cb85a0a2c7809e73245428231bfb"}, "c11ba327-9ec9-49ca-bdba-5b04fb2a4f39": {"doc_hash": "eec22d0633925a27e4df5e8a25a2d9200ded847cfc021cb9540aed0a806bb0ff", "ref_doc_id": "cd024fe2-dae0-48cf-8b07-4820ef9bcf9b"}, "cd024fe2-dae0-48cf-8b07-4820ef9bcf9b": {"doc_hash": "43fea013a2fa5a2915e70d4ab753fcf9b64e58f1ca4c93bb9fdd2ff67b0b96fb"}, "2c747bff-d7e9-4a70-8c05-8282c5363d70": {"doc_hash": "fbf3adf5dd46df37d53e6c1bbf3eec11286680a4439c5fa5abc2cf96ce1211fd", "ref_doc_id": "b0dcfbd5-3c9b-4bb8-a665-fdcc37cbca09"}, "b0dcfbd5-3c9b-4bb8-a665-fdcc37cbca09": {"doc_hash": "b2576c8b2797068002037a1c32ebcf8754197235f3b3534c3723c68196a3222b"}, "e10e29e1-8e41-4022-9d45-49e5575d496c": {"doc_hash": "2bda55bfac40c04a651567f200a63c9a27ef0dbe19afceff94f0259b72375ad2", "ref_doc_id": "e4d332b0-32d3-446a-aa5e-ccdbfe6631c0"}, "e4d332b0-32d3-446a-aa5e-ccdbfe6631c0": {"doc_hash": "92314989c275ab94ac59041d98980ebd4d21b8489c0a6a06530a79045173ae4d"}, "78810e9b-ef96-4d8d-90ef-88ba509398db": {"doc_hash": "84ffb6e6c41b8a287b5460284df075728ba001bebaaa04d342d75b53eb688a64", "ref_doc_id": "6c3db2b9-0754-4891-bb37-555dd0afbf0e"}, "6c3db2b9-0754-4891-bb37-555dd0afbf0e": {"doc_hash": "e56341ecb975e1180fb5f978d00997963f25571bc042f9851db4ba5a022ca12f"}, "9c864924-c364-45eb-b99f-f4ebc96d6ed4": {"doc_hash": "dff9484de76a3bca97342c61219f36c686e21a8ac7ea8441e2fb9e57bbcb8e64", "ref_doc_id": "41a2987e-cd45-478a-9a68-ec1420d7e863"}, "41a2987e-cd45-478a-9a68-ec1420d7e863": {"doc_hash": "82b64cca31b7358c96f1eb1115750eb5113aa9589c36d32d49365ae68f72e303"}, "c6127806-849f-4376-a7d0-95b95fde046e": {"doc_hash": "858bad93b84b49c4930b8252bda63645f5135052882961610c789abd9f79f918", "ref_doc_id": "fc215ca4-a2e4-476a-83ed-52c4f86564e6"}, "fc215ca4-a2e4-476a-83ed-52c4f86564e6": {"doc_hash": "c2f60604c526231c503c5e570f8339632dbac6150a143113102989db529a824d"}, "99dbf7ed-03bb-402e-aa90-8e94689afcbc": {"doc_hash": "71678a9c24e6003f86f0145c3d74a5cfe3a27d922c6d96d1ce48341ac052fa22", "ref_doc_id": "87d1f8c7-3b05-420f-ba8a-9d8c65f11d25"}, "87d1f8c7-3b05-420f-ba8a-9d8c65f11d25": {"doc_hash": "67ee62f6db2b0e653673ec1ca6695901050bd5826b5b42aca7094e6edea157ed"}, "3b60e204-a29b-4c75-863c-824ab3353ba8": {"doc_hash": "dae71fba38fd80b1d4fdd39ff6d12556d95d577cc39c1ae0a2ac98f37a48e4cc", "ref_doc_id": "4970a8d6-dd02-4842-8645-669293903f9d"}, "4970a8d6-dd02-4842-8645-669293903f9d": {"doc_hash": "d9d0f0f4c8ca901856ba6524d6b0823da6eade3939648b6b9bc3e2ae7e37e35a"}, "843e61c4-5aab-42cc-976f-7e81ca2971ce": {"doc_hash": "5a5311913f44cf7d49c204d6ab209500b3f013dbe23699f9dd04b4f32576cde1", "ref_doc_id": "38cbe270-c9cd-4ef5-a940-d5257a69085a"}, "38cbe270-c9cd-4ef5-a940-d5257a69085a": {"doc_hash": "6c528058d0859edaf7fba8254b51ea50ab0afc386d8e55e8dbf8c0ac5ce1d010"}, "9d0fb2b3-f181-427a-a19d-ad78767d73e0": {"doc_hash": "33dddd9d349a913d32ad49abcdae75a72d300600313b4b5407895edb93aabb02", "ref_doc_id": "7508f5f0-2d2e-4c99-a723-3a3e119f8d5c"}, "7508f5f0-2d2e-4c99-a723-3a3e119f8d5c": {"doc_hash": "d5629e2d1025e4d0a0d2f2bef90c648f18bac5dc9390917b624c10e7ff332dd9"}, "48904e94-7ace-4f5c-a0d5-96aeb82088ec": {"doc_hash": "0f497fa67da7b14ad907a9aff991a0a83e3ede23e622fc633b81d0142a3914ed", "ref_doc_id": "b8094ab1-a9e6-4fd8-a893-71d18e2aef96"}, "b8094ab1-a9e6-4fd8-a893-71d18e2aef96": {"doc_hash": "f070efca83704567f820f688e472a91c8a0aeff94ede768a4c353ea2d6bc8627"}, "2e055b1f-cb56-404b-9b8d-58c4865d21bd": {"doc_hash": "a07a8b19f5359b5d34fe431ea3e9ce9bcb5859a02d88e440ae24649c2cb7bc60", "ref_doc_id": "6be84f75-2a19-46a9-bc3e-0ed35bcf5cbe"}, "6be84f75-2a19-46a9-bc3e-0ed35bcf5cbe": {"doc_hash": "7abba9e43b51c35730eef92ffd7c239b5ed3b43a89436b776723a25f68f30cca"}, "ab3a4135-ea34-4bee-a46f-ce2fd8286a45": {"doc_hash": "8a979aeab92cb1d8538213bd68f7a0ebc670e3852344b57a4f018b8fa77e04f5", "ref_doc_id": "45e09047-b0cf-49f9-abda-d594646bfedf"}, "45e09047-b0cf-49f9-abda-d594646bfedf": {"doc_hash": "215aca5850b63c0ef4417623e91c07604b523f285de1ccb5ecf73ce4d6d59ef7"}, "866bf039-1562-4df6-a32b-e4c70d9e4fb2": {"doc_hash": "40a0df2490814e800241ebf919867a1dbc040451a8ef3f6f84c0e37cd2fe0141", "ref_doc_id": "2f1909da-73fe-4955-963b-98ac36f67637"}, "2f1909da-73fe-4955-963b-98ac36f67637": {"doc_hash": "8fb5ad74d0d581e526398a10b58bcfdbbbe36d887554dd4eb896fa5bbf688689"}, "6833b504-d384-4868-b962-4d362a4ae864": {"doc_hash": "41ec8d694a839a8f071199c5a6664c26f4304bb99d00c5456af90e9013ee5de4", "ref_doc_id": "5135e5f0-2cbc-4475-b1c7-5494f88af73e"}, "5135e5f0-2cbc-4475-b1c7-5494f88af73e": {"doc_hash": "d3d292baa1ac9b008d7702f0a774242ab89467a7934aa926bdc44721af4b98be"}, "9a9cd1b5-8a18-4e01-9eb5-c0d8ab26eead": {"doc_hash": "db201bac364e586fcd73d0ec8fd11eb92facecce66dd4ae75994f75327a7bd15", "ref_doc_id": "334a8e5a-689e-4467-9485-dfb39e140a51"}, "334a8e5a-689e-4467-9485-dfb39e140a51": {"doc_hash": "7022de498aeac9a389b8024295fb2818fd19eeaf393f2330659e57fc2551b6d0"}, "23e703f3-8e01-4325-93f0-e2e15130e4a1": {"doc_hash": "a4e0c7cb9eb47ffe24baed7546dad753d05b324b804418cc4089af7439f6ad26", "ref_doc_id": "c63284ec-a5bd-44ec-83be-852b585e57b3"}, "c63284ec-a5bd-44ec-83be-852b585e57b3": {"doc_hash": "164d7eaf6574903100adb25f50a129217b08bd9e7bb5b3fa7f87083c4b6cc1a7"}, "8b3730c2-6075-4c8d-848e-39f438c1a0d7": {"doc_hash": "04651b134433cbd3f2bf51b2298bce2647f1e80ecd468502b527aed847d8d4c2", "ref_doc_id": "7c1f9207-8cbf-45f9-ba14-7c238ec26f7e"}, "7c1f9207-8cbf-45f9-ba14-7c238ec26f7e": {"doc_hash": "210007fbab1a970f11f8986294ff33b5cd75e78b70f8a96f10dc790974236899"}, "75621848-865c-4bc0-891b-0a07edd7ca26": {"doc_hash": "5a767dda73d5354533eb09fa8093cab1ba3ee9110bed358624046f795a27b7c9", "ref_doc_id": "d3e146bc-ea90-43ab-9e57-b18b90e68002"}, "d3e146bc-ea90-43ab-9e57-b18b90e68002": {"doc_hash": "f96e9ecebe06c7d156d289e250456515e6f61dde91435790c2e24a922a459a9e"}, "14b2ac73-329b-41ab-8642-2ce2ba7bb312": {"doc_hash": "3e222cdf6ad8159748c789b365c3413355205e83fd68b7dd527c07fde9334074", "ref_doc_id": "755e4091-dc6c-4688-b360-2944a04111cb"}, "755e4091-dc6c-4688-b360-2944a04111cb": {"doc_hash": "994bb3b63d1515dfe82fe31221f91c1aaa325b4856d7dffb804c5b9bd0cd6c45"}, "2e589ef8-6faf-4b76-899e-747e701e1244": {"doc_hash": "368afc452c391928dc58ff38505a1e6773377e4ca9cff497c70a9b7da9202231", "ref_doc_id": "d8c277f5-d53c-47f3-9e01-7b798d5a174f"}, "d8c277f5-d53c-47f3-9e01-7b798d5a174f": {"doc_hash": "80f1edbe0a2f272dd2770b3edbb4d2a9c55718193b9ed78ce65e24305a7d6073"}, "eef1c4d0-9a9e-49df-b6f4-a54ed8c9793f": {"doc_hash": "49aea92b7fd7e85f227268ed76d92e3bfa2838c7815f24897d6bed2b40a5ab2f", "ref_doc_id": "6f871bd0-953c-4df6-a1db-aeba1e7cc338"}, "6f871bd0-953c-4df6-a1db-aeba1e7cc338": {"doc_hash": "5a9604d57b5a59d14398fe1fe2dd25a8e12d76e5dfc4205d361cb9804b68e88e"}, "f5b491be-01ed-41fe-acc0-98a0e9fe232a": {"doc_hash": "37f8d84052650cf80650bdd3db6b1d0ed90cef7674988d9a7ab838b802068472", "ref_doc_id": "1d62337d-7f5d-46ae-8456-20510cfb469f"}, "1d62337d-7f5d-46ae-8456-20510cfb469f": {"doc_hash": "f618e37208c41e5e7806124398536013f1589f6f277a6725184eed5c79b961e5"}, "46312cf9-6521-4298-afc2-88d164010986": {"doc_hash": "6986ce3db3bd25d05f5b900bea79720e9f79e1eff29f06903411baac582de43a", "ref_doc_id": "8c732a62-c012-4318-80e0-24f3f2900750"}, "8c732a62-c012-4318-80e0-24f3f2900750": {"doc_hash": "13fa4de5943bc933eeb9138239dd994c0788e5283968a060ebd1cac62f98d025"}, "97d07a57-d8b7-47f0-ab61-4cd36b4f97d6": {"doc_hash": "fb89d9c65503ce312ec261cb34b7ec0d4d45592101508afcd82b90f7d76eebd7", "ref_doc_id": "132c0925-c38e-4590-8e2a-16da92210b63"}, "132c0925-c38e-4590-8e2a-16da92210b63": {"doc_hash": "ff53d057fe3daa5fecc87602c174569f6bee1a66c0dbe112cc9eb5e4e13ded23"}, "416a2d2c-7fad-44db-8dfa-9cc18c75e872": {"doc_hash": "26a0279e3775f2b47a452e04a7baf0aedebe0ed365a174aa5276bfcfb1ac7e4b", "ref_doc_id": "5badcbdc-4241-4e0c-b20a-51c06f0c671c"}, "5badcbdc-4241-4e0c-b20a-51c06f0c671c": {"doc_hash": "b4ba8b6a3e374c7634c85cb00a9992e80607a02471f2dc428fa82e628932a0de"}, "d6fa9c1e-e032-4284-b163-82e276c85ee6": {"doc_hash": "d1d22a8a119e2294b2db2acd7f6ec13b8bc0400a8902541463f52cd5390d8ccf", "ref_doc_id": "f3c28ed1-d38d-4823-8632-d5572c18afaf"}, "f3c28ed1-d38d-4823-8632-d5572c18afaf": {"doc_hash": "e864f6af0459429c83270a6813ae43dd8df0e5282caba6443cefb3d6823c688f"}, "ffe32c6f-491f-4ed6-82b3-35fb00fa0ed9": {"doc_hash": "a4617a61bd5dd26ecb43fb7c76d5b8fe9a31d8950a0a13c4ec7169b64f26abfc", "ref_doc_id": "3e142592-27ca-4214-bece-c0271dc8245d"}, "3e142592-27ca-4214-bece-c0271dc8245d": {"doc_hash": "7b4616531d250ef3da212f374abd9bd518cd7f0bb28569268d45ef2b220aaaa7"}, "d54c21fc-11e6-404b-9fd7-76aff8c033cb": {"doc_hash": "2d72cc41644fe06a687e7b33189a1c7cdcc6598ceedf11d18849b4176f443908", "ref_doc_id": "af9a1593-1b8f-4b8b-8479-4c05bf898f45"}, "af9a1593-1b8f-4b8b-8479-4c05bf898f45": {"doc_hash": "d3c629ca0531a5d2143b3430ea8baf1edda600553f7b5b5938b529991289173a"}, "865d7fa0-49be-46df-a201-24ac9520164f": {"doc_hash": "09653fccb249033ab50e268b222c347e038f4f60bbab0ea1d406c19f93a6c4ec", "ref_doc_id": "7030d3e7-e9c9-4d51-a767-f7f2cd1fd011"}, "7030d3e7-e9c9-4d51-a767-f7f2cd1fd011": {"doc_hash": "bbee9137ca030a545999f559ed8e5bd40cf0756986fb99a4311b4422725fcb14"}, "b3abe04d-6b86-4dc0-b1d9-efb1c826d158": {"doc_hash": "5301552351edff58fbf03e97ecde3946021d0e317ef2965567ce2e20a22fff92", "ref_doc_id": "70bee93c-8638-4953-ad1c-34b7af23944b"}, "70bee93c-8638-4953-ad1c-34b7af23944b": {"doc_hash": "57074d0245efe36ab25f1045c9c3b4592b64832a75e795438dc2db387f040470"}, "fd2c580e-c930-4986-8df9-5b88d01530a5": {"doc_hash": "68cb292696a9fdcf8fe0aa9f75b61e0adfc40ced033f68a5ed3ed1538b3d5ee5", "ref_doc_id": "5e1fe2e3-1af2-4ef6-bc27-4ab265f713a8"}, "5e1fe2e3-1af2-4ef6-bc27-4ab265f713a8": {"doc_hash": "e3febddf06a99a72830cbdce3d1de650557a947078862497e670c43e06b8d4aa"}, "93e65704-4eeb-4d29-9156-2ebbe1328f2a": {"doc_hash": "896082e477d8c614500f885ff7a6747154250fbb8bd6d6b0b4c2823b4f07c726", "ref_doc_id": "96c97066-733f-4c4e-8ae3-57250ee04420"}, "96c97066-733f-4c4e-8ae3-57250ee04420": {"doc_hash": "aecf7e92c695e01cd79033b3f72f0c036ad20f91bdcaac85ed99fd6d2e636420"}, "8df68cce-eb46-495b-8503-bedbc4f0de82": {"doc_hash": "63887f2e43814ce036794a034cee18b09a81c8b7b4d246f8bd08bd00349a8f5f", "ref_doc_id": "496c9259-fbbe-41f5-a83f-88b29fb1d513"}, "496c9259-fbbe-41f5-a83f-88b29fb1d513": {"doc_hash": "f65cf7a446ca64125d56864ab3ce54172e2127d29e5354725f82e8a415c62dbb"}, "bb0dc959-82d6-4d05-bdec-a27185efde5b": {"doc_hash": "95bed578cbf85f8c38f2a5683c7c80d24fa75420da8b7b7ebe663a385317e16c", "ref_doc_id": "d50f7420-eb47-4cd9-833e-93b4b096754e"}, "d50f7420-eb47-4cd9-833e-93b4b096754e": {"doc_hash": "9e10749b6d14546bffcb82c8ca6c5c58d8fc193b1a729b8ea97c53fce0a439b7"}, "6b4c6c2e-48a9-4df3-a67b-3b91d1f84d38": {"doc_hash": "58e73c735c73a6396b3dcd7d56b4515c5f9a19579d804055936a0e00e033073d", "ref_doc_id": "1377fff7-1cf2-46fc-b172-049d3fb71aab"}, "1377fff7-1cf2-46fc-b172-049d3fb71aab": {"doc_hash": "698fd3ffce391825cbb093b8ebe61372887bbccc6a7c6d2065ce058488bc972b"}, "99b80284-1fe7-4710-9ff6-a2222d675a58": {"doc_hash": "e45e762230e3c7e47f92e4368f0296f758522145664c8d0ec419007709df383a", "ref_doc_id": "f4d52a8a-ea8f-4df4-beb6-357626548916"}, "f4d52a8a-ea8f-4df4-beb6-357626548916": {"doc_hash": "f778733f225006bda64fbcee50b72330d8bd561a0464c905772af20ed8644125"}, "24bebd62-3f53-4e44-9eed-70786187f20d": {"doc_hash": "80f94408783dcdaafd31a2ea36999fd3e9c963b8a8c2938ea4c35b5218838d0e", "ref_doc_id": "2f4a90dc-d453-4396-8bb1-94ac5c7afd92"}, "2f4a90dc-d453-4396-8bb1-94ac5c7afd92": {"doc_hash": "6bbc43cd4bce4e7c5d8d3026d740f34dfcefdbd1f5e71a89d167e7995fafd040"}, "cbcbbd19-95f2-48e8-a5bd-f5447bd689ef": {"doc_hash": "4c942256469817f797f0db3ccb2981c8094f8cbe8b04d8c893e0db75ffe9aa7e", "ref_doc_id": "df599c42-1e49-4963-92ea-222c83e915f3"}, "df599c42-1e49-4963-92ea-222c83e915f3": {"doc_hash": "1e933f18e550d36c0c5dc28cc44d626c979ca6453e6d3615d748d98c69041374"}, "4300fabe-8f0b-40be-a81e-eed2880c4170": {"doc_hash": "b72f15c231ca30f6b33c1af0ac1f55b46c1497063203945d5313b08d5d326d91", "ref_doc_id": "18fb179c-5a14-4749-b3fc-fece39bedc83"}, "18fb179c-5a14-4749-b3fc-fece39bedc83": {"doc_hash": "8453386a041555d902b3034508e14942d0a49152442d3eb1dd28fab27f9f2bec"}, "c9a8dbca-8b68-4add-a1dd-35f35a8778ad": {"doc_hash": "9d89c601d1c4ba1d076f4c43573836886323ca7cc21b186c330e6c0a834a38c3", "ref_doc_id": "4e64b583-24d8-4126-8355-055daabd1653"}, "4e64b583-24d8-4126-8355-055daabd1653": {"doc_hash": "bd16f09c9031b9abeb2b90c51ef2f3e51f26e2a6666ab1fc44cabe7cb95fdf4c"}, "3878d460-aa31-40c1-a599-dab739c7215f": {"doc_hash": "a73141034b32869d32110df82b56baea26793c98a4d8c621f8216ed989d88439", "ref_doc_id": "ea130fbe-181b-4538-b4d4-2cc3b0b702b2"}, "ea130fbe-181b-4538-b4d4-2cc3b0b702b2": {"doc_hash": "b58413e46cad0aaaf206ebe678cab88cb4b7baa7dc5b053f7a92a380180de52d"}, "598bcf82-13fe-499b-9cec-4424a6e554a4": {"doc_hash": "92438a6973da990e633479e4b24e5e083f6f8a2a25ae0a0a4a2fee784b542b2a", "ref_doc_id": "e6cfddb3-1bb2-42dd-914d-aa9aa6f942b8"}, "e6cfddb3-1bb2-42dd-914d-aa9aa6f942b8": {"doc_hash": "de85e552d8d533b5ad7d6a1899f984848afbc3e05d8068567ce412ec99764176"}, "cce4890d-fce1-4439-9977-ff80c3e01657": {"doc_hash": "f5cb53531f5fbfde0e2b1067cdb1a3f8166dcdd41915f43668b1ed5ee6dfc8a5", "ref_doc_id": "adf69100-2828-4f85-97a3-b84bb9df390e"}, "adf69100-2828-4f85-97a3-b84bb9df390e": {"doc_hash": "b62beba245b874621af57d18822b6d94796b8c70286131b7f79f2069bf5a3173"}, "f86b5c33-f04e-4d4d-9faf-ddfd9d319dfc": {"doc_hash": "4138cb02dd17393d54e975d9d63ab37166890740b06f2071d3a13c807d780bf6", "ref_doc_id": "1c74b27d-1d44-4838-a8c3-a486d4a1f373"}, "1c74b27d-1d44-4838-a8c3-a486d4a1f373": {"doc_hash": "e83cb71b659687e055b5a28ede9068f063795db458a5d79d13232881b52f9ef6"}, "8c01943f-9918-471c-adc0-236162bccdc3": {"doc_hash": "97a049dfa9316dec85f752ea6097936da9abe916277707c62a515b5fb1e4556e", "ref_doc_id": "e76b7df2-c820-40af-ba10-96e56d0a06ab"}, "e76b7df2-c820-40af-ba10-96e56d0a06ab": {"doc_hash": "9da878ec3fe5e274b0c9f31d5c69b6d271d2877e6d4fd89b6ab684b4a2d3b06b"}, "2f10e3e8-32e2-4023-9a58-0cf7f5e20f46": {"doc_hash": "1aae01167d2e17a5a85ee846a7753d85194cae54659bbf3dc768d4e7a8d26df0", "ref_doc_id": "292e4d1f-65bd-461e-90bc-a4efa98c0b1d"}, "292e4d1f-65bd-461e-90bc-a4efa98c0b1d": {"doc_hash": "abbdaebcdfa5362cabde4682ec163932af73809182df4593005008022d104449"}, "3418a462-5a7c-4117-9b49-753f6e1b1a69": {"doc_hash": "085714f53f45893c01d547b8916b7e946f55babf5325673a5476b90d9d288da6", "ref_doc_id": "1a91aa11-6a78-4a94-afb2-f52835ac0f26"}, "1a91aa11-6a78-4a94-afb2-f52835ac0f26": {"doc_hash": "2b7fe709eec9fef05db333c07595bfabaa90e7527ac631cc769248a3095a7cea"}, "75c9eb33-b669-49c6-a299-c8397bc059f5": {"doc_hash": "f4c61c482791c2d364eaf2a38af072c40538f35a5ce7f5f5bd17c2200fb74992", "ref_doc_id": "2195278d-e5c4-426c-923f-1feda49f5f71"}, "2195278d-e5c4-426c-923f-1feda49f5f71": {"doc_hash": "0fc93a7c3d9adc78f5f180f5439ec87eeaf4ef432af5076b47c361054639feb3"}, "00672ac4-9ae6-4dd5-b462-9ea919733c2a": {"doc_hash": "82ef684e23284345adfcb6fe56115ce102740748a1ed89d4334db49cab832658", "ref_doc_id": "2343d400-ec8d-4458-bbf7-5f666f6b38b6"}, "2343d400-ec8d-4458-bbf7-5f666f6b38b6": {"doc_hash": "ecb4aa29e870bbc8e78e0e226456ecc0698f9ab5918dbb2cdc45588da5a60ff9"}, "67d8c09f-00c2-4aaa-8101-90bd2f0d8d4d": {"doc_hash": "4682bac2ba73f0cba86cd3391cee4cafe1f84ad8698b38a5f8395b670ff9fa11", "ref_doc_id": "e49dbc56-46b7-449f-84dc-9e6cc19d01f1"}, "e49dbc56-46b7-449f-84dc-9e6cc19d01f1": {"doc_hash": "a622d500d6c94e491309691866a722b8d35140c1fe1a31055a004b85c9868ca8"}, "0262060e-0f45-4518-9bcf-c4e7cf3feec2": {"doc_hash": "ab3d00521ef82e115a2338335745dfef18e67e3bd041be92902e6d6ce74cd19a", "ref_doc_id": "66fb9a26-6d6d-4e7b-835f-3bc168f2025b"}, "66fb9a26-6d6d-4e7b-835f-3bc168f2025b": {"doc_hash": "85c5fc274742b57593ecb2898933d17ab35f4dea9c851dcd15b36c1fb091f5d6"}, "ff34c4df-3994-4666-b8f6-ced08b671f67": {"doc_hash": "04112933d734139775d11c7186cccf379db5fb21f967b4eb0c99039f95c04401", "ref_doc_id": "d953cdae-ab6c-4a5a-a24c-2b515c46a23a"}, "d953cdae-ab6c-4a5a-a24c-2b515c46a23a": {"doc_hash": "62e487304a27741272fc5c9b98607c300a59c30f81b7967f3e571cac882cf8a5"}, "0df0d702-6101-4bf0-bc18-db11fb3e196c": {"doc_hash": "2e37b17b84b6d1a209e06fa6354fb64ec172fab2a489cb922d6a0cf6a3414adf", "ref_doc_id": "7d977a78-ffa4-43ce-9bef-aa405e7a1cc1"}, "7d977a78-ffa4-43ce-9bef-aa405e7a1cc1": {"doc_hash": "638bfdb3aaeb2a289804d1ced681a53f3b51968a8a7befcd691be7cb5d58168b"}, "fb42a946-2e61-4d6a-8002-32b14c336117": {"doc_hash": "a0c389b08e66506361e8b05edba96a8d4b6cabba44e4f906393033f17bac04f5", "ref_doc_id": "a7b4c3ab-ad5d-4a9b-a43b-3bf3d2f5c9af"}, "a7b4c3ab-ad5d-4a9b-a43b-3bf3d2f5c9af": {"doc_hash": "aece695528e314f847b755426758e945dda68b96df818915a43422f8fdae95fb"}, "9b4140cb-e999-489c-b597-3f70fda1525f": {"doc_hash": "3a0f874cb0e67f34d56b14896f3b8c4da59c33bba51dd1732628899884acbcf6", "ref_doc_id": "3188332c-fe5d-44cc-a076-92bceff85e87"}, "3188332c-fe5d-44cc-a076-92bceff85e87": {"doc_hash": "e6172ce32ab26debc3b61d7233b38b1a950d1db8488f26f82479819d899cfe48"}, "288913ec-d7b0-4e90-bb08-0d65f135efa7": {"doc_hash": "56f080b3bcde347cd401eb9b610d5205c1324411d74c31344016860733cf6478", "ref_doc_id": "8083a45a-d2ed-4c2b-9406-3796a9a59349"}, "8083a45a-d2ed-4c2b-9406-3796a9a59349": {"doc_hash": "b06d44a1c5c6978b46246c111aaa7195cc36261a9a55dc05a564e1bca4060b39"}, "e29bd514-e623-4574-bc11-07ac2b0cbbba": {"doc_hash": "982c8ba5f18697b06d94b565330f35a8a7b4f728c618d75b119babf3d236c41e", "ref_doc_id": "783448e2-2c2b-479c-b955-fbb73fcd5c02"}, "783448e2-2c2b-479c-b955-fbb73fcd5c02": {"doc_hash": "5afa8226f25589692d801e066449b50c5e347ce78dc896400e2e1aaf66371d76"}, "75827215-6cb2-4dec-b4d7-f54904636bda": {"doc_hash": "bacfd8159534afe0d25eedf8b4524ad9d093620c87aadcded141cbfe02236ff7", "ref_doc_id": "e45392ca-f1d1-49dd-bbad-4a029de0ae2c"}, "e45392ca-f1d1-49dd-bbad-4a029de0ae2c": {"doc_hash": "6d26f2698183559117dbba1e5bfb6a89a81e0d559ecbab646a5ec150713d59c2"}, "21d71050-2c72-4434-a1e8-2e0e625859a2": {"doc_hash": "5b6c8a365e6284779687ed0093125f4f5d9556cd48e9efa5d85c9ff79d3c621d", "ref_doc_id": "fa50e8e1-e535-4ba1-833b-5c158abd510d"}, "fa50e8e1-e535-4ba1-833b-5c158abd510d": {"doc_hash": "49a4253f6693f6b281c840311ed5279174cae930ffe5e997c2e353a64345eca8"}, "b01afde3-7d09-483f-98d0-583cf1d48219": {"doc_hash": "22597980c995ec22c041bf3f5e3db88fb9a1909fbdd7a64c1779654550283c9d", "ref_doc_id": "1aedc1b8-92e1-424e-8cc6-953221fcd82d"}, "1aedc1b8-92e1-424e-8cc6-953221fcd82d": {"doc_hash": "f9f9d77c32560a156b8df1a8e23a6cf5fccdafd6d37eab6e963f4f3747e62bc1"}, "dd08777e-5609-41b0-9417-7de65610c7f0": {"doc_hash": "a4a3c2526a470a1200c59bcde4a07aab122b6a7f33da55976e4ed5b7d1ff8e53", "ref_doc_id": "3ede7535-27d4-4811-a35f-5896acd648bf"}, "3ede7535-27d4-4811-a35f-5896acd648bf": {"doc_hash": "3524bd8b615809966725919a37169598fd578e9953b4fb9c46bef9a44ea17ef6"}, "31a466f3-5e95-4116-be68-b425275475a7": {"doc_hash": "63552452304c68d889a6ac8e162a059c0da80f43cfcbfbbbe91366bd16650171", "ref_doc_id": "1c2f84df-c17d-47a6-81fd-24befa827a12"}, "1c2f84df-c17d-47a6-81fd-24befa827a12": {"doc_hash": "27cfba6eba519b5a0611f635912539c0a7f5b5c814857f501e18f8c9280a199c"}, "0f2c3754-ce9f-451f-91c9-0cfe92c9c721": {"doc_hash": "ffdb0660fe97855a7919f18f2eb2f88c944b4778b08f8300de673136dd66bbf6", "ref_doc_id": "2951bc6f-56a3-4160-b514-e757d6e43c21"}, "2951bc6f-56a3-4160-b514-e757d6e43c21": {"doc_hash": "44fe82593387b5ca29dabc61dfa6f1e549f2fcf180308c9fdb20affa655c66b5"}, "fa563532-a534-4482-95f4-79a986e1da1a": {"doc_hash": "ad770760e7773d71f2384046ccf104d75539654ffbd25958d4f2bda82e6f8b0f", "ref_doc_id": "723a75a1-7fca-444e-beed-8a0110d73546"}, "723a75a1-7fca-444e-beed-8a0110d73546": {"doc_hash": "860d2599efe70ea11d249886afcafe26998e1d2105efcb3ceb4abcc6fc8a9779"}, "1f89dda9-c909-4595-aa41-83ace6d73d63": {"doc_hash": "799c396e96b24975993eb18f5dd7ac6d912efbfa092b87196aaa925ddc19b090", "ref_doc_id": "c6d3cd54-e678-43f8-b031-d6e57c13e647"}, "c6d3cd54-e678-43f8-b031-d6e57c13e647": {"doc_hash": "e75c5908b5713fd02d1d9e87a9c50323c8555a8d8793a9a356d15358c5a6efd9"}, "84c6a002-6e7c-4ef8-a707-45e517aaa24c": {"doc_hash": "bbe82de52c07ca974e09818611b33894477c0cbf93035213af18ffc3dd5c4805", "ref_doc_id": "5a94de9f-6044-44d1-b93f-f90d6a44e3b0"}, "5a94de9f-6044-44d1-b93f-f90d6a44e3b0": {"doc_hash": "c6b3bab2755f29fd43b4dd2fd7fb7a6a428fc4ea8154e620399e8c0efbf86154"}, "aa35b91a-8a7d-478d-afde-70382db8eb5f": {"doc_hash": "396affcb65e87928f75152928f10c9d824025ab0fcdffe9162ed5f441c818917", "ref_doc_id": "5728df22-0c73-40d0-a367-8d832dbc9245"}, "5728df22-0c73-40d0-a367-8d832dbc9245": {"doc_hash": "351583be4a0e887f26b9487e1016ba241e6850769c52af2e4a97d0af47146920"}, "0d70634e-780f-4d2b-a0f4-ac131ca34fcb": {"doc_hash": "aee8b09a2dc068a514f50d36d03f2c97937dd5dc2b913399bcd701671d963ba4", "ref_doc_id": "4e8ecb21-d6de-47ce-9b00-bfcd3cd5ffce"}, "4e8ecb21-d6de-47ce-9b00-bfcd3cd5ffce": {"doc_hash": "4f4b5cbfe40c7b0baedcfbe0e7f5d73d9b5eee464a26c63eace41d73c76809e5"}, "24b276cc-163b-49f5-85ce-705a25555198": {"doc_hash": "376a85d4116515cd16175672de3515ac9556b5526b2134d7ca187a231ae98e34", "ref_doc_id": "b093fec2-dd90-411a-926d-a10db30fedcd"}, "b093fec2-dd90-411a-926d-a10db30fedcd": {"doc_hash": "131abd0d61fc3df549c0e28f6871b6135e6db0bd485e86df43e70393acb12f3b"}, "dc1920e4-52b9-40a7-ad20-44ca7ccb2ff0": {"doc_hash": "612f2e04a18529bc8721229df68118b9c04f2eb06a13d60a446d7cbcf71e01f1", "ref_doc_id": "f51d3ed0-5889-4bff-8ab6-40e9c92ff529"}, "f51d3ed0-5889-4bff-8ab6-40e9c92ff529": {"doc_hash": "4b6f774617f6f906d8fc91c274d0f047f10636d8f3316972774a24815ec5e872"}, "6c4c8708-2648-4306-b151-eddf313431f0": {"doc_hash": "2c4069ea3aaaf4ca0ca7143d9ce3ecd02f02b4e08d8cdd7f3db1917e28985eea", "ref_doc_id": "eeb5cdf0-e4da-4d6d-b4e0-cc467e2e1907"}, "eeb5cdf0-e4da-4d6d-b4e0-cc467e2e1907": {"doc_hash": "0c8be7f664921a7b4a62cfe9f0c8b6cf0d58ce5ebd83279f0302a06a9a9b47d3"}, "a330d2d7-e148-45ae-9d98-b9191f7e4af0": {"doc_hash": "4a2152a7163eb61823b9fd5fb02e37a4d90e75d81e80134457faec402c1ef9a3", "ref_doc_id": "a52b9a9b-55c6-4931-8fef-8555958f3701"}, "a52b9a9b-55c6-4931-8fef-8555958f3701": {"doc_hash": "d4a9b4bebfd2884c5fddd26afee6beff8181766c1b7824ac104270488b712615"}, "6be0c93d-d7a3-4874-8004-00bb13ba837a": {"doc_hash": "fb82b65d69a06ae5544dcfe79bb3826504e905607300485b4b8e6670a7e3074f", "ref_doc_id": "39fbdc42-0275-4646-87e9-320ff6d39f9f"}, "39fbdc42-0275-4646-87e9-320ff6d39f9f": {"doc_hash": "a429cb2988850bc00eb9f3390e2116c7402c65de65b8d54b21c5d3e9c439b392"}, "93e3fa5c-fda3-4607-9131-e83ed518615d": {"doc_hash": "f7319d80be8031961e80d118296bc9641a44beb60114c6905c001fe959e38501", "ref_doc_id": "4c7377c9-ea36-4d2f-b766-9f51398f8c87"}, "4c7377c9-ea36-4d2f-b766-9f51398f8c87": {"doc_hash": "68d603693df0409eb0bdb47cf6ab5502afe106f6336c8f9f122ec6d960d7c8b1"}, "c8384be9-d4ab-432f-8cda-552d4749bab0": {"doc_hash": "e3e3c86bbe071250b0203f7b60db2d79b52ea88c39520f1c52787f38fc9c1910", "ref_doc_id": "fa666ad6-38d4-4f8e-a12c-53f24f5c97a6"}, "fa666ad6-38d4-4f8e-a12c-53f24f5c97a6": {"doc_hash": "108b6e004c9d18d810a16e78f9616b261084d8be1e68fd639948515c61afb342"}, "db394940-7c95-43b8-b62f-42db3aff10e8": {"doc_hash": "430b75474c9104f3b2484c65b7248d4ecdace11074ca4c40af610516846d0247", "ref_doc_id": "7b20e562-945e-48f1-bbda-baa07b639e92"}, "7b20e562-945e-48f1-bbda-baa07b639e92": {"doc_hash": "f9935e00debe23fe434aef298c0d4119b8f262fc8dd5d711d92467e9babd76b7"}, "eab5ac70-92f7-4f1b-b2c2-8a2fe562dc94": {"doc_hash": "a4024cd2e7c0c6cd00c02491c29fe162559df266f7c6074a580c0e0fd4279db3", "ref_doc_id": "923b9369-a4a4-4e4d-b56a-3585644e3c3d"}, "923b9369-a4a4-4e4d-b56a-3585644e3c3d": {"doc_hash": "42730e49bdad6039e148fb95f4668d6e1413f223efc3a4dc5d265482330d781f"}, "de7ec8cd-5a2c-4771-8bcb-b77a894a1318": {"doc_hash": "f5f96ddaf47552483fc582087ee6e7f7af103cfefbbc25b4ad245082ce4407ba", "ref_doc_id": "172a84e4-2166-48d1-96a0-22a1f95045f2"}, "172a84e4-2166-48d1-96a0-22a1f95045f2": {"doc_hash": "eeb452bf74e1e629882432f94c6e01fd7d24edcca759b52374f6419f5962c7ac"}, "5d0b8fd9-d208-491e-8506-3e586825344d": {"doc_hash": "d2334ae98eef15bc7718b260e9c24afca70d207cd486fd5b17c8af5dd629a139", "ref_doc_id": "22382a28-8fed-4ba9-ac00-44094d5016a2"}, "22382a28-8fed-4ba9-ac00-44094d5016a2": {"doc_hash": "c12db0ebc2d23d8dd3a3175bc1e6439b517c35eb9ff3cdcb263c4095060f7959"}, "41ce7366-06c4-413f-a284-e27b33b53cfb": {"doc_hash": "98d670087fd1594e2169cdb854252c50ceb6ff3f899d254c52a62e96e827b686", "ref_doc_id": "7de5545e-6393-43a8-a87e-8a9d375e9c58"}, "7de5545e-6393-43a8-a87e-8a9d375e9c58": {"doc_hash": "2674691066b8257415f0d7ba7a2ceb7a4564881a811908572fd3c303004c6179"}, "88eab325-3e1e-4db5-b526-08f98923a4ea": {"doc_hash": "0607e3a1cdc942dfb8faf647a659793dfffcf0207a5b07bc18f0545754580224", "ref_doc_id": "33e0ef97-a35c-4ea5-b89b-80ab519ba72e"}, "33e0ef97-a35c-4ea5-b89b-80ab519ba72e": {"doc_hash": "a9a78d717eb2126cde36d5420d99ffa1503b5b91eba0b46a050df78fefda35e3"}, "ee1b05a4-6410-4f87-a211-c3117e832878": {"doc_hash": "10606f7ffbefd191bcaad4d4744de0a598552c95311a9ac9cb94bd120f518f96", "ref_doc_id": "0f7c824f-aca2-4673-a033-7cf9f8464a54"}, "0f7c824f-aca2-4673-a033-7cf9f8464a54": {"doc_hash": "d1625e3abd0899b4a2114a0dd4be3eb9d60aa3c56de6bc8659c3335fa617a33c"}, "6accb3fc-7e30-4ba6-b5d5-75762108a040": {"doc_hash": "04008337dccf7c2a37229cee04bc47a6e18e83a16ced431705a29f61a494528f", "ref_doc_id": "1392dcc5-9e16-4e70-b8a1-2f7903261ac5"}, "1392dcc5-9e16-4e70-b8a1-2f7903261ac5": {"doc_hash": "79bb22150c26a3d1f314e556540935081942ffcd0442ee67fada6552b6fb96ce"}, "812f5dc6-f36b-467a-9323-2e2207446974": {"doc_hash": "2da93bb17fd237226b2a5a1ff25ce27d1727a9bb7c67bbc10825abdfd989aaea", "ref_doc_id": "7c683655-2719-497c-bc6d-b992521ae69c"}, "7c683655-2719-497c-bc6d-b992521ae69c": {"doc_hash": "b60a533a72fc772dc8b93048098113aa23db89cd252711b437d3751dfcf357df"}, "02f8b8e3-2455-405a-bfa1-6f6559d07b74": {"doc_hash": "012694341d82806f8d605044f25ebf17d877f15e6b7e9d2368b87c560fc4e10d", "ref_doc_id": "72b43a5f-00e4-4bab-9ca6-630865dd72dd"}, "72b43a5f-00e4-4bab-9ca6-630865dd72dd": {"doc_hash": "c1008b53a1efadfb1eb99e35bc1620cf53202d97534c43bbd801acd516c156a4"}, "bc7ce527-f24c-419d-8c7a-3f7d6d28f77f": {"doc_hash": "6cf348eb6874688d0588d714797cf633f3db8ea84f0a4b7cc42ee2325a7da968", "ref_doc_id": "0b20c804-1977-4ddc-aa89-7a18711bca94"}, "0b20c804-1977-4ddc-aa89-7a18711bca94": {"doc_hash": "dfcd196cc37483af6bd29a7a2a59d2bdaa7863586417d4106439bfad9eaca32f"}, "c5e71ba7-fd4d-4989-a9fe-3c8cf4e5a166": {"doc_hash": "a37c13ef44db9e5e1d52515743e6b11343de0883e03cdacbbeb64caa4b88b727", "ref_doc_id": "507acf09-95fe-4b35-8ab9-e22e9bc24523"}, "507acf09-95fe-4b35-8ab9-e22e9bc24523": {"doc_hash": "5dab7d60387dab0bc994dd6f02eef9e1337098c989fc7abbc03d730093cdcc3c"}, "9489258f-4f6d-4b7a-9ddf-cee0c257a1b7": {"doc_hash": "042a5f10423f2ccb522e06f15f3b85f3aebcbb2ce7d6e7bbe314dd3f32df5f01", "ref_doc_id": "c0d16807-73a8-4ff7-b6aa-e6573307f07c"}, "c0d16807-73a8-4ff7-b6aa-e6573307f07c": {"doc_hash": "e36b2947a7dce24ea6cda69d4611804e1a266280822ee27399b242fc9d42da05"}, "f910d2ba-454d-4f35-93aa-f0d931acc75f": {"doc_hash": "3fdeac4fe11cc588eb265a716bee6d579204d7301098a3c097419d067a376ac5", "ref_doc_id": "b96ba79f-bcc2-4f8c-be21-4be9f02d621b"}, "b96ba79f-bcc2-4f8c-be21-4be9f02d621b": {"doc_hash": "8afe06b12edd69be6843627842d76165572fe6e08921df71fbb2a42e464833eb"}, "590886d3-f11f-42f5-aace-dd88f8a53ab8": {"doc_hash": "0bb83cbef07899b35b8e8e30200b4616dc7d9c3c5ea25b8cd04f688a11b588d3", "ref_doc_id": "13499eb3-08cc-45c2-909c-0a81d3a9e96e"}, "13499eb3-08cc-45c2-909c-0a81d3a9e96e": {"doc_hash": "391098361f6a6ddcac22ca4ccf2c77df29c361fc21204ffc95a081cdf3512bce"}, "c7ada9d0-2b59-4c5f-8f16-85a67e15aa91": {"doc_hash": "093177f67b0d99a98e8af3311c78a11799261d735f99fc5a7d853171cdb5e056", "ref_doc_id": "30b8c80f-632e-4203-a93e-c28321da47f5"}, "30b8c80f-632e-4203-a93e-c28321da47f5": {"doc_hash": "10bca67bc893ebc7b364290d9317ebc09e8529d68017c2a5d2f8ba4a55881aee"}, "5746061d-90b5-41d3-8931-8e945335b7ca": {"doc_hash": "2ab05e39e35b134496173471e4790338ad41729e9e690a90bb06b77726ecab9f", "ref_doc_id": "d679ad58-2d3e-4ddf-a86b-b9a3a63e6527"}, "d679ad58-2d3e-4ddf-a86b-b9a3a63e6527": {"doc_hash": "dc8183c0934ea4673bfeda1291c753f358f1aab141f7afcc5a09fd29d8482849"}, "5e1e4ba2-a8ba-4ded-822b-f68e794ecf40": {"doc_hash": "63264abdda78936fdffcb4af3f2e5b12c4b092e431f33d52c805618e12605de1", "ref_doc_id": "b072f526-1918-4a60-9652-b7e4e3273063"}, "b072f526-1918-4a60-9652-b7e4e3273063": {"doc_hash": "afef0113c13c28423fe20bc3314fa537298b366f8f8815bca2954fce854321f7"}, "fa0d2da6-253d-4b0c-b166-18a3b1269546": {"doc_hash": "609e1a0e9c152f5080615b167d963e08eb024c4c42c0960e4ede4e2d3a621c7e", "ref_doc_id": "c3ccc1a3-f9a5-46ce-86fc-3619d3c08153"}, "c3ccc1a3-f9a5-46ce-86fc-3619d3c08153": {"doc_hash": "87467d512696660478b1ff87c502b15dbafed62ca832779d6a700ac7263ddaa0"}, "9ebee44c-7a36-4491-8dbd-8a32e5515c79": {"doc_hash": "7cfa2ef6e2c878557a5ef25b5af9d4b021d6930bb60ee0d4917074dfd50a6c7d", "ref_doc_id": "99bef275-00dd-47c0-968e-3489385c0ffd"}, "99bef275-00dd-47c0-968e-3489385c0ffd": {"doc_hash": "73cfe63fd9588d0aef4d874041d0023dab5ff773655b10c3458f6e76d4e5ae74"}, "2b4cecc1-6641-4e37-87dd-d7cae7f18c3a": {"doc_hash": "944680b9e59d67b866e0e4c67f4b6f747570c181bb5be7bfc32d2590bb726e43", "ref_doc_id": "602cadd5-6702-427f-acc7-4aa62e7b0de9"}, "602cadd5-6702-427f-acc7-4aa62e7b0de9": {"doc_hash": "1ab9f10fc7de5bfe6b29f8ba2962cf34dbe256d294ca85bc6bdd708827b9c0fb"}, "6473bea9-1ab4-406b-bacc-085e2f8c3515": {"doc_hash": "41c4a5218c0c65d1126bfb4cc8be31b7baa901c2f1ab53c594fe44e007472fda", "ref_doc_id": "4a6d9aca-e483-49c5-8613-7a0ae4cbbc9f"}, "4a6d9aca-e483-49c5-8613-7a0ae4cbbc9f": {"doc_hash": "43b0223d65f0cd54c19fe4ff680629e27ac44e0a68f3f3049206e0469e481664"}, "c10b7e91-e3e8-4dec-be7d-3152531b1d08": {"doc_hash": "991989cab8e246bb9de7b0a070e1fb658fda518cf5f1be52db167dfbb93acb81", "ref_doc_id": "a278f36f-84a6-4db0-8bb9-b5fa649f93b3"}, "a278f36f-84a6-4db0-8bb9-b5fa649f93b3": {"doc_hash": "ecd57d90a52f0c2d106ed3f1d312a1a294195bda01443dda9013e9dd9da91c2f"}, "5238850b-970e-4277-9a2e-143b61fdf482": {"doc_hash": "97d9ce5bd8af1a3181402fe413ae026a66c4b721c29e50e6e1f66c874dd0c750", "ref_doc_id": "a42ec5ec-74bb-4a38-a1f9-7883a1d3dc80"}, "a42ec5ec-74bb-4a38-a1f9-7883a1d3dc80": {"doc_hash": "82903982ae90a49cacce0e7c1db0c840eee89c350a54e2a11155583e6710d13c"}, "b3a977c5-bd59-47c1-afae-816cafcb914d": {"doc_hash": "360a3343f3a2de2466584d56e18ab362dc57d321f3da71ad81525e39c7081c04", "ref_doc_id": "4135db71-ca87-46d5-844c-96fe1085dfad"}, "4135db71-ca87-46d5-844c-96fe1085dfad": {"doc_hash": "840a992499dc78f03817851da0b92ed8261dcbef164424f5533a1a6cb4d57b36"}, "a3ec8fa6-5720-4dec-a049-fe2bc54b5b56": {"doc_hash": "4ed237d3325d4a6297eef52a59a0136d6adebd03766016d25971edcb2e8d512f", "ref_doc_id": "748d40d6-ace5-46b0-8309-0fd21c84f198"}, "748d40d6-ace5-46b0-8309-0fd21c84f198": {"doc_hash": "59bf578ae47870e7d6fafb82eb92ac58dc2ab6f3c240bfd1df23d42f08785ba2"}, "c4569df0-8d93-4e9e-be62-1c45493ad55e": {"doc_hash": "3b4dd9c83431e40e5275d2ddbba201622c9d70f9466bcbeff16ed62be7a1696a", "ref_doc_id": "e08b53bf-7abd-4d61-aed8-24ffdd337192"}, "e08b53bf-7abd-4d61-aed8-24ffdd337192": {"doc_hash": "577774229f639a56b685f74f84d5e33d33faca58117741ec0d0794cef5ad88b8"}, "ce4edeb8-a1b2-4306-88e8-4e84c376fe58": {"doc_hash": "28762dc5ba7723ffd29c161e1ecb544f84dee9bcd907ed18c7ade11b41d09d15", "ref_doc_id": "c665a9a7-0a52-4c44-8bc8-8ad48acfe0b2"}, "c665a9a7-0a52-4c44-8bc8-8ad48acfe0b2": {"doc_hash": "1ad4374a081876e5884af4203cb5aef8b821f7890605fd47a7cdb0a858cbf553"}, "972c5596-b6a3-4830-9335-047fe09c519a": {"doc_hash": "b45ce694f9ca8ad62a6975bc1e2fd8835f46e87192d5147925992b279ffbce01", "ref_doc_id": "8ee05925-2b08-47cf-86b5-c59562689426"}, "8ee05925-2b08-47cf-86b5-c59562689426": {"doc_hash": "b044e7a4164dd763bbac2615eb45953312970cbda75070445a72b544bd1a1682"}, "13579c03-d33f-4025-9848-f463cfc65ca0": {"doc_hash": "d42b29919b163a003b0e416b929d687269671a8fabd1e3287d4fec01095221a0", "ref_doc_id": "0e78abe2-024a-4c08-93c2-1c1c13ca9f36"}, "0e78abe2-024a-4c08-93c2-1c1c13ca9f36": {"doc_hash": "137342c19acca486f18afef042358ee1c81315cacf09c66ee6effa26c7dd1019"}, "2f88ff68-f901-4eed-b5ef-ca44c394fc52": {"doc_hash": "3ab45a7ce924b10246632ca107932bab67b84f03cdf2d3a19a642889b2055e13", "ref_doc_id": "4aa7c7d6-483d-4778-b66a-6ba86e08c69b"}, "4aa7c7d6-483d-4778-b66a-6ba86e08c69b": {"doc_hash": "779234ad648dae0542d6d3ea3533a272420025339dd33b5136e4b22ffff57039"}, "dede0616-9634-4a68-bf1f-33936d4dd7e2": {"doc_hash": "58bcf048248ad0ce8a92045acde96410861a51d25460839eb567f89d5f8e69a2", "ref_doc_id": "3367915a-8ae1-4fd9-998d-99d084b3f786"}, "3367915a-8ae1-4fd9-998d-99d084b3f786": {"doc_hash": "ce69d8bda72adcd80602d29e97e2aa6ba92acadb3e0f2940716dc827ccbebcb6"}, "ad88d551-a40b-4491-874e-54f0a11742af": {"doc_hash": "986f6a1f14ce818158ac91c2807f542529802a127dd0836344f00ceaa187d866", "ref_doc_id": "476987cb-ff5e-4163-a5e5-a58492bf8819"}, "476987cb-ff5e-4163-a5e5-a58492bf8819": {"doc_hash": "ffdbe1f37d9fbcaa613ec29ec2b9068543dd9e1391ce2216d8a1c1506a089478"}, "e09db520-1276-4204-853f-6f6b293c3901": {"doc_hash": "8e642c177be7fb6de777dc6b2dad2c309b000277f76b4f749a8aad90b4348d61", "ref_doc_id": "35232bd7-c9eb-4f0b-a47b-faa2ceb8c3ec"}, "35232bd7-c9eb-4f0b-a47b-faa2ceb8c3ec": {"doc_hash": "b130c5412be2525f95fcde01c9e1db9152b80a503da933dd5d8bc6c87a1e17f7"}, "969f863d-4425-48c1-b535-34e609a13e2e": {"doc_hash": "4b21b379fe190f3addedff5974d30448103bd20a788e7c09c6f00c17f61a4e67", "ref_doc_id": "5b9a90d3-5c2d-47b9-89f1-03e5c0cbcfbd"}, "5b9a90d3-5c2d-47b9-89f1-03e5c0cbcfbd": {"doc_hash": "2b88aa65cfc0182d81dfd5dd3ad66fa06fe7b2ac7b2ee0fa05840cdf014264f1"}, "846c71cd-b8d7-4388-882f-0484951403dd": {"doc_hash": "1e45e03936ee2864994edcc772a8b6818fcd518b2b21a899e5330b1f8ab80e39", "ref_doc_id": "a9eb911b-59c7-4932-a519-52294bf25586"}, "a9eb911b-59c7-4932-a519-52294bf25586": {"doc_hash": "adf9703f96594785bbc8547aec4c6f31728be37eace5b55f91877494393b6b69"}, "42bc6faa-7a50-4bcf-8860-059c1e302bf7": {"doc_hash": "0b25a7ef0013639ea2064e58dbcd283abcd66c53525b993d04b7d7fb526f96be", "ref_doc_id": "52a867f5-d24a-49cc-ae8b-1d44dee56407"}, "52a867f5-d24a-49cc-ae8b-1d44dee56407": {"doc_hash": "7f1866292e93243b4b4754e24798c1af6ffdfd01ac7f096b72189af0e99d5f4b"}, "c1d3c98f-6f37-4e33-96f9-35feb5d6deb3": {"doc_hash": "6e827f0e97157fa68a2cdf4ec8091789f054adfb7b2c1ab65fe744f8ff6bb45f", "ref_doc_id": "4f9d71e7-c150-403e-a0f5-7f882420c8f2"}, "4f9d71e7-c150-403e-a0f5-7f882420c8f2": {"doc_hash": "fcc3b082b250c0ead89a5ddddde094dc5520fddb81b48f5a0e719539a10e6d0a"}, "6d61cdc1-9f6e-445e-98f8-cee5d917b46b": {"doc_hash": "a0b2b79b7fb38c515570fec57fbd6454288dccffe5295ce95acfe29f22debedc", "ref_doc_id": "ea3d1355-b75b-4ddd-9f63-f776004e673f"}, "ea3d1355-b75b-4ddd-9f63-f776004e673f": {"doc_hash": "565d5a2704e2492bac0de0c6e9582223aeae0454395de4429a0cfa53ae54a1ed"}, "6b353a2f-30dc-4b80-9765-c9fa2cec2618": {"doc_hash": "f3f97a8165e3acb7de93ce1fa3233b2dd7659356d81f82d08da4716d81056d42", "ref_doc_id": "7882693f-c9e1-40f2-84cb-7432106ed68f"}, "7882693f-c9e1-40f2-84cb-7432106ed68f": {"doc_hash": "c114be9eba3c998b240c77633379fdf0f22d9a49710fbd2dfa27c5a545e7f533"}, "d3059437-7c75-49e7-88ce-070ebc7730f8": {"doc_hash": "61dcb66ce953eee25014209485358f109a415f880f6d839ed4dd093724837d47", "ref_doc_id": "c8c440a9-5a15-498f-8905-e514e70f4a46"}, "c8c440a9-5a15-498f-8905-e514e70f4a46": {"doc_hash": "b4561ba4a2d77f71d2c458978106e49ee3b3023fdd36b4eca050cc22a5d5d761"}, "40d66cca-9248-423e-a008-8eac849da5e4": {"doc_hash": "3295605e94ec9b4dfa89476541bce1dde53aa974bf9125922414ca46a7bde104", "ref_doc_id": "214979ef-0bdf-4d75-aeca-82f819b061fc"}, "214979ef-0bdf-4d75-aeca-82f819b061fc": {"doc_hash": "cfd72ff6a2cd758389e03dfa5f505e0ecf78fce764b7cebca0823f6eee196654"}, "54c6cebd-850f-4d6e-8204-728fae0902ee": {"doc_hash": "2cee9fd4b2929ed5ff0574e3205c702e4dcfb45b9cc3de8b9a2a4db34f9e14d0", "ref_doc_id": "8bdbc301-1f8d-4aff-841d-5893a5362faa"}, "8bdbc301-1f8d-4aff-841d-5893a5362faa": {"doc_hash": "61dbb1aba81796b0a01b70aad81f2671449cc426b9edbd0837b35674874135f2"}, "ce2c2b4d-4977-442b-b94d-fd3aa2d4074e": {"doc_hash": "e21655c020049ec02bec3f0610d71a8741c4585e69efa11182b1f97283762d79", "ref_doc_id": "b66fbc2a-02ff-40c5-99f1-6e94e75a114d"}, "b66fbc2a-02ff-40c5-99f1-6e94e75a114d": {"doc_hash": "85b009b3e92d4fce670c404f4a39fa6f9ef13aa62e72fee465a4d589a4191760"}, "90dbfb0f-ed08-49b5-956d-86d340863ec7": {"doc_hash": "ff2a9f7b1f10451da22f4d77163ca4ae4044fcc5695aea5200e7f1682d329f94", "ref_doc_id": "f346e1ae-486d-41ee-a6c6-9490b0c95cbe"}, "f346e1ae-486d-41ee-a6c6-9490b0c95cbe": {"doc_hash": "aa6231304d982db4b5695f5402060829bba849e82c3ed05b6bec8ab270eb5096"}, "1c7d0ab5-6da2-46bc-a7e6-c8b0d0e55062": {"doc_hash": "86c2e3c477637888aaa381c8135cb6d1a3e0a57b7831a1b92ebd9929bf7fb3b9", "ref_doc_id": "37ba1b7c-5882-4e2f-812b-bab51f1363bd"}, "37ba1b7c-5882-4e2f-812b-bab51f1363bd": {"doc_hash": "2d497a68e41626c9067d847878f0f55985b525b192dbce9650e0fc1e47c5e58f"}, "9f7627b8-6b8b-4972-b8a0-9eaa51f91fc6": {"doc_hash": "07c2208facb402210b1a4cf5c0451644377392e0730089bff2134d04a34f1751", "ref_doc_id": "a143c385-9e12-4014-b254-aee11af21567"}, "a143c385-9e12-4014-b254-aee11af21567": {"doc_hash": "ea7c87b41b7cf8f69e5a45c8f90d24fe637ed24d7c86e9e9b987b84fa6bb181f"}, "599bd291-21c1-4bb3-bf60-ef220423588b": {"doc_hash": "8c9914d1a1e169ddf97374fb9912146d1750c41506d139d982b70e5fb19fae74", "ref_doc_id": "cc81deea-3bdc-4415-bffb-2f950bf9aa01"}, "cc81deea-3bdc-4415-bffb-2f950bf9aa01": {"doc_hash": "d353f57fefc0664df61b168e43a64a03ced9df3c48f9f273aca6999cd394cdd6"}, "6481111e-1030-487d-9b22-4abb0b03dba5": {"doc_hash": "3eb818181c8785eda1398b8bc05332fb8c990536e513d427c18e4f502e88bef7", "ref_doc_id": "06b3050e-156f-45f3-9bd7-04a20ac646f3"}, "06b3050e-156f-45f3-9bd7-04a20ac646f3": {"doc_hash": "54be72a2d2d318815b8c5f36eea37d019c555aec9181b595cc6929684ef02701"}, "66e3ce64-5931-4dcd-a431-dd0d8e79b3a3": {"doc_hash": "18c7669c6934872eaf05f359902e9dc644fa8f90846aad8db52269e34d908f1a", "ref_doc_id": "cc879ecb-dce3-40ef-9f28-f178761daec1"}, "cc879ecb-dce3-40ef-9f28-f178761daec1": {"doc_hash": "7505635d9acd3a81a240b8f3d1179a1d2d1ac259334aee5aafa7f9ae1b6a2860"}, "6a61a361-ee84-431f-9b8e-345fbd615d06": {"doc_hash": "797f68d09dcb9afde104aedb252be681b2dc11d8bab9bdd04e8d291801650253", "ref_doc_id": "a556389d-2b29-4ec2-96a0-da03efb32c28"}, "a556389d-2b29-4ec2-96a0-da03efb32c28": {"doc_hash": "ccfe86176828c30dd844e05792441122ab7b200a1d184ab9c3eecad177d09a1e"}, "3fd9645f-d8cb-4a33-a074-21c79a84ee98": {"doc_hash": "e53ed46b138c20e880eaa2dd52712e6b3755d721280683ab9a4ab4576a59e407", "ref_doc_id": "a5252ac2-58b2-4c3a-bb26-eb235117632d"}, "a5252ac2-58b2-4c3a-bb26-eb235117632d": {"doc_hash": "71fc2261e6b0352c3cffed4f3d0c5ef90f1658f9714d4cba67e1f35c5b697030"}, "bf64f202-7169-4c52-9aef-6b43e6ab3015": {"doc_hash": "f142a4ae7b6311a0d6571eb9828c0a483a2bc6ab5a9496597ca6f7fe92daeaca", "ref_doc_id": "19eb1ee2-3e28-477a-894a-3af9c3cdcaa9"}, "19eb1ee2-3e28-477a-894a-3af9c3cdcaa9": {"doc_hash": "735922a26ae9de486efe8f8e62ff595a56e62b3ed514a8065fc4c369078a34fd"}, "f44d9f1d-04b4-41b7-bfaa-466f258ce913": {"doc_hash": "333ff5a00d1ad50cc17fcd463021f4208fa12694c532de720bda1aee6a2c48af", "ref_doc_id": "ca41dfbe-6a46-4674-a6f1-4a30cc1042da"}, "ca41dfbe-6a46-4674-a6f1-4a30cc1042da": {"doc_hash": "70d446b46b17196c1a861d9e948d309efa0df1c8caefdd0ad6123a844ca64fab"}, "861d7266-037a-492d-92a2-37adde585903": {"doc_hash": "f76d6c60c4ed961c415aaa5c362c3b52818c37407279f32d06b83c76de0f36a0", "ref_doc_id": "67bf30f6-8ab9-4a7d-9abb-0cf049b988f4"}, "67bf30f6-8ab9-4a7d-9abb-0cf049b988f4": {"doc_hash": "de90987b335459f12d96fd0a8f35f26e5541cdd4ae49e42f7f078a7c8457c96e"}, "74f7263d-e677-44ac-b03b-5b608c63fc59": {"doc_hash": "5d57e8c4733a0246f8785484fc089cabb69480420cb7248b764b1a5af03692b0", "ref_doc_id": "6a50c414-62a8-47bb-aa2d-5b7d920543ad"}, "6a50c414-62a8-47bb-aa2d-5b7d920543ad": {"doc_hash": "c8fa2f3d84f4a5c380ce1723c3a664a5c43a3057704475d6d138e1c32c8ccb3e"}, "21f2e5ed-ee65-4031-bea7-51c6f1a5148c": {"doc_hash": "c703e144619b7d4993033b0cc57a3863eba72013643d344b141634f0ec116b24", "ref_doc_id": "9e33ae02-ae84-4a57-94d7-815d9ae41338"}, "9e33ae02-ae84-4a57-94d7-815d9ae41338": {"doc_hash": "aa006e75baff7c9064f2ca2840810a956591ee5e8245c1e3ce5d71645afe078b"}, "53416d69-4436-4473-93f0-c30958793c0d": {"doc_hash": "5514fb9c0b58511532ee5f083f7df4dd16a63f61e67b510a37132e39f2b553f1", "ref_doc_id": "c9588e24-fa7b-4b1a-b5c7-dd33fd74b64f"}, "c9588e24-fa7b-4b1a-b5c7-dd33fd74b64f": {"doc_hash": "8e8490712eec7a3e8abbbcf7c5add1639b93635184f05128acadb32ffb0f1412"}, "b0a482e7-58f6-4b4a-bb74-ccff1238cfc3": {"doc_hash": "42b12c0c9f2c61f487d8c9aab22e5d88981051f7a1ee477b2dad3704b00d6d5e", "ref_doc_id": "0a78aef7-02e9-40b9-a852-5740f4d18448"}, "0a78aef7-02e9-40b9-a852-5740f4d18448": {"doc_hash": "72abbc9686bb932ae79ac2a6a1512a5357c4ba37c1800e8a20a40ae588e368e8"}, "e8101366-a1c0-4fbc-9be9-81fec56bc487": {"doc_hash": "186d5679172ee47c5b9dc00b908b761128554ccac9040d4b83fecd6eaa7d61b5", "ref_doc_id": "23f4377f-7668-40c1-a148-599b39021f6e"}, "23f4377f-7668-40c1-a148-599b39021f6e": {"doc_hash": "85e1930bc9d6e91147fd3e2167f01f5dbe785415832ae0621924c1f5294be101"}, "420dcab6-cd31-48cb-94ba-d17e6ef79c6e": {"doc_hash": "6de13a157d55118535674946f28e2c97eeb18490db023aa8d5467190b58bf656", "ref_doc_id": "0189a6dc-6c40-4add-a051-e01c59f23e7f"}, "0189a6dc-6c40-4add-a051-e01c59f23e7f": {"doc_hash": "4c0931117a9dada9c84d5ba21d3c9196e03275af41a37811a6a5352737f8a6b1"}, "aed73659-ce46-4e6c-8f5d-d0a72a14681f": {"doc_hash": "59d53b87ebe7b329ff28d916644f816ea5277fb3229160d965a0feb254016b1c", "ref_doc_id": "6cc9ecc2-fcc3-4905-b3f0-9d75894c3c22"}, "6cc9ecc2-fcc3-4905-b3f0-9d75894c3c22": {"doc_hash": "22ace48864ba030c2e4ad1987f35c26a0de64f01b60cced7734a74a81d66aea4"}, "fb4c7361-380d-4033-bcc7-2ee74110fd9c": {"doc_hash": "4e96b9ca04672f1db6068c599e04013b81231fd00f52d3af6bf324e18f687665", "ref_doc_id": "d7cee033-efa5-4516-b46f-85defc419060"}, "d7cee033-efa5-4516-b46f-85defc419060": {"doc_hash": "5ed5876efa804e160ddcec6abcb921282ffc9d49e8e1065bbd6ac18f587bfe5c"}, "a448a452-7de2-4a84-aa7b-6bf12f14d858": {"doc_hash": "86e774acd755955bcfaecbcaa3c938c1e7f1a18790ddb3216f74c3285f915fe3", "ref_doc_id": "ded5d653-a03f-4c3f-9f74-f3fc4c5fe13f"}, "ded5d653-a03f-4c3f-9f74-f3fc4c5fe13f": {"doc_hash": "2fcae530fbf31cca07acf99174dce2bed0e6bfeee55e7a300ce52af16de95bcf"}, "ac4084a3-7803-4b39-882d-456d8f8a2ef7": {"doc_hash": "ef1336cb96eeae0268f6c9a01d2d1ec8bc072cc4e017b35e4396a071593dd3e4", "ref_doc_id": "59c22896-5f63-440e-a00b-1c57d3e43ce5"}, "59c22896-5f63-440e-a00b-1c57d3e43ce5": {"doc_hash": "922de180834e24d7bdc6b4772aa6e6b7652ed7f28349a6d515198f69129a743d"}, "150317a5-b946-4bba-a513-44595dd0feed": {"doc_hash": "65b0180da6def7047c19347ab8d079c6379ae006a66794cac3b2e04eb65e602e", "ref_doc_id": "ab949337-9384-4fb8-adca-d7b035948076"}, "ab949337-9384-4fb8-adca-d7b035948076": {"doc_hash": "ae74e359872a2398124c72f1066dbd0793aac3d261fea9fa5ddc1860ac73ef78"}, "8a2b26a1-6783-421a-ad7b-47aef3258e85": {"doc_hash": "e923baa4192a1ca1543e588622fadff82f833ce68a7dce61c82931438b3194df", "ref_doc_id": "fa62f79a-7aed-4a50-a8b1-61adb35fd69e"}, "fa62f79a-7aed-4a50-a8b1-61adb35fd69e": {"doc_hash": "13917b61b290c18a050fd36d31f8d977f98ddc1d00d923ad937a499148bf971e"}, "0c8bad04-8d38-4b87-85d2-48cfe9cf42ad": {"doc_hash": "fd6a0ae5be06ef6b8fccded7a2d4686ec9c8b3f38dbc43b2d4c9e8e88dd7a44e", "ref_doc_id": "b3c9a43f-5158-41cc-abea-99f7c245c96a"}, "b3c9a43f-5158-41cc-abea-99f7c245c96a": {"doc_hash": "08faf077a4fa61e9a8574d099aace36ad74b5787c104377c4cf991366ea0489f"}, "19497f37-de48-4f3d-98f6-564754b49d2b": {"doc_hash": "f823f14a08e73752ce5865f25ec84c7c031bfdb19dfac33e0fdcb7ca3766925d", "ref_doc_id": "07931240-a7b7-43fb-940e-2e95ba0516fa"}, "07931240-a7b7-43fb-940e-2e95ba0516fa": {"doc_hash": "8b5fbef727564f9df00338b28147175ccd901bb3a2d8a419b7bfe59eeb171cc9"}, "0d20c7cb-6c16-420e-95cf-3c8d98dd49dd": {"doc_hash": "23ed77eeafe5558ac6fa9edec9bf5a2b094059780b45bfb7496ecd2eac1730f1", "ref_doc_id": "4451411b-caec-41b3-b34e-87531dd2a79d"}, "4451411b-caec-41b3-b34e-87531dd2a79d": {"doc_hash": "a9da970d31ddeb16a74e8ff7f3a192ce4966ef2080149d279a9677fa54354e33"}, "085d1397-5ef9-4f9c-8d1d-e8f26ce6b55b": {"doc_hash": "cf2af9408733b83572a999cba5899a77f2a9fb979ac86718dcbf1b8b2f8747bc", "ref_doc_id": "9fa9c323-87b5-4617-9daf-b9728773c725"}, "9fa9c323-87b5-4617-9daf-b9728773c725": {"doc_hash": "63ec897d7a9a99eed93529d517317f56bce3cb710ea8bb61bc7fb5cf195686e5"}, "7537522f-c6c1-454c-a4e4-9ec4ffe81d1d": {"doc_hash": "c297d8d49ec2e2009b197f6fa6792adeed73b1b3dc10b554e9bf42ae32976c21", "ref_doc_id": "1ea43d8e-23d1-4534-ad76-9c820e0fc918"}, "1ea43d8e-23d1-4534-ad76-9c820e0fc918": {"doc_hash": "c51cb5884f56b4fce8f3755aa48d6ffbd3a91b3dd10279c244bda82cd2718774"}, "2efa92f0-ab3f-4f36-a939-d0d709c9a6ad": {"doc_hash": "03c0a5933e7aadab5b0f608d7faade5d32523a8d1e7aad1f6e16d53c2afb9c36", "ref_doc_id": "39deb505-0a45-4837-86a7-8dbbd7c683c8"}, "39deb505-0a45-4837-86a7-8dbbd7c683c8": {"doc_hash": "4dca5cef71dd19878c6425965b408893a38413f005717708ff4ba863bf45fb0c"}, "16f1da0a-c364-4ede-b99e-a3dbd7625fef": {"doc_hash": "4faf62e7dc5c4d340546947c6aba567e703d09dad1215e059f3f90a76937924e", "ref_doc_id": "de2471ad-0756-425e-8e77-d8a4693adb1e"}, "de2471ad-0756-425e-8e77-d8a4693adb1e": {"doc_hash": "b78872b9e49b92ed8fd204a0547be15e5431847feb30c1f0420aa1a0efa8c364"}, "5a039a54-a105-4e78-8a6b-6e1149475c1c": {"doc_hash": "feab26285fd37d33b913c6dd96df8f1cb41b5795eaef187a749c03cf88d21945", "ref_doc_id": "b6db348c-6aca-43ab-80ab-0696ce167d57"}, "b6db348c-6aca-43ab-80ab-0696ce167d57": {"doc_hash": "75d31efbf18eccd126316c4df7034b3abe742713788de0410d65aee1cb2efbbd"}, "411c56e4-038d-417b-a57d-8e46190d9638": {"doc_hash": "29c4916153532ba20fdfd56cc20197c128de6c9bfba0fb3c9529befb1099c6ee", "ref_doc_id": "b14c5289-ecfc-4d5d-9115-717a1c9346de"}, "b14c5289-ecfc-4d5d-9115-717a1c9346de": {"doc_hash": "77a618932ac8c0c73cade29c5bb721013f311045a6b382a159e680cf9fd529f7"}, "d4e78955-1063-4852-9f45-5ec64ff847a0": {"doc_hash": "fcabb3269379dd4a3f282f4f94a26a54df59ba6e4a0562851dacaa06f11550b6", "ref_doc_id": "17da65f6-cbe1-479a-a51c-0e5b2f7111e2"}, "17da65f6-cbe1-479a-a51c-0e5b2f7111e2": {"doc_hash": "bb94a357a8745142b364c84f28804f92635724a8292dc93c628db6e821fe1341"}, "966c1404-53dd-4eeb-9e13-57fc96841073": {"doc_hash": "3cd05b97a392ba90aaa21371bef6a6d6f2c7087ef018b6f6dbe1681d8e2eb7b8", "ref_doc_id": "5ea1871f-8415-45e2-a396-543db1ba094a"}, "5ea1871f-8415-45e2-a396-543db1ba094a": {"doc_hash": "468bfa3f5fd6f952d201783db5bbd56c4143a7f841374f03cb5c1d039cbb595d"}, "acb832fd-bd9e-407c-abed-f426a7a8e10b": {"doc_hash": "1a500e0026e2e24e8fa5742d0a4ca46db82a87ff59055236a7b8649609e07460", "ref_doc_id": "885c810c-d089-436b-b009-f645158ea52a"}, "885c810c-d089-436b-b009-f645158ea52a": {"doc_hash": "62c6ec49f632801d320b25408d393e172d86de211679c52cc9e52f0ed538656d"}, "4397c530-f2c0-4afc-a7e3-7210ebf517db": {"doc_hash": "befb70d626adb2d20e3a966d6c23c08be5769707074dd18024e4d1e255d18eee", "ref_doc_id": "3e634dd9-f2db-40ca-8c8f-6516e511579f"}, "3e634dd9-f2db-40ca-8c8f-6516e511579f": {"doc_hash": "82e63a2adbd1d9e39005473314fe1cfeb3a53867873d8cd1707f4c44ca3fd600"}, "f708bfaa-9bfc-4d59-8216-7b2fd6a2bc09": {"doc_hash": "54697f1e44b51e157921e028d7bf3340a5de901c995a917f130bf86882684f60", "ref_doc_id": "6dbf7d20-39f9-4320-b2fa-ef0e14f31674"}, "6dbf7d20-39f9-4320-b2fa-ef0e14f31674": {"doc_hash": "2951ff9494974b68273db9802c48eeee26a8d7decfa227c32df700f45ba763ee"}, "c8687213-1136-4568-9fb4-45c011f7adfd": {"doc_hash": "884d27b1819c3baabb2af7858678a97c0388798e4d1e234aa8a4598e8307349c", "ref_doc_id": "5709cf4b-26c2-4e71-8765-db4eef6afd02"}, "5709cf4b-26c2-4e71-8765-db4eef6afd02": {"doc_hash": "a07c8d2c6d8cefc93cf842a012b2699fb1e9361cf78defe9bdd69a6cd682b0b5"}, "2eb75872-a6a2-4dd5-8879-3ab1ca293008": {"doc_hash": "109c7f96cd699b94985b1f83af6155494279f5a069df5e526c162b89209a97da", "ref_doc_id": "dd4d5bea-f002-42da-99c9-8b2d7d327ff1"}, "dd4d5bea-f002-42da-99c9-8b2d7d327ff1": {"doc_hash": "0a0a4454814b0e18f8e9e8b03e02c3aedb6731cfe443c4f64f8f1a0770529313"}, "230bb030-3563-49ed-8215-b7518b20f64e": {"doc_hash": "009d53f51bd25eb36206e3be8337dbb257fdfed794391380a1d3bc2feb52ec1a", "ref_doc_id": "6c387dfe-1282-4f17-b9cf-36c32dd23c52"}, "6c387dfe-1282-4f17-b9cf-36c32dd23c52": {"doc_hash": "2f233680513520c93ef4adfca16a7a2519fdb76132c10b59c6163093891cd9a8"}, "4370143e-7ad6-427b-89b9-429d1a02887f": {"doc_hash": "943f44fda6a9607119524ea6ffc9f98c010f309579eda719b12704785bf7b39c", "ref_doc_id": "be7312a6-431b-4ddc-b1a6-3140f10dfe60"}, "be7312a6-431b-4ddc-b1a6-3140f10dfe60": {"doc_hash": "c5d792a8c27dc6700ec6315beb1a7ec7f0e870577e0e16dcdc0bbca1d2b40a7e"}, "1df5b839-2bf3-4b52-a6f0-8112d46979e3": {"doc_hash": "b8e79c11669b7b13cc02924073ef301c874f2b8811956c3a03ff1409675c1285", "ref_doc_id": "f4899501-fbd3-49ee-bba0-f35e0332dcda"}, "f4899501-fbd3-49ee-bba0-f35e0332dcda": {"doc_hash": "689d5a75bda577392929f31a73e08ed1e532e5084b2b492ecf465f6e2605b30d"}, "199c8337-17db-4353-91c2-13a8dbb6e72b": {"doc_hash": "8ec33d6386d64f08dc4e584ca9b3296ee6a5f98559998ab4e7e1b378a2d713a7", "ref_doc_id": "41efc110-5e48-4d28-99d1-a8c3a358c149"}, "41efc110-5e48-4d28-99d1-a8c3a358c149": {"doc_hash": "ce6569ac2036165fa9e662b47d47dda39e0b2ba306f9753792b6a5fdb3cb7a69"}, "7d11918c-9ca5-4f65-95e6-3ecea7dd4faa": {"doc_hash": "0d94437ddf2437728307e47ce706ee329e56915e5011caa02e72d321e9068120", "ref_doc_id": "3702f97d-4aac-4aa5-abff-0e66963bf049"}, "3702f97d-4aac-4aa5-abff-0e66963bf049": {"doc_hash": "16ce6deda8fc3c1681afeeb6deb0c474b123e0ac9f5b6f7b7984b449d897c324"}, "6c6bef40-6386-4e89-97cd-867dc3e2708e": {"doc_hash": "b44ec1f30c1c37f40e84e3a693b82b465228c6e8ec14ee670ea547564e43e05e", "ref_doc_id": "39c53dab-077d-4a11-97f0-33ace19be2b9"}, "39c53dab-077d-4a11-97f0-33ace19be2b9": {"doc_hash": "3756d2dd2505fc5c6ac117a20a6ecdbddaf350f28a1b7660c533543b81b96712"}, "a7808370-cc4f-4740-8a29-1390d345cd94": {"doc_hash": "fa86271948c4e04bbe09e9c12df15f78c66299816d7934951ecf418a72dedaf6", "ref_doc_id": "38ddf893-bed8-425f-a9ac-4de73da5fe09"}, "38ddf893-bed8-425f-a9ac-4de73da5fe09": {"doc_hash": "3fa81306caa3c42bd3d5fff8110005277b3523d9763aabd94db95c44003cf77d"}, "607d98ee-8b42-4097-82d8-10b0b4958e6d": {"doc_hash": "a2392a29a983618ba698d2de9da3d3f55240948df2cb87cc171c333b31b2cc27", "ref_doc_id": "cd19dd18-c13e-4b3a-9507-8d8138a5caa5"}, "cd19dd18-c13e-4b3a-9507-8d8138a5caa5": {"doc_hash": "51facfaa1ed1b4025bf53487d0951f4608b844b450696c19d99e049058c2c96d"}, "8e8a1100-23bb-4a5f-88d7-630bd31ce61a": {"doc_hash": "30d403d5b94225bc73775eefe2bc94a46ab203fe3199ced506c21f32dd5d0b3d", "ref_doc_id": "2715fcf8-8a4e-4a26-bba2-df851bb7b45e"}, "2715fcf8-8a4e-4a26-bba2-df851bb7b45e": {"doc_hash": "354fa5769c5f99875f8c178e357d68fd3b2f05d49d4655ab853d0f967a42b5a7"}, "7af6f8c3-20cc-49cb-bfb9-2c5fa395e400": {"doc_hash": "8315789de74cd192bd4a82152d0432e1502601f76da055218abf6c93a0f2a5fa", "ref_doc_id": "be1f2b27-f9cd-4c97-af23-e0a708da3bd3"}, "be1f2b27-f9cd-4c97-af23-e0a708da3bd3": {"doc_hash": "6ebb9d2998e8891fa2e4c5c47a944ce151f1558c62648292000913e3f58f7f9d"}, "4fb11d85-aba8-4f83-8a35-92e2cb1ce4a1": {"doc_hash": "5b7a7d1b11f12244b6829a9f2b2ca8d42b35c7246d71eb872b8f56a6109e0ce0", "ref_doc_id": "b405ca75-f584-4797-9d4a-17cd73695b08"}, "b405ca75-f584-4797-9d4a-17cd73695b08": {"doc_hash": "ec5bf4ecfcbc8431323402d01581857b10ca478621937133208dc546344df102"}, "62806a12-8601-48e4-bd39-0d4584c91e45": {"doc_hash": "cc3dee7721875fe59cb3d5c43b8008d3f21ab286b173d9f08a6489f4419553df", "ref_doc_id": "1e124133-b23c-4bcd-a910-5c903749973b"}, "1e124133-b23c-4bcd-a910-5c903749973b": {"doc_hash": "5c0f0725db3b250495c7acf07bdca997ec594ce2d4691d47970ba24010f85ade"}, "175a26fd-5c3f-4412-a183-96fb4437a869": {"doc_hash": "2d681f62756d2821f2f24fede00221aa0e199fd96f773b518ecdec0893fd2e96", "ref_doc_id": "1db83b6f-404d-4021-b1c2-e80f102b635f"}, "1db83b6f-404d-4021-b1c2-e80f102b635f": {"doc_hash": "4da215729668f220860027765f6d63700ffb8da8934e12c2d2b468eb594455ea"}, "1f6fe2b7-16b5-491e-8693-fcc87238fe3b": {"doc_hash": "f1143c0b08a7a7c9be165fd100ea4baf819d2b9d8a3510ca781f4385e2d1b67f", "ref_doc_id": "2ff37699-63ec-4045-b524-489514d9cdfa"}, "2ff37699-63ec-4045-b524-489514d9cdfa": {"doc_hash": "8fdcae2ff6e9a0c08c6f81bff9f22620eb8887e5e73b49d60815d7e5b931f0ee"}, "e829393e-61d4-41a4-9f57-7dfedfe455d9": {"doc_hash": "ea2d7ffb5fdc3f6641e3925733ba26371c1ad7c00fcb1e7fa029cd52c495d1d1", "ref_doc_id": "67f9f86c-6e83-423b-baf0-d01020ddd856"}, "67f9f86c-6e83-423b-baf0-d01020ddd856": {"doc_hash": "8f75bcbbbe436c13640964f1cf6df6e5df4b2eb3531098107a646b331425fb37"}, "691c40ba-53c1-407a-be2a-004cd294321a": {"doc_hash": "6b4d00bf8d7dc117134005b44547fdecf9aaac4b2c19952a55efde58498dd18f", "ref_doc_id": "be81ee35-2a0c-40b2-ba66-d3de2d042c39"}, "be81ee35-2a0c-40b2-ba66-d3de2d042c39": {"doc_hash": "53e3a6bccf1b2e78cca54d796a9f13fbf28bfd2764ceb24f323834472a77b3e5"}, "96e88998-18cf-49bc-a5e4-ff1e79bd3e57": {"doc_hash": "083038460f17e8266a325ca2bb6e2dcd352358f21536e5117b5767acb72fb15c", "ref_doc_id": "2467df83-26b7-45b4-b8bd-56c290fcb848"}, "2467df83-26b7-45b4-b8bd-56c290fcb848": {"doc_hash": "b999a473291c2386dccdccd7929690e77dd86f41e4887361b35e2c3977be0074"}, "c2d21751-1412-4a00-b1b2-3ee563beb18d": {"doc_hash": "66fa7761ca3331ba16ec9b2b3924d3bccd0b819a6b537cfd989c2a36d94844d8", "ref_doc_id": "3ed8ea3f-0cea-4a13-9835-cfec2d8598b2"}, "3ed8ea3f-0cea-4a13-9835-cfec2d8598b2": {"doc_hash": "5cdbd8ce892ac74a7f71e622a0e5442f491ef7fb08b56b8e7c8b849ecacd87e3"}, "8917fc20-e1f3-4f90-ba22-66d9ee39d024": {"doc_hash": "eb1861a5c2ba5a82677373a606c5acd61f24a5ed7d4d7557fefeec210258f11a", "ref_doc_id": "063b35d9-e68d-4410-aa68-ddd13cb0af63"}, "063b35d9-e68d-4410-aa68-ddd13cb0af63": {"doc_hash": "95aeb7bb484b377595c771f1294a5b4dec9e1d3cb3ea88b3ee1b6f6103593fa7"}, "b4c769a3-3ba5-4edc-957d-8c6894846d1d": {"doc_hash": "a401b76a523196fbc675795bbda2e82f132182cc8544fa2978a911a634554080", "ref_doc_id": "2f8666c9-0449-4463-a031-bea15f20207a"}, "2f8666c9-0449-4463-a031-bea15f20207a": {"doc_hash": "eab4a1c44413d2010e986d03ff4d7e4a5991e8970a9ee7b29238c69c7b8452f1"}, "7149a5ef-768a-4a86-b1e5-0a2118518778": {"doc_hash": "d00db1c2361974bfdfaebb602e896367017b48a84e9483b9507c385c980f0685", "ref_doc_id": "4723e2af-dadb-43de-917a-cc286d008642"}, "4723e2af-dadb-43de-917a-cc286d008642": {"doc_hash": "03701eba51d9e66133f6b4b466a61a7909806a9160b7ea63920468f2268bf417"}, "a89b57f8-ec27-419d-8867-a3b3461cc1c5": {"doc_hash": "4365d80a2945b793ff814660f22a1586f468a51208fee3e2f433ecdaa20423d2", "ref_doc_id": "e995fac2-4118-4c3b-8df1-8131b92d0f86"}, "e995fac2-4118-4c3b-8df1-8131b92d0f86": {"doc_hash": "5b5f004e1eac9e69e1d9ba873ffd0fec06a320354dee8a04faf87c6e013e212e"}, "d097b518-b49b-407f-abca-7f0a199cf1c3": {"doc_hash": "085e1b0a2e4bb8906e65694e9c34837b5d19beec00e961387b18d05084d1551f", "ref_doc_id": "fff652fa-0649-4f91-bbaf-64076684d2e9"}, "fff652fa-0649-4f91-bbaf-64076684d2e9": {"doc_hash": "afacd6a90a58b933de34a4b2054614dfadddc3beb62c6de0599b30266d160447"}, "a7391b02-a144-47e0-87b1-cae11ca9277f": {"doc_hash": "4077a2ec4444c95cad4aabb7befcb4213a0cc61302ebbcb1322154b5a9992b37", "ref_doc_id": "ed9240a5-f41e-497e-9517-04557a73720f"}, "ed9240a5-f41e-497e-9517-04557a73720f": {"doc_hash": "97458a9a0be9fc614359f886a8eadbe03bf63621f68118b209c1fe3bb5a788eb"}, "79124434-2611-44ed-9eb3-9ed17953f601": {"doc_hash": "673439943faa4f3fcb9aa17b23cd1d7cd0a0ce0d132c1740fa7daad96f4536c8", "ref_doc_id": "3d653429-95d8-493f-918e-31538255016f"}, "3d653429-95d8-493f-918e-31538255016f": {"doc_hash": "1a74a3bc35997f0c33924b4a8a41b665da4fa216eb0e491e2e54fd181b424d60"}, "d763d8d7-1898-4ba7-8288-ced0f035e458": {"doc_hash": "ed6531f549ac12a29738b1bd6e0db61c6b0084d38d78dd5076c83fcd1395d222", "ref_doc_id": "6b414f66-c2bc-4954-978a-73af938d7e77"}, "6b414f66-c2bc-4954-978a-73af938d7e77": {"doc_hash": "92a2319a314561e9eaa5d3fe3a44a80cf807851ae56f178996b1bd752404df58"}, "5f37a94e-b6c2-4f03-9eee-7cff929ecd92": {"doc_hash": "dd252a9b009a8831e1017dbb2283b17777023340ec0fcca1f375aed4bc2d9632", "ref_doc_id": "9c49b8aa-264b-464d-9b72-1848f1b71c4b"}, "9c49b8aa-264b-464d-9b72-1848f1b71c4b": {"doc_hash": "21a296f7700ca279bb417e9d851a7fa94ce28fe16d0bf8347addf750533e4c1a"}, "5c42cd2c-bfe3-40ce-b9f5-16d665735533": {"doc_hash": "66d2940ce313d11a55d8c163d38afb317745272c2b075c86709f3f83d3843c2a", "ref_doc_id": "a2a38b57-e448-41d6-b583-a05dde52b7fa"}, "a2a38b57-e448-41d6-b583-a05dde52b7fa": {"doc_hash": "095baf508d4d1fc4dbb02711c1833d2937dc6854a056e9e1f5b513257d6d8b1b"}, "921caea4-6149-47e1-8bc4-1a04cbf00340": {"doc_hash": "75d5608f2ff1da8dff8c091018606d608f7ff16247039e904d0f4731456e2eb1", "ref_doc_id": "7e8d4b48-b9c8-4de1-9dc9-5b4667b8af30"}, "7e8d4b48-b9c8-4de1-9dc9-5b4667b8af30": {"doc_hash": "502778f4f62e56a174405cbe71439e08c17263a0a1720d78054bfccee0d39131"}, "daf16049-d721-48b1-80da-f28dab9d130e": {"doc_hash": "648626248db939405fd5f8493e0810c2c982bdc8d64281c6efc8ab26209277ee", "ref_doc_id": "2a1f6169-dfd8-4331-8e5a-ffbd6cd05908"}, "2a1f6169-dfd8-4331-8e5a-ffbd6cd05908": {"doc_hash": "d59c2ac44923eddac35c7caef0ac5f0d14a049547fa778b3acd1f0bb2d5f0c07"}, "2261da80-2802-46e1-b928-a63ed06e8a55": {"doc_hash": "13e8e2987167e7a2bff002a4ce8fb4a57cc12bea7af6f93b6898cd6a1caf12db", "ref_doc_id": "69f507d0-b818-47e2-b7b1-f68fae234921"}, "69f507d0-b818-47e2-b7b1-f68fae234921": {"doc_hash": "be4c51ca5a3c62a5a57c2a3e90d1e69497815bab0775d382841aebc8c0e48c61"}, "4f861d76-0996-461f-b7ab-6a2bd91b9b78": {"doc_hash": "9dcd128918f1599ffa7cdb7c0712480e388e4539c0db0aea442b0d222d37fd41", "ref_doc_id": "5e0e696e-b5eb-4c8c-bf6b-56235a707b58"}, "5e0e696e-b5eb-4c8c-bf6b-56235a707b58": {"doc_hash": "94b66ab12d1c941c82ef5a62e4d2286a802fd85fe91937f260687082d1e1fcdd"}, "21dbfd7b-dadf-48b8-aff3-cf69427afdfa": {"doc_hash": "685d36422956630de5971ae04aed347f30516ef4662f7776902432fdd7d5d00c", "ref_doc_id": "efe7824a-78c0-475c-8189-555423ed1bbd"}, "efe7824a-78c0-475c-8189-555423ed1bbd": {"doc_hash": "1703e7fd8d2bb13a4bbbe38123b6f805fd033252d171c19c7dfbdb7e94847342"}, "8b757cac-d8d8-4019-abd6-77d640a5186c": {"doc_hash": "ac4fea4f329d31c1719429e5b097df2d8572452f044507db1c0f925d34aabfb1", "ref_doc_id": "ca60869d-9fa6-490d-9739-6bbf4f227711"}, "ca60869d-9fa6-490d-9739-6bbf4f227711": {"doc_hash": "524519a78474875e1945471d9d70e9073827c46faff2640c21af8b7ed65180b3"}, "78b29f77-9f59-4279-a17e-c27c02c88a9b": {"doc_hash": "eeee501fa1b91f64602923e8c36275cf714652127917eb77cf8fea04d2fdc514", "ref_doc_id": "9fc8d408-c575-481d-8f34-ad105018391b"}, "9fc8d408-c575-481d-8f34-ad105018391b": {"doc_hash": "22403d8dcf061e8f79e016ce3fb18cf77fee128a44ac91df7fba8f320ac1f608"}, "28e09020-273b-42a3-8e32-238443d6d62e": {"doc_hash": "4b07d42e68f4c868fe202db47de923ca2f7f2f4a32037bc107777f93858072c3", "ref_doc_id": "4b4bee4d-5d55-4997-be8d-5b9991e212cf"}, "4b4bee4d-5d55-4997-be8d-5b9991e212cf": {"doc_hash": "5ababce13cea2fb7ce42537e00d63aad7054f64ebf0c2f27329c4795b6757111"}, "46de2890-f283-4fba-b582-60008f8ebe67": {"doc_hash": "52739aa8b83e422f15c26ffa46f8211af9bf4951d6ced2a4fe5d49e247afc975", "ref_doc_id": "a470d5f0-ff52-4144-bc52-64cc850cb77f"}, "a470d5f0-ff52-4144-bc52-64cc850cb77f": {"doc_hash": "23fcd48a93ebdcba9e84227f8cf69e0ce0488e47a1f8a7e16e4c036ab80c2436"}, "5da06c90-b4cb-4957-b189-809ff0137653": {"doc_hash": "ba10418bc1abd45aadafc9f6de78462d17aedad03c5212c84aa2ac11e8cd6444", "ref_doc_id": "40c0188c-b138-4f32-a1ff-162ac2d0628b"}, "40c0188c-b138-4f32-a1ff-162ac2d0628b": {"doc_hash": "6b097f00463d5d881f67d85b869a74f2f22cdcbdca913b5176a15dd854cba18c"}, "7e8d0a8a-d1b6-4bba-a6d9-a38fae8ee5dd": {"doc_hash": "dac017be95e01ffba13f8bfede0aae6bd22af43afc945954bc1f56736ba769bc", "ref_doc_id": "6f7bbca6-bd7b-490a-8c9d-bcc073e4e3e4"}, "6f7bbca6-bd7b-490a-8c9d-bcc073e4e3e4": {"doc_hash": "7c8bd93073e589901720dc043a107e61742c4e48e39d66b618fa2bb9133be635"}, "090dc937-c2d6-4832-9f68-a789c8852e95": {"doc_hash": "1154095c64d2ba3c31c290ef25802e909a227a670b3425bd68333cee866f90e3", "ref_doc_id": "26eccf46-2789-4335-8101-b4f1c84c9605"}, "26eccf46-2789-4335-8101-b4f1c84c9605": {"doc_hash": "f4624d1ba920e726f8ccd7fd46c5448f4e2d58ff924be069018ddf463ac6f8cc"}, "b564f9c9-dc8c-4510-9e8d-fa143bb0f3bf": {"doc_hash": "c5416daa2eba119f349a0fffba625e9f763dffd57ed23c41dc53d45793631dd1", "ref_doc_id": "70b8eae1-99bf-44f7-bffd-02e8f0abfe0e"}, "70b8eae1-99bf-44f7-bffd-02e8f0abfe0e": {"doc_hash": "cab8f180c8c3b97fe2328a5e0f9e18c752c0dd18105d247d64e73fbb10278174"}, "78dff5b2-914f-4c67-a3a3-fe7f83b5308b": {"doc_hash": "42b00fa1329a52d4f6ac25da562c129f560c8f4d3235d6b3cd634fe842acf76d", "ref_doc_id": "ca3b1f60-b7f6-4a85-8367-21bdfb58e553"}, "ca3b1f60-b7f6-4a85-8367-21bdfb58e553": {"doc_hash": "9dcdab8e2ea8582133bce0a2dd3cf909b5bc958369f47f7455374cfc6808cb3e"}, "3b477e16-22b0-4fd5-9b6d-3df71662d743": {"doc_hash": "31c2a839bb6f508c28513b035c99a4278fae8938cf68eb3c85ee194f8638d2a0", "ref_doc_id": "7e7da755-8bde-4561-9418-3eeebec483e6"}, "7e7da755-8bde-4561-9418-3eeebec483e6": {"doc_hash": "dadd2a1043acf27f65bbd87d68a26b0f327e87512f8ef85853961fa41a4e7ab4"}, "ebec6313-ab88-4d96-a6e9-b30fdc67b0de": {"doc_hash": "88dfc9805df314026134b5f337ce9d70115903899633c4bed304251e7bf44bd2", "ref_doc_id": "b26e7695-4811-4e6f-875a-feadadc8ce4e"}, "b26e7695-4811-4e6f-875a-feadadc8ce4e": {"doc_hash": "fe6dc15dcbd9d092d0f582ca081c86cf9c40fc576a09a7cabd3d5d0091fa943f"}, "1bfd8922-cbfa-47e8-99e3-ad454e6a9d61": {"doc_hash": "c1a71a26b56a9bce644ca3b57ce5bbd4bae7ad3e0e3d863e84be85aab22ed857", "ref_doc_id": "957616c8-3cba-4a73-a5ec-c599201af525"}, "957616c8-3cba-4a73-a5ec-c599201af525": {"doc_hash": "e2df19a2b898398b5f03713f1d88b0fc7df5f9438e090a7bfefd83a5ea8fb12c"}, "bf2d96a4-512b-489e-92fa-2d6774b2cdd5": {"doc_hash": "2124bd08d578e66a775c12a4ab998c34866a3623f7d822889e2715479d1b7ef2", "ref_doc_id": "357caa4e-b94f-4bf3-a6d6-3eebebae9b19"}, "357caa4e-b94f-4bf3-a6d6-3eebebae9b19": {"doc_hash": "8f4d6bc0a38d43bd26ab77bc5ae967fd03a5b5ad2e11eb8e5bae6a12062c1f90"}, "93a9b256-fea0-4de6-92ea-ff7ac6fc5d5d": {"doc_hash": "39e9784af0cc9f75c5c2ba64fa5a9126e588246752638b19372b3fb41922e354", "ref_doc_id": "ea340909-ea92-4653-b1e3-c0b73d576e87"}, "ea340909-ea92-4653-b1e3-c0b73d576e87": {"doc_hash": "db9beb0815bde88a37258da2c617bec581e4c81cac6bed96dab58f83d42402a3"}, "24f8fed8-cdb6-44e2-80cb-87273aaabe86": {"doc_hash": "3f20dd0de67fecc4bebe4b71aa2007c64218ed3f4a55375293b7bb61a9f1f237", "ref_doc_id": "1db35492-bcee-4eef-a1b1-c9ebcdd5bef8"}, "1db35492-bcee-4eef-a1b1-c9ebcdd5bef8": {"doc_hash": "77c28a2c2bd89fba969ffcaf97ea91b4ee28f70073d49007de401253a4e117d3"}, "7a9ed59c-e036-4b48-92b2-abed501990b8": {"doc_hash": "ac5e50d2f5de74feab273d7ab3cf4d176faa6a3e647acd8efd2da95b401f9415", "ref_doc_id": "f60cdee9-4794-4fe0-9136-11a29b4782f6"}, "f60cdee9-4794-4fe0-9136-11a29b4782f6": {"doc_hash": "a63d9cc98fb1842094448adc239e5e9a4d766f721a7d7fafa10f22d96f64275f"}, "5debf129-de4f-410f-8656-393b66abc056": {"doc_hash": "16f92edd794db3499d227010f4052b5a6f05bf398fe086a2627f30894207129b", "ref_doc_id": "d7c612f7-d1f6-4cca-9ab7-5e4345b87d62"}, "d7c612f7-d1f6-4cca-9ab7-5e4345b87d62": {"doc_hash": "6995dda5f024d13d655948e7450afe346b54154ace097ce89314455650925f13"}, "43449008-1604-4908-a9bc-ded41889f173": {"doc_hash": "f543d9b06d56e170fd0a3a3a68e521bd7a6b79acd33be38104f9d14ea6b18682", "ref_doc_id": "3cbd2b1e-c9d3-4e2d-9599-4749692fdf8a"}, "3cbd2b1e-c9d3-4e2d-9599-4749692fdf8a": {"doc_hash": "5bf96aae3525682fa53b1645d7e488ed5d0ebc93c10f9ad533d19dcaf15d6482"}, "fdf34102-788e-4aa1-8f99-d1b53a2815cc": {"doc_hash": "41514611fb9afd7c335f7f93ca0d49f541fb80729d25cf5a3c543eb5832dbaf6", "ref_doc_id": "92a70660-f8e4-4d55-9d06-cf734ad29ec3"}, "92a70660-f8e4-4d55-9d06-cf734ad29ec3": {"doc_hash": "a41e4e5268eaf83918f4e8d9acf568b1b19fa871a2cc27b21371bbfc2490623c"}, "17adef7c-5f8b-4c8e-b9e5-eeefb6cdb2ba": {"doc_hash": "62399cab042dfa491a3c0bbdeaf9b71c0464eb66e80e392be3298d5d0b9bbbc2", "ref_doc_id": "77ee5175-1df2-47f8-8b13-bc91d64d9449"}, "77ee5175-1df2-47f8-8b13-bc91d64d9449": {"doc_hash": "912b5615e195159a51e5f268b605fdb5287ae01039832da42a898d7f3f1c3787"}, "82f1663a-b29b-432c-905e-aaf655ccbef6": {"doc_hash": "88b8c4f2f28a1625ae8324ef1adeb95cd4ef2dbe06f76c6f0690d87b63a7f6e1", "ref_doc_id": "7e127cdc-c068-4d32-9977-869a77634530"}, "7e127cdc-c068-4d32-9977-869a77634530": {"doc_hash": "92d704b9e20dafcd67e76bff195bb4ff4eabb64d2bd047e48f844f5c0cc0b662"}, "64c03211-fd76-47cd-a982-d3f898a39494": {"doc_hash": "9b98911ad2c2c87148a2be138fa4e1d0967cce8abad61816d975624e0c40ade9", "ref_doc_id": "69ce4449-8183-425f-98d4-1355f904f806"}, "69ce4449-8183-425f-98d4-1355f904f806": {"doc_hash": "aa3ee888dac59c281c011eafe0980d6c587aa190a7bcaad8abc8d71524d160cc"}, "f52ce07a-5128-466b-8620-285227a82b03": {"doc_hash": "916c0e0d92070eceaff9061cd21863e1c270f8cae022dcdca41b2c1750d6fcd0", "ref_doc_id": "d92f897f-ba99-44a7-b780-27205f8d348c"}, "d92f897f-ba99-44a7-b780-27205f8d348c": {"doc_hash": "886e7846cf10f10fd5e0402d4f13010fad3745b0e7fdb22c731243184308617c"}, "3da76fd9-f5a9-4b2b-82eb-8edd249ef76a": {"doc_hash": "da169aef9a2c93a5598d57609bfe012e713b8cd60e779e9eea57a23af28979bd", "ref_doc_id": "c4335a7a-ad86-48ad-b76d-0da1981974c3"}, "c4335a7a-ad86-48ad-b76d-0da1981974c3": {"doc_hash": "b353a4550dfe7a8c19497072d51c9722a7f0a6cf8d41b5901b4cc416f6bd447b"}, "73a28bd6-c06d-437c-82f9-061f646f41ff": {"doc_hash": "b671add2540e07f0edb1d6fc0a341db791673645141476bf06a174ada62e623a", "ref_doc_id": "0788fd21-b3ab-4c9e-a647-12c1ba90048b"}, "0788fd21-b3ab-4c9e-a647-12c1ba90048b": {"doc_hash": "5f3bc6eef75a0b4aacb3fb4299ee8d2346a4c63858d5be7b4275529b4ebe85de"}, "0501395e-63ba-4069-9e3a-24af777f98ef": {"doc_hash": "aee0b056795f3de2dcdfc0a166bf2c1d0d185e4a60cb207ddf65610a044b8f14", "ref_doc_id": "6b780e96-9405-4a8a-a4e5-79d1f5ae8a5b"}, "6b780e96-9405-4a8a-a4e5-79d1f5ae8a5b": {"doc_hash": "0ab17fd619fa96c67fd68e81bac8e67a767481d1bd7c29b6e533ed58df83da41"}, "5b8d4236-de29-4b18-8110-737d9b1b52ba": {"doc_hash": "95cfa69b67da91c80d75180cdbb9c1849c8496d806a08a1392796a55269f387d", "ref_doc_id": "3e94b2f6-b760-4a80-9854-fe2fabf5ff6a"}, "3e94b2f6-b760-4a80-9854-fe2fabf5ff6a": {"doc_hash": "e29dfe37ad622c5139438d5dcaef4224f586c0695ceaee96c42498bbee091873"}, "4755c985-1153-4077-ac6b-521ecdb8c063": {"doc_hash": "273611c3cea79d06ec96f3a46a10516310fd0962ce577aeb8744d37a4f54b847", "ref_doc_id": "25c0a3cd-d24f-4712-acaa-4edad0c15f8d"}, "25c0a3cd-d24f-4712-acaa-4edad0c15f8d": {"doc_hash": "233383c27eaf5bad7e56bb8f4393c9627fb564cab398c3a0920cba0a930bf992"}, "92978c50-4ed2-4fba-a9fb-4a746789f41e": {"doc_hash": "d713e792c87d3d1f5db37fafba4476f584ddb89c38cff804aab2fd9cd5b765a8", "ref_doc_id": "e9f7c0a1-dc04-4f63-a1eb-41d19b628243"}, "e9f7c0a1-dc04-4f63-a1eb-41d19b628243": {"doc_hash": "3378ed99ff3f5ccadf0eae1565896b98587d884b3c05e37c435ba0d65e8bf816"}, "551a7dd9-9822-43f2-af6d-1d0777137bdb": {"doc_hash": "1f6db5953f0a35c657b14034c8e691f5b3e698f30da814f61850f83c88535c4d", "ref_doc_id": "2820ab74-1e8d-43a9-b0ce-6f1d1d1c613a"}, "2820ab74-1e8d-43a9-b0ce-6f1d1d1c613a": {"doc_hash": "26f1334f1069c10c64fc45b940b3a3604fe5a4985c1930a1f0fa3c72ceb863e0"}, "c6cd2eb9-f5dc-48ee-98e3-32a17be0759d": {"doc_hash": "c8c575169b12aac480b9e8ad8e57493e25c20f66b4d617c1cef743b08b267147", "ref_doc_id": "2c2058f1-976e-41c1-9260-ba2ca2c87118"}, "2c2058f1-976e-41c1-9260-ba2ca2c87118": {"doc_hash": "13eaccaac5f55c7c82f68500c67c9d555f248ef7907ddac8c3d2dedd30dfbc4c"}, "6042b93f-4bca-40b0-ace3-e2d14218dae4": {"doc_hash": "28426db7ca28d28c11ba2e0a7c2c692268a11310fc04ff7ba1de4b72e10ee28b", "ref_doc_id": "f2fcbca7-7a1f-4dd2-8cad-9513fe07ff66"}, "f2fcbca7-7a1f-4dd2-8cad-9513fe07ff66": {"doc_hash": "4d54b7b29bd1d8a3eff55171a6dbe3337b23405aba3efa73a76918b83069f059"}, "4156fee8-6813-42ba-b7ec-029ff8942c6f": {"doc_hash": "2d1f62afeef2e3c8bd8348433996f439af9ec6a5b0947b54310a869803a53b2f", "ref_doc_id": "652cedc7-cb2a-479e-9062-75361001e71f"}, "652cedc7-cb2a-479e-9062-75361001e71f": {"doc_hash": "3e606b84a66de856a4347b20c7e2f3568fb3708090309d436be28403949107de"}, "0c3d5123-64a4-49e3-b904-8e4f29430b36": {"doc_hash": "8614fce55dbfae8a5d3c9b3b4b90ef2f40c20e736d8cfbbadcf3be73a5d51244", "ref_doc_id": "4550cb32-2b46-4d8b-9106-eac6b6e7eb0b"}, "4550cb32-2b46-4d8b-9106-eac6b6e7eb0b": {"doc_hash": "456ab8ca34c5e1a4d7464db5d361fa6e24a9fa04e50a53efff2dfcf9cfd5b712"}, "77378ffe-1ffc-40d7-8bd3-a179c2c043b7": {"doc_hash": "37df4acbf54a0a8c45a5b9ebfa4dc8ee8b2ae4ff95ccbe8646d2a944f3054dff", "ref_doc_id": "7491ee16-6fc7-448d-9703-74d14aaca13c"}, "7491ee16-6fc7-448d-9703-74d14aaca13c": {"doc_hash": "b6823c125d2a564f8294743950fa8ac9a5cbdcf154cf93237da696d2607b43e8"}, "bc45e888-00a9-4070-8c87-250011e75923": {"doc_hash": "f1ed3a2107234f9c924a350a199fb0bd9ba62d5c8fb931de0b3032d3709794f3", "ref_doc_id": "3d62f05c-c1e6-43f4-82ee-33df57a635a7"}, "3d62f05c-c1e6-43f4-82ee-33df57a635a7": {"doc_hash": "50273ebbf0afc91a4d150de6b11012bb46cdb60addccc665397df8147942ece2"}, "a47f9a03-327c-4a44-81ee-5dd50313c0dd": {"doc_hash": "6f9232648c1467a21317084cfefb99c7f67deb4593d84983c0682cb916ed0441", "ref_doc_id": "35f685fb-45c9-4cb1-806a-4212bdf38bbd"}, "35f685fb-45c9-4cb1-806a-4212bdf38bbd": {"doc_hash": "2a4d9dd9501204573977847fb1c8cf42806961f6791293db0492aef7093ffec1"}, "0bacde41-c473-42f7-8bcf-7f7b6019425c": {"doc_hash": "114e4733da062ed4424da5d26f1f5d6498bc2ed1a916d0e80108cf107f106e7c", "ref_doc_id": "75341269-a155-48c9-8619-e23e387ca51a"}, "75341269-a155-48c9-8619-e23e387ca51a": {"doc_hash": "e6f9c4c1a6e36b1a8f73387455ec5510aa47309c58b5e654ed1a28c8146cc584"}, "e715df3e-1fc5-4ba9-9931-a157963a403f": {"doc_hash": "b7b4af25252ec52a00bca555698441e918eb5b4ffe3a86e1ad77680ff40505ca", "ref_doc_id": "143338fe-6861-4483-b036-dd713a8efd67"}, "143338fe-6861-4483-b036-dd713a8efd67": {"doc_hash": "d9fd911dc3c0cd6cc55c09ec66439c5c3674d023de79f07d894ca4fe0563b7db"}, "902f3134-b5ec-4571-9e26-51b77236a418": {"doc_hash": "90c4ac30a098d071351977bdce75d58febe29f70f4f6a13e5d4db800216b1224", "ref_doc_id": "68b1958e-c079-4734-82b3-3203e36fd317"}, "68b1958e-c079-4734-82b3-3203e36fd317": {"doc_hash": "6bd7eb784c9fef0f49c37cc5b9812da3d5f70e9ecbf90d72acb5454d8d8e6761"}, "8e801ecf-b33f-43a5-b430-7d1ce77ce7e5": {"doc_hash": "f24d65de7bc02bd28a8cdfe84f6f0378bda3e09256424deac04a0e8c59fb9169", "ref_doc_id": "fe370f19-f363-445e-b527-87fa00212d63"}, "fe370f19-f363-445e-b527-87fa00212d63": {"doc_hash": "5bac2b5ec3ecd8414f59e1dc180220bb666129de36a930347d0ca924475e1658"}, "2b4de9d3-c5b2-4ca8-8156-28b79528e988": {"doc_hash": "209f025edb6ae790e95e4df2385324fc892eef252e94ffd7bce052a76ce60fc6", "ref_doc_id": "23a87717-86f0-4ed2-bb14-81b2417b6397"}, "23a87717-86f0-4ed2-bb14-81b2417b6397": {"doc_hash": "1816ce29389f3f2dffeb1f481d2ccb82783289ba42c375ed96db0e618510bbb5"}, "ce4bbbdd-baa1-48df-8c0d-6de11fbc0b1c": {"doc_hash": "5a85946a035cd6e2904e2e4f6e4d7197ca1142a9be4630d4287282ec48c7cba3", "ref_doc_id": "e345aa6b-27e0-4bcc-948d-d8219ea19623"}, "e345aa6b-27e0-4bcc-948d-d8219ea19623": {"doc_hash": "c135042d94fca227e9409449941181affd3faa07315ee25c5c213ad6eaa5a130"}, "77ff74a5-593d-405a-a82d-8e776134baee": {"doc_hash": "00ce325ec53cbe782accc7b59573cb80b1472af7864d6f7527036cbc3ca41441", "ref_doc_id": "2809d04e-bf40-4bbd-b035-82d9841b5796"}, "2809d04e-bf40-4bbd-b035-82d9841b5796": {"doc_hash": "0be4a65f405b0324ee3568b9e07389e5d337149a2db6bfcc3200bd018cb4dec0"}, "2e6a033e-10d6-4144-9411-9fe374f48916": {"doc_hash": "e74ae68cdaa0fd2021978253b63125550d470ba51f7fb2b5fa770bc21ce57c26", "ref_doc_id": "99b2d761-eb9a-40ad-883a-0048e462b25a"}, "99b2d761-eb9a-40ad-883a-0048e462b25a": {"doc_hash": "587e7a02da43a4db36465c9beb81fd692adf70596371a9c9aab3db5473510068"}, "9874bdc3-4708-4dd0-a5c6-0b3f5d7720fd": {"doc_hash": "788c05dd5170c1e672a4651d1988263cb1deb4fd674739050adf504d13b9768f", "ref_doc_id": "666dbbad-c7a9-4fe6-98f8-ff052d9dc985"}, "666dbbad-c7a9-4fe6-98f8-ff052d9dc985": {"doc_hash": "0afd48d2cc75ad10288c0061ce83fd776a8f8394ab04db1a8f23f2da9cb9a551"}, "49528c4d-956c-42c6-a774-8fdd647f05c8": {"doc_hash": "dad92293cec9ebf98ab9d50e3d7d870f01937ee65de9ba023891fa4ece2dbdb4", "ref_doc_id": "abd913c2-194b-402b-b7bd-59ea8fd7544b"}, "abd913c2-194b-402b-b7bd-59ea8fd7544b": {"doc_hash": "a7b29c948f1e521581c03cf2e2800592a346c554093279dbc9eee84908cf3c2e"}, "ba823129-2286-45e9-9809-3ce4f9503ab2": {"doc_hash": "55cc63ebe918f4b46a42466d02b84bcf2fcc13f444c959881f2c97a4a32dac25", "ref_doc_id": "642ea2b7-1b90-42a3-8d44-0ec6963e9eda"}, "642ea2b7-1b90-42a3-8d44-0ec6963e9eda": {"doc_hash": "ab7cd3c24bacf926fdbc935661c0314b5535e5d1dd4ec04e1662e65b320919d6"}, "5661ca69-838f-41a5-9ce8-1e63d9e6ff87": {"doc_hash": "2776608ad07f33e712311851894c8642ef37afd61a1c4589da6f4beba9c1a790", "ref_doc_id": "c430efa5-7291-4ebc-92ea-ee8600010f4b"}, "c430efa5-7291-4ebc-92ea-ee8600010f4b": {"doc_hash": "c0976033aa2b82c9b68f6a864031efa49e07b712f7109884eb793e1db9cfb6a4"}, "877f10b3-5d04-4d47-9a22-5b99373d2583": {"doc_hash": "11709a266f629ba1e148dbcdec45b76a22536920cafba6419a0948e86919d6db", "ref_doc_id": "86e2a7cb-b60a-49f3-bc42-c98f0f1a287a"}, "86e2a7cb-b60a-49f3-bc42-c98f0f1a287a": {"doc_hash": "b91cdeb4e0a082d14702507f43fac99d193262a195b72cdb46aa8c85c668180b"}, "a5f10eab-755f-416e-8b79-0292e3f3cedb": {"doc_hash": "24a7506b4630cbc1bc04b9f27cfca638d0a635e4fd0e6494605b5b4590d8cb7e", "ref_doc_id": "d3ccbdca-1bfe-4e55-ab6f-00d81ecbe320"}, "d3ccbdca-1bfe-4e55-ab6f-00d81ecbe320": {"doc_hash": "a563cfdc4d6f2c305ce08f25a82466f7523c35ba1b35420c795ebb6a5f990a27"}, "e3492822-89bf-4a77-b630-45215ce5ffc9": {"doc_hash": "44300a68693e8c50ae4d4f6f6b1acef2d08245fd19566633b7d43fcee747817e", "ref_doc_id": "b7a57b9f-9639-4649-9fdf-dbe40488cef4"}, "b7a57b9f-9639-4649-9fdf-dbe40488cef4": {"doc_hash": "571158628a397fbb7df2971ae6cf9522f0029fcec25440ade7b4c504babce060"}, "097cc413-18ce-439e-b922-349816a04d79": {"doc_hash": "55d75592d0d55503cc55c759b359d2d40c611fb684544c1f445b1acb32f34496", "ref_doc_id": "5c3bd42e-1782-48dc-bfdc-4461e3b40598"}, "5c3bd42e-1782-48dc-bfdc-4461e3b40598": {"doc_hash": "4c9d4d917d4fdfdc446c070884eed60e98146c509fa44eda8179dd8cd8d6b979"}, "c8f63eec-2045-4c01-8baf-21e36d730e03": {"doc_hash": "3c905a82a0d23efe015bb7b23957f5d6e1e56377eb3f8c79e0b6ae2fca96bd81", "ref_doc_id": "ce807151-0d4e-4cb8-86d7-08f3a3e7b0c3"}, "ce807151-0d4e-4cb8-86d7-08f3a3e7b0c3": {"doc_hash": "e512bc88ddc7bde76f9fbf880dbc4e9e13dda05b724c835ba8795ef6e5847fd3"}, "d17f2388-8383-49a7-88ff-62d7b549f98a": {"doc_hash": "6f61c4cb6d7adcf880c9a818d2eb00fe399279bb0719113cabd0804d86ec7ecc", "ref_doc_id": "e755cc50-9901-41fa-a80f-95494334eafe"}, "e755cc50-9901-41fa-a80f-95494334eafe": {"doc_hash": "77ea298c08bdcfc4d4364f9772400d1e051a68a1c7e68264d0f4eaec789da4ce"}, "bef9793a-4f1c-464a-88f0-300768dbf448": {"doc_hash": "8253485f65e30dc9250935ea3ecdaab12d0e10b15fe16c4300ce0f551795f3d7", "ref_doc_id": "087aebb7-6a2e-493f-9a86-ce575b6b737b"}, "087aebb7-6a2e-493f-9a86-ce575b6b737b": {"doc_hash": "5a68f22d6cbad3657e37796c61c70a67edddc7e8ea5d9a99105537005a695cde"}, "73ceb925-430a-46f5-9c56-1272ff2b7fc7": {"doc_hash": "a13dbce49add6e0718bf3cdf422fe464dc1bb87b89c8be93faaa04cd5f1763b6", "ref_doc_id": "da077f6d-b8f8-42bd-9ed6-c37e94039ba2"}, "da077f6d-b8f8-42bd-9ed6-c37e94039ba2": {"doc_hash": "8b9e950dd2c7e1a44a523d70301c9033179657760c1b22ceb42c5a29aa7b7101"}, "a9ef5490-1d86-4400-a616-cac24c028ce5": {"doc_hash": "06689cc25f6dc9bd60ff38f67c3dac2c52dbcc007724047ff8ced3138a458701", "ref_doc_id": "88bba8e0-2098-4fd2-ae9b-a9cdfce61d74"}, "88bba8e0-2098-4fd2-ae9b-a9cdfce61d74": {"doc_hash": "0994101a4c182e4a4fae8c0524a4b34cf742b7e71f9fc846628ac90091b202f6"}, "566e4973-3065-48f0-8e9a-d0d8268d9f09": {"doc_hash": "2719ea0841dc03390367e66bf1bdec5cfcd95cbf9bea0119eed8a94c99883495", "ref_doc_id": "9a3918fb-2cf0-4901-ba2f-f7b11b786adc"}, "9a3918fb-2cf0-4901-ba2f-f7b11b786adc": {"doc_hash": "902d78a9f0b4bc7ff12947a1365eb16cc1ec1d34e7160e7e8959a9d94825c5de"}, "b790211d-be39-46be-980e-8df01a7bab88": {"doc_hash": "0109758dbb382114d20f7feb34a0c8483e5006213a80693beac9660a92167270", "ref_doc_id": "c7f19ad4-2798-449d-bdd8-e90a482ab9f2"}, "c7f19ad4-2798-449d-bdd8-e90a482ab9f2": {"doc_hash": "513a9ed2549f65d869b5ab76402919d8eff5f6f39ba56de6c67569d28ee71425"}, "abecc0fe-2854-4adf-886b-8123406905a8": {"doc_hash": "72aff678ca9149c1fa8636c3efa8bc81340dfd90d7f9704354256a1b31589086", "ref_doc_id": "a3a9ce48-8f54-4b3d-a9bf-5e26eb48180c"}, "a3a9ce48-8f54-4b3d-a9bf-5e26eb48180c": {"doc_hash": "e43702c24188696c4254b8a201a339c135e410e1674f903cc7bbc3262c1504b1"}, "51ccbe3f-e951-4656-98bc-32f2ff4e2244": {"doc_hash": "732e75a90f364f640252d4fd0ab4f227ada440f581e8d97415c3c538d9c85ddd", "ref_doc_id": "26ea889f-c0fa-424c-a4a3-8fb39077c343"}, "26ea889f-c0fa-424c-a4a3-8fb39077c343": {"doc_hash": "c984f54d018f953ee1d7a973564f11f418e4bb14e26d3ce379d18f5837614bb5"}, "1155be01-db07-4092-bd01-67e19d8fa5e1": {"doc_hash": "4534839dd33c536aa9535fe7a1a3d50e3b5a63c600a3588eaf1bcc8ef7c3a2ae", "ref_doc_id": "d1d3bafa-ab04-40d5-8ac3-d702bef7bdda"}, "d1d3bafa-ab04-40d5-8ac3-d702bef7bdda": {"doc_hash": "988f02ebfe35029fcf5fb0e209ef190c34c3aaca534397ca9e580fe0e46d6ead"}, "d8f9555d-835f-48fd-bfe1-2a37f63a10d1": {"doc_hash": "9774a8557119303352eb19b2d67b0a0fd1ff62120817f8c183ceb7df7e2a33b8", "ref_doc_id": "c05b2743-2e85-4acb-b3b3-adb631555891"}, "c05b2743-2e85-4acb-b3b3-adb631555891": {"doc_hash": "53d09f3cc81644bc0bb935b33fbe170369ad3c47bc5b5e4dd191877ec31b4b33"}, "b82bb8ba-552e-49b9-8fd9-1360e921eb6b": {"doc_hash": "8756be3f0f7074e5aeaf23b5442f0bda318cc49ef5a8c82e670cf8ec8367294d", "ref_doc_id": "ec1b0510-86ee-4db5-a649-480e878c2e0c"}, "ec1b0510-86ee-4db5-a649-480e878c2e0c": {"doc_hash": "12b0e755e50a172d5420743fa74b228ba7534ac866952bb50ca2b03b329000c9"}, "1fc955f4-0cc6-401d-ad11-3e30d6a1c106": {"doc_hash": "3e3806e7111a133f303e33a151a87c2bef053eef2aa3594a1daf1bddb7ce61aa", "ref_doc_id": "f400668c-a343-4849-8bd6-062d9075b33a"}, "f400668c-a343-4849-8bd6-062d9075b33a": {"doc_hash": "dc0e3d91b603f39cd7d3ff74205cfa757e48a436e174c9d5573da57a4f21a0f7"}, "ce6c8101-ac6b-4132-b977-12f26f098add": {"doc_hash": "f2ee11a66ad9e4e3d1bd21851d9037f3ff55166eec85f77db66988b26a48fd95", "ref_doc_id": "8db8aaed-4725-4d72-bdbe-72dfebedf491"}, "8db8aaed-4725-4d72-bdbe-72dfebedf491": {"doc_hash": "a583387f98f1dcf8fc6ef80529545dbb1a7a67936ea48e1664c42207ea2b0337"}, "8a08ee30-6d3e-45f7-9f66-c9f2ed8cbc6c": {"doc_hash": "e20602f756880fbb9a8f434f843e9ab3d470a8f67d91ae30e98fd3d2164e397d", "ref_doc_id": "4283b19e-2f2e-4c6e-807f-9da1f02ff454"}, "4283b19e-2f2e-4c6e-807f-9da1f02ff454": {"doc_hash": "4034b0bc735aa72dbb4c2fca229b147d37060a6231aad71f6f6f74a2a5584bc7"}, "ff6d5d31-bb15-4965-b3f4-4196f2bf9fcb": {"doc_hash": "1113c9ede2a526f59b04de4431dce04148f37ce2980178d0b0bdf072766391f6", "ref_doc_id": "8d59d9fc-c228-4217-8fb4-c6bf9c02f75d"}, "8d59d9fc-c228-4217-8fb4-c6bf9c02f75d": {"doc_hash": "bb41a44616be0060ea48ae3e3f0443d389f38a2cc61f064ab8a908cc12fa04ed"}, "8d9f30ff-c86f-4409-a6b1-47694be71ad7": {"doc_hash": "d1524e08b76460a76c29a0908c2fed93cc09babaf722ea2c2d0029874f77081f", "ref_doc_id": "61b0b5a8-9296-4111-8b8f-cccd597c6783"}, "61b0b5a8-9296-4111-8b8f-cccd597c6783": {"doc_hash": "1024dd8e423934110249b13a6648baa12baa3ce8d4c80b66422f17255b3f4e14"}, "237f812e-bb7a-4c14-85b3-c4d054a42050": {"doc_hash": "6ce1e7ca06d106fe5b66edf079146f64a92d34f4db7a3015e5d12f4bdd5a6f4d", "ref_doc_id": "aed174a0-2145-4aa8-a32b-a45bf3ca6db7"}, "aed174a0-2145-4aa8-a32b-a45bf3ca6db7": {"doc_hash": "f2a36352c1d0726af246c1d1176fc9f8e69df6be0da5f6c061f56e7ed693bd37"}, "b93725eb-3a36-4f28-ad57-1254ea5f01f7": {"doc_hash": "6e95ac9d3241f319bed3d8e5e6550d852e12c2d20a4bfffb1d10643112d403da", "ref_doc_id": "3e6e8346-8fa3-4235-8f66-e39e6e700342"}, "3e6e8346-8fa3-4235-8f66-e39e6e700342": {"doc_hash": "b531d2e12c4ed02d931fb39bb187deedba38867c2babd517ccab131d917eec60"}, "bc51ae8b-ba3e-4c28-ba5b-8f700e784106": {"doc_hash": "5b40c31170e79451a21d2739e64f950caee5520c3ba66408a90a22a5f2649918", "ref_doc_id": "159c9955-997f-49fd-a897-ee483060ec0d"}, "159c9955-997f-49fd-a897-ee483060ec0d": {"doc_hash": "491f125749b8d7f9e9d5467a5a778a113fe1616791eb644f2c83173abeb06620"}, "49933ff1-2800-49e3-b424-9c68ff46ddf7": {"doc_hash": "ab8edd5e01735142f222d3f3f5e756bcd9446b0a3c523acae8bbb6172b406c39", "ref_doc_id": "72de9641-0ec0-4808-99e0-f1dc30fa8988"}, "72de9641-0ec0-4808-99e0-f1dc30fa8988": {"doc_hash": "877e56787b801baab002b93f51b8dfc76c68d5ec175389d103a3a11d9c81bd68"}, "dd12c0e9-8f90-4f3b-809f-059def9613c5": {"doc_hash": "67d6333095e8b0d9efb37e160a447fe7fba52ab5718ad65850bf08791b19cba4", "ref_doc_id": "7418a4c7-015b-43a0-8195-a050eb39e145"}, "7418a4c7-015b-43a0-8195-a050eb39e145": {"doc_hash": "8f6a038d1a428b59ea00cef0c13e09a944b4c6a5ed23e0c7b3834f20e51e29aa"}, "4e884862-f960-4395-bbb9-381da168c9ac": {"doc_hash": "4cab1a3a303f6002163224feea2b61ce48abe681f198ed67277d196fab4ee503", "ref_doc_id": "a2dc3e9f-02cc-440f-944f-9ee75e604e4c"}, "a2dc3e9f-02cc-440f-944f-9ee75e604e4c": {"doc_hash": "b66a8e093afb182224b6b6fe01713797cc35d9a57bd1bc08dd6258bf02f69b77"}, "ec3e1bbf-82fc-43a1-a475-212e5e45ca3d": {"doc_hash": "1ccba5b91667c7740b634e1f80e0bc91717cd4d358ecc367ff1541aae6721b98", "ref_doc_id": "acf0ebeb-4d52-472d-8116-4415c717799e"}, "acf0ebeb-4d52-472d-8116-4415c717799e": {"doc_hash": "625cb36c407d98d6614121c1cb60c1c5549d75f33ea8daf680dcd770e676ed1a"}, "9efcdde3-705b-4ffb-8fbd-ab676a3fb9fc": {"doc_hash": "552ea1b677df2e736bc0c3daac1336559e2f759c0e374ced9cdab67dd6a3dc48", "ref_doc_id": "20a6f038-d8b7-4fac-83a5-abe4f7953c26"}, "20a6f038-d8b7-4fac-83a5-abe4f7953c26": {"doc_hash": "f0025799d5318c6f90785270e197ecc0a8166aaa1e77432452205a1ddd94f111"}, "032e0e30-04fe-40e7-982d-0d2558e6f68f": {"doc_hash": "c58055b8a1f349932c9041dcacb7c72e967f78ab017d7dbfdcd97cdcbea3f28c", "ref_doc_id": "12368279-82e1-484a-bb5e-a393ce80685e"}, "12368279-82e1-484a-bb5e-a393ce80685e": {"doc_hash": "c04675940073aca3c121da4def4113971cfaab120346cdfd8e66316ea3ab7763"}, "53d3eca0-b8ad-45c0-8c9c-46c2e5cd07c0": {"doc_hash": "0f4390fd8e244312369eb594c3fb506c9aa5d568d032057318b80a63675ff9e7", "ref_doc_id": "ce76e55c-8707-402c-b12e-b25b3ac69ec1"}, "ce76e55c-8707-402c-b12e-b25b3ac69ec1": {"doc_hash": "bc7761f12f161839eea530d04bd71742238430d29f839b915e33ff8e8bc76197"}, "dc91e646-d20b-4a8a-84e5-4b752ef1370e": {"doc_hash": "cd3491467e166d31348416ae032d538b39686572f7792d8fcdc8c66e6205b829", "ref_doc_id": "f6b34358-d022-4964-bbc4-c8b363ea5566"}, "f6b34358-d022-4964-bbc4-c8b363ea5566": {"doc_hash": "3a373079cc956280173deec3a395ca08028256e62dba3ae2aa7393bf75e5ddf1"}, "b1e0fb92-a205-4a2b-838f-99cc13673668": {"doc_hash": "16f4259957653a1dbacfb2b1e8e67591922bce4285a2e55588ca5183a9225bfd", "ref_doc_id": "b7ee196e-4825-47b7-86ab-f1cd2458bc38"}, "b7ee196e-4825-47b7-86ab-f1cd2458bc38": {"doc_hash": "4c838196ec724c0b2afb835da80ca21b361203cc3cd6a74472aee0b8915fba62"}, "945d7c62-1fbb-4915-9772-1fd4d24cd3c7": {"doc_hash": "1b29545cf2f4a0586ba5822fd3ed3fd23dee175c57dcea7327d915ed186eb609", "ref_doc_id": "76a6922c-1e7e-46b8-8268-c4120c968fbd"}, "76a6922c-1e7e-46b8-8268-c4120c968fbd": {"doc_hash": "4530ff7b9fd4e04f0664792cffccf03e0e543dc21fd56fc76cac83bbee9e28a5"}, "d8a60701-45f0-4069-bb0a-02ca037417e3": {"doc_hash": "8f7e4b9085e9b2d763805f44b51f06dac5cae3ee5752916bb001da9423836479", "ref_doc_id": "fbd83137-5a94-4a0d-9359-f48b7f6fde97"}, "fbd83137-5a94-4a0d-9359-f48b7f6fde97": {"doc_hash": "04ca2ea4c8721d5a39a6263800f87f6ac9554b3fe3841b7e5f6891d0317f10cd"}, "78dc722d-7a05-4b26-8c71-b6dd23d1c5db": {"doc_hash": "472f82ad685b20baf6ae943d11af6bf0832f83af0be27ca2c65ec3e3a65f0715", "ref_doc_id": "809aaba4-ca85-4265-922d-c7c43cd7b1a5"}, "809aaba4-ca85-4265-922d-c7c43cd7b1a5": {"doc_hash": "21db9a13fee8eb5e2098a6d0afd835c71ae17578d1704df104475133c20f927c"}, "6793891e-4eaa-4d95-ad0f-7aa46a29237b": {"doc_hash": "877fcd9b0321c8d5107d07083ffdb767d7532875c1db06120f42ae08ef5ef380", "ref_doc_id": "56736eec-a7fc-4372-a096-ed53d34931ca"}, "56736eec-a7fc-4372-a096-ed53d34931ca": {"doc_hash": "f03388d3cedad8a34cc011dd0c2d83213465fda52018730a317ac7ec41ac3ba5"}, "2dc70f1b-47e3-4a18-b44e-ae8d6b1d7a68": {"doc_hash": "72dc3db0458fc7914672ac8a4a57d0d5dbbf7ff71af5fe5a36e6c4703f6d6de8", "ref_doc_id": "aadd3556-7228-4474-a535-c9585bf41139"}, "aadd3556-7228-4474-a535-c9585bf41139": {"doc_hash": "f6f82aaaa639cf1c53225d59f804baa6a86b4bdd7d4c8e83e37c19d34c2a2ed2"}, "4184b122-0b0e-4d44-bb01-d9de993b1f22": {"doc_hash": "5766c99a1e79b1a8d2c88747dd7df73e3f5cd762f284381528094bb656f7ccf6", "ref_doc_id": "c553f92d-87fe-4ea3-93df-3115880e0004"}, "c553f92d-87fe-4ea3-93df-3115880e0004": {"doc_hash": "025728e756baf3399746d2e104404442f08a68db41329154bc657173822c699b"}, "32ec3d6f-5f5e-4723-84a4-55ddcfbe4b74": {"doc_hash": "d61cf232915ad077f98e1ba83d392ea3c18000d6cbb0d78d11439e9ae79f71ff", "ref_doc_id": "3f2bab81-52e0-4860-b36d-7ce79397fe7b"}, "3f2bab81-52e0-4860-b36d-7ce79397fe7b": {"doc_hash": "d675ce271bdeaf52b518c620aff2de8d89a62d3dd6c0a19de7276b382477b8b2"}, "c18bcb34-212b-4520-aaac-d462dc6b028e": {"doc_hash": "4b510593904ec6ecd853931236fa7ef897ec0949825a634efff61c9e4a4d7d1f", "ref_doc_id": "bda6f45c-e94e-47f5-a903-ee718c5f4a75"}, "bda6f45c-e94e-47f5-a903-ee718c5f4a75": {"doc_hash": "c3eed6fd3117116a561f1f2410b5becc7911de7e577efee1f15ccd583cd92391"}, "6b446a0d-83ac-4eef-aa9d-c5c79b3e23a1": {"doc_hash": "33091e6cf0f316f6f8f88bd27419de88e12a62a84078638fce03a3ee4a975e82", "ref_doc_id": "06f5c8eb-f40a-47d9-95f3-b29591a3427d"}, "06f5c8eb-f40a-47d9-95f3-b29591a3427d": {"doc_hash": "640e24e57f29c8e31453a2fb4b1a45cf1142d3e49200fbd9f7b5c131c739fea7"}, "9db4ce1b-857b-4a9a-a47f-52e151173214": {"doc_hash": "6456f15fbc5e09166ea63ceb8a667dbcb56fdf25984fb8214dfdb151749573de", "ref_doc_id": "0753d905-06e6-45ea-8b3b-28c1f31d4084"}, "0753d905-06e6-45ea-8b3b-28c1f31d4084": {"doc_hash": "d6c4145d131e1b9bb8e9cc138cb58da4b7fecb759d5414942575363041094eb2"}, "2c9a96b5-5c39-4e0f-90c0-bf4b01a791b0": {"doc_hash": "024efc95ac214934d85fe06cf926070ca58bfcc6328dd1a6f8c14c9d36d34898", "ref_doc_id": "d110d178-f318-47aa-897a-8cbcec800c44"}, "d110d178-f318-47aa-897a-8cbcec800c44": {"doc_hash": "8eeb03d64cac7e3aa264ddfb1c65d7b2dcbe98b16a4395f3ce97f97904d5031a"}, "7fc24639-7716-4809-adc2-853d789e70b4": {"doc_hash": "bbf841ad7846bff462c7d6755836d4faff0126437430a639e99986823bd4785b", "ref_doc_id": "b13a1bc7-9e76-4bf0-a71c-5d6fecbdaa19"}, "b13a1bc7-9e76-4bf0-a71c-5d6fecbdaa19": {"doc_hash": "e1c2f2e469f4d1fc5234b04c844d3659b603a2cf36edec3db39a1b78a3774f6a"}, "50295631-4d15-462d-a703-bb998728a95d": {"doc_hash": "cb25b725a0ab7cdfce51e54e14cd0f77e0bb330debd7f0d6c5d6b89f8c131f04", "ref_doc_id": "4970837f-2b4a-47c9-a574-fe21682c72c3"}, "4970837f-2b4a-47c9-a574-fe21682c72c3": {"doc_hash": "0178bd97d3751530708a9946e48e0686655392a138b4b9a273b83403519a2603"}, "43e78bb6-3d29-4b13-90df-1753954d26ff": {"doc_hash": "86387c9f1f34b23f8c03433d2a117243ad28f450cd381e5c8027900237d94bcf", "ref_doc_id": "9c34af07-15e9-4b85-b9b5-3d4a9d84489b"}, "9c34af07-15e9-4b85-b9b5-3d4a9d84489b": {"doc_hash": "8de18711c39acc6919f1802de69580a0a3fbc12f212682e3808e8ba595ac2ea7"}, "6409099f-9df9-4218-acb2-f224ea1cb132": {"doc_hash": "361b41a2aae6a324dfe8362dd16f0934f691dd175defe60fd5ca480f76a85665", "ref_doc_id": "aa829fa1-5f8f-4cfe-94db-a088bf4ded15"}, "aa829fa1-5f8f-4cfe-94db-a088bf4ded15": {"doc_hash": "78c87d42c4b9d454802a32043735ac25ebd7218003f2684941d4534d893403a7"}, "d5a23ca4-20a0-4ce9-9e53-476f0842740d": {"doc_hash": "e348254898c699cc5c9478b411adff897bb8b3ec51e968c93575949d1bdec129", "ref_doc_id": "e7200749-09d9-4d46-9201-5d0e311c6d48"}, "e7200749-09d9-4d46-9201-5d0e311c6d48": {"doc_hash": "e2866fb58df2c505fd047db29008fefc53c8a31579aa151963b79fd2bda4d45d"}, "caf52b68-2af1-4db5-9c03-f50859e9d645": {"doc_hash": "1c2d4b8aa848f4afe08d2928606b147869724a08b731d3d8cd84f0f8c7354bf4", "ref_doc_id": "2eaef7d0-8701-4cc1-8bcd-b6457c73646d"}, "2eaef7d0-8701-4cc1-8bcd-b6457c73646d": {"doc_hash": "70241d5dcd263b9f0c44292811f08ee499f9f64bf6e1598955a9049ee64c9ccd"}, "282d7205-19e7-4f88-b91a-05af419daf9f": {"doc_hash": "f78fabb3c2f0af56fda092b8829f79faa2570b85b51a602fc0102edcbbabf875", "ref_doc_id": "14ce2f8d-5ab2-45de-8b5d-80ebf630eaba"}, "14ce2f8d-5ab2-45de-8b5d-80ebf630eaba": {"doc_hash": "a9f7847cfa97e7f6598af8fd01311f1c79c18511cc12d14df547da0d90538345"}, "a04d9b75-d132-480b-a44f-a6ef23ac4519": {"doc_hash": "577a82a5d2305ad5918b48e10fcb22bc29ab3734dbe26c70294a870595c7ded1", "ref_doc_id": "39c6ef33-a00b-4990-9048-2ea22137b452"}, "39c6ef33-a00b-4990-9048-2ea22137b452": {"doc_hash": "d2b60f4455b71c9dd547d45bc029e24e3558a0f9664a34142da113d9d57b6994"}, "577cb5e7-f8b2-4eb0-93ae-8ebb32b062c2": {"doc_hash": "0ac60bcb5b28c7df1eef6e295de50962580dd2a0eaa02e249ca646fbe123fc41", "ref_doc_id": "22512278-ba40-49a1-b85c-020b0c9744af"}, "22512278-ba40-49a1-b85c-020b0c9744af": {"doc_hash": "3c22b7f3e728b99a5973013a8acbc6994834f9ca878c6f4b0a5261b78f7ac0d9"}, "1d3046aa-e613-4f2d-8b60-f45b334e3637": {"doc_hash": "28e390d9314ef0e65c1a7aa95646e80ab3f48536ed740fd7a45c8b2dfac4a337", "ref_doc_id": "1ccd56ee-8649-441f-8b48-fd479dab1ee6"}, "1ccd56ee-8649-441f-8b48-fd479dab1ee6": {"doc_hash": "bfaa9c97e59acabdb13cc81d3fc98f33290a22f4f5631805ddb02cb5e11d0105"}, "0a1585e5-c6e5-4599-a77f-16d68d4d4ea7": {"doc_hash": "13e7d45d472c1573b240733c547b49b03be22d2eb113f9d7f6e0bf327b6bf3d6", "ref_doc_id": "eafdddfd-dd49-45e1-8ea6-884c6f16c01c"}, "eafdddfd-dd49-45e1-8ea6-884c6f16c01c": {"doc_hash": "dec4f3a2c16312060320fde966db8491913c4780a794ea6f93929f9181675f05"}, "455b2ed8-a34f-49fe-8904-3b6ad2c99cb1": {"doc_hash": "10826c3ffb19f852890c54ebc592cd51a3c8d62b465d01e279d7256f84122c5e", "ref_doc_id": "db74a6cf-b840-44f3-b97a-bd1ed4778d53"}, "db74a6cf-b840-44f3-b97a-bd1ed4778d53": {"doc_hash": "1064449b1b16bafc5363f76a416bc36dda35b13cb6118f930dd93256583c58b8"}, "8f755e8f-8768-4862-b85b-a6d4ae7c826f": {"doc_hash": "8779eba63374828ee45104d39fbadf9a6c88d475a7f3e08b906eda4c9cdb3fdb", "ref_doc_id": "fbfb57ad-bad4-47ca-8bfa-42009c719b53"}, "fbfb57ad-bad4-47ca-8bfa-42009c719b53": {"doc_hash": "e03a4a5470ff70274b93320875ab02f5b92b22340df86ca9f22f1fe6a33c0523"}, "3a628c33-c4f1-4931-8c68-3d5cac67c761": {"doc_hash": "ce80c302be0cc7956db863910ad332558c515cd4b053d5bff17838b0f5a9bdc9", "ref_doc_id": "86b1469b-4245-4e35-b172-ed2c025e4f80"}, "86b1469b-4245-4e35-b172-ed2c025e4f80": {"doc_hash": "ec3c904d699f1064f00a8e206468141b05dab804e402369c58dced7482f5de19"}, "3719fc24-b21f-48a9-b463-c21f057139da": {"doc_hash": "2d1afe44532c5e6f34cbd779ebac5ba04cdf14cd647d1381ce9dc3e5adbfa154", "ref_doc_id": "127f6ac5-7ccd-4208-abb0-f6e35f319373"}, "127f6ac5-7ccd-4208-abb0-f6e35f319373": {"doc_hash": "5b1abc2ec8393aee2df1db8cffec919dcfac6ef1417f1812deae2c853dcd74e5"}, "73b2e247-1c6d-4438-9e73-305095cbc9c2": {"doc_hash": "a0a8a0c52bfaa3f7c4f01012f34c4b1a851dfbdfa768982df632a3c4ff746421", "ref_doc_id": "ff64cde5-7a26-423d-87b8-731f13911459"}, "ff64cde5-7a26-423d-87b8-731f13911459": {"doc_hash": "6fc9565375695106b34f8dc03f61c0700d5bbe4072d261bd6d2cdfbee985cd5d"}, "9cae4cb2-8591-4f6e-8f87-b04620095540": {"doc_hash": "8fd642a840ddb085ca7366b47412e0162bee152553b3a0de1b0ac236795391a1", "ref_doc_id": "6b062ff2-6f8a-4783-8bea-5cb7bf907695"}, "6b062ff2-6f8a-4783-8bea-5cb7bf907695": {"doc_hash": "e71a2d95049c90a810a5916da9a27041d9ce13288b7be7e1cb191fb27f8c34c7"}, "aac8ac27-7eb9-4bf9-91ff-64bc3c970a78": {"doc_hash": "149de2904763978cbfac26e76e173fe5b4829c359132b09fbe92639e504873d7", "ref_doc_id": "f10555ea-f2ca-4033-a689-ca3064e72b7f"}, "f10555ea-f2ca-4033-a689-ca3064e72b7f": {"doc_hash": "f9978cba4d97e45005117eee8445dab37a3700428e97922e51233f62906a0699"}, "4b7b0ff7-72b1-439f-9741-491778f00969": {"doc_hash": "08695171457e2d458947217cde7dabc68adc08c79db4c0dad10224503a8a8512", "ref_doc_id": "45873611-d69e-416b-8d76-bfed3224375f"}, "45873611-d69e-416b-8d76-bfed3224375f": {"doc_hash": "7893007dac2f5a42419f81715d7e31ad73ffcc639a9ef7ce0e88ba286f389c62"}, "a471d2ec-90ef-4fe8-aed5-d620ab5536cd": {"doc_hash": "eb7d78d781ef7256a7a862c8a412ac1325bd5f54597682c894348d44f38de6ce", "ref_doc_id": "a92c51ab-6a0b-457a-a607-4e277321fbb7"}, "a92c51ab-6a0b-457a-a607-4e277321fbb7": {"doc_hash": "ce43f2435932040bf74fc3908f37aaece505912a3d0d8fb9853b780b5197532b"}, "787fb206-2d29-495d-a8e4-619ee52bac5c": {"doc_hash": "859a4ab7bfbb9cd5d0ffa112575dc640e7a3dff1f53f888b3bba18944efb1e67", "ref_doc_id": "7e396dda-ae99-478b-b56f-398c6015d8b6"}, "7e396dda-ae99-478b-b56f-398c6015d8b6": {"doc_hash": "1bacfc040af7c9362dfc614a2f10b4f3884ac5f54ce8fa4f4bcb27f38c667984"}, "0ca3bd3e-c962-45f8-b8dd-131208593103": {"doc_hash": "5cb3315960013eff23bb1fbebf3b7ddb93403f8d550aae5437b371c9b24c808f", "ref_doc_id": "a287c646-da16-4e18-92bb-e5d405390912"}, "a287c646-da16-4e18-92bb-e5d405390912": {"doc_hash": "1570616faec5737bc86ecf6166c51ef50ef2dc9b6543d6f3c0ee642aba10e81f"}, "f8885c3b-c38b-43b4-b9cc-5f37ecec22aa": {"doc_hash": "2ef0a2b09ec2c5645eb15dc9474e33ef41f158d1cde1a33b3677b3457127dfdc", "ref_doc_id": "67e2728a-301c-49bb-bcfd-bb393e169072"}, "67e2728a-301c-49bb-bcfd-bb393e169072": {"doc_hash": "1a10a596abd0046294219706b738b3c3ff814b109ae348955d9fc28b0550e8ea"}, "2dfbb8df-0bbd-4d7a-b33b-0c9ea14d7878": {"doc_hash": "2fbc3b0d0ec17acf85e3e51351b561aa20ab7371b2ef44507f77232e2228d264", "ref_doc_id": "46218433-8f9c-49b3-9ade-f2481def3bc2"}, "46218433-8f9c-49b3-9ade-f2481def3bc2": {"doc_hash": "27bd39b1e9277e521ceaa1e71f10be697b9a6529e9f49f9269b218a479655b03"}, "9ef88928-54a3-4a7a-9fc5-b2df1d087333": {"doc_hash": "e765db1eb789f8b919dc502663433f5205495a41b1f1bc0e26fc36461b4b714b", "ref_doc_id": "b6486159-57be-4f78-a4be-4ee84842ec4c"}, "b6486159-57be-4f78-a4be-4ee84842ec4c": {"doc_hash": "165d22ba79832f621ce1b2c6b5fab188337561176c06485ead4bd380431f6cd1"}, "8b0e5706-a8c2-4dea-a593-f3f372821d44": {"doc_hash": "6a79e84076005590fa0a62b78f1ae3ed0f67f36317218b41ffa2dcae5e2f2a69", "ref_doc_id": "532b2b80-a6db-4598-8437-6f73335a6b8c"}, "532b2b80-a6db-4598-8437-6f73335a6b8c": {"doc_hash": "d70a531bb84e4b6c4063cd246b59d63e04ddd9a3c8d5f4f8e762c99ec8634fcb"}, "44e97dca-8355-4750-86b1-195ec07280c7": {"doc_hash": "4413b764e77a8f38bcec35cf3f34df634cb75aebaa215b1c88aa8024b11f9210", "ref_doc_id": "4f432587-e5c7-4211-8ed6-107d4b6fb5f7"}, "4f432587-e5c7-4211-8ed6-107d4b6fb5f7": {"doc_hash": "906d7c2e3eddc4dc08c9f4dd7254a8f1c7d17ae7144b88204e2259d759bc3f11"}, "422a3765-19a4-427a-a0ed-7218c4236f11": {"doc_hash": "c22f0f87d48b96bc7ccd7992bd94e77a26cd83712cab16b68499dfd853c713f0", "ref_doc_id": "9163c70f-6eb8-40b6-aa02-ac57150481c5"}, "9163c70f-6eb8-40b6-aa02-ac57150481c5": {"doc_hash": "720acfc4996f5ecde11848a50b547cc8908f044e66a16f3e292880e2e8ec55d0"}, "71cf237a-a657-43e8-91ad-da3318c44a3d": {"doc_hash": "e8027c49e836e81585f490fec965b25c2ffb68b564f3363628773d9199a8a1fa", "ref_doc_id": "634ba83c-dbb2-4cd6-a280-df054a683368"}, "634ba83c-dbb2-4cd6-a280-df054a683368": {"doc_hash": "66379603bb023c3a48f1b066fb0313841cdfd8a936ca18fc012052de6c543a5a"}, "85a6faa5-c4cc-4591-8f4b-2bbf6a9021d2": {"doc_hash": "cf74168756b0b6f318b661943e63aa82950c89cc8d278521f462dd2c5b936b84", "ref_doc_id": "dd9fe500-4a85-498b-85f2-8998b35f3589"}, "dd9fe500-4a85-498b-85f2-8998b35f3589": {"doc_hash": "d92dcd1e57fe0f051e8e406509b6a73ff8f9aea9a15b59ace7c51881b1a19ab8"}, "db5a7ade-5d4a-4274-b0f0-37c4e77c7d27": {"doc_hash": "33123878fdb43c72d43b5d85f3f24cf314233cbb237774b61db6511691841bc2", "ref_doc_id": "6313c142-3e89-4d79-b913-2740d027fc0e"}, "6313c142-3e89-4d79-b913-2740d027fc0e": {"doc_hash": "6e4fb20d165fd33fab69562e2a1c240ef8e4bb8f392cccd889b78436d2ab781c"}, "70a6b9e8-09ed-4912-ba30-ca43933d1d2f": {"doc_hash": "a1b9b23a3d465c3e16b56f2dc83b9b791239da3e41d966f127e612e2fad0cb83", "ref_doc_id": "780c43dc-f6da-4749-b190-59ed1515bb60"}, "780c43dc-f6da-4749-b190-59ed1515bb60": {"doc_hash": "0e55d94daacf096e561e89b0a3bd8a4088b134969eec0554a90c82977ea6fb70"}, "4edc183e-ea15-4725-93b2-43689346ac16": {"doc_hash": "45ca81e807ceef5a0d4181eeac9a9a1adfd8283ac927c7e5abe131b84348c8b2", "ref_doc_id": "fbfbc59e-abf0-464f-88b8-de293663e901"}, "fbfbc59e-abf0-464f-88b8-de293663e901": {"doc_hash": "c15630b3a7094b30dcf97fc2a413c54d949415295160995cd70e9509758a5889"}, "87441287-cc7e-4805-be19-d168d57c7bf2": {"doc_hash": "7c0f89170beb873ed567c7d941939720bb160ff876088c78a07dd18120c4ec89", "ref_doc_id": "ddef1c5c-6821-4a1e-ac60-a5c2f1d93f9c"}, "ddef1c5c-6821-4a1e-ac60-a5c2f1d93f9c": {"doc_hash": "746494c98ee2717e884bdfc682870e0f84fe78e0baab5f26e9396ad1292a0cdc"}, "9957bdf3-19d0-4a15-92e2-90e0096d66b1": {"doc_hash": "0a25493a8bf12040b55dd7b88b703db483eb12a4f93e795b4dc1711bfb266d21", "ref_doc_id": "ab22cba4-0ad8-47d0-ae4b-a81422a929a9"}, "ab22cba4-0ad8-47d0-ae4b-a81422a929a9": {"doc_hash": "eb543198cf1b70d1c139eec13ad667c1404084a6febd51c28399cd8728cc1118"}, "cff59e4b-6a1c-4734-b601-c969c107992e": {"doc_hash": "fc0f4b8fa673c6a19e227373f8d33f1979a75fc28634d0e092ad0b8983f35a4c", "ref_doc_id": "9622de88-c64a-43c6-915e-404801680968"}, "9622de88-c64a-43c6-915e-404801680968": {"doc_hash": "6c6e268ac8dda244868af37ce76c15ccdc097cd72f88b4ad70504a47e3401221"}, "cce6c5d2-55aa-4bf7-9892-8081b4d2226a": {"doc_hash": "64497828365ec3cdc1527c390c4b65f348b07be68c045beb6930cc83d5f016e5", "ref_doc_id": "76d5c11f-a6ce-4067-8808-b9cf5e88d51c"}, "76d5c11f-a6ce-4067-8808-b9cf5e88d51c": {"doc_hash": "627163b59e1df8a265bc12bdfd522ced5afac720e0047431e88466fba6ca721e"}, "a88d3be4-c41f-424a-8db3-984e24faf445": {"doc_hash": "6300cf83963e2e951f5a74ce3e08d9744d2e59951caedc8df62fb46fa6ce2085", "ref_doc_id": "7d3d6551-37ed-4a50-be24-011b2e3f3f8c"}, "7d3d6551-37ed-4a50-be24-011b2e3f3f8c": {"doc_hash": "8161a03203caeaea31f776ecc173a0fa6fe671e065ece1ae22f4c93ffc19cf07"}, "be1d0077-0e99-4b8c-96de-9c102c0af62a": {"doc_hash": "ba1583c009357367f37b2fefa47ffa6ceca749d5c813254d7c9affd75dc66572", "ref_doc_id": "517bcb20-f696-4623-b6fa-5f1875ec567c"}, "517bcb20-f696-4623-b6fa-5f1875ec567c": {"doc_hash": "ba1b5085b6536029dcf9b0da687d108495cde674e18d623a3f7ea7bf873ffe2f"}, "d3a22d70-fa11-4e79-95e0-1e654f75f320": {"doc_hash": "8abbb2bb1c9e035eff91de41d6b620d06bebad0575c69e18c29244356f53c73f", "ref_doc_id": "45d9b0b7-8c3c-4bdc-afb5-632472e45a86"}, "45d9b0b7-8c3c-4bdc-afb5-632472e45a86": {"doc_hash": "81fa22d87d0cd43a661f8b4a1ce4984d7b424d5df22247ae0210a75774947e38"}, "a74e41b8-b0c8-419a-8a4b-6affcce27e0e": {"doc_hash": "bc207a487964a64605a993078e6eb4e7eadcdd6e4c8d8de6d9a909640c88c105", "ref_doc_id": "1224b0ce-153d-4f4e-91e3-51f0e9d0713e"}, "1224b0ce-153d-4f4e-91e3-51f0e9d0713e": {"doc_hash": "9b775fba27858bb71775bff7043fcaeacb464684d7f21f81a6306286942dbdca"}, "c51029f0-b39f-4555-a0ad-a73132aad1fc": {"doc_hash": "03b6fa6a5781442e43d2d2d076cff435855a33c0851c189d152b03c60661bdc6", "ref_doc_id": "b8ec38de-7d99-44cf-8637-f10e2aa9a772"}, "b8ec38de-7d99-44cf-8637-f10e2aa9a772": {"doc_hash": "5faa425b36e22b965853506c220c4d9f01ee6b88df699346d801710bf03d36ee"}, "5680ddd0-b1bf-4666-b053-5716b4bb1557": {"doc_hash": "7f2461dc7499751629817b391e0faf5ba8bda769739f2967829695ef8d945ea1", "ref_doc_id": "185e3d38-7b27-4699-8b18-77c98823dfb0"}, "185e3d38-7b27-4699-8b18-77c98823dfb0": {"doc_hash": "0b9e419edeb03c4395edf857b44f60215af8b3ec09290d443e5b62829e83a817"}, "ddc8a407-a6c5-43e6-bce4-2d24c22e6a2d": {"doc_hash": "5f40e74f9c51632d4946dd017a1d27c838bac5e4b105c20d286fae817bf787ba", "ref_doc_id": "0955e7e9-abe1-4bf6-ae03-32dd1bcd8cf3"}, "0955e7e9-abe1-4bf6-ae03-32dd1bcd8cf3": {"doc_hash": "d14a067af67c9b8481f9d373ba584d4864ed2fdb63a730eac3680e1a3b874635"}, "190b5a33-3fb1-41dd-ba61-d7542ac54667": {"doc_hash": "74abc184fbc328457bb4c962324caea3cb151b677c3c937f238ff0b6336b9d4e", "ref_doc_id": "831024d1-4a33-4db4-9016-e4437e168de0"}, "831024d1-4a33-4db4-9016-e4437e168de0": {"doc_hash": "c6577a4a66b67cfd2fc7593f49fa5e70baa7393de7b3c5bf31a20614e986db51"}, "316b7161-1333-4733-960e-95861af883eb": {"doc_hash": "458f3dad0bd4e97ca4d772ab756ccd5d394aea1eb5c697117d65d4ffe354a7dd", "ref_doc_id": "00305476-ec19-4b0f-891f-7028c86085e1"}, "00305476-ec19-4b0f-891f-7028c86085e1": {"doc_hash": "d45dc8a5890f7acd6ae541ebe26e90a858121478b5915dc9373910897266cef3"}, "758a4fa0-bd0c-49dd-bd0a-d2564e52fbfc": {"doc_hash": "dc5365429a9592d85d4f558089c337fe911175845eac7ba44585839c822ca251", "ref_doc_id": "cd265cd1-2de8-48ea-9390-0a0da20d79f3"}, "cd265cd1-2de8-48ea-9390-0a0da20d79f3": {"doc_hash": "7d3dc6d81644d1ea01932cbb81e3698b3c689fd35c4e4b7ef05921be25544bf1"}, "0c0d5e57-07b0-4b77-ba09-6d7ef90bc168": {"doc_hash": "8c889ec6273176a656542372f719dde1cdc83d841f8d4a39162c7571e9bf0966", "ref_doc_id": "d16fa667-2395-42a8-9999-ee54a875498b"}, "d16fa667-2395-42a8-9999-ee54a875498b": {"doc_hash": "13cef57bce0eb15641596dbc1cf55b5ec4e631504ffd4578c05f1cf045b442fb"}, "fd429f0b-104b-49f9-94c4-528a8e229466": {"doc_hash": "9a2668ffc7d66feb55a3acd18adc4c102909ffc7b3f61006f7ce2fb0e366ced2", "ref_doc_id": "b3aac804-5d83-4e56-9dcf-7830f900d2a2"}, "b3aac804-5d83-4e56-9dcf-7830f900d2a2": {"doc_hash": "86b6109bf6d053481d25ba08a046d86a74cc9107dd55f0ed9a286f335595da33"}, "dff63ce1-46ba-4ed5-b1b4-a9494402c1ba": {"doc_hash": "8fcc767ec43d5c3df8d525db2e07f74714fbe77d6bebe3f54274982078d19fd4", "ref_doc_id": "85996195-4451-4481-87c5-15a0344c1c4f"}, "85996195-4451-4481-87c5-15a0344c1c4f": {"doc_hash": "34fd2d5a039228b9ed5d0eb7955b004dbb035ede65176c938b2cac828f904374"}, "23c064d8-fa60-4112-83a8-e26d4963fca2": {"doc_hash": "7e67d61a408cdfceb105e828ca0268d8fc32dc7ba1866f7a6075890ac544c0ea", "ref_doc_id": "eca115bd-e70c-4644-a047-a6b572f3eb27"}, "eca115bd-e70c-4644-a047-a6b572f3eb27": {"doc_hash": "a10e91a05be86b79811e72e0f786c58c73e3bba643b4c1e71266704d847bd2d0"}, "95e47df7-93de-4b4e-9760-3c704143e90e": {"doc_hash": "06d138dab7e36a93c276db60cfdaf736632c225c214c8a7ac2d6444b521714e4", "ref_doc_id": "1a27d792-971b-42e4-ab9c-77aa8622ccfd"}, "1a27d792-971b-42e4-ab9c-77aa8622ccfd": {"doc_hash": "ed103d6ff2f3ed9dc0684100ac89dbac290aea9658ea69fee627684b2519e996"}, "68375b45-472f-4713-a902-01017d5f5f95": {"doc_hash": "3f8dd215dc30b3b5373e1e515189e10f690a8b3a2e1a5b65878ae9e9e6fc1254", "ref_doc_id": "aab3f3ef-1b66-4c08-bff8-9281ceb8fabb"}, "aab3f3ef-1b66-4c08-bff8-9281ceb8fabb": {"doc_hash": "a6ffd58b2d6768be6524ecff5047938169cedf5b7325ef6a1c6df0cf9fc517cf"}, "12c1dc91-d343-4957-8053-9eb78049df6c": {"doc_hash": "54327e8fcdacccb9dae758bd7394ff05f866c3aa7d8b4e18d458f08f3fbb1464", "ref_doc_id": "209ff594-cd76-4d6a-a474-e6c5ca3f66a4"}, "209ff594-cd76-4d6a-a474-e6c5ca3f66a4": {"doc_hash": "ba9ad1bda1c0b7a8766ca8ad854c33e742068be39cfc75a9af20c9e9534c8e82"}, "49585e31-0f37-4d00-8822-a0e02255766c": {"doc_hash": "14eb1b54a350b1090e3c81adf4535f8e2f250e48c296ec2105a9cd22dbd8e118", "ref_doc_id": "eee01fb1-9d98-40ca-a229-b002b580a654"}, "eee01fb1-9d98-40ca-a229-b002b580a654": {"doc_hash": "c652c54cdad2b2c0942ce999e34fc59343c37610ff7596479c232cd5a07e14d5"}, "80b03e9b-7e02-4ba6-af9d-9095bd43634b": {"doc_hash": "177d19361b90bfe15cf76368e6de949fb28573822278e4117deafd137d0c74d7", "ref_doc_id": "d33aaaaf-a977-45e7-93d5-403392a161b2"}, "d33aaaaf-a977-45e7-93d5-403392a161b2": {"doc_hash": "21d30417882b6d5bf013078ec13396a817b73be98c57dae2033d8f8afec9efca"}, "d46752c8-637c-4da5-988f-363c0a976153": {"doc_hash": "40446d6a3362bd6735b22ddf11ff2d95392f959e0a734b0760f590e333581d95", "ref_doc_id": "342175d8-7352-4558-a7da-ba8119f039c6"}, "342175d8-7352-4558-a7da-ba8119f039c6": {"doc_hash": "e84bc7531456abd1892ebb795662ac4e64157f3840c43cd6ad8fd68505b04721"}, "887c5f6c-3a55-449f-80f2-ac7d1cf77eec": {"doc_hash": "8bdce248eb65bcc2fef35708787e9de4a5ba72ff6cc65a7e9be4721e4a9d6530", "ref_doc_id": "86bf8fbd-e83f-44aa-a6d3-e92bd7c2bcc9"}, "86bf8fbd-e83f-44aa-a6d3-e92bd7c2bcc9": {"doc_hash": "fdb8cc6137ef0486e824455db6c5f80c88a39484438d0dee36fd3bc45bbb0ff3"}, "efa33040-ed9d-4a5b-b04f-a8dbc60aa6a0": {"doc_hash": "25f799ae7ceb46a287d56e9e17a0a25b33ca1fc11bc44778f7bdec6f1803b242", "ref_doc_id": "f6f8e34b-cf6c-4b81-8fb1-de0580d12b09"}, "f6f8e34b-cf6c-4b81-8fb1-de0580d12b09": {"doc_hash": "74a0d49e00ba5fd9e123cc0d9c4a9d27af3a23e5721ce426fced1c594b96f3fd"}, "5da3a3ab-6843-46fc-ab49-4bcab7edfc63": {"doc_hash": "1520d62e3077abdec4d5ceda94d9d4162be6cc03ca1389434ceb33803c36aca0", "ref_doc_id": "226c00e9-dd60-4029-aa7d-d45ba037393e"}, "226c00e9-dd60-4029-aa7d-d45ba037393e": {"doc_hash": "b9672247e2ff831b0f570cd67f44d67349f26ba70639d878a51f4deddb122f4e"}, "ff651fd2-7b37-46ef-818c-09a6da7b425e": {"doc_hash": "6e83ee26f38b583292c83b6fbeabc581cba8abe611940cb56c0c481445d12957", "ref_doc_id": "7914044d-3701-432d-8974-8197ae920aa7"}, "7914044d-3701-432d-8974-8197ae920aa7": {"doc_hash": "bf461ee9c191df82bbe1e32254e8319ff8437f2350ae9bdc64ad6639b016a62b"}, "259ee884-6c67-41f6-a542-1355d473763d": {"doc_hash": "fff27b7182208c2ae6e479da09e54771331fcb0f542958cb7b74c1eeba81dd63", "ref_doc_id": "135c72ee-2eca-43c3-8c00-ae7bcdd9e054"}, "135c72ee-2eca-43c3-8c00-ae7bcdd9e054": {"doc_hash": "0aa51ab007431fa6ce654b428a6ec5bc90281d96ba99d2179b439c30816247f1"}, "7f0bf086-20c0-47c2-9bd9-602912309814": {"doc_hash": "e17489852097896c132d0fe2ef9ea8a7f4d35201f1dbaea140664f06e5bdc7b5", "ref_doc_id": "215780d1-0f9a-4c2b-af2a-431ac9a664d4"}, "215780d1-0f9a-4c2b-af2a-431ac9a664d4": {"doc_hash": "804e9df73f2d0626908d6d417f2ae9651d34ddcd71330e866de3a6618fb325da"}, "5396e500-5cea-4d5b-857a-2bda52168c38": {"doc_hash": "0c8c05cd6cfe3c1fcfa400ea526eda7bab642881c8382fff6d93197b818a5405", "ref_doc_id": "14a871c2-74a6-4279-ba95-4888eca8eeec"}, "14a871c2-74a6-4279-ba95-4888eca8eeec": {"doc_hash": "58d6db6b0d4daa86e2d8411ea7d62b89dbd62cb547e0f23a060ebcda8b9cc0d3"}, "61e6ce59-0a8b-4dca-bbaf-08551a16c4eb": {"doc_hash": "b5edae306dd95ca02394d4ef8c7229b27dbd1c461a483f892f5195e079e1b17b", "ref_doc_id": "1343e464-da6c-45d5-9e4b-03233c1b88f0"}, "1343e464-da6c-45d5-9e4b-03233c1b88f0": {"doc_hash": "6388976747bc55fb84a12ee0c16308182992be9ee7bdba7b5d84fe42bd893168"}, "d495af59-ed43-46b1-9bf1-618a9a1aa0b3": {"doc_hash": "365c05605fb4da9d89d11d88be64a35bdd144b36fb5eda07b7d6940ff1353a59", "ref_doc_id": "65208085-8825-4e5b-93ef-0915552d4690"}, "65208085-8825-4e5b-93ef-0915552d4690": {"doc_hash": "231022ed646d7e2b6ecd625b2366cef731166fdaaf6209edf603fd4d1e5acf87"}, "79697b04-cb73-4fc2-9a1d-8be98180cb81": {"doc_hash": "572be7e6d111abbf072fdc2c25f389675b690e4ae0c8df77486533ec6a9b1331", "ref_doc_id": "491bc843-c5c8-4423-ab35-fca1402da76b"}, "491bc843-c5c8-4423-ab35-fca1402da76b": {"doc_hash": "253358e9485ef1d8cf97c7bc1fabde95f56bdde3a4fff4d28f6d1716955807f4"}, "99c3df76-23cb-47b8-8ab5-ba93afdc864d": {"doc_hash": "add7a6b1b9368e6138336071856edd4e2b91cd7f6303413bf0b2d07a1301dca6", "ref_doc_id": "f83657a8-bb42-4167-9333-26f66f97993c"}, "f83657a8-bb42-4167-9333-26f66f97993c": {"doc_hash": "10bf46eec97224a8383d0a64001e9d47b58f11111932c71de0d95ff03235bcb4"}, "3656ddd4-04f8-4d25-947b-da36f6309053": {"doc_hash": "87d49bcb9aa3a03ac9874d74880be2f2f1aeb66cf3bff461ca3a43c9ed1f8e77", "ref_doc_id": "6e76ddf0-e0df-416a-a9ed-c0558206fb0f"}, "6e76ddf0-e0df-416a-a9ed-c0558206fb0f": {"doc_hash": "962947f2f47fe6c9595604b65e88d12ae1baab9204c399f633de8d7b91321183"}, "aba38c45-bef0-4776-bbf1-77abb345141e": {"doc_hash": "1fd31b7d09b592cd813828017489c3df582ba762a8ec77720b19ac563b8fc39b", "ref_doc_id": "7cca0d9e-fe23-448d-a45a-3bc5ef4d930b"}, "7cca0d9e-fe23-448d-a45a-3bc5ef4d930b": {"doc_hash": "12b5ee33e2cc1866d22f0e1f3adb4760f5cb6805103933e89a601e3f01471d25"}, "654cdd30-25bb-4494-b4db-a71fccd6eb2f": {"doc_hash": "2e227ecbfb2cc39914d132cf763b414b838435981567600923557ef22d54546c", "ref_doc_id": "0efbf156-ce25-4c55-9279-eec607938da4"}, "0efbf156-ce25-4c55-9279-eec607938da4": {"doc_hash": "bc068a7b4eb9069baebdb6414a60d2f05a8dabc8fab9b1b6dd31f43be9c772ba"}, "ba211267-f480-4e16-b0dd-e5114c0e4e16": {"doc_hash": "838ae74a4babac396fad91214efa2d1f6f65993dfbee2daad6856b26c9cb903d", "ref_doc_id": "ab0e4797-4799-4068-a0b5-16ab616b3986"}, "ab0e4797-4799-4068-a0b5-16ab616b3986": {"doc_hash": "3224be04837b83403b9fbcae71c469519887c55e4f64c788015d2ea26f976fa5"}, "0274ca8e-3305-4e30-b0eb-6cb8ec8fdb4d": {"doc_hash": "1eeaa6ac375a5fed759b05fb8a26ce841d3e177daabd17c06896ab6bb7fe5869", "ref_doc_id": "c7057c92-1223-42f9-927b-6d09db9ef721"}, "c7057c92-1223-42f9-927b-6d09db9ef721": {"doc_hash": "353ee6fb47ad5497a787c799d09ba482f8dd3dc990659316eb945a8f3106a4a2"}, "fc25de07-e1de-4774-8ab1-25bbc3ef2ccb": {"doc_hash": "594f15651be53f3f860b4fa5db4928e5b2a7be39d6acc622794af210e9a28122", "ref_doc_id": "e873e8e3-a68d-42fb-8164-8f6d95c3b127"}, "e873e8e3-a68d-42fb-8164-8f6d95c3b127": {"doc_hash": "50e3a8b743b975c33eac1ac8ccf2b1d8a84608b90e6d87753106db32725be537"}, "53b2dd4e-28ef-4d83-8ce4-f30cb6f019f4": {"doc_hash": "f8ba3521765e6cc5f745cf637add5f74eb97426d5f3cd6a5c63b937eb9f83f98", "ref_doc_id": "065bf037-9027-430f-a9d9-92eda7b151df"}, "065bf037-9027-430f-a9d9-92eda7b151df": {"doc_hash": "bf60a262c00aa44b114a295511f5cf65714a77c689494840c003f5d594ce4075"}, "20fa555c-99ae-44ca-aaae-53a2883c1e0a": {"doc_hash": "c578c27204e925462813bf664333d421f3e6ec2712486d220f4702be9e77f08b", "ref_doc_id": "4ee78bd1-9a10-4933-9165-151c43b8b17d"}, "4ee78bd1-9a10-4933-9165-151c43b8b17d": {"doc_hash": "c90592433a72f1d02192f12de72c8cfa1414a351e80c10e167a1327ba107e034"}, "509ff02e-8c13-403a-95d9-bb1601b438b5": {"doc_hash": "ec49a8cbfd3a0d278374eb2f483cd57e214c96859f102724e8323445fd56976f", "ref_doc_id": "daf867d4-50e8-48ff-a818-68da3d56d737"}, "daf867d4-50e8-48ff-a818-68da3d56d737": {"doc_hash": "200a2f521b0feb5517c866fa2d9dfe767a7de09d98608e6aa43bf43c18652ea2"}, "e04ac274-e9da-40c8-9179-a3289ab1e178": {"doc_hash": "2a4579f5307829df2dfe4f017a9702f55256207d8d2e4e835c48ee43ba0eac00", "ref_doc_id": "fad2672f-2b02-42df-958b-3b98a5666f42"}, "fad2672f-2b02-42df-958b-3b98a5666f42": {"doc_hash": "1abab34e91063a73ee6b91636d62bd9a41c030833f386cbfc39ffbc370b24b9d"}, "3798746a-9cea-4535-8681-a1d155b59bb2": {"doc_hash": "d5e0f4b1fec55bb84ee5424ad2a1aee0445f37a53fe2121c19404d9b7b74414f", "ref_doc_id": "ab35d8e4-b3e5-4691-800a-6f1d31557157"}, "ab35d8e4-b3e5-4691-800a-6f1d31557157": {"doc_hash": "d881308fd0463ad5e1367937cbf5e0c1681d8e3d71681ab182fcf3cf1c322782"}, "b3df07bc-d75d-4ec0-8fa0-43916e09ea34": {"doc_hash": "3da2d736f3aaa47629ddeebb43ad53093fd10013c61b24179f47a4f82cc3c662", "ref_doc_id": "4041aac0-2e26-4958-8ee7-1e3be16a4012"}, "4041aac0-2e26-4958-8ee7-1e3be16a4012": {"doc_hash": "c8362f6177fca716b6d09a3ff85ae5f9f5154bd2e27d422e73d6557fac3ae2fe"}, "95365b44-abc0-4e80-b9b2-cf5061a8fdeb": {"doc_hash": "4478e3e631ab1b92900009ce3ea9771c9be44fdb50be07f10d6a98431279a6c1", "ref_doc_id": "834123cf-8d46-44ef-947c-cc4b7a268648"}, "834123cf-8d46-44ef-947c-cc4b7a268648": {"doc_hash": "6cfdd44f4d6a88e097d975a43af3dc6f11d8e4d309ce6baf2c6fe17ea8376b61"}, "8dc5e1a3-81c8-47ac-9b4b-aa5333b65d14": {"doc_hash": "7f6be1d7022340f7996037c57309bd959eb6d81a55758bbd1ef9e3ab5f936ad9", "ref_doc_id": "7d54eacf-d81d-4385-b6b7-f542806b8436"}, "7d54eacf-d81d-4385-b6b7-f542806b8436": {"doc_hash": "4d6fa70e73a86184241275d5774b76ac6efa43699c97d3d9509ee9fbcc133aac"}, "1f4f59af-cd15-4e28-ab33-93e687a90490": {"doc_hash": "38d89ac16a53ab5077a9771e7117dbbc5bdba8aadeea2f11307e1a88956e3068", "ref_doc_id": "0f257d89-1e1e-4fc5-ac06-c78e6249b7e3"}, "0f257d89-1e1e-4fc5-ac06-c78e6249b7e3": {"doc_hash": "342ba81cfa873e345f8fdfc8e1be365c72060542b55ea833d97f0d10dabe6497"}, "7260b2b2-50fd-4a44-ba23-20a526422ca5": {"doc_hash": "47e8b2b7b383ce6c387da404d0945b33b7c150ef0b8c1ed945b33a805721a7ef", "ref_doc_id": "64cc7ec8-8a58-41de-8e4f-0463aecc72d8"}, "64cc7ec8-8a58-41de-8e4f-0463aecc72d8": {"doc_hash": "92b64d1021ae57a0c24807c313e0e4cae551990121e987f9c8d75ad88334557a"}, "036ac395-44aa-474a-8da5-8e1715b9b20a": {"doc_hash": "5a0656acf33244814b63d608cb52d72fce07c9226c52a7f7b10a9fd972934ffa", "ref_doc_id": "fced2618-309b-4742-9d50-9dc21f0dbc86"}, "fced2618-309b-4742-9d50-9dc21f0dbc86": {"doc_hash": "d37047ce6e7c454309b13e2d9c20d91cc01c9dc06121b7b3d933290e5dfdd88a"}, "3c77d6b3-93af-4a2d-a921-1ce277b1074d": {"doc_hash": "051634b4d7f865cd68d501ffacdc9e46f208c7054194d4e83dc88421c70f41d9", "ref_doc_id": "b085ffe8-a60d-4a74-9dce-674bc277f553"}, "b085ffe8-a60d-4a74-9dce-674bc277f553": {"doc_hash": "24f4538f3fd277ce19b3bd79b23b6667d43228d0b8d420633f91853bfcff9bb3"}, "9f5a9510-3717-4690-acad-83abb818e3f0": {"doc_hash": "d758fa6390d2eb6589a1f0d409f8c5c5b56ed9e78a68fd7de66a7fdd42e35fae", "ref_doc_id": "489ee0a7-917a-4e7d-9e54-9fc94aa242f4"}, "489ee0a7-917a-4e7d-9e54-9fc94aa242f4": {"doc_hash": "fdb3adb132ddc1aa2ed754cd8969686e42a5d9b84b2fa3236c8dfc429d96aeca"}, "8667cfb2-de71-4b7f-8842-86fedc308afa": {"doc_hash": "fcae6d42cb243fb454e9cb718bb0b9f29b1c7e3a34d43d2399bf6b0e8c0fdb17", "ref_doc_id": "ad256861-1c4f-443a-a70d-7ffe9918e566"}, "ad256861-1c4f-443a-a70d-7ffe9918e566": {"doc_hash": "378f750eec6e3fc3d3153201f0a57a41a2399be0dd3d8866cf3027390a406637"}, "6ba57811-6e39-40e0-a958-10a5660b3fbd": {"doc_hash": "b169aea3105ab4dd7035466e196d23142a4876ec46b4db28a2dd185ff05a1869", "ref_doc_id": "520f6701-e446-41a7-8e4a-0ba859cc0495"}, "520f6701-e446-41a7-8e4a-0ba859cc0495": {"doc_hash": "da1fcf169d68a3804c382970e23a8604dc1bfa948395283a89eb6b8cbb34e6a2"}, "e59647ae-d1ee-4af1-af1c-4b84ca8a2f62": {"doc_hash": "ef9a573b7f965e73b016ec8da2a12cd4835b03e4b2f7882187b5e00baa0d7034", "ref_doc_id": "d7a7b22a-5bd6-4e84-b208-6aab95fcc0ba"}, "d7a7b22a-5bd6-4e84-b208-6aab95fcc0ba": {"doc_hash": "0c86b1f1eed916575237690e34a24b81f7a8fb8e2510957c770afeb0a407bb8b"}, "3b47e972-4f01-4727-bd5d-ecdb08e4e218": {"doc_hash": "1f6f499de345ff8e6b6883f82cca669fcc43c31c5ad754d5953fc0ca5c289bd7", "ref_doc_id": "e00bd6d6-6384-4b8b-8491-fa0c9c77e050"}, "e00bd6d6-6384-4b8b-8491-fa0c9c77e050": {"doc_hash": "27cb0aae21a8e4853f9d2f324838e890ebb4e918e797a66ec907e7dcff9e01e2"}, "b113fee8-d3c2-4b35-b227-51d6e761bc68": {"doc_hash": "50e1d6d51d5151ccc4b2565e83a58f5cb694fbb0c67dd679a81e2dc069858dc2", "ref_doc_id": "a28a05e1-8ddb-4262-9fcf-0fc848ae6a9c"}, "a28a05e1-8ddb-4262-9fcf-0fc848ae6a9c": {"doc_hash": "1c267896125284e6cd6fae7526d8143dff176f511de8756433c8b1c97eec88fb"}, "dd1943ed-f512-469e-83ce-4a2f7ab48399": {"doc_hash": "31f3a0bdcd842f0a0a59a990cf2f83f62494e0ec83684a3ffba92aa978530428", "ref_doc_id": "88df271f-5aa7-42e5-b82c-eae93c85c72d"}, "88df271f-5aa7-42e5-b82c-eae93c85c72d": {"doc_hash": "016bcb53bbfab4aa1380b1f7678c144932929fa5c03b0cdeff7428c2e93d6618"}, "5ee7256d-0232-47fc-9007-ed8b4191bf21": {"doc_hash": "429572892c77c6d266ccf2ccf89fa819ba5a18d08e744c7c0ec831254b9869e2", "ref_doc_id": "99b3a58e-e54c-4548-9513-4447f8be9774"}, "99b3a58e-e54c-4548-9513-4447f8be9774": {"doc_hash": "d9a80e8b3bb311cc965d23ae592c625f80fbe7fb46fc2e0772fa9dad43849f87"}, "d5fe996e-cf3a-4acd-91b6-ecbde90ed62e": {"doc_hash": "bfaff090cb64c04fa72dc1636359c1c06f64a8e67d7bb76f1720b9ec8925e206", "ref_doc_id": "6cf16c6c-7d61-426f-b52e-beb10c309803"}, "6cf16c6c-7d61-426f-b52e-beb10c309803": {"doc_hash": "85d23a9463cf2089f894b3a67126613cdd9210c02862cdde118fda85a1235769"}, "f12f2f0e-adb0-4b30-bb24-3f19e4143104": {"doc_hash": "87c612b1ab9f244758fa122dfa0340a6474b7a4c12bfde0da8875f04e2dad73e", "ref_doc_id": "d8e97a19-e80d-442f-91e6-e32183103632"}, "d8e97a19-e80d-442f-91e6-e32183103632": {"doc_hash": "22837bbb866f1334d8d86b6fcd696882151ab1e1d3071029d9611a4251807807"}, "9943d33c-bda1-464e-b84a-d1017dcca544": {"doc_hash": "3d655cd6a124a9a24e2e1fe4e9b057f4f897da99cdf4d6273eb2914422dce068", "ref_doc_id": "06b555ed-b93a-4090-be4e-49c5d71ea8e6"}, "06b555ed-b93a-4090-be4e-49c5d71ea8e6": {"doc_hash": "d5cd53c5c915ddbcbaf51e10db2b2e517ce6ce4622eac35ad25bd5ad49f77143"}, "0f519762-2aaf-48a8-8f77-372b2b20b720": {"doc_hash": "66b5de0c772221410f75bfa4fd7dee9018cf8b062f035a7c8a15e1dc564f41f1", "ref_doc_id": "f6976a57-2b39-4b4d-aec9-72e33c83ded1"}, "f6976a57-2b39-4b4d-aec9-72e33c83ded1": {"doc_hash": "1f4408fe1d10912705567115f3b7d5d86c7c42e62dbc8802ecb0e45baa4b8e79"}, "0d8b71d3-e7cc-46fd-99c0-944c652f8017": {"doc_hash": "312aafdc4b57b692b0974c12a386809861acf6beb942a45e47d4b79ce9f25c38", "ref_doc_id": "a73f0daa-8f0d-4e6a-b1dd-e76734a65943"}, "a73f0daa-8f0d-4e6a-b1dd-e76734a65943": {"doc_hash": "608d854a2e65b24509a1a54138783508307839cdde4c39fb5d5d2fa26c740964"}, "6a097882-4567-4aea-a439-e8058332203a": {"doc_hash": "852f4522a5eaa5176104af11c0eb43f3d3dd4b187cf84a38cffa96880440f96d", "ref_doc_id": "0eb67cd7-4b25-4e7f-a301-8eb4b5df6bee"}, "0eb67cd7-4b25-4e7f-a301-8eb4b5df6bee": {"doc_hash": "b3e9f981a2b2c4fbd0e4afcfb38e4d971a5ba0c5d5401525368acb86d538f7ea"}, "417d2290-24ff-4740-89b7-d2005b7fbfd1": {"doc_hash": "5b8f27f938d88fe015e38691ef19d8a981c3c8c6e0d025fe0706b542a6d91dca", "ref_doc_id": "a5f7cc74-1803-4d60-935d-18a04b83332b"}, "a5f7cc74-1803-4d60-935d-18a04b83332b": {"doc_hash": "f401d2a12a2512f175c223ff937e8d2fefa6689c67f7ef472c91d56e198d8dc6"}, "081a4652-13f3-4659-b418-7eef19e938d4": {"doc_hash": "92f96a4e6b22a0fbc60694c5a58ad3349d716ce354ef26feb06bb3a073e2d565", "ref_doc_id": "acf97632-7b83-4aec-969a-c1f09181c4d8"}, "acf97632-7b83-4aec-969a-c1f09181c4d8": {"doc_hash": "0456bb09d3d7f1f460f73ec3fd3b4d9bd31265cf3386a71e3583752180a8b9ac"}, "157f82f0-c1df-4ad7-86c0-5cf65d7faaa4": {"doc_hash": "4435f44216f0dec0af4a7e0a31765513358f18787090823e0226364989b52053", "ref_doc_id": "611ca87b-85fc-40bf-917e-9df9c1345b1b"}, "611ca87b-85fc-40bf-917e-9df9c1345b1b": {"doc_hash": "eed220c1116db2357e4d02913fabe5bdac8f0e473cc01df87085f1b6391b57d1"}, "f8d80d54-992b-4b0b-8ce1-32236f3acbde": {"doc_hash": "da96478c020740ca3acbb6e13977bd14c9338e7ab7bc2f13d56cf280432c6bf6", "ref_doc_id": "20d1d36a-368c-4240-9f2d-780982ad5f09"}, "20d1d36a-368c-4240-9f2d-780982ad5f09": {"doc_hash": "07f2824accb16c96dbff3b272ed54e4952c12f8025976e4cf070a47348fef6b6"}, "a2040771-5514-4601-b275-8537afffb876": {"doc_hash": "67edb106f715ec5cd48b26d6a58ddb6d19a93b8dffca06fdc8788338e50707d6", "ref_doc_id": "fc9f91d7-74e3-407d-9c57-9ec8c692096a"}, "fc9f91d7-74e3-407d-9c57-9ec8c692096a": {"doc_hash": "593f8920ecdde7107c3d4e169e42a718178bcac2458a507d21aa61cbbb1e02df"}, "8c403238-792c-4f56-b35e-dc244a81d4b7": {"doc_hash": "27421462d0329f4fac1dce109b721c025a2296dd05fd3e4e5364250f39e4b04d", "ref_doc_id": "04687d34-e892-498f-a57f-b43481fc8d8b"}, "04687d34-e892-498f-a57f-b43481fc8d8b": {"doc_hash": "232246e386094348c1903644c0fc1aa92cf26a327052932097af1a041a0fbc4b"}, "18453e4a-85fc-4408-bccd-8b6e034b1056": {"doc_hash": "055abf6bd4bf318b04ccc7716b75ea3083163282266e1ff986060431206dfab1", "ref_doc_id": "8dc902f2-8a9f-4161-8a40-75963af57c58"}, "8dc902f2-8a9f-4161-8a40-75963af57c58": {"doc_hash": "51047f7971bbffd5c80005f461be479aa1adf917f54a293fd37af23a7ed8fe12"}, "08f6346e-6f17-4df5-8634-7718c165c1be": {"doc_hash": "cbda9840de22bf7659d36971581daf74e555ffb6d3997989263e364543605a4b", "ref_doc_id": "788c8bbe-6075-4ed3-bdd2-9654859a8429"}, "788c8bbe-6075-4ed3-bdd2-9654859a8429": {"doc_hash": "eeb13bfb814471de5a427e98ebae6f247f5f0204d50cdf60afe0fe5f4ec1fcad"}, "ae21ef62-62e7-45aa-ba3b-77b6bcda9bcc": {"doc_hash": "9f5699b6a5911e5e501020114af2c1b24f566bdc02cfd3f9bbc6a37562347c38", "ref_doc_id": "149d1f4f-a226-4cd4-ba9e-a92af7715943"}, "149d1f4f-a226-4cd4-ba9e-a92af7715943": {"doc_hash": "725677ac00529e8a25912e7b5bf663f10d7611eb395918a948471a275024497d"}, "bb5a7c5d-168d-4bd2-9344-71eae39d1006": {"doc_hash": "caaa046c4f3ae3bb94a86f6b59074f3d2d388f17cff340b52d46c653e4687c73", "ref_doc_id": "ee50cf97-6783-41ff-96e1-e4d607522031"}, "ee50cf97-6783-41ff-96e1-e4d607522031": {"doc_hash": "891c0a322ea2f0ed790d9cb18721c0f939fa8c99d02a0336ab81cf1b335b52de"}, "e7768acf-76f3-4656-98f1-86862f72eb70": {"doc_hash": "33bb01a3eec716e215b82a2a7257f847b8d82d05300f22dc99fe83020fb32fba", "ref_doc_id": "214b5c3b-2295-4336-a95b-6b1f921bb154"}, "214b5c3b-2295-4336-a95b-6b1f921bb154": {"doc_hash": "2c3892b7eb9ee45b4d32b82837ad77c5b9a8cd5bed5a4643a802a25586af8ba7"}, "309cfea3-9514-41fb-bb52-3cf5c4629d0a": {"doc_hash": "74c2aa92cbe13af691c06caf6bc893dcd99fe2d25ab3579b589c285e4e36debe", "ref_doc_id": "ba72f706-fc7c-4719-a686-d0ae2d39307e"}, "ba72f706-fc7c-4719-a686-d0ae2d39307e": {"doc_hash": "9ce2f4a77c5ea0cd58b19bc07df8fa14b6f6473efe3ee31215f3f76c99029334"}, "b6970859-a592-456e-a87a-1a4b9df159a0": {"doc_hash": "ca182353dd2a8cbdb481f11b445ed1aa6242206df082a987450235e56e2d18a2", "ref_doc_id": "fb8de058-3412-4319-83ab-5d7c5e5def01"}, "fb8de058-3412-4319-83ab-5d7c5e5def01": {"doc_hash": "4a3c48fb52f206c285525de6495fb1308401c08e6be6f3cb5db0293a9ba3228a"}, "0f84b520-caad-48cf-81ea-cf1934f2d633": {"doc_hash": "223aee6e4e5536024b631803b7d334eea9aea2002db8c7f312897ed683989cd1", "ref_doc_id": "cbc097ec-7a34-4658-aee0-8e469eb60c41"}, "cbc097ec-7a34-4658-aee0-8e469eb60c41": {"doc_hash": "6a6c9a8fa071583d45adc060134eaf0dda8d930bcd6c7b8761d140b009a272f0"}, "1fe388db-cdc6-4b41-a010-8952948c5164": {"doc_hash": "ed98306a02ed214a0f79b243474b60805e2b11de4737222ea36947a7c0636279", "ref_doc_id": "5fcb0fd7-d6f0-4bee-a2eb-7099b8b3eec7"}, "5fcb0fd7-d6f0-4bee-a2eb-7099b8b3eec7": {"doc_hash": "743ee2e89202071abd968608f03b0aebba8f202be2aced54b803305368fc5c64"}, "eb21d063-47d4-4887-9e6f-10e331867c93": {"doc_hash": "6ccea051c33f53d304d6f1351b9d12df88b297130df239c2cc13d2cf52f8b481", "ref_doc_id": "85065a7f-2d74-4477-99cc-98369b66ff24"}, "85065a7f-2d74-4477-99cc-98369b66ff24": {"doc_hash": "947307388952aa44cca22f1ca92f4d8d04be219ee97a6f05a2bb33c95be1231c"}, "7f353fd8-77d8-451f-9cfa-7806b421c70f": {"doc_hash": "fce5ec1e4cd68c9e0b3d3f8c5419c59ee338ae1a2ecd0dcf86dd3e379fe874b1", "ref_doc_id": "862a578f-5af8-4cca-a8bc-5a97584c5261"}, "862a578f-5af8-4cca-a8bc-5a97584c5261": {"doc_hash": "77af86a319a0ab9cbb4b368b34983b3cfc8ca5a12e4c620de905ce0184fa5be6"}, "7d829aac-3f25-49b6-84a0-e80c23094161": {"doc_hash": "764adf4babfe0387b5f2571403ac84b80ee13418327bf108c19453d5dc025ba4", "ref_doc_id": "bd23c079-66de-4f41-bf1d-5cba101cb359"}, "bd23c079-66de-4f41-bf1d-5cba101cb359": {"doc_hash": "9d1cedcaf975ace80a003ff783e1d995126a0a04ed69e6286a46fce666ad973d"}, "a80623b9-2aa4-44a1-806a-19b92e29a379": {"doc_hash": "284461dbfc852c1f26838266f371df1920525fb08d0b758b54ae42f95f42511a", "ref_doc_id": "723196a1-6d57-4a4d-bfd9-e08eca827c91"}, "723196a1-6d57-4a4d-bfd9-e08eca827c91": {"doc_hash": "58ce79aaf4ff8e8e655f93082f59993e5c7e3d4570b15aad893d88e7456739e7"}, "41f1e71f-4209-4623-b0d9-103f47179a3f": {"doc_hash": "75db9a6979c4532def98d2b925f53baa1f7d44533eda424669a1ce6238a6fb13", "ref_doc_id": "a7f773ba-d8b1-4e3d-b401-a47dd0de8fe0"}, "a7f773ba-d8b1-4e3d-b401-a47dd0de8fe0": {"doc_hash": "186ef942e4b383f236990ea95c69442399057d94c4ec3bfa369671a10dd330e9"}, "57edf931-3518-42f4-a77c-24a154b1b2fc": {"doc_hash": "8ab67c7eaab9b884d8116cc4baf288e466f48e84add4099ff02a37b824c5a2a8", "ref_doc_id": "71996915-4f9c-4f46-a4a8-d67d6cec7e5d"}, "71996915-4f9c-4f46-a4a8-d67d6cec7e5d": {"doc_hash": "b0532e8f591dcb2050e452f1d79735f953fe6124414c3c9eb022a3e40d96d684"}, "6e7ed586-1fdc-4b3d-a645-5292cb1a036b": {"doc_hash": "a15f20afd7aa27f00c2020079ef9a01dabb41cc8033c3bfcd57afc0917bb8237", "ref_doc_id": "05379038-70f9-4974-993a-8e6caff3caac"}, "05379038-70f9-4974-993a-8e6caff3caac": {"doc_hash": "f16e1e012c9e3cc82feef6bf66a5c9085e3ab1924d6fda5dd67139ce009979ed"}, "c0bf32ea-a5b9-4b25-9c0d-443932a3b375": {"doc_hash": "7170ad0085dd71b90de8d26b67440248953997aceaceed3ca5e06405b88f8ef2", "ref_doc_id": "2804aa45-c887-47cb-ab32-1044aea66c06"}, "2804aa45-c887-47cb-ab32-1044aea66c06": {"doc_hash": "fade7b7ac1af2173c9887bc2ca9481f35ee4ee0af2b1dbcaa91dc32d912249c7"}, "4c183789-4a2d-4c9f-8113-4db15dc022bb": {"doc_hash": "a877dae473644b1a32915191467d49b2ac0e5c8dece7371a348288311d29a7a1", "ref_doc_id": "a94ba949-63a1-4e20-9d69-a3bce6e0c064"}, "a94ba949-63a1-4e20-9d69-a3bce6e0c064": {"doc_hash": "11bbf9a7f00308cddd32ee4fb877ba1290597adede7f81d8024329d029a37988"}, "3aaab1db-2726-4c74-bba8-f15a591ca39b": {"doc_hash": "4ad926927da285b39e684f11cdc1705665a3adbe5805fa92ca0fcec3ff00959c", "ref_doc_id": "818214f2-3822-46d7-9011-003c5e5635f6"}, "818214f2-3822-46d7-9011-003c5e5635f6": {"doc_hash": "814c6e26ed8086a899fcaaa23d3632cff62249f7e579acb7c6f6be94c7d1dd79"}, "621b5467-f279-4398-aeea-f28bee4cb050": {"doc_hash": "7bae09ee412edf7de938c9a3e8cc4c75ca99cc43ca592090012c90aebba79c2e", "ref_doc_id": "68854cb3-92e0-458d-a6c7-344fd7dc8e97"}, "68854cb3-92e0-458d-a6c7-344fd7dc8e97": {"doc_hash": "15a3f52c8cb62cc26ac21a54ec66ac401b6ed65203bd558445df93265883a11a"}, "b049f9c0-0562-4f22-8c35-db3b2246c6b6": {"doc_hash": "c3711e5f13d91c078b64b996cf03cf22a01e19d42b55fb2f3f0fb8b38b5762af", "ref_doc_id": "0901d0af-95bf-4019-9f80-b5abca807dd1"}, "0901d0af-95bf-4019-9f80-b5abca807dd1": {"doc_hash": "5b7257967943f38a0387bc28680b2c10bfb050393a0a4227810756720246ae6c"}, "b98fc14d-15c8-4a1c-87a8-e7eaa4bd8aca": {"doc_hash": "faf2ebf60f8a83aa7aaaa353fa09c21d7121fdde33bee9bcc26ee32c7e940d9d", "ref_doc_id": "1dcd0925-a7e7-4b95-97e6-e92314e3728d"}, "1dcd0925-a7e7-4b95-97e6-e92314e3728d": {"doc_hash": "572ee8a22e2fc3f54c50ba224e9d296a54a63b67ccff1bbe621ee5b63e986e33"}, "151962e3-139c-4ea2-bd46-f6894653b20a": {"doc_hash": "f744a487e26200b402eed6b77bf39ce9d330f9b67394d322d5db2689664b454b", "ref_doc_id": "e4117045-3279-4229-bccb-1e02875f3276"}, "e4117045-3279-4229-bccb-1e02875f3276": {"doc_hash": "5d86bc50a21079e6172559ebdc7f1df1e81d41bd277620db06d0678614a7997a"}, "23511452-7617-4c3b-93db-e966a145519c": {"doc_hash": "ddb72f62d7a47a764205d88f561952855c02222fafa276796739939d4b4a4a0d", "ref_doc_id": "982a857d-36b1-49c1-8ece-a2aef40732ab"}, "982a857d-36b1-49c1-8ece-a2aef40732ab": {"doc_hash": "2adb040c165b50cf084726ab65bcfaa6d077bf0f87d246e594cdb880d4cb5ae1"}, "12b0b879-4b72-4f08-85e7-8a8352465a2b": {"doc_hash": "078d8ad77c9076f1770602d81d3383fdb2c31fce2b5c1a53294889bca632f04f", "ref_doc_id": "f19a80f2-a2f1-4789-8a21-e4ef93a59eee"}, "f19a80f2-a2f1-4789-8a21-e4ef93a59eee": {"doc_hash": "e2b7efb875c056461d10cc591cd7b8a137391c9bf5ef66d2a7064d190a782e1d"}, "9ab710e9-8938-4d9a-ab59-7f3f5017db0d": {"doc_hash": "f384219f676c3b57fdf5002204de1ee4e811f5790c5797b58d022984607e2741", "ref_doc_id": "3dba81c0-a0be-4d2e-abbd-25127fdfc352"}, "15f38e44-0b79-41c4-9780-7b0b6c65baee": {"doc_hash": "dcd246ae2116ba6ba2bf0c0054939fbe46bd24249a3281c14eb72edec92e18e9", "ref_doc_id": "3dba81c0-a0be-4d2e-abbd-25127fdfc352"}, "3dba81c0-a0be-4d2e-abbd-25127fdfc352": {"doc_hash": "db06289e2a801cb11169d8402318821ee379331643fea916228e6e18cb90ccde"}, "0ed260ac-2b54-4e67-8bc1-e9ed143e5bce": {"doc_hash": "e96fcbc6b1cc41325fde917e13c32bc73988811777acc15f0faf7c5e4c1a9b23", "ref_doc_id": "26c0bd2b-1781-404c-b287-62db8e2d23a9"}, "12ce2863-5b0c-4701-8c60-d057871daaac": {"doc_hash": "a8528fe66ae398cfc1326a355ce3197bbb344e4cde2171b356ad9a7aec1773ce", "ref_doc_id": "26c0bd2b-1781-404c-b287-62db8e2d23a9"}, "26c0bd2b-1781-404c-b287-62db8e2d23a9": {"doc_hash": "09e7758c45cfb4ea6765335a618455f051e37e87af3e209481e9b3c94e6a29c8"}, "38c00f90-961d-45d0-969c-cb21d0481571": {"doc_hash": "5aaca8bd17a603fb785331d6122ba5f9d3afe657963f35d2a88400c2f9543ba1", "ref_doc_id": "284cf760-4bdf-455d-aa72-903b8db3bf29"}, "26083959-d7ae-4666-bbcd-b8d9aad94665": {"doc_hash": "ff127eb8d8bfa018451213e30b01fd57abf937dc4a34ae941fc0edae86c6f0bb", "ref_doc_id": "284cf760-4bdf-455d-aa72-903b8db3bf29"}, "284cf760-4bdf-455d-aa72-903b8db3bf29": {"doc_hash": "f2859dfda83ada735eb40affc2cfedbc4871347f658c9f2ef14e9c3a0766cf0a"}, "8db90326-4024-46d8-a05f-ae1c5fe72c09": {"doc_hash": "810d714d0f103cd3276262f0e0761e27674ac6d4e203f1abfd0f5b2baed8500e", "ref_doc_id": "a0a42cf7-8b25-4868-a925-416bcf8af861"}, "2c52cffb-5f45-488a-b1cd-b8d639be05c1": {"doc_hash": "cd3e638146d3d5a77f8353c4477923a607ee6e309b707419acce9d7f2f5b0bee", "ref_doc_id": "a0a42cf7-8b25-4868-a925-416bcf8af861"}, "a0a42cf7-8b25-4868-a925-416bcf8af861": {"doc_hash": "8845f0ca0df71e7b9a176325667465b727334b9b31dccb3503bfd3d22429ef14"}, "7e6178cf-c511-4590-bc50-5f46ed171ba3": {"doc_hash": "4143ab7c82a9fb52aa46007019b0e37ce071a8209dd76ba191e61ce19fd22e43", "ref_doc_id": "08ed8400-b7ed-4749-8a30-1c773bfe0799"}, "501021ea-7c78-4161-8fb6-dfe543b51cfd": {"doc_hash": "ac7f0ad6138b2209fec0fda37f3c41e726142360009ecfdad98b9912cc87c000", "ref_doc_id": "08ed8400-b7ed-4749-8a30-1c773bfe0799"}, "08ed8400-b7ed-4749-8a30-1c773bfe0799": {"doc_hash": "4c9c72f994070f889d9104ccd0837ef3df0757f7087dc761b833dbea81833485"}, "9f33a625-5888-4b8e-b0cf-222113f3d3d0": {"doc_hash": "cf2806d123d59fa9b7c98911900bfa454750565acdec7eebba83583ac356305d", "ref_doc_id": "4daf9919-9b3d-4b31-8ae6-cf03fb9e589c"}, "bf914f6c-b5c0-4493-b1a2-b3aba2fd1250": {"doc_hash": "5a6aced9f1dccf3189b2a21d77166941e40ed10d8f86c193a90903b7f81cced9", "ref_doc_id": "4daf9919-9b3d-4b31-8ae6-cf03fb9e589c"}, "4daf9919-9b3d-4b31-8ae6-cf03fb9e589c": {"doc_hash": "ff36b3e902a3c3603dc9e02ec3b3e3bf924c3afae1e27c13baaf4ec329bce1e6"}, "d13cdfc0-48a8-4589-84a5-0fd105ca30f1": {"doc_hash": "eca1b1cb595dd45d1a467025ba8baf1f36ce1c2b360bf30333c175b2a2cbf9f4", "ref_doc_id": "573c0141-ee9f-49cc-8bd2-2244b0e6dd0d"}, "2e459ade-d51a-4765-bf4b-c6e8b7ea7224": {"doc_hash": "dd246e7f6a49bf200b5034c73ef13c0bf1a2cfec1907d6afe597a2a00be00ec5", "ref_doc_id": "573c0141-ee9f-49cc-8bd2-2244b0e6dd0d"}, "573c0141-ee9f-49cc-8bd2-2244b0e6dd0d": {"doc_hash": "7216bfaa121faf3da230568ab90a5515c2cf9fd3ac13ee1456b624142c7ccb56"}, "f141ab8e-842c-4eef-99a1-b03b108f2f4d": {"doc_hash": "6c15e5e0a71a3dfc75832146c32b4c14dde3291468930c41c6eef88eeadca69e", "ref_doc_id": "f1f39c62-b863-4eb5-8042-d419a48e1f0a"}, "b6c18bde-0eed-4f3f-84b9-00f91ae3c343": {"doc_hash": "919ff689748eb69343ab6fccc966e37e114394c2f9415d94e7c72294f3d79c95", "ref_doc_id": "f1f39c62-b863-4eb5-8042-d419a48e1f0a"}, "f1f39c62-b863-4eb5-8042-d419a48e1f0a": {"doc_hash": "654c39324e57f4906dfbab0c58846345ee1bb6491e96374ce17142c9e49a9500"}, "9a99af8c-ea56-48f8-84ae-8cbe7625947e": {"doc_hash": "a6e928cb0c9ed7f8858b92f219516082269e5cce339f71ff779288e98dea7251", "ref_doc_id": "e0beedcd-80ce-4e77-92d5-b71264f6d247"}, "12e6b9d1-afd7-4ee2-86e4-43bff9795e10": {"doc_hash": "1b37e9df513b0f01c9491e84322218fdb0e5fd10ca2d5534179ba023d1371d81", "ref_doc_id": "e0beedcd-80ce-4e77-92d5-b71264f6d247"}, "e0beedcd-80ce-4e77-92d5-b71264f6d247": {"doc_hash": "51802eb0cafb0326b0758b8da95546edbf7812d6b4008f5adc87ea6d56f9f384"}, "b2bd4ef0-a330-41ad-a89a-0a56c4d150bb": {"doc_hash": "56065f1fe90613ca600305f35e27b425cf7299f50550e670654a481f893e036c", "ref_doc_id": "d9ddbeb7-f230-47f2-9b2c-9179aa99334f"}, "84413f9b-500f-499f-9567-0fe1a92facbb": {"doc_hash": "4d5ec6938201b65c6a157bfc3356d8acc8348fb3b30c22f3d9ba0ae4391fc521", "ref_doc_id": "d9ddbeb7-f230-47f2-9b2c-9179aa99334f"}, "d9ddbeb7-f230-47f2-9b2c-9179aa99334f": {"doc_hash": "93d60e525590d45fb76a4830d0f4544120b683c0d2e404f961f62568056b6ce3"}, "eb72e045-5626-4bb3-9a28-cd06767f800a": {"doc_hash": "10ae11f2b4219aebb471e16716be35464feced39cefe90785e21be8ff36bc701", "ref_doc_id": "bf394c11-7479-45f9-a388-b846e3fcc275"}, "b19d1606-74d9-4a14-9783-84ea603aedc2": {"doc_hash": "5558f8d25b4bade98c1470f3188df6c39e19843c2be68934622c9c6b533c8a34", "ref_doc_id": "bf394c11-7479-45f9-a388-b846e3fcc275"}, "bf394c11-7479-45f9-a388-b846e3fcc275": {"doc_hash": "00fc7e9b82bfba6463f45507f9b471159629c8f79d09a99eea8a178469bf22a5"}, "e40d2b55-a491-4754-ab65-328ae17061fc": {"doc_hash": "ca194e11a077bb49e61a844ba0d0e0a4b9bb806673c4c63bf9f476140271f0b7", "ref_doc_id": "a3125ead-2dd3-45e3-8047-b448d6e98518"}, "6a1ee02d-de72-4006-bf92-98bc7933e3d8": {"doc_hash": "9d1de2ff011ebf1b9747fb80e67d5740497a7c8f2c22021e689555d039b6992c", "ref_doc_id": "a3125ead-2dd3-45e3-8047-b448d6e98518"}, "a3125ead-2dd3-45e3-8047-b448d6e98518": {"doc_hash": "d08831bbd14b2850d0dc2e88ffd37fe053ed755c892a715235e765973f610f3d"}, "a3f9feaa-3e9b-4334-8f32-2b7b63b47f06": {"doc_hash": "46ed12526a9c321c620b3e30d50d1f00fa58a61657aaad85bea737c91b5a603d", "ref_doc_id": "d365ad41-6055-4d61-8a92-c51920a2725f"}, "8622d672-dabe-4281-bc56-613fb70e091e": {"doc_hash": "11fb07718c79dbed21dc02895f96c0be3220377ca622894cec0048050a52b92c", "ref_doc_id": "d365ad41-6055-4d61-8a92-c51920a2725f"}, "d365ad41-6055-4d61-8a92-c51920a2725f": {"doc_hash": "8dec75b62d62983b13b74a6eb9108b6f31bd2fb89321aa3b42ae2c74292b2fe5"}, "cbbf1009-aeb3-472b-83c4-de6b9c0047b6": {"doc_hash": "72987ab665fa85c2311b7bc3c83de1faf29cd1028ff0509137e82ca56dfa4293", "ref_doc_id": "d2622d24-c23e-4050-826d-51857533a44d"}, "266ae132-2515-4d10-a902-d88adbd97ac4": {"doc_hash": "af643f4359559ad14e3e601b11161667bd5863b3accfe41a81fbf076a2149008", "ref_doc_id": "d2622d24-c23e-4050-826d-51857533a44d"}, "d2622d24-c23e-4050-826d-51857533a44d": {"doc_hash": "538dc7328082b56e3cb1b650cd8043b66e8fe5a7e39b29c8d989220d41f69253"}, "e11c42c1-990f-452f-b0c4-e667be069124": {"doc_hash": "f3dece8759577ad1063dac0c562754b65b4908ba6c1ba763d454a1b7472d2874", "ref_doc_id": "66904acf-e0dd-4c49-8215-90ebe929a1e2"}, "0ef6a263-7213-4a5e-9173-052b1cc7f876": {"doc_hash": "8865b1d680aa6314edd2a1adae82d7c58084f46e9c67830f335d60661005629d", "ref_doc_id": "66904acf-e0dd-4c49-8215-90ebe929a1e2"}, "66904acf-e0dd-4c49-8215-90ebe929a1e2": {"doc_hash": "32199010449e8814b330b6acad2bae97c4079ffc18a00a909c44c15b237f436e"}, "239dee1e-f5c5-4355-bb37-fd6dee421632": {"doc_hash": "ffb4ff94401d7c4c30c95dcb0a4f1edb9fdcab37bab7bbb3d3451d804f6c6aae", "ref_doc_id": "74fbdd83-4dc9-40ec-8828-8250958c5c34"}, "08c9c875-2a59-4a9e-9296-0ba034da725f": {"doc_hash": "94e396410fa099489600fc41381a0ac190f3146a857b5e15e7891c2b67d247f0", "ref_doc_id": "74fbdd83-4dc9-40ec-8828-8250958c5c34"}, "74fbdd83-4dc9-40ec-8828-8250958c5c34": {"doc_hash": "ee7038e0696d2ae2c79a4398c5831867cea7bdb5375f77b6eefaf1e2e77c7aa9"}, "b5643b5a-e96b-4ccf-959d-b14ecd9a8ff9": {"doc_hash": "f6de0941949cfd7e26384c7fbfb52adf530e6979421772391687b8b33323723b", "ref_doc_id": "0b8bc016-7c81-408b-9b8b-89874bdfe4a0"}, "4b061cb5-3509-4d5e-a776-d31ecc85ce63": {"doc_hash": "e7c2d124d21d3af519cf8ead1e688783a7d3f9a2f8d5a09996bbac9dd620e534", "ref_doc_id": "0b8bc016-7c81-408b-9b8b-89874bdfe4a0"}, "0b8bc016-7c81-408b-9b8b-89874bdfe4a0": {"doc_hash": "36a65ce736948c5c377c24e4edb967410f3df1cadb985179f1625ccf7224d0a5"}, "8a71fcad-f7f7-4eed-9ba8-a32585a4ed34": {"doc_hash": "8c419bf9c7b4f6f17d9a7b63887aed9b28b6750203f21a9f56235995ce9a0f58", "ref_doc_id": "d352c53c-49ee-45b5-9099-c74a45f43c6f"}, "72b44a8b-e31a-4ac0-b80e-a445cdc8da61": {"doc_hash": "9bbb48a2b0a6308ad92b33b02d062d96b46fecb35050a694740ce89452600797", "ref_doc_id": "d352c53c-49ee-45b5-9099-c74a45f43c6f"}, "d352c53c-49ee-45b5-9099-c74a45f43c6f": {"doc_hash": "761cc3df26c801ffdb28b2d33f80ba31c2d067a6c10037a28fe814411f9dcdee"}, "b02cae29-a8a7-4bd8-9573-a5edb6b10237": {"doc_hash": "0a6c405f158cba7d1fed2ea7d9ca8a641ec8ac2f1ebf46af98fbbe51609adf67", "ref_doc_id": "9ad0675e-bc03-4434-ba7b-d00fddd4c481"}, "5be0bdae-6269-4f7a-91b6-544c674d06a5": {"doc_hash": "db41aef92d73fa5ffd8cff533bceae1e575230ae460c9958d8890b3e2eeae25b", "ref_doc_id": "9ad0675e-bc03-4434-ba7b-d00fddd4c481"}, "9ad0675e-bc03-4434-ba7b-d00fddd4c481": {"doc_hash": "607717965930a8882cd8229fad9046786e251a3383815ed46ebc00db3b8b12d6"}, "0e162f62-d213-4bdb-a47a-13ff92f32681": {"doc_hash": "2d64a7868beb662be7e651fc7bbe13d8cdd5d003eedb6b3b8a6026db4626be9d", "ref_doc_id": "39cd96c6-a841-46ce-8193-e96cc2ca4efd"}, "a65b088b-11b6-4084-acbb-a73f0f6d7771": {"doc_hash": "1783b90a9e7561d010dd1b6e27c7aa0c3a16567f1b15a639132c7088b4b31b4a", "ref_doc_id": "39cd96c6-a841-46ce-8193-e96cc2ca4efd"}, "39cd96c6-a841-46ce-8193-e96cc2ca4efd": {"doc_hash": "f69b9bcc9f31d5ae77ae98ecc614ef74d92851acd9cd2d372783631bf7e47720"}, "591feef2-b131-46c9-8f81-98057cc3e758": {"doc_hash": "e2cfefbd783ce768dbc3b2f6ea3e47edfd344df90f1b659a3bcbf8fad4027e6d", "ref_doc_id": "fd50bb87-340e-4e9b-9a42-6c59da352db4"}, "fca32444-05a2-4968-abf2-8f4217df724a": {"doc_hash": "2d804b570ad7f7c2987889b583f9dd1752b51d6733b1b1f7fe47b74fb8193820", "ref_doc_id": "fd50bb87-340e-4e9b-9a42-6c59da352db4"}, "fd50bb87-340e-4e9b-9a42-6c59da352db4": {"doc_hash": "dca44ec5e58e0a99d5e5f6eaeec8fcb66852a009865a0bf380066593f4dd556b"}, "e4987eef-86bb-4039-9770-1d64490f9f2d": {"doc_hash": "2cf2c845af2e807783b3ebc86124426b38dcc3440a7864c337bcd6156ff835fe", "ref_doc_id": "a20a6210-768f-473f-a131-4e7d8b2b2350"}, "119c5f46-dc5c-4016-b41a-ae7ec421b171": {"doc_hash": "9981ce22cd9e533640b46c45c81ac3d0b586b6a39f81489266854970eca71db8", "ref_doc_id": "a20a6210-768f-473f-a131-4e7d8b2b2350"}, "a20a6210-768f-473f-a131-4e7d8b2b2350": {"doc_hash": "626fcc0299ccc2490891510c71866b9579c3f9a8d1a690cfc50f06960854f295"}, "d348c420-32ce-4c80-a8d6-d70b3e199e81": {"doc_hash": "69fa5999591e47eaea23a861edbab7f8ca32dac6d3a3212132d680ce1df4450d", "ref_doc_id": "53003719-6816-431d-b0c7-3774ba157daa"}, "183954f4-14fc-4484-9cce-8beb0bbb674c": {"doc_hash": "e9e4645b50483cd67cd4a3480999073adb7f2ac3d380fd168d700d84e8f3619f", "ref_doc_id": "53003719-6816-431d-b0c7-3774ba157daa"}, "53003719-6816-431d-b0c7-3774ba157daa": {"doc_hash": "5f4c8a554339b597de6ff02c24a7da595ee9705cab9c63471a990420703282b7"}, "73eb8ea4-a5c5-41ed-90fc-e5414ce3677c": {"doc_hash": "de73366254c0b5cb272b912d4cc6cbd802025441c3b5e1907499a70dfd55104f", "ref_doc_id": "ef546d1f-4ec6-4b29-a0cb-b31bf6e952a0"}, "88471547-ad2f-499b-9145-431e05c62854": {"doc_hash": "f477b035b6bf4c113d819c2283b14cf3e0441adac76e31ddf6ce511179729846", "ref_doc_id": "ef546d1f-4ec6-4b29-a0cb-b31bf6e952a0"}, "ef546d1f-4ec6-4b29-a0cb-b31bf6e952a0": {"doc_hash": "69f1c272bac8a753df1453974950214638b4bd8b0211c9583a1dbe1ac24bfeb4"}, "c6ee1ab5-90ce-483d-93ef-cf3526690de3": {"doc_hash": "99003d9a68bad0dc8509532d9530f84ebdf5abd6fb2f6d93021ea6520f66e5a0", "ref_doc_id": "0111f62a-511a-4498-a062-387979342cbb"}, "23130aaa-eac3-4961-ab84-ad054bf47790": {"doc_hash": "f782453e916578fb162a225f85c65f141dc0d668045162b1a51f71764b860331", "ref_doc_id": "0111f62a-511a-4498-a062-387979342cbb"}, "0111f62a-511a-4498-a062-387979342cbb": {"doc_hash": "6f24d1c119aa09f87b08a297d8220a8e4cadcbaf76c375f346cdff24b922ca9b"}, "9d6a9e84-404e-474e-b519-d9ba23874531": {"doc_hash": "f6c37fcd47f64f00512a111c0c4c912eeecfb0c81c36cb1ef1b5e299d8c49708", "ref_doc_id": "a3a7d606-5d4d-4f6f-8715-60a724c6202d"}, "feb40e9e-dd75-4156-be03-bc71cd6a4281": {"doc_hash": "68e952dc854bf5bc3472fa20721cbd2749ae32efc10b5364ecf6d5c4121c8196", "ref_doc_id": "a3a7d606-5d4d-4f6f-8715-60a724c6202d"}, "a3a7d606-5d4d-4f6f-8715-60a724c6202d": {"doc_hash": "98e3cc6b1d5056f47cdbee902a617877a2e2341f7510d49b37d8690a2cccc287"}, "2b74ca4b-23a2-442d-bbd2-0b7c4e0ebd16": {"doc_hash": "4a4047a67f6fb96f6f761615b1a11d22161a6dcaf2e4a2b38ee1fbfa15d8744c", "ref_doc_id": "9a726dd0-5b0e-46e6-8a84-b0715a85d642"}, "62e75e87-7e06-48d9-b1c8-a4853e678eaa": {"doc_hash": "9fcb54fee1f8f708b730f41246207c7378a86b4bd7f7c22f63be1ffe4997bb9b", "ref_doc_id": "9a726dd0-5b0e-46e6-8a84-b0715a85d642"}, "9a726dd0-5b0e-46e6-8a84-b0715a85d642": {"doc_hash": "02f3f1703700035b59e617683b17e6c6fb60f01e3d8cdcd44343425ec6b1c5f7"}, "d8b5b27a-d6fc-4cb6-9d88-a4595aa233da": {"doc_hash": "ff593b27ee3b5404872c8e6664cc48609e567de38e9482f98d8c03587f1e44b2", "ref_doc_id": "77e35c5a-3f7e-4f2f-bcf3-90692a34e66f"}, "e1a1eaff-5b20-4136-b308-fe6e9d169a0f": {"doc_hash": "2d20fa4780ccbd894ce21fa1466b2830f3aa3dba37c9fb148194823f11c39df2", "ref_doc_id": "77e35c5a-3f7e-4f2f-bcf3-90692a34e66f"}, "77e35c5a-3f7e-4f2f-bcf3-90692a34e66f": {"doc_hash": "b82b226ce4c9e95ae158e653f98af4904cda1b7c7652e568f3952e9718fc4038"}, "8c20e165-612e-4962-9a74-de5ff7cd907b": {"doc_hash": "3f50c43cfd61f44586d0894bbe158a48beed25b6ef845f34fbd1b193ab2da9c1", "ref_doc_id": "f5fbb428-c853-4216-b2c4-ef572d7d93aa"}, "89a2bc2f-c935-44fd-b55e-1d05b21a61f5": {"doc_hash": "6f9269fda98615b52e6084701ca65624cd96c4c6acc7e8ba9df9091ae41b20d7", "ref_doc_id": "f5fbb428-c853-4216-b2c4-ef572d7d93aa"}, "f5fbb428-c853-4216-b2c4-ef572d7d93aa": {"doc_hash": "8d23f410925c5e55bd957d91ef54e8b768578f26b10d49a4485f94818f6b0e1e"}, "758267ce-f3b8-4f8b-af1d-187ada01b5fa": {"doc_hash": "540940b1dfcb11246d9a990abe9728c5038fe855bf7153e30c996381313f1832", "ref_doc_id": "9683ca93-2a7e-43b8-b0cc-75c4bd6bfdd7"}, "0ed8efbf-f5d2-435c-a346-618d87b4ddf2": {"doc_hash": "910a710ae1c29104c3a390a7b42ebae6e84c8286c36e2d7dcbe3f2684a0f52b4", "ref_doc_id": "9683ca93-2a7e-43b8-b0cc-75c4bd6bfdd7"}, "9683ca93-2a7e-43b8-b0cc-75c4bd6bfdd7": {"doc_hash": "e88ba8198be9c2168d647d76dba16274b67a7e4d5f8afd95bf53737f7176e4b3"}, "b43fde75-2689-4c56-8c4b-8756cb6f0c4c": {"doc_hash": "24706cd08e8be11cfda0036693158d2a806859480c2085ae93f1af5f9ae0c0f5", "ref_doc_id": "be3361cd-0339-4a3d-90c3-e29fe9db77db"}, "f0b3a50d-0fcc-4723-a5fd-b65b74f8866a": {"doc_hash": "6abe41291d5b10dfeaa62cf3732774ea780f5e679bf2fed9f9d995c4564be7a9", "ref_doc_id": "be3361cd-0339-4a3d-90c3-e29fe9db77db"}, "be3361cd-0339-4a3d-90c3-e29fe9db77db": {"doc_hash": "115be63ecbc2e7d669966569700933308404d843ad05b38166410d512766a272"}, "9375a539-f114-4e2b-b00e-aa23c476375f": {"doc_hash": "1ddfcb5028e283385511a58e241167628a1b449c19f955189874b315320348cc", "ref_doc_id": "e29d8999-ac63-4e75-b1f6-bd32afc7242a"}, "8cfde54d-e51f-4021-b602-df048c0aab06": {"doc_hash": "bee24f05224da95230bd5dd748ca2afe402d59a3e38e8975dfcacbacb3908dc2", "ref_doc_id": "e29d8999-ac63-4e75-b1f6-bd32afc7242a"}, "e29d8999-ac63-4e75-b1f6-bd32afc7242a": {"doc_hash": "938c65a296fe6e6d44eb0c7dff35fdba9e4a08d22c6918479d1bab0eed4d71e3"}, "963566cd-94f0-4c0f-8886-dbed6f3d5f6d": {"doc_hash": "3b33740a010f4bae63868d1dce4e67d8493de823e7c5e947f071dda294097f68", "ref_doc_id": "476570b8-858d-4f6d-b722-8f75bf01969b"}, "7f27083f-e48c-412b-98ea-32af72b2e135": {"doc_hash": "bc4f9f1ede4f1d1faf91393390ab9a75f7a827b34b5a0d92991d269c60bacba1", "ref_doc_id": "476570b8-858d-4f6d-b722-8f75bf01969b"}, "476570b8-858d-4f6d-b722-8f75bf01969b": {"doc_hash": "8a85c9c2a687d06dc3fb3bd741aec3832b7491da52d398cc876ebe71ff06dd94"}, "2ee65ee1-560f-40b7-9cd2-eddb615ff994": {"doc_hash": "be4088e4775c744eeebfbe201b20a267dc5714cb886f576a55cdaa96e5267bcd", "ref_doc_id": "b5a256dc-fc33-4c5d-b1db-bd17c24d2c86"}, "9bd9548f-ee43-4a48-81b1-2ca532ac7465": {"doc_hash": "593f180a2e0a8416187ff0481460b78db09b5716c9f628f68c517897b59dbf3a", "ref_doc_id": "b5a256dc-fc33-4c5d-b1db-bd17c24d2c86"}, "b5a256dc-fc33-4c5d-b1db-bd17c24d2c86": {"doc_hash": "e2670cc62ed186f90732cdd03af93b81595b0ade7c1d4fa7481c64d920ec2c4e"}, "f0045335-116c-47bb-8651-0831c19f3f7c": {"doc_hash": "0b6a40a6e24ef4cb578a1ddb04fb27db5019b6522209b997c603e19597a0ef7a", "ref_doc_id": "940b90d1-a675-4fb7-a956-85d6f152bd8a"}, "99b75cfb-2ccf-40ae-872e-077d704e528f": {"doc_hash": "6c5bae5b3c48e84fd865ddae83817f0a6d117d5e179769579d26df460205c50b", "ref_doc_id": "940b90d1-a675-4fb7-a956-85d6f152bd8a"}, "940b90d1-a675-4fb7-a956-85d6f152bd8a": {"doc_hash": "41e220047aa02841655e84d870bd512461c77ed5b7a22c98f05270403d0c67fa"}, "519d8e25-0ae7-4de6-bae5-317a5b9943a5": {"doc_hash": "a383bf7183d08dbe1c30e803d65cb8e4298677a017604fd7423207f3fdebdf35", "ref_doc_id": "70427c2f-f214-48fb-a23d-d83d808ad2f9"}, "70427c2f-f214-48fb-a23d-d83d808ad2f9": {"doc_hash": "59fac1f7665a7ad4273a5fb1270e42f49411bbde4809fa0bc98b0b2d31182f76"}, "8da30a1f-0d1a-4bb7-b96d-bc7cb096fbf5": {"doc_hash": "552f616b9adaca8ce5c87b4e925b8890cc55fa178f456e49722600f049c400a3", "ref_doc_id": "907ae918-e073-47e8-9082-3638db3d3a0d"}, "1983c374-9f16-40fb-b4b5-ed7ef4f054e7": {"doc_hash": "ff7be952bea74c2d381d3ce50a793ab61f55ab97954c05e9080c2221f2d46b2a", "ref_doc_id": "907ae918-e073-47e8-9082-3638db3d3a0d"}, "907ae918-e073-47e8-9082-3638db3d3a0d": {"doc_hash": "56510af08f4374548a467d1ef5d66cfd16100917d6da510a0d67b608d4a7b81d"}, "53cf77f0-02a9-4e58-857f-c4ab0983ddef": {"doc_hash": "088daf387baba8d0e76602e6c6ab5402a0c85c8eddf9c935ea06147015df9c53", "ref_doc_id": "cd58141c-d018-4832-ba41-3ccd657898d6"}, "bb34e419-8bb3-4e65-a203-fa9d88d26411": {"doc_hash": "e6ac3bf40da92be03599e59eb149cca4bce5439a551a2944363556bd45d2eb3e", "ref_doc_id": "cd58141c-d018-4832-ba41-3ccd657898d6"}, "cd58141c-d018-4832-ba41-3ccd657898d6": {"doc_hash": "91804955d30e41efab1c2f93f9be6dde8587349b9bf0e0505e47a5c110c0f7a9"}, "a95b4a21-5f03-4092-8bab-1dfd5e676c82": {"doc_hash": "4455fe1c7b6054099430674585b3eb8b80aaf6c5e5f3548bc5fa9466eafa4567", "ref_doc_id": "e2e42737-61c2-4f7b-9b79-c99063f24d02"}, "83c00977-04aa-4b9b-a892-6d1008408031": {"doc_hash": "0b6797752eff9aef1b0cc6b4c143ec6e5f6ab64ce83d72bb85723329fab4b86e", "ref_doc_id": "e2e42737-61c2-4f7b-9b79-c99063f24d02"}, "e2e42737-61c2-4f7b-9b79-c99063f24d02": {"doc_hash": "5e904eb7e15331dcebba85830868fd44e976ca33b94280590ded9e2400f5a7d2"}, "419fe496-4bfe-4117-8161-25160354d3f1": {"doc_hash": "5b88f96de30e0e21fb060e7fdddab930f386901f46c5e5f30bbc681c59499be8", "ref_doc_id": "6d97610e-c050-4c02-bde3-4b2a77a9717e"}, "6d97610e-c050-4c02-bde3-4b2a77a9717e": {"doc_hash": "9fcc8a424d1c966c0f2180bb3cde2f2c6ae90b50fea39a05b1d967cec18e003c"}, "7c7e199d-39d2-4a92-aeaa-66376695ece4": {"doc_hash": "c3ec1a7d8491f041423557b95399d7931218a077e4d59c5621cf0a39ea363175", "ref_doc_id": "a1eaa447-e80a-4478-8d93-b1594ad738ca"}, "a1eaa447-e80a-4478-8d93-b1594ad738ca": {"doc_hash": "02f60acc04c5b74e50f4635f673d75d5cd78873b888279c02230fd015f99f707"}, "e4b2f66f-0b0f-4c55-97f8-2cf352d44673": {"doc_hash": "6a3c39d4aa12eac50619ffdf69aa4f3d3a57268a70e81c5ce03b66b97d9c191f", "ref_doc_id": "bd26837d-e065-43c3-8312-71a2f4e099ee"}, "e74c0cd0-3a50-404d-88f6-377807489501": {"doc_hash": "32bb04a7ae62162c7df97da7d37923b034b3683a91002369876b6c0fcebfc406", "ref_doc_id": "bd26837d-e065-43c3-8312-71a2f4e099ee"}, "bd26837d-e065-43c3-8312-71a2f4e099ee": {"doc_hash": "f8a39d4403014d4b2a4960219033baa0d0a9b921271f80e19934bbc4eaa83e12"}, "231f9cef-1465-4760-be63-21ff97535ba7": {"doc_hash": "9b88a2a944df14b10835abbea1d2ca560aca0bd9ec7b06b611fe126af1465540", "ref_doc_id": "e3623d38-9c97-4b87-af05-33b368532532"}, "cb8dc595-1a51-4517-945b-4e07cbeaa0b5": {"doc_hash": "7c6aadee22bac009d02ad3090f0eabb00a538e0d3387d4de04baa724365ba69f", "ref_doc_id": "e3623d38-9c97-4b87-af05-33b368532532"}, "e3623d38-9c97-4b87-af05-33b368532532": {"doc_hash": "71c6bb51860b3f3550a37c974cd4eb6ca7b4ac246d2ef9b7afe3ee9040d2af14"}, "79dcb170-7155-4c82-9b45-82a0ef33a4d1": {"doc_hash": "d0477668a416ba3b86f297393b4e14ac144a4bc60348f5c8eefae428540ea2ac", "ref_doc_id": "65f3a743-6fd1-4b98-a433-687f3bfef5e3"}, "04075d2b-4539-496d-bf7b-ed1664afc516": {"doc_hash": "184673a3b05075405b13d21f69ee6409473ee96b9044924b732f25b1aceb2c0f", "ref_doc_id": "65f3a743-6fd1-4b98-a433-687f3bfef5e3"}, "65f3a743-6fd1-4b98-a433-687f3bfef5e3": {"doc_hash": "715983e800f7e734326259b312611c6cb62907b6aa0db91570f470ede43232d7"}, "6ccd16c0-23da-422f-8e93-900f3b1236ec": {"doc_hash": "c0211c3660cebb771286aefdf95cbc25517d5813282c239200efca4fb39a0586", "ref_doc_id": "5dd8906b-114f-47f2-9d7b-4d6b04c8b2c8"}, "859bbc99-0979-4419-9ad6-17eeadd1b1fd": {"doc_hash": "3fa7f75f843d53b15ecbc041cb48cbbf6ee4649e9749fc0b12895b20a1c14887", "ref_doc_id": "5dd8906b-114f-47f2-9d7b-4d6b04c8b2c8"}, "5dd8906b-114f-47f2-9d7b-4d6b04c8b2c8": {"doc_hash": "0d1ed7070d4095a2a29d3608157ca513b2f944847152fcf91b052f7dc28ee31d"}, "f3240c3d-4082-4e0f-8eae-81a30525b7d6": {"doc_hash": "c61d10bf199592b3aa786bea9f26c20a8ce322c29b032c608ab9e28a49a617a8", "ref_doc_id": "64b499cc-e23e-48d9-9996-c680d100b443"}, "53dae983-7707-4b49-9d5f-a7f72c93354f": {"doc_hash": "b74cba9e663a137e6950754d21d84cf6c763c9dacb3bba2ecdb676ab6cd2bdc6", "ref_doc_id": "64b499cc-e23e-48d9-9996-c680d100b443"}, "64b499cc-e23e-48d9-9996-c680d100b443": {"doc_hash": "c4e85589c9a62a1e5b8475cc931282ebbff8a6a3ed4c8711df1d6c1e45110c07"}, "f2a40c68-2dba-46d8-aa4b-ccf6b217ebea": {"doc_hash": "09ba66f8821efd3c779ef73f36facce46d09a538758cf50a129fa9b7f69d58f7", "ref_doc_id": "e774652c-d6b3-4577-b008-78af708410c8"}, "e774652c-d6b3-4577-b008-78af708410c8": {"doc_hash": "0541729746b89975c5ed9571a8bf23d4366fc74d6655574ad1e61a9a0854ca8f"}, "fb55d7d3-7e47-4955-8bef-02b1e9efb22c": {"doc_hash": "5de16973a202d37faf40856bf9b45fc52ab4171619160ca671fde9a8ae23471f", "ref_doc_id": "8dc3503f-bc16-40fc-8fd6-d9815403e825"}, "8dc3503f-bc16-40fc-8fd6-d9815403e825": {"doc_hash": "9f8df74b86a0f40755de89d2495964ffc7a6f02585aeaf7b281eb6351281aa35"}, "af086be1-8f95-4074-9777-556fd66105fb": {"doc_hash": "e63a49ca22eb75d31fc69806e86531beb42e5ebcca41a210e73d9b0106c1ed95", "ref_doc_id": "c2ff82cb-db1f-43f3-9069-101ba452acf8"}, "c2ff82cb-db1f-43f3-9069-101ba452acf8": {"doc_hash": "d2bc71ab48fe5c54b9c81d59d3fc3b7b124e4fdfd88adb878ccdb67495cefe0a"}, "6c879875-d657-4696-8f47-89c1ce4bf788": {"doc_hash": "2a0b19dffcd6cad6107dd6ebbe0439dfbeabc5183a4549eac2c8aa7918e882af", "ref_doc_id": "8c4ba443-5ef0-49dc-bb85-b681987cebcd"}, "8c4ba443-5ef0-49dc-bb85-b681987cebcd": {"doc_hash": "bfb64ea2cf4107fe4d9b9159c52387629eb8400348ef357151faabc08c347fc6"}, "3a78332d-48f1-4752-9b31-86a1671404d2": {"doc_hash": "2e6b8053b2565af3fe64fc3c56b62b176d1f55a5d3f15e918e539fee271bce28", "ref_doc_id": "7c7a826b-070c-4487-909e-3b7661f6a0ab"}, "7c7a826b-070c-4487-909e-3b7661f6a0ab": {"doc_hash": "32cbb36cf3a329286a2b46d4ef4bba8e757cc92dd0c33061de188b4dce5294fc"}, "7a8b6d32-1c91-4ff0-b391-3306bfa8e61e": {"doc_hash": "8897b4a038a97383d7370c3fa2364524c5d4bdeb53b0df03de7a88916cb2b960", "ref_doc_id": "371326dc-76a1-4f29-89ed-436bfcab68d5"}, "371326dc-76a1-4f29-89ed-436bfcab68d5": {"doc_hash": "3ce61cda921612c256cf475b9d2a9a66d2e0e64e2ae59ba6eaceb0815365ecc6"}, "613dfcac-2952-4633-9208-f11652fef2b9": {"doc_hash": "2eaabc3c80e50ee25694417143b9f2c5759e0a1fa49672a33c36575d88c25cb7", "ref_doc_id": "c31c80e8-9dcf-479a-a2bc-937d4320c8be"}, "c31c80e8-9dcf-479a-a2bc-937d4320c8be": {"doc_hash": "b390008b587decd45bcdb565e063b39d54cdecc61cc7b9ebc63cfcf0eab638e2"}, "a09cbcd1-23af-4464-b651-7b76e6ac4b8f": {"doc_hash": "c15d6fbbe854339bf810d290f982ddf05a66cb6af3cda73eb0e45191c38eb34e", "ref_doc_id": "2a72fa73-55c0-41fb-8647-0b54bb979632"}, "2a72fa73-55c0-41fb-8647-0b54bb979632": {"doc_hash": "3fc8f2d57f55c5bd83618e89dedace443cf2a96df6e5ccaf3c425b27b9dd687a"}, "022a47aa-7bca-4369-9d90-a2401f9b487e": {"doc_hash": "a9400bb8bacdbba18a0545135664402f8693b2f5a62f4fb3714525252bdd05e5", "ref_doc_id": "91f5c48a-5d41-4358-834c-aee95dc5256f"}, "91f5c48a-5d41-4358-834c-aee95dc5256f": {"doc_hash": "82049df637c435c7c4676f1365c7985e41ff25da89dd524745d97f9c35b4bc0b"}, "c95f001a-6d09-4b47-aa3a-690c1f2a6d27": {"doc_hash": "70472b03e21572eb56e623ce5150bccb84b6b0b4e5bf52610cd3f1c9bff637ed", "ref_doc_id": "609fdf1f-ebf3-4ae2-9b28-385dcc89d0ac"}, "609fdf1f-ebf3-4ae2-9b28-385dcc89d0ac": {"doc_hash": "fe37461e4f3d9ac4f48c97f00f2c7193c69f911ddf3aba13e8a1c9bf34d9817a"}, "676c6aaa-aacc-490e-82da-d93dcba3c044": {"doc_hash": "8811105be6c89202c2a7b0259cb5c460fbe43f578ea4b68208f1b3edcc5c3477", "ref_doc_id": "fd2e645b-154e-481e-b51e-6a7a3ae4f43e"}, "fd2e645b-154e-481e-b51e-6a7a3ae4f43e": {"doc_hash": "05b81ff6e3f46a416521af4e6449613f0d37d0a6ac2772ab11a8478a12f5c2d2"}, "fccbd19d-49b4-42a5-b6b2-cf9c6aa6c766": {"doc_hash": "da7ae1a9de1560522b5e8ad62db25485df29377d6043d11b880c90993b35716b", "ref_doc_id": "879bdff6-50eb-4bc9-9dae-2fe020c48b99"}, "879bdff6-50eb-4bc9-9dae-2fe020c48b99": {"doc_hash": "a2124919bca52024fbcced5e9771f795d92b768e320768646aa63b8a68999479"}, "f7e1dec2-dc2c-4324-b0af-1e9bb7c8314e": {"doc_hash": "85c0741d36f3e90b474f1246256b63d3ae9518d54e53f8e7deb03ed6968c5479", "ref_doc_id": "73ae3a4d-4759-465d-a9b3-dccfcaf5c76a"}, "73ae3a4d-4759-465d-a9b3-dccfcaf5c76a": {"doc_hash": "72b4b02bf7861ae9bceb453bac501c4793b808126e503635dd9d7e90806cf29e"}, "fcd28dbb-4292-44e9-9552-59a61cec9d44": {"doc_hash": "fa0efe33f290e1a176570438796e1df0a81f703385ebfc3a580df3794405f6a9", "ref_doc_id": "01ac6409-89b9-49c4-94d4-670ca45174a7"}, "01ac6409-89b9-49c4-94d4-670ca45174a7": {"doc_hash": "ca4d248b652322eadd8bfd48ea3c23e3f3aed92dce55f9993506d21b55d60302"}, "198eee22-33fe-4f4b-9b4d-052896f65eaf": {"doc_hash": "231fa46793c5df99f45b405aec19b7356b6328190b1c5128f6a6e51f8ce6a027", "ref_doc_id": "86b61bc3-6df7-4ab6-830b-da3be4a7eb3a"}, "86b61bc3-6df7-4ab6-830b-da3be4a7eb3a": {"doc_hash": "786807a3a6baecf1a5f6d580dd40b9bf53bf4fe4e51dc8826dd4fa65a64294d7"}, "ca2cfc43-ac6d-4159-b4af-b36e46d9d601": {"doc_hash": "ba9c6d8cfed7c898b31fa6a620e13000b5306a06dc08496e45702558900c6a1a", "ref_doc_id": "51fdacc8-db9f-4806-8af2-8e6876f89c23"}, "51fdacc8-db9f-4806-8af2-8e6876f89c23": {"doc_hash": "b8909f63f260452e1a1cfbd1e005217f4e02765d92e1296c1cf5e4d9a4ce6bbd"}, "d9d6877d-09fe-461b-8595-2046ea08e280": {"doc_hash": "975cdde51e69f714db0d2809e686c6abdac5c15ece7dfb6c88db1eeeac4d0968", "ref_doc_id": "d44aa4a8-9134-4117-ac0e-4e5b7367c669"}, "d44aa4a8-9134-4117-ac0e-4e5b7367c669": {"doc_hash": "a28d0b96df366265b0a5ca47d194223a98ec2e5bcaea497d837d51426d55e6b6"}, "f6ec8511-4b2b-4fba-abf7-b17e09519e84": {"doc_hash": "cc01000ce1778d615900eda6756a990bfc652b43eeb232735f2acc204949a643", "ref_doc_id": "99cbef10-0b31-4787-a409-41de49ea4efe"}, "99cbef10-0b31-4787-a409-41de49ea4efe": {"doc_hash": "20d2aeb554ae903484c15e357a8472bee13dfc0e1066be96e6a8f56a77f3eab5"}, "a833b40b-f2bc-4dcc-a254-d5d6d1e7752a": {"doc_hash": "73bf0ac4220cb84d7d8cb6f2798a1c2565612e28ca1c354c896aa3892d1d2f1c", "ref_doc_id": "b1004fb7-e9e2-4fbb-8f0e-6b94bc90b9a1"}, "b1004fb7-e9e2-4fbb-8f0e-6b94bc90b9a1": {"doc_hash": "c412a75100a17909c47881b946a6c39f309729addcce3f3a48b617e912c756ef"}, "afeb115b-8513-4c93-9fa2-9d894cd507b3": {"doc_hash": "a75756323e8c34e5a934e036b6773fb40333601303537bf9243c3537032306e5", "ref_doc_id": "6601544b-3c97-4f9a-b39c-a8d6e0ae42f4"}, "6601544b-3c97-4f9a-b39c-a8d6e0ae42f4": {"doc_hash": "3342f8a053511832b20bf20e59564c2aba831ebf0520f64015d0906b1ff27d87"}, "0c41fcc1-e13c-4572-bb62-6d88ad44f484": {"doc_hash": "36b0e69bf49e726944dd7bbc2e8a92a8011743bd9770af1a12bf87da4a72ed63", "ref_doc_id": "6da75947-3a71-4567-be7b-fc4fa8df14c3"}, "6da75947-3a71-4567-be7b-fc4fa8df14c3": {"doc_hash": "45020eacc9ffd28d1e64fb34d23ea25de0a3e207b1068666a390e486ac2ca9b7"}, "0fb89d92-8410-478c-b250-1e2c1bb03279": {"doc_hash": "9d002ef7c6873bfb624819ec51424b523c7d2443705e5c5bb7d9e6805935b1cc", "ref_doc_id": "583d99fe-5ca3-4c16-8a54-0765c3c0059d"}, "583d99fe-5ca3-4c16-8a54-0765c3c0059d": {"doc_hash": "ab5e0a04cbc3d8b0d28336deb213b2c9b516280518b8af1e70437e4df5f1340e"}, "014f73bd-c09d-4373-aabf-97308d1dd6c9": {"doc_hash": "b24fd10a0e081f09aaf34f1f9304254732fb891eb014d56be925293f2b0ff49e", "ref_doc_id": "68a2b666-7456-4fc4-b149-3f83550daf2e"}, "68a2b666-7456-4fc4-b149-3f83550daf2e": {"doc_hash": "99227cca0d9f10e52a47b66f273d54185d45334b2b17e58e3a45f7faf282efc8"}, "70b1d5e9-15f5-4f5d-b1e3-7ac986b9743b": {"doc_hash": "099d3d101fbd7d225337c3ac7cad0cf14226cfc5ab6309ab2ecf0273151b874d", "ref_doc_id": "663baeca-ef35-4a6a-afd2-770b0cc00376"}, "663baeca-ef35-4a6a-afd2-770b0cc00376": {"doc_hash": "867e57826b227128b69fd1e440c4f15e3567207a3fde4f7017b0957f692c9d4f"}, "88730b32-3d0f-4520-92b5-288a2f8a005f": {"doc_hash": "ca7f90b7e10312eaf3131e4f3f8f6f6571c974c9a50b75bbf813c852a731c97b", "ref_doc_id": "a902ac31-6c69-4614-b3ce-60dcb3b1f029"}, "a902ac31-6c69-4614-b3ce-60dcb3b1f029": {"doc_hash": "6b056c66eed2bbb329ce7b032d84a3060c5a9228226ac48d4702d56daa87d625"}, "276807aa-bde9-4cef-a1ec-9323526798e0": {"doc_hash": "7539dcbce7f3b94624f27c02f2489781a0f020502e2ca7464d626cbe912326f2", "ref_doc_id": "1bc25192-dc17-458d-9417-1ec449c831f9"}, "1bc25192-dc17-458d-9417-1ec449c831f9": {"doc_hash": "81478071e36a3bac6540e61b5608e04b3360fb29e3d251afc937ea9e3f714fcc"}, "2aebe4f3-8339-42a8-9015-28298f093f63": {"doc_hash": "fb6d56827188b31e7d31fe134df464b188819e27f9f55489353048558f2f6946", "ref_doc_id": "2dbefa73-2d8f-44c5-b295-5e9faa659280"}, "2dbefa73-2d8f-44c5-b295-5e9faa659280": {"doc_hash": "92366c02fc013b9f6100a8e3b4dfea94089017a7c3f367472d4b0250bee4b0a6"}, "ca19fae9-304e-497b-83df-cdeeb0f7389d": {"doc_hash": "acc2d1d2c8d99c8af4a461034d8f17193167fab15427028a74f8c8e690c97a81", "ref_doc_id": "04901ae7-7d57-458d-a651-0f73b59e1edd"}, "04901ae7-7d57-458d-a651-0f73b59e1edd": {"doc_hash": "681db9abc2c15cefb4eab92419608701a9e9adb79be8c92cc65bfe144818d090"}, "17ea5270-01fd-4fac-b3c3-92a7d81f5ca0": {"doc_hash": "f46ef36e14303d6518fcdc627d151209d7eed3769fda79ac10726e3c115d31d8", "ref_doc_id": "a95a4a8a-4bed-4723-890e-921854239de1"}, "a95a4a8a-4bed-4723-890e-921854239de1": {"doc_hash": "5bc832d12d2f680af721e8b6bc07b441ef2d14267f323fd4cdd240f274e601e1"}, "06c4bbfb-d09a-4e5c-a12a-4e050b7e992c": {"doc_hash": "3f6cef6db03c8533af413bceef70b5e0fc077391666d01227b426f1bdfebdc58", "ref_doc_id": "42e69954-cd60-4470-b106-eb0231f7dab4"}, "42e69954-cd60-4470-b106-eb0231f7dab4": {"doc_hash": "7ef8df4939d72908a738163d62301172dff81771cdd2011cadceefd407bc0296"}, "64ff9e05-ea43-4ca0-bdc2-e4b50942ac21": {"doc_hash": "e87d8824f1831eae964e1a4f9ecfb5170362a8f268452ddce847b87b6800f1d1", "ref_doc_id": "54d6aeef-0e54-46e0-8352-e5fe4396eed8"}, "54d6aeef-0e54-46e0-8352-e5fe4396eed8": {"doc_hash": "e79645a175c721cc2b50c08d980e62ca4a29eccce58548bdec5183e3f76d18b0"}, "25bc8450-dfc8-4ef2-b5a9-6bb9ae25e4b8": {"doc_hash": "c4519368b961ff2cb9da159a152d3d3d3972215c8ea30815bc0b73ccd1b9c6c5", "ref_doc_id": "351b857c-742d-4171-912c-3be5e07a45a4"}, "351b857c-742d-4171-912c-3be5e07a45a4": {"doc_hash": "b7f5dd1a2eb12471233bd310cf16e123dabee9507511b869d65d19abca73c6e5"}, "d958c815-8fa5-4299-aa1b-6263e0627dfc": {"doc_hash": "0f8f2cf86bf916391891a702057706fb2df3aa01afa9dfe3380c18e399f735ed", "ref_doc_id": "75eb3979-503b-473d-bac6-d791fe611ba9"}, "75eb3979-503b-473d-bac6-d791fe611ba9": {"doc_hash": "722936e660c7b7a8c3193f0d57cb4cc9705658a76e61f9ae8bbbe6d5893084a3"}, "3496985a-770e-4967-a19e-ed749ae5067e": {"doc_hash": "9a46d57786455e570d9da449d521d52e63568eb21032819168a2fbbabf7cfbfc", "ref_doc_id": "2bf41c79-6b48-411f-bd83-5c36578b6c3e"}, "2bf41c79-6b48-411f-bd83-5c36578b6c3e": {"doc_hash": "a02551ef0e038364e532726a52f321e48ae19e1f954daf95811c51d59511695e"}, "99c6b77b-2871-41a1-b655-2c9946063d3a": {"doc_hash": "e10427445e193cef840bd82e46ec572b8529f3d6594020d88f080bb374bfe01b", "ref_doc_id": "71adb986-19c3-4f6d-be24-5157b2edf32f"}, "71adb986-19c3-4f6d-be24-5157b2edf32f": {"doc_hash": "213a7210054932bafd4af14a5ba406fa91cbe984781cc15968840aeb448cfd62"}, "940ee8b1-4115-4c45-8126-0dc1a964620f": {"doc_hash": "e269c51a7fec5f7794de2496e18328bcd858022b435bf426cb38339234b15f8c", "ref_doc_id": "bfd119a0-3cdf-4edf-9eb9-44354191b8c6"}, "bfd119a0-3cdf-4edf-9eb9-44354191b8c6": {"doc_hash": "d83e9b019c2243145ae567be888a8b2398eb00cef3fdd5b35dc369fedf9722be"}, "888ba6cb-fdd1-4003-94bf-55f7a4e57d22": {"doc_hash": "85babbd4d9b96947ffdd768a2d098997db73c89e558d0f540dc86fcb82d5da4a", "ref_doc_id": "9eeb98f5-9b60-41ae-ab5c-08e573d8f08f"}, "9eeb98f5-9b60-41ae-ab5c-08e573d8f08f": {"doc_hash": "c577becf9c1ec3f8659ec4c90102e6e06912ced7613d3087b896a9171cf0eecb"}, "6481781f-e85d-4be4-bb07-02c2871a5212": {"doc_hash": "74deee7f6fd8fb2a793e4cecf8dbd005ac4b60033c97ed8d739abaf4c10ada53", "ref_doc_id": "100ee067-250d-4841-8ff4-81d4617bd7dc"}, "100ee067-250d-4841-8ff4-81d4617bd7dc": {"doc_hash": "8b41a55592798474c63443ae2f9a4f484d7e02700e5a55dffc59e888773c5bfa"}, "a4027350-09bd-4869-b8a1-b3c6e65b05a4": {"doc_hash": "30509671bf67271d5541c2705b4e2b138f83dfdecb8cfdf3ce940e6ed1378ce4", "ref_doc_id": "2b8e2567-96f7-4ac3-b2f0-f1c738cf0689"}, "2b8e2567-96f7-4ac3-b2f0-f1c738cf0689": {"doc_hash": "e581d7e07dae8f74a973bfc77da2249093a073f1d7bd58a35c61a0546771ee71"}, "568b6337-dbb5-4173-a206-b62a9e9923d7": {"doc_hash": "f7d506385e63d17cd159176d095e98c2046f282c3102339e8626666286888ce1", "ref_doc_id": "ea039349-4568-4011-afac-d17effa1fa4e"}, "ea039349-4568-4011-afac-d17effa1fa4e": {"doc_hash": "44e93642335a22e733e94424a2962dde76dc17d1dd4ac22bcad29da2ec3c3a0f"}, "d1db94ae-09b9-4f0d-98d7-709e34ddf671": {"doc_hash": "cbd0c47d88f171e4198b075bdde30c9949d7e5dc1d6f84d29d487e9a83fafefb", "ref_doc_id": "36f87263-43a7-4959-b600-3f4b0a373aa4"}, "36f87263-43a7-4959-b600-3f4b0a373aa4": {"doc_hash": "f73f0db2abcc0a239d89dbeeb9ba98a6953eb91508f4ea3def5561707db2a767"}, "7e4be65f-5f10-46c1-936b-ada262bfb319": {"doc_hash": "f5f3708aa792364a4681016df10a370c69ad58d72fa135bd7cc951fc848f3372", "ref_doc_id": "7e8064aa-12a4-4ea6-9a5c-8bbfa76ae5fc"}, "7e8064aa-12a4-4ea6-9a5c-8bbfa76ae5fc": {"doc_hash": "f08125da45edb97c6d1b8a29e1690e67c165adcc9e9e480d10b8a664cf76aacf"}, "6acf741f-f7c8-4429-bb6c-eb403309f712": {"doc_hash": "25134f40d16c965a5d29e664d545b852c0c5539442211894d6ca5e4863a5caa9", "ref_doc_id": "c61c23ce-174e-4455-b20d-647216b844f1"}, "c61c23ce-174e-4455-b20d-647216b844f1": {"doc_hash": "006f02a9068fd6fee5837162bf9dc734d8641738a6a51e86893c2f80ed025661"}, "59c1fcc4-2130-403c-b473-929f92cf8655": {"doc_hash": "dba53ffad4dbf77ed73e1b07369cbae371165467987ee0ad05f48efa7df20752", "ref_doc_id": "9309149d-36d4-4913-8ffa-00859e72bc08"}, "9309149d-36d4-4913-8ffa-00859e72bc08": {"doc_hash": "63561f78cd37883efbd9ffe817774e118addbce3dfb44af3dde674594edcd976"}, "c4aa049f-c8dd-48e7-8f40-b62ea408e02a": {"doc_hash": "9cadb920b04651fdd8f4365bee251bf9c667e8d7e1a763ea7cf8f3774a00a590", "ref_doc_id": "efa0b9da-c4ce-4a0a-ad59-f04caf613e49"}, "efa0b9da-c4ce-4a0a-ad59-f04caf613e49": {"doc_hash": "30c8365d5895299c2ff8ef19e0a6f7afbaa03a9ac913e1b788c4b68e88bd51e4"}, "3bf09bba-6265-4b6c-a8d8-53089a01c0e1": {"doc_hash": "465f53717f7edcba6f6e5c6ad29f1c3b0a9619c96b6e3d7ea4ec8163ee66e98c", "ref_doc_id": "57e11679-7cf3-4b56-87ad-2ea176e085a8"}, "57e11679-7cf3-4b56-87ad-2ea176e085a8": {"doc_hash": "5de984b97bda15ae7c0bc131a70c36c0c37d74679275aa330d85309793a38c44"}, "1a8b7543-2a07-4e93-ab6c-8def4c9d337b": {"doc_hash": "9acf5e88a50ecdbfdc7b06c598a72c82f8d8ca32e31d770e7dcd1a95cfa1641e", "ref_doc_id": "5486596f-3b83-41a2-ae9e-e619309267f6"}, "5486596f-3b83-41a2-ae9e-e619309267f6": {"doc_hash": "78338132f7579e3cf4c7a7f46f90c805a4f43ae6ceea41bd1321817fef4dd545"}, "5f40206c-8983-4814-82cf-a30ed1653005": {"doc_hash": "5d30d771a760fec393c30b4cc7d434d0f2d15d616530b97c74f5c0a9b4aaf1f0", "ref_doc_id": "527bc9a8-8089-418e-b3af-02ec2ba564a8"}, "527bc9a8-8089-418e-b3af-02ec2ba564a8": {"doc_hash": "308bdf0a285331ba837eb6213c9dcfebf7da71afc96a99bc1420cc1aa9ef2dc0"}, "caf8534f-2e36-4733-a6b6-c6f4a1bcdab4": {"doc_hash": "f7c6f86b65636828b997e9ae8f53d6a813affd71636c2e03504687aead89e2ba", "ref_doc_id": "3430381a-36ed-4af0-8fb0-a69a4cad2f71"}, "3430381a-36ed-4af0-8fb0-a69a4cad2f71": {"doc_hash": "62eb58aa95ca70296c2f5159b0bc97a4c798fa000deaaf666d8e0330f7fce37a"}, "0391c5de-e02e-4609-a7fd-362a8cc8b0ad": {"doc_hash": "cf420ac20f0d8c18178f5ba0e7664b9b1d95fc41082050c04b6a7082c57d651f", "ref_doc_id": "f03af23a-3f04-4a6a-b4d9-a76be3c94341"}, "f03af23a-3f04-4a6a-b4d9-a76be3c94341": {"doc_hash": "a10136ee4b9c9ac2f90c9c2b27708f72c12785861aa819fdb486b5900b2612fa"}, "112fee93-8b43-40dc-9d9f-1fba687316e0": {"doc_hash": "20d368beb28d6c3639d575977fb0157301e73b48e24482f56b604bad707ce490", "ref_doc_id": "14c3f17a-e698-497c-b210-d886695b3e33"}, "14c3f17a-e698-497c-b210-d886695b3e33": {"doc_hash": "5c35a346447905598a0fe049d48af22fc220233d66a9d4863263d95a4e019a8e"}, "c709bd80-c1ed-4321-baa7-f8bddbca255e": {"doc_hash": "d86785302fc17d13b1940cc5480ef45ac91c73ba8f3fdd48f0ed2bf0360aa77e", "ref_doc_id": "7a26cacb-98c4-4afd-9ff7-c6b5bb355452"}, "7a26cacb-98c4-4afd-9ff7-c6b5bb355452": {"doc_hash": "a63fdd43b82a6e9b355fbb4980a65cc334c3486830c73a53b2aa27f1a332348c"}, "99902a08-880d-4582-8980-4f6aa34b1e0c": {"doc_hash": "1fb42f22b2e1d165414d81eafe393bfb871b61936ac5351c2ffabc9e12d769e0", "ref_doc_id": "6c107940-dacd-478d-8ae7-3892d98b363e"}, "6c107940-dacd-478d-8ae7-3892d98b363e": {"doc_hash": "55723dc39c4f9b91c739cbd2c4baa0a7857595eb13659515adbb93010a6b6d25"}, "629c5fe5-5a85-43d7-b22b-d2dd5193878d": {"doc_hash": "9a1ebb120dd5478e835181b000f973ada39818c53992ff41cd059ef7e578ac2d", "ref_doc_id": "eaab5184-f4ae-427d-8c7a-bd578f3af84b"}, "eaab5184-f4ae-427d-8c7a-bd578f3af84b": {"doc_hash": "a34a44ab329bdeea2a79432d9925758d5be46c2415070574091463e871cecbb2"}, "34a88588-d004-400a-a20a-4230cfdc80dc": {"doc_hash": "6601447255fb273007b6cc2c610ed6edf5421acd1cf9c48e5fd7417b0ea8eb3d", "ref_doc_id": "34959cd4-0ed0-4ee7-92e8-1653709d40af"}, "34959cd4-0ed0-4ee7-92e8-1653709d40af": {"doc_hash": "43b319737c1e5953739d02f43ab24bec30ddfc527423749d00ddae88ab2700d6"}, "f4f56b94-beb8-47d3-bbc8-76d58f0e9424": {"doc_hash": "33c29ea8032f8c3e6fcd300c27280236e4027ec7aa3ce78f6009d32d13b6359f", "ref_doc_id": "f06d6ee1-15d6-4ba9-b4b8-3960c8331ad5"}, "f06d6ee1-15d6-4ba9-b4b8-3960c8331ad5": {"doc_hash": "8e5c70de578405d7f77361cc50d819d7c3896cfa24d92b4ca49799dde62ccf4e"}, "5980591c-465f-4380-98c6-225cfce4d86f": {"doc_hash": "7861fdae22c6493edf633af527194b1939bee9bbe2d6718fd76451dccd45e262", "ref_doc_id": "846f85c0-a3ab-44c6-8651-ec2674c95203"}, "846f85c0-a3ab-44c6-8651-ec2674c95203": {"doc_hash": "1ff6d8a7cdd250a31fabcf674507e2fd88796dfc67f0d07bbbae1e984cfbfe05"}, "98cd23cc-29fb-4c3e-9299-2350faf76146": {"doc_hash": "d9f7df4eef82bf9142bf36eb540d8948774fad8a7c0d81af659424e5911594b9", "ref_doc_id": "460ad6f2-d7d4-41b1-9312-bce853313261"}, "460ad6f2-d7d4-41b1-9312-bce853313261": {"doc_hash": "4c7f0664199421d0ad7724d324f63297221b298d0185273669a9c071006dfedf"}, "247d3c20-f815-459b-8a4b-14715c1b4470": {"doc_hash": "369f6ad4a4c4a19ac6fc754642df5867ef6893fa7b887270649758bd5ba3c759", "ref_doc_id": "c0c3926f-926a-46c2-a857-201fdf3c1f9f"}, "c0c3926f-926a-46c2-a857-201fdf3c1f9f": {"doc_hash": "39e93fb61e9baf8c6f524f582005a17704a917b2e74cf7fbce3ddeaf71211737"}, "449de4f4-2838-4f8a-91e3-163d2791a443": {"doc_hash": "9d5ec836953501fd3d59a50e3e71a880a904519cffaf38e8369e92f850e0d8dc", "ref_doc_id": "7b43be43-b163-4afb-ba8b-cb154b77f18b"}, "7b43be43-b163-4afb-ba8b-cb154b77f18b": {"doc_hash": "458e96974a495df4b3b92a22c18e62ad4f715e762f7ae90df3867c8c1e2f486a"}, "272f9941-967e-4d26-a364-1a2f71fb5a05": {"doc_hash": "df104cd986981d72c8f6ca677a66bf2d774dd5ac6fa0070059ee69f1c146e6f1", "ref_doc_id": "3869ed8a-0d65-41fd-b12e-718c213a3e1a"}, "3869ed8a-0d65-41fd-b12e-718c213a3e1a": {"doc_hash": "7fcb3586daf02c448f9d8c49ce2aaba37dea811c26a70fcb84bb3134094c0da8"}, "d375ecdf-4391-4be8-bf11-79f10a808817": {"doc_hash": "194d3cb4f543b6c4249a4940fd647d31f97d6cbb8c915924ebf7b387dd0f7f82", "ref_doc_id": "0b77da18-c592-462b-8e3a-7802ba789789"}, "0b77da18-c592-462b-8e3a-7802ba789789": {"doc_hash": "4433366d43fdfe54acf8741a09cdbfcb7bcd4f4f29d3ca7aaddee4d0a250aaa4"}, "8b0e4b39-4c2d-4fda-b623-5cc79a00972c": {"doc_hash": "b1ca169ce2ceaea2d7d99cdca211336b99d2d47168c8e48c9fac00e31b3766e5", "ref_doc_id": "d82ba1f6-00cd-45d0-8a23-1cdd514f4b76"}, "d82ba1f6-00cd-45d0-8a23-1cdd514f4b76": {"doc_hash": "df586530386419258a8888310f8094a4373d2ab41826aa38798f1f7575379f07"}, "10f146a9-826f-48c7-ab97-a565123ec889": {"doc_hash": "c78959e5f2358091f3e7fd274bcf99186deed15c30906c1c6b3f922b4f8ec6a6", "ref_doc_id": "6815a8e3-8990-457d-acf1-a5b071d52279"}, "6815a8e3-8990-457d-acf1-a5b071d52279": {"doc_hash": "911504ef53587109750622e29aefc0a2683b34e05cce617795cc444210f70e7a"}, "62676acf-ebaa-47d6-b59f-b23dd33e400a": {"doc_hash": "ea15240f6345e65f78e311cd9d5fda2f29c6f9fb81c8eb7088532fd96fef49bd", "ref_doc_id": "a8537d82-ae43-4753-8f05-7314cb8f3060"}, "a8537d82-ae43-4753-8f05-7314cb8f3060": {"doc_hash": "02ea4609d6dd7f6b41585978391d1f53ea8aadd1d0ba3a858632dfd09ac3862b"}, "389c4d42-8c56-425c-8ae9-e96af5f4e6e0": {"doc_hash": "bd34be50a8915af75f5dfeb1f264c146ce9244b571225d892bd97e72de752d07", "ref_doc_id": "403826af-9923-4fd1-9d07-298826214112"}, "403826af-9923-4fd1-9d07-298826214112": {"doc_hash": "e2631557bbc6e919570648b1c9dbd7c4d432f0d8744b0cf29e033f8d5aa857cb"}, "b96a31e6-1a19-4256-89a7-8e12605d1388": {"doc_hash": "0ae35fbd6b7fa788f93fc7d4c74080d8832a4854b0e195de74b058f9bb1e58c5", "ref_doc_id": "8e017da7-b7f5-4496-85cb-c70927883978"}, "8e017da7-b7f5-4496-85cb-c70927883978": {"doc_hash": "6c9606e64bfb48b6a1e40f758671dd98c339a47baa5589acd036972ec3bd34ae"}, "df02182f-0d74-4136-8849-31e4754b848d": {"doc_hash": "564cea52b1170191a6fed538d34cf616e8f594e286e5b781506ad930972202f0", "ref_doc_id": "8f04b3f1-ca9c-4e37-97ee-2678664b6e1b"}, "8f04b3f1-ca9c-4e37-97ee-2678664b6e1b": {"doc_hash": "b525684e2665f72365004deaccd3fa5f6c6dd9ccc4710ef3fee2d83705f3a4c1"}, "1277c920-ab5d-4832-afee-d31ed879ed35": {"doc_hash": "91ff584bb2b0a1e16ed4a655175d27939149cd588b2b140422fe77ffd6175633", "ref_doc_id": "fb037b14-42ca-4bf5-ae98-5b15aeca279e"}, "fb037b14-42ca-4bf5-ae98-5b15aeca279e": {"doc_hash": "9232bd9bafb7150ed16d7aaeb263f52f85de3623b439be6263e19479b41cc47d"}, "dc29e746-5e1c-471d-9b55-a32747d22d0a": {"doc_hash": "d0fcb6fbed7ed546a6d43688633aadac7d9e83399986cc354326611e70661fc9", "ref_doc_id": "398d11ac-139c-4898-9376-ea587b1b6beb"}, "398d11ac-139c-4898-9376-ea587b1b6beb": {"doc_hash": "9cdf8588f76f50a300e6d17de414194301a4b21386c9603c73a4100ca7737be7"}, "80400e38-6628-4a48-8c22-3c9491197dae": {"doc_hash": "8d999143fdbfcabc7f9533c522ebf7e37b98311c7acedbb3345fc007af7c0d73", "ref_doc_id": "59f79ea5-8fe5-440d-a9f2-f393ed099c4b"}, "59f79ea5-8fe5-440d-a9f2-f393ed099c4b": {"doc_hash": "ff0a7e88776a845770ce91f4206301fb7149b97718f7ee429d93302859938ea6"}, "6852eb9b-b1a5-4a2a-931f-68f8ffe71fc2": {"doc_hash": "511193f0c07bd153f21f7d9f874de9970520a9eb63f5ca3d5a28c32467dbb649", "ref_doc_id": "32d9bec3-a82c-4aa6-a914-0c020e67d597"}, "32d9bec3-a82c-4aa6-a914-0c020e67d597": {"doc_hash": "25c660fc2daa640797e95c71934078f1678d4f370c6b5831a49033dab50bfeff"}, "5d715aea-69d5-4153-bcee-46633bda9915": {"doc_hash": "c1d0f42868f5457a0ca0d048477664d6eefe6fc25fad9b42bbcd614e374c30a4", "ref_doc_id": "993f9eaf-5d26-40b7-999c-36cb69d1f049"}, "993f9eaf-5d26-40b7-999c-36cb69d1f049": {"doc_hash": "d46536dbe6b5e6c39b3720a226e20335980a71ad4c60967b556f685947034384"}, "a700c3e7-8f79-4357-98e0-c651a7b25654": {"doc_hash": "320291501cb99e341ec0caafd9fb95ed009c908eb946fb0aacbced3e5cabd888", "ref_doc_id": "74590093-b80c-4e63-93ca-81e46206bc93"}, "74590093-b80c-4e63-93ca-81e46206bc93": {"doc_hash": "77320a6260bead499a0a0f517fd8ef0feffd85704c81b9113ce7d5c992d4faf5"}, "14de216d-9a24-4f4f-a8ee-c7344cedf8b8": {"doc_hash": "6e5ffbce5f55406ce5c991c6a5017255157ba06906191fadef76f554ac8caf83", "ref_doc_id": "32bd21fe-629f-4daf-8fc3-4afe0509f881"}, "32bd21fe-629f-4daf-8fc3-4afe0509f881": {"doc_hash": "6661c1fd39d41b93611317ecbe305ea8dce369537fd10feba11a2431852e4e0c"}, "5a66d0b4-866e-4cb2-a97f-ad12e1d3b659": {"doc_hash": "942bad5a5d8e2cf9f72ca042a013d30ad62c9263ae4ba2cf23774134931fba66", "ref_doc_id": "a6b6e7e4-2be4-435c-92a3-ac9923b57f38"}, "a6b6e7e4-2be4-435c-92a3-ac9923b57f38": {"doc_hash": "e2225bb6d68d14b0e5dc1e4ba84320efe5abd16e6b40d64fac46ff832b615ffb"}, "59998dfa-6729-40ea-8031-96606fa0a10b": {"doc_hash": "73f034569a2903997adc3b89cc91a06ff98e3fe1642e301328eef7175d9c679d", "ref_doc_id": "8cac21f2-b00b-4fb8-9797-92b9c7486b42"}, "8cac21f2-b00b-4fb8-9797-92b9c7486b42": {"doc_hash": "1269fa506d108d0ada4888ad7219e6303553fd87cdca13166e30e7649cbbad8a"}, "ae65cc8e-42a8-496c-b7a9-5025f1030f8d": {"doc_hash": "c42ce13453dcb02af8787b9580ffd5c9b0537cd631d2fb4253b15eea97c2bbcb", "ref_doc_id": "440199b7-30fe-42c3-8ed4-693cc1b609d8"}, "440199b7-30fe-42c3-8ed4-693cc1b609d8": {"doc_hash": "a4dfef5578b2ad2c77943e1c9846a829cd69349283ce489bd9248d0648ec92f5"}, "49765951-acc9-477a-b10f-70669d5354de": {"doc_hash": "dbd6d5ed03d14ed85f7ed94d7505e734f039f2a3c19406992ee046ae06fbaf84", "ref_doc_id": "03413021-6a62-4d62-ad9a-74c484ed44c3"}, "03413021-6a62-4d62-ad9a-74c484ed44c3": {"doc_hash": "ebb96529865f76a94577d457b26a14c7d570aabe1497f2d004f8510a88ae0a34"}, "a1cae6a9-1e2c-4e79-8b27-20e83a69aabe": {"doc_hash": "1e5c30e7ec1fb3f65e0965c36b235101b6ff4f39553d2a385496813ddd0cda0f", "ref_doc_id": "237d9e10-aa76-4d47-b8a2-06e3039bb4fd"}, "237d9e10-aa76-4d47-b8a2-06e3039bb4fd": {"doc_hash": "25899dcd5b4a179efe8b501b870ebfe10edaf449b93b801eeea1c8e9b4dd496a"}, "bafac879-31e7-448e-ba13-45e1d170418b": {"doc_hash": "5f1afe4c7ce16c946b930b68fdaf6331e169761ccc1c5608b712ba865d195ab6", "ref_doc_id": "67b33e00-b8f0-4442-aefe-86b978bd0ab2"}, "67b33e00-b8f0-4442-aefe-86b978bd0ab2": {"doc_hash": "4e845039e1a7fbe5dc338019325c912accfc4b2d11b27dde87c852b6f69ba1d9"}, "9446492b-847e-44b4-a080-3ee05cf2a5fe": {"doc_hash": "bf45262003a0a26e96d52108548261310d7f67f25a1b8ab60d4036bdf6d88aa1", "ref_doc_id": "c39d4052-86dd-4298-8a29-cb9c1f2853b7"}, "c39d4052-86dd-4298-8a29-cb9c1f2853b7": {"doc_hash": "7166fa4032e971ad2ef5019b5aaa882321d06187f1f8935a5b1f072bf9a250bf"}, "44380a57-8e3d-48e3-81db-fd8c7f9f3223": {"doc_hash": "7a1c47079f759054bdda208df523f11557fb8386986853dc12cb9ebbe8c398ad", "ref_doc_id": "586e5be1-7c2b-4905-96d6-8c67c6a6a396"}, "586e5be1-7c2b-4905-96d6-8c67c6a6a396": {"doc_hash": "f787b1df28bc0053d730a120d3ea26a0425a8dc4fb64f2abf59c2403ba178307"}, "d9add244-bb2b-4ada-8452-4e2a7c312cbd": {"doc_hash": "ea8191fa8719c396e3b38c541bbad23923de5314a77354b6d1318ec93479674c", "ref_doc_id": "f111f750-d3d4-41a8-a70e-7f3e770dd6bb"}, "f111f750-d3d4-41a8-a70e-7f3e770dd6bb": {"doc_hash": "c58f947206e7198fde0318db6fc6447e342811f0372dde27723f655fd171a8f2"}, "50f48c12-6b8d-4fdd-b9fd-a96562492262": {"doc_hash": "267e506b19a724f8f23725de93b4ca8485196bff4dead3c6746a5b9c3ab6e92e", "ref_doc_id": "4379d747-adde-4c8a-833c-070d43a8ab68"}, "4379d747-adde-4c8a-833c-070d43a8ab68": {"doc_hash": "734d60887753419ed83b20c6f3814f0d241e182e7a4f90e56d53a363747182ba"}, "53e4ef57-0940-4da9-99e1-806ecbf78a14": {"doc_hash": "e0eae714b0e48a4d433bf253fbabaa7a2fc75f0bf876298c8cd2488620769b8d", "ref_doc_id": "a1933975-2a74-431b-84d2-b719aae7e0b6"}, "74355f3f-5536-4b10-bb35-f242b07c02b4": {"doc_hash": "9bf8baf835872fcc8879f7ee585ab0169d74868e1d4d2cf09aad48b85a3b55b1", "ref_doc_id": "a1933975-2a74-431b-84d2-b719aae7e0b6"}, "a1933975-2a74-431b-84d2-b719aae7e0b6": {"doc_hash": "796876dc7df9fb059ca0f663c4b66d702bc8172bb01046a7dd14e9f5f445ed8e"}, "9a01e6d3-02b6-482e-a5f9-4c12ae55abe2": {"doc_hash": "ff932ee117da5a529a151f4fd66fe7ecbe554505be694fd9dad102b388db9798", "ref_doc_id": "bc20d038-a3df-4cb3-aa08-da60a686530c"}, "09076d6f-deac-44ff-9043-856b05200c01": {"doc_hash": "2c477cd32365b7f0830f8685b23e2b84b69bdff13828fa204cf85c9921183307", "ref_doc_id": "bc20d038-a3df-4cb3-aa08-da60a686530c"}, "bc20d038-a3df-4cb3-aa08-da60a686530c": {"doc_hash": "6a26cd5611833408ecd5f7ef3934b37445b9b151bab0d8937318129e1b550673"}, "92e29ca5-c238-4379-87ff-12df46df8ce5": {"doc_hash": "133e4fcb5a355d064fdcf64a39546db24ddd040979329a082823cd9d8e69df85", "ref_doc_id": "1ba022d9-1910-4d58-9292-c6e2e286afdd"}, "05287217-7012-4de0-8d93-1e34c9f5c9ca": {"doc_hash": "2b3789bdd8155ea41a23b62bff86f5e820b7f6eecb55c27b643cf1aa8465a12f", "ref_doc_id": "1ba022d9-1910-4d58-9292-c6e2e286afdd"}, "1ba022d9-1910-4d58-9292-c6e2e286afdd": {"doc_hash": "3cf2a90ef791dde5a5f66e59db5e8961ccc037414fcb84b0330ec698a045820d"}, "4089cd26-b144-4b66-a2ed-eeb2afaf6176": {"doc_hash": "5cba9e8f91ce9f2b452f45ec8ebb885d1939ceadb156ec2b678b1efb4698b958", "ref_doc_id": "8b24b627-730b-4727-a207-173406e8f2c8"}, "8b24b627-730b-4727-a207-173406e8f2c8": {"doc_hash": "80ca0d0f2550ec922869df7ea107b2720f1889d46eb2bc96da0c6fbc91345088"}, "ccfa3c8b-bc4e-4a77-889f-46045a0d871c": {"doc_hash": "b9c96aab0551dcfe0db316a853b84026fb3ae0e216050603285043f36ba87469", "ref_doc_id": "c062a14f-0d45-47f7-bf33-37df509f0c36"}, "c062a14f-0d45-47f7-bf33-37df509f0c36": {"doc_hash": "5928768bd65443ae7c5a298055639ddc75c418f96c9209d767a08b2c657f0c97"}, "21eac55a-578a-430a-90da-231187312fd1": {"doc_hash": "2965a4aadbdc90c4faf4a69a37ec19e4ca0054f09c7699d925ae4e7ea8786b80", "ref_doc_id": "6d23082c-9e48-4378-a24b-3cbe39a15041"}, "d2ef04de-98cf-4aa5-9d99-7204b009cee9": {"doc_hash": "057de4ec0d9b0a8daeb02a90678541ef249426a32cd535ebfc06a3b04465d3d0", "ref_doc_id": "6d23082c-9e48-4378-a24b-3cbe39a15041"}, "6d23082c-9e48-4378-a24b-3cbe39a15041": {"doc_hash": "69ba4008c1ebae2b1943fc7f3d5b1b9b514e143fdf5e9ae618e25c6360d4e893"}, "9102560e-e5d8-463e-bfc0-b7c96d12f652": {"doc_hash": "7dc2953b6ad59c1daebf145b563c069fa69e64427592173876e0088b8c306f58", "ref_doc_id": "88614a32-8184-4f48-ae11-180764152229"}, "88614a32-8184-4f48-ae11-180764152229": {"doc_hash": "96d39318a264af5d60aa03aba8422065af0570a78f89c1568a086e40a6bf83c3"}, "8d71cfd9-fd97-4903-9348-1a10504cfd3a": {"doc_hash": "5955d87647f93d8a5459e935ee5c9f1395c99fab9b4e40f344dfdb409480b61a", "ref_doc_id": "2a91da54-381f-4894-97ea-b458c5c36b1a"}, "2a91da54-381f-4894-97ea-b458c5c36b1a": {"doc_hash": "7ff958ad88c2c308139e1e04a7b9890301714b7a50761946b601902b8fda4c7b"}, "cbd168f6-c9a3-4b8d-9da2-db955f0eaac2": {"doc_hash": "e3aab2eff0125e91871a3459e20f75f98f2b1b9b054637353a527a60e2e3c6dd", "ref_doc_id": "a7b92871-3627-4688-a750-8fe0e24d44ee"}, "5eb32720-b4e4-4506-9086-ae96314faeda": {"doc_hash": "34b25f79719ee4efe20577d4a5abb7ab30ed595f1353c316f875e7c2b49b9fb4", "ref_doc_id": "a7b92871-3627-4688-a750-8fe0e24d44ee"}, "a7b92871-3627-4688-a750-8fe0e24d44ee": {"doc_hash": "2f15d7656de2e341097fdf3a4d92e84862adb2511a8f79c98bd0f2d264c8335e"}, "e6219b3f-a39d-47ec-b656-d0595c64f767": {"doc_hash": "d6bf63eb2723a8ad40e66f9ca35cd74de726c38ff247925cdaba2adfd5c09d6b", "ref_doc_id": "a8ba3f7f-97c8-4106-93d2-62463652285c"}, "28f28f8f-159d-4d75-b827-f3e408c73fc6": {"doc_hash": "9772d9fe3257fb8e8d1eead8bbced0bf57d59abd60b1eaad02f173cf6c404dbe", "ref_doc_id": "a8ba3f7f-97c8-4106-93d2-62463652285c"}, "a8ba3f7f-97c8-4106-93d2-62463652285c": {"doc_hash": "be48686dda74feb83b5b6a9aa46afde076eb0af0307eb6fce971eb33d1a79297"}, "fdd1e672-d277-408d-ad45-52719f5e0e7e": {"doc_hash": "0d00c4e918c4b6e449f4cfcdb7813e6200943d220ba7d2be6c90006e6899515a", "ref_doc_id": "612a845b-fabc-4238-a395-b86c20516992"}, "89d00011-1f90-4292-ba4d-4b034f1720e5": {"doc_hash": "995b4899796e547e3349944ff77ea3afc3896c91de1426d467f4c74a923fca7e", "ref_doc_id": "612a845b-fabc-4238-a395-b86c20516992"}, "612a845b-fabc-4238-a395-b86c20516992": {"doc_hash": "c42bc3a4a9cb924c14db14625f4de46b961148c5265ccad7472b4d945b4c8575"}, "7235da4c-0272-4eb0-b465-882be9aa2d95": {"doc_hash": "a098f3dd4b4e52629fbe43a3d280523eeebb280073b3cb8b200eec96b22a9065", "ref_doc_id": "a72b1dc2-a328-4e4d-8e83-aaaf6818bffb"}, "cf1a041a-56c2-40b8-a0db-bdcce0f4dffe": {"doc_hash": "d121476114605a5adb49caf78884bff6168909569e0aa51c609663fd912ac61e", "ref_doc_id": "a72b1dc2-a328-4e4d-8e83-aaaf6818bffb"}, "a72b1dc2-a328-4e4d-8e83-aaaf6818bffb": {"doc_hash": "1746990f005eef07c49e6f902853a4037fb079d844099dd7ebfbedef01dd2716"}, "80ce4ca9-4976-4b8a-9d25-70cfe6782251": {"doc_hash": "ab94099ecb2b93388ea00e9fdc41f44a7d3020ae7207016f064c4869059b03c5", "ref_doc_id": "5d4a065e-9ec3-45d4-b3e2-f46de9b1a88a"}, "ae9dc2cd-63a4-4d92-994d-3d1970ff66a7": {"doc_hash": "695a05cae16b6fe893e6f64be104418f5b23060ae4a69f9c6f38d9f667106afe", "ref_doc_id": "5d4a065e-9ec3-45d4-b3e2-f46de9b1a88a"}, "5d4a065e-9ec3-45d4-b3e2-f46de9b1a88a": {"doc_hash": "9fc0c1b4bae8df5933b6b1bf01ef615a42d2c8fa2876be12417199fcfe588f79"}, "b93b00b6-60e3-436e-9037-93b8c6e35b2d": {"doc_hash": "a25ff3b1f38e3905baedd14d72e93038daca9261981d3a6281d3df0409e6e618", "ref_doc_id": "64c9a836-d307-4a8e-b39e-abff1cbb375f"}, "48a1ecb3-61c7-4ff3-bdcf-597f22fb5269": {"doc_hash": "752c559117768dc508d9c06e8d1603b0144bbf2b30bf98b4689555f3fcc90cb6", "ref_doc_id": "64c9a836-d307-4a8e-b39e-abff1cbb375f"}, "64c9a836-d307-4a8e-b39e-abff1cbb375f": {"doc_hash": "b71c799bf275957a1bbb9dc45cb0c5b64d2aa1d760197ac07e9e0b86bf6c79e4"}, "8dcdfa34-0e0b-43a2-9ef8-d96e2d71c76b": {"doc_hash": "80658ec93eb1d47223193170ca7f1b84999a3d6f6f87aac001538512caf00be1", "ref_doc_id": "91282546-0a72-489f-929d-ef4b3e54c8e5"}, "2853e472-4f83-47d0-ab61-1ca309b85fdb": {"doc_hash": "b877bf75dfc65f8f0ab4b7d2b14be8dab21d76137ad699a9ff0fabd86b2b2e38", "ref_doc_id": "91282546-0a72-489f-929d-ef4b3e54c8e5"}, "91282546-0a72-489f-929d-ef4b3e54c8e5": {"doc_hash": "a92f647a7ef05964ff3f7fada463975130022603d2e906501bba7a5ec7d2775b"}, "2ebc6a39-2e9e-48e1-8959-b337fe52a2e1": {"doc_hash": "cfb69723caea59541d43c9c19b1444eed81450b8ba5435bf2a5c0fcdedeeac89", "ref_doc_id": "7e30af77-048b-47dc-8fd4-4b116faef929"}, "ca89f4fb-fdab-4e55-9ef2-ae0095e2f9ec": {"doc_hash": "13671f725edd3b7cd1c886c0c9607938bc22f142090fb1bc780801e5c8f78769", "ref_doc_id": "7e30af77-048b-47dc-8fd4-4b116faef929"}, "7e30af77-048b-47dc-8fd4-4b116faef929": {"doc_hash": "6c6d1c2370d471120aa6a8f4388612a9b0814fef07243b9566e5cbc42f6e6bd0"}, "a6fefe35-e676-424b-94a5-f9ed90fa6796": {"doc_hash": "ee53e3f76c45c5f463b82a00fac6d5d118dec36c4b93d950741f3d7cff75ae03", "ref_doc_id": "65ff6d4c-ae78-4d60-85f2-a8eab0f0e59d"}, "0b4f0b27-d1bb-4e38-a9f7-64612f9633ed": {"doc_hash": "d3189790dc489d30a092ac54a16de400ce6da508fa4899cfd08384139dbe56e2", "ref_doc_id": "65ff6d4c-ae78-4d60-85f2-a8eab0f0e59d"}, "65ff6d4c-ae78-4d60-85f2-a8eab0f0e59d": {"doc_hash": "2168f64a16142d878f77c880099313f915b1eb5b3d5774a79b68df9eefb621d4"}, "6581fa2a-6f22-4d14-807d-1dc3c9d57e71": {"doc_hash": "4f222a3893afae1bce3dd1596f43458ae6a197b450d927f7834bdb6e4871433b", "ref_doc_id": "6666ba29-e20d-4d51-b14f-73047570a688"}, "93560818-1063-4e5b-8b0e-f667556824e2": {"doc_hash": "fbbcecd8cf2de9e2644132817fceb67810810a5c7ae7a5251733565c60b8b67c", "ref_doc_id": "6666ba29-e20d-4d51-b14f-73047570a688"}, "6666ba29-e20d-4d51-b14f-73047570a688": {"doc_hash": "58bdb429db4114fd871695b9b04b7567fd91114aff9041ac72bbedfb7d306c21"}, "1df335ee-2e38-4cc2-b24c-fd5e85e40239": {"doc_hash": "a33abc0daf53a0fa1e5d2057f8706e9c8cdf586a6e38ec82019d45ae61f619b1", "ref_doc_id": "fbda4f36-9d86-4062-aab4-abe740974342"}, "fbda4f36-9d86-4062-aab4-abe740974342": {"doc_hash": "1eb4df0f8e03eb95e70b9aad3fa51ccc8b8c965c8e7510383ef34eac3f81af42"}, "eb5329f3-90b8-4b67-9b0d-8def02abefa5": {"doc_hash": "dfbd39bd4d3b454392c41c1c85e827c39e919aac3a241ec003a5ca0eb78f408a", "ref_doc_id": "c37d8547-0ab5-469e-866c-6ad8057e0898"}, "28235376-907d-4b85-b81d-7ba0e02ac834": {"doc_hash": "565757e054bdaf833cbfaa7d7ff84f279011a091b83f8ec97d4b2043198e0e78", "ref_doc_id": "c37d8547-0ab5-469e-866c-6ad8057e0898"}, "c37d8547-0ab5-469e-866c-6ad8057e0898": {"doc_hash": "b163a8c1489e2b602b21301f12f87e1c010e2d431138079edb5e8520e3d2da8b"}, "cfbdf1b5-84b2-45b7-8da1-9d0efc632dec": {"doc_hash": "1b39972405f3b0277e5349c72087fe311fd40ad38eafc7fe62383e30757be6f1", "ref_doc_id": "6fb240f5-7892-4b55-9df8-456b9801ff7e"}, "fb676fd8-57a5-4775-9061-b2079a236b4b": {"doc_hash": "f9f94699355d5e7774eb49cdac71a9a3ebea2d7d9847afb9dbd5b83805c852b7", "ref_doc_id": "6fb240f5-7892-4b55-9df8-456b9801ff7e"}, "6fb240f5-7892-4b55-9df8-456b9801ff7e": {"doc_hash": "df602bc74c927860a9daf3001f4fd3285cea2d3b026c2707cb144ea701bda06c"}, "e0f64ecc-2c14-47a0-8418-957d7b99d112": {"doc_hash": "07ae176a6dba4d4cdac2110ab720413c05d281157a8e165a1f6ea1d5a55cbfda", "ref_doc_id": "ba1e4248-a20c-49bf-a576-c8c147c4732c"}, "eac149cc-44ae-400f-8f4b-9a95e55c82d3": {"doc_hash": "4b59c6498bb3079b5859df7a3d57d2f8dc7b125f2e2168accb3e36ffffded2d1", "ref_doc_id": "ba1e4248-a20c-49bf-a576-c8c147c4732c"}, "ba1e4248-a20c-49bf-a576-c8c147c4732c": {"doc_hash": "ad36e0f0480e904f82ea20ec938381a4e17fbb5af63358dfc6abee408b6c976f"}, "9462e99f-c40a-454c-9614-b4e4b78afe01": {"doc_hash": "a4fa4e1223bde2ac9df4f552913d39761856030e133ec485b0480851cf3bc8d6", "ref_doc_id": "4ac8f14d-284c-4f4c-8116-623e35e3f7d7"}, "3c55ed81-1068-43a6-9cf2-b6ca6af99898": {"doc_hash": "38bef379d8b9285517cd2c28d2b0f22a89362e304b2ab13e4a15d502f6410b76", "ref_doc_id": "4ac8f14d-284c-4f4c-8116-623e35e3f7d7"}, "4ac8f14d-284c-4f4c-8116-623e35e3f7d7": {"doc_hash": "f30909720ada213f4d4cc059dca869b1df8712fe19ae1d42f100e8502f03e733"}, "fc05915c-a5fd-4871-9177-12e5b9d7b0c4": {"doc_hash": "a05124c05b55524efbca97f297b1a7d8ee4639017cae7271455214342bd92329", "ref_doc_id": "d619d37b-3ff8-4576-b98d-34b8fad836ed"}, "d619d37b-3ff8-4576-b98d-34b8fad836ed": {"doc_hash": "5567b94e2ca4d8deaac36d530a281f34ecc0505c1c061024dcfa02f712943c79"}, "53bd0c2d-7eff-4804-b9b1-616fef25d0ce": {"doc_hash": "5cb3ddcdd3daf6d076c83a700baa11a4be69c7c0aff6aa700a13693d833eb0a6", "ref_doc_id": "908b1f16-9bb4-411a-8b35-bbb8f930f879"}, "908b1f16-9bb4-411a-8b35-bbb8f930f879": {"doc_hash": "c59b5567687d024bb53186bd0b92cfc7bfcd5f939506288c4f79b021d0a953f9"}, "6becf26b-b6f7-4bfb-8c61-c08500562432": {"doc_hash": "c2f1221fab1b3193e479e305fa2c7c79ad0c4b9d83c161176761f0a47d6a4d0d", "ref_doc_id": "546fc9dc-0fde-40e0-9537-e6e5c31186b9"}, "546fc9dc-0fde-40e0-9537-e6e5c31186b9": {"doc_hash": "a5d042c9c03d427fc2d6a8e5e6c3c30c562cf12ade675cef537a125516b89981"}, "c17a83f5-8b5f-43db-94c5-099f8aaf63ed": {"doc_hash": "6d0def79b82ac3afeb37a0380f713a12efc9810469dd725e59fa8a22af987e07", "ref_doc_id": "92b5cc25-c214-4dba-840d-9bfa04bee385"}, "92b5cc25-c214-4dba-840d-9bfa04bee385": {"doc_hash": "6b45b1ebb5c30f11023da8ad7cdfcbefebcaf2522d7ee659d185f5738e1e7ec1"}, "2593845d-7c2f-48ad-9f45-ad0d4fcb277d": {"doc_hash": "468ce0fd56210e51fc888f380e3a39cd351635cfbb5c85750a566df666ac1251", "ref_doc_id": "723fe5f1-6e82-4424-aabd-ab97dcce7259"}, "723fe5f1-6e82-4424-aabd-ab97dcce7259": {"doc_hash": "77c2c5bbe9adbbf3277b4eab207e8b353b82beb60c062bbcde579967c883cde9"}, "c18ca6fc-7443-44c1-b2c9-13aef0a690aa": {"doc_hash": "60643f82d3d9240007bd1e649f6f7d923117a3cbf97c44292cc9ed42f1045dfa", "ref_doc_id": "a13c7993-86be-4186-b21a-97deee7ee609"}, "a13c7993-86be-4186-b21a-97deee7ee609": {"doc_hash": "f893b6315a914b894be47c401ed4f0facbd42aa8445f413edfbd020787785eb4"}, "2e30de15-dc86-493a-81b7-340599d7b088": {"doc_hash": "f419a2bbab88a73a7d32df121745ac9ad408e3c83b8e63071ab4081832223f90", "ref_doc_id": "4f5483df-1bc0-4338-8cde-3de8dc159f9b"}, "4f5483df-1bc0-4338-8cde-3de8dc159f9b": {"doc_hash": "d96cb23fb58ca57d2d894c8f7acb32cc807293f77d6bd6d7cc166230fdb79915"}, "9e9c63ef-59e2-4684-9f43-48ab4746dc48": {"doc_hash": "bdbda5b046b8cadd96230e3b93cc2a2ee0d3918a8b046d1327ce5dd6b6bcb73c", "ref_doc_id": "141dfcd5-8933-4feb-b622-355b63da0810"}, "141dfcd5-8933-4feb-b622-355b63da0810": {"doc_hash": "3bb4aa7467359b44cc0fe45fa0d9c6bc98aa9f41add2b35cb0b3e187ab1daeff"}, "3b24befc-0707-4219-8426-e30cda005683": {"doc_hash": "4fc4e32374b78614a152d44a2c544cfcf36b2c9ca26fb1552ce7879ea8c44176", "ref_doc_id": "e85ca7b8-fe4a-440d-96f5-ca5af399a6b1"}, "e85ca7b8-fe4a-440d-96f5-ca5af399a6b1": {"doc_hash": "a5d3a5501872d3d03ed30aadca8f7706134058f3eff662de4c18d19cfa6c8b0a"}, "21b4e300-d2a7-47fc-8233-f7cd96b1dfcf": {"doc_hash": "041ecee32b6de0d983b1acf8a35e04880a4bc3abc5e2cf5a52381ddc1ae84130", "ref_doc_id": "ad170605-dec1-4c83-9d0c-c751e58b9158"}, "ad170605-dec1-4c83-9d0c-c751e58b9158": {"doc_hash": "5b90663a040a2be9986189b6f8d26eb55754324263b0c4907960528377d54b0c"}, "2826eb87-207c-4a1d-8e61-786452fb6d21": {"doc_hash": "9e388611a7c0b99abb198219d095ad39565a0973dec0dbca522a7e91624672f8", "ref_doc_id": "73a1ee6a-2dcc-4cfb-af8b-17ee100418d7"}, "73a1ee6a-2dcc-4cfb-af8b-17ee100418d7": {"doc_hash": "d80fe680b08de9d08b65f84bd6fd373aec6f3a87567c93138f4f9e718bbc9584"}, "9c29754c-cd01-48d0-a3c7-d9ec63bd8c77": {"doc_hash": "92a4c3a4a42897caac3fd05eeaab61d72b18fe5ed4eeff807abce0b92473d896", "ref_doc_id": "a1962fc8-78b9-4736-a8a4-f59c49e7f757"}, "a1962fc8-78b9-4736-a8a4-f59c49e7f757": {"doc_hash": "3b8c533490ee6f00bdbb4c48747674933cf9e523619c15a64232e6b3db9c300e"}, "90fd8e6a-2111-4c13-84a6-09d299c748a6": {"doc_hash": "faca3f1c4a5f5d2300a05bacb3cca408384bf86c8762cd785954cfa9900fc6bb", "ref_doc_id": "9a7722aa-c8fa-4ae7-9550-68227431ec06"}, "9a7722aa-c8fa-4ae7-9550-68227431ec06": {"doc_hash": "38dcf9b91097509e9949f9848f13249d320962c1ae77df6ca293cd662f58f03f"}, "b43ba541-3621-42c7-96cd-d5e881690a32": {"doc_hash": "cb28d37b02cd206f18332065e151e048c6871c6a7969895b6fa7d6381a2cf7ab", "ref_doc_id": "2232f507-dcf6-4017-a5aa-9863696276cc"}, "2232f507-dcf6-4017-a5aa-9863696276cc": {"doc_hash": "9c6130b7146bbd5692a7d52a327fbcc6e0b71dd3bf6b49896f12fc2be588b86a"}, "3127be99-956b-43f7-bb0e-34e3def44d98": {"doc_hash": "6c77752923edaea133bb34684fbcb74afba5a36203a689044f2bb41355bca8eb", "ref_doc_id": "c23249d5-c658-4b77-9d21-d3d7c8db9f33"}, "c23249d5-c658-4b77-9d21-d3d7c8db9f33": {"doc_hash": "e32fcde02ea893edba0845f45355d758978dcb348c6ba939cd2cc8922f53dbc1"}, "455ccdf2-99da-4422-8501-1de120940f6f": {"doc_hash": "cd6afc73c63c4e7d84541a77e533f7a3d3d8ea1eeb57da161fd0aaf6741f479c", "ref_doc_id": "aea0c9d6-50dc-4122-8873-e0243fa71fae"}, "aea0c9d6-50dc-4122-8873-e0243fa71fae": {"doc_hash": "bcc65342690d77b5436f4eedc02342a0503c4fe7027dd0b46fc83eea0bb83e4f"}, "a2c6f61c-cc8b-4484-8141-5714a36593c1": {"doc_hash": "9774262099e3cf4b3034236875af4703d92adceb1427710f245bae60a8478454", "ref_doc_id": "a5ffe358-ca03-43c0-acd0-df2a4a15b5f1"}, "a5ffe358-ca03-43c0-acd0-df2a4a15b5f1": {"doc_hash": "546706f3fe0d0b9847d64a657a1c5c78a0fbb84bd8d65f77fb08762cfc709857"}, "50ed9f08-abe0-4731-ac2e-fb433043e111": {"doc_hash": "990fdcf412e1bbaeca35459198ecd9b9a5d513f2148311e2f56f80d26ac20a30", "ref_doc_id": "aa7a174a-06ed-4b20-9406-8102c1d2a3d0"}, "aa7a174a-06ed-4b20-9406-8102c1d2a3d0": {"doc_hash": "7bdb10df13c176fbe02166c87a1c19f82374d5cd7cd1848f8f14aa59d5a4bec5"}, "e603f6cf-8f7f-492c-9825-9d4bb136de94": {"doc_hash": "eb5f3b9b710b27dbf31b2851628a02f7e84078d97c8d8a63a8e35362a24eeccc", "ref_doc_id": "e3ba9682-4ab4-4bcb-a285-245b86c4b0f6"}, "e3ba9682-4ab4-4bcb-a285-245b86c4b0f6": {"doc_hash": "4f5f6b227eec01138919a7bec71c2e8af66a4fba741ca1ff384a781afe843663"}, "e222bad8-4fca-446b-9348-d451c7b3cc64": {"doc_hash": "fe0cdf636f0b9c5a38b50ddf6af4fb6e6844275e40fd24143a90d1d5486d3f2b", "ref_doc_id": "17044cf1-3cba-4e64-924b-8c4f17dcdbbc"}, "17044cf1-3cba-4e64-924b-8c4f17dcdbbc": {"doc_hash": "5f6664ee4d4dd47052d5ac87e4b2e8c9061f149338c56633d79e6195b48b50e2"}, "16f1082e-d988-43a1-8466-1dafc5d68c29": {"doc_hash": "0825ace3195ecbcbfc5ce48e895bb7e5ad9b001492b6f0eda2a6cd49da3761cb", "ref_doc_id": "bd510fca-76da-4c61-99b6-6a6b73363bf2"}, "bd510fca-76da-4c61-99b6-6a6b73363bf2": {"doc_hash": "1ed5d3871d97e07002681f2f669c8e13855802540e2b1c50ff6f2ed7bca50d38"}, "d69d90b2-c0b6-4c2f-9728-41acdc10cb4c": {"doc_hash": "278ef5d76642082b40247e38c58766e504be1c40bdbd227c000f3c4c0c387641", "ref_doc_id": "d21c8b43-0495-4978-a29f-a19a668c96fe"}, "d21c8b43-0495-4978-a29f-a19a668c96fe": {"doc_hash": "91ca615994d155e5166f68ae0039f246967f04a81bf320ad9a035d3cfd4c1972"}, "da957fb6-6240-4544-909f-3b0d5bd3f416": {"doc_hash": "b7259950601a4b073ad1e2dfabc3e0e2090d5f01f6cf3ad2038c847b33fc057e", "ref_doc_id": "68883579-d952-4bb6-940f-c560a7c79061"}, "68883579-d952-4bb6-940f-c560a7c79061": {"doc_hash": "bc20e9da393f46c03469f5eea22c3311ab841593aae559bc49129b4082b11fca"}, "c3fccf1c-f0da-49af-9565-f331772875d6": {"doc_hash": "de3267b5e13e17f2223b3b9a6af9f3322373c3838f092bf81f2ce4dcdd16527a", "ref_doc_id": "82a5de47-9dc8-4815-9e62-c350c7174de3"}, "82a5de47-9dc8-4815-9e62-c350c7174de3": {"doc_hash": "28c7e07135dd9138a001de7def92252c93f3fd1bbd70c96ff95137d28b139001"}, "9a75357b-2166-47a1-bbe4-9a66b634d79c": {"doc_hash": "103cf7cc7b0aae61244101004df7c71b0d93682369b948096ea1bf72c08318cc", "ref_doc_id": "c4cdcfc1-5755-4ac5-afd3-351c31973a90"}, "c4cdcfc1-5755-4ac5-afd3-351c31973a90": {"doc_hash": "2ba299b018943238efb79ce42d7134e88cc99b4a6bd7c3759968ae367fb0f794"}, "d4874a4c-103f-4408-8369-0c5c2ae2ae53": {"doc_hash": "a352a93748c1de81e66a5ba4f6b681356a1a8683cf8c6bfc9c4c9c6c5b1ec6f0", "ref_doc_id": "79246a62-5b50-4804-a2a0-783f8f7adf07"}, "79246a62-5b50-4804-a2a0-783f8f7adf07": {"doc_hash": "54ebc073980dc07d8793d9a0565cb7f6c863782a60c542b020d5c34b58f39563"}, "dc4f425e-34a5-4e97-bea7-a87379f84dc3": {"doc_hash": "81392d87598eb02266c68789ab3005c23be9cc7130d1afb1c803b1af34c155df", "ref_doc_id": "1f3099c8-70b3-4538-ba1e-1cc9fbedfdbe"}, "1f3099c8-70b3-4538-ba1e-1cc9fbedfdbe": {"doc_hash": "2e43687e1c990f0e21475217efe8cfbe65c9710f8d32ffdb6ad51f1e44616d6f"}, "b3d63e96-2d58-4751-a339-09fa28c4e63e": {"doc_hash": "e85ac9f5ee6ad641d0ccdd4ede50c4ff0310ce119f6a78c73cc1c2f951b47214", "ref_doc_id": "d92d0d5a-c372-4dec-85cf-f91964c59b48"}, "d92d0d5a-c372-4dec-85cf-f91964c59b48": {"doc_hash": "41c68b85553921bea7218226523919e540a0a485143618fdb6dae857d3d9d8b0"}, "1187add3-24ee-44d9-979d-75e9cf7e1c21": {"doc_hash": "0234bcae9612f945f7b95862d333e454be6ec26249af016f9cecf74e6cdcf067", "ref_doc_id": "8365841a-87fb-4f54-9bff-25f4934e2e0b"}, "8365841a-87fb-4f54-9bff-25f4934e2e0b": {"doc_hash": "bc5ebf6e1767bc16d561257f022ec039d27092de089a7e2171885893cf246d76"}, "bd8e2c4c-8ea7-401a-a725-5631809a01b4": {"doc_hash": "516779cc9736a83c14a604037cc555bf0ee8ea6b0816c77179299cc94fb4cefc", "ref_doc_id": "c35feddc-cc0c-46a6-9640-fa04d01d06a6"}, "c35feddc-cc0c-46a6-9640-fa04d01d06a6": {"doc_hash": "93861e9354750a389353e15df385e5e687a14d5c832dfcf9e9bdcb5970e4eb62"}, "af022fe9-0ebc-45e7-9460-f148a41939ed": {"doc_hash": "077679fb0a06730bbdbf335778e7db06a6d188692f16e72d5dc7592c60d4463e", "ref_doc_id": "8dd08ac1-1070-4322-aaf3-51b9b13eb02f"}, "8dd08ac1-1070-4322-aaf3-51b9b13eb02f": {"doc_hash": "1b19fc30954864c2a200aa5ad51a192845838239cc9a439768789c22d3ff2f53"}, "ebb7d8ba-57cf-4ec8-a0b9-52fa481f2947": {"doc_hash": "c1cfc5a2ea37416b05a37a251bc07a125cdbe88c3d33b55a9dc7cfb8f031f5b5", "ref_doc_id": "b358d1b1-fa5f-436e-ab1d-3857285aaeb2"}, "b358d1b1-fa5f-436e-ab1d-3857285aaeb2": {"doc_hash": "4e4c41a002eae004c0d85ef1bd6bd1cd14fcc5389a7e4d79da36b661d62923c4"}, "5cca41cc-aa22-448d-9201-a3c2b08895d8": {"doc_hash": "e1267f0737e90f9aa211fe1606b74cd4d25150304c336c90014d2b3878de6571", "ref_doc_id": "2473ae9e-88cb-4582-a2b2-b403365babcb"}, "2473ae9e-88cb-4582-a2b2-b403365babcb": {"doc_hash": "ee6bb99ec078fb6846c3588c280d9692c6524ad9d2c2daed07627feb07e8ba0a"}, "ee0f90ed-af7d-424a-a754-862d39a2a532": {"doc_hash": "d07af5e6e07ccad6b3e2665797771cee89d050705f29f4379e5aea43c9f5349e", "ref_doc_id": "edd30ff5-5008-4912-ab2b-a969b3763803"}, "edd30ff5-5008-4912-ab2b-a969b3763803": {"doc_hash": "8a2535bd83d167bb66cc80c48f1627ff7317d6831ea101850636eac5b914f1cf"}, "2deb9f57-8b71-46db-96a0-8028214b2f42": {"doc_hash": "d6cf5aa2ac27399ae181d41db3cbd50f181fba7331e5c0d12daca5a8b8447938", "ref_doc_id": "a064c6d7-b35d-4099-9187-688d7277681d"}, "a064c6d7-b35d-4099-9187-688d7277681d": {"doc_hash": "f58442f127d98aa64aa360faf425291abb284109616678972825064f7080a72d"}, "1e74dd6f-2ace-49b8-a9bc-01272b514a2c": {"doc_hash": "f3056086dabda7b0de5ca5434fe84c831c5ef28f611fa1d044f65ddcd40b30e6", "ref_doc_id": "c75a77bc-7097-4783-8364-d1fa0f983260"}, "c75a77bc-7097-4783-8364-d1fa0f983260": {"doc_hash": "4a38b6383a5fa409c6b3f133c20f5c4023f1f25f9bd8f463d862869a416ba79b"}, "c535587b-27c1-447a-86c1-c69a443e422a": {"doc_hash": "46a676c53667a6c6443dc200465aa84422231ad2519fef3f8278259b0bc239f0", "ref_doc_id": "454d7335-ea9a-4977-b716-d1f46b56cab1"}, "454d7335-ea9a-4977-b716-d1f46b56cab1": {"doc_hash": "84e3e11c1b4ce5f651cef7d0ade2163ba8ab99aabf57aefb2c2605b8bd079f7e"}, "45287d43-7877-4d0a-bdc6-f6c46fb1af21": {"doc_hash": "a4802e87966a219d0d72096644135b24a9589380fea45d387b7498f9ca8543e9", "ref_doc_id": "6dfcbd71-532c-40be-8e24-7ec825b428bf"}, "6dfcbd71-532c-40be-8e24-7ec825b428bf": {"doc_hash": "8578f964ad49fc85b8bfdf95399d51251fa3e14ccfe46f5673bbb2d82688a0e0"}, "318f174b-2b2d-4557-b711-67875c913166": {"doc_hash": "48b21cc65788e622660612d4272048e4ea979f4b525dbea1eaee1b349c52a7e3", "ref_doc_id": "138b8875-b4a8-473b-8109-2f072a1975af"}, "138b8875-b4a8-473b-8109-2f072a1975af": {"doc_hash": "bb4e2084b47cbdd3792fce335e746e49d5b9a36ff361f701c7d85bf0f73d5430"}, "869cb580-35c9-4c95-bf38-be22f21c7afb": {"doc_hash": "02dca36b542c7fee86204f246f65ab163d08108043981f6f3cca7cc5d4f49450", "ref_doc_id": "0187e278-65a4-4f29-aea9-aa74a58577a1"}, "0187e278-65a4-4f29-aea9-aa74a58577a1": {"doc_hash": "8d167e923750991545045c0a855d342f0d93650e49ef16b7bb36be4af6a9a3a3"}, "775b2667-f71a-4c26-8dc5-8591932367c5": {"doc_hash": "3f05b3675212ff3a37adf599908736fe1e79da05989959e5a9a48101d05c159b", "ref_doc_id": "3b3daa7e-235e-4eb6-9e6a-a29121708ac3"}, "3b3daa7e-235e-4eb6-9e6a-a29121708ac3": {"doc_hash": "98fa100e574c227b1c860636641181f55e9eb1f19b90bd45822f4dc5006b06a9"}, "630ecad1-4ded-45de-adfd-aa3dfeaaae56": {"doc_hash": "4d63ef988b4bfae1f89b33a19e68d8adf7a7ca1ab37a09ae00b30018d5778841", "ref_doc_id": "e65c58fc-469a-463c-b3b6-bdc6c9abe42c"}, "e65c58fc-469a-463c-b3b6-bdc6c9abe42c": {"doc_hash": "4b26b54c28f7f773510f52ef4458785d47adae18c5034b79a963dacd265e9b23"}, "cd15589c-d5eb-42e2-891e-d967d2b066e6": {"doc_hash": "151fc9832b62e1cc9660923753af4d8f17b8f2e87146f37583ce2c9889178ab3", "ref_doc_id": "ef642fea-03cd-43c0-9e74-8e1c919f6dea"}, "ef642fea-03cd-43c0-9e74-8e1c919f6dea": {"doc_hash": "69548b9a55a611ca6b3f0e9851b7a57b1d2ab1cd4ab631a5b3759dc83cbaf88d"}, "e7afd809-5666-4e72-ad9e-2dc3150d23b0": {"doc_hash": "d9a0edc8ef31cbf241116f5960d60ce62816c9f3e59b5eef9b37d6b9d56cdcda", "ref_doc_id": "ae721862-0ebf-4fe6-bd3e-b38e96e1887e"}, "ae721862-0ebf-4fe6-bd3e-b38e96e1887e": {"doc_hash": "5cb4458d35f64b91211cc8df4b4417bb26da94b52e3a12a0d1a4bc2100a138f1"}, "a80664c6-ebfe-4b14-84a0-8eb66d5c8c45": {"doc_hash": "ec00af4802af0181bf25a4457f24265e3594cf8cc2524a5b6889f7cb5c700b27", "ref_doc_id": "055bbde9-af1a-4447-8b3e-f9a23337e3e8"}, "055bbde9-af1a-4447-8b3e-f9a23337e3e8": {"doc_hash": "1d961fcf738487802527e59ce96a5c9825e4eb919866bdc253c464cde9c8c175"}, "b43e4661-1f31-4327-9df2-92a3474d77fd": {"doc_hash": "dc277dea3f6086092815ceb138dd5ba856c195e0fab5d7cb92cdb755f1149221", "ref_doc_id": "fd9e85d0-0638-4016-85bc-781aaf299e61"}, "fd9e85d0-0638-4016-85bc-781aaf299e61": {"doc_hash": "06fff8ce29878bedcebe680797d602b9994167f1615c0abf758f080148ba7f45"}, "be50ef6d-bd78-4ac5-bb78-6d1704d73646": {"doc_hash": "e9091b12d0d92ac847c0b1fda1517bbb6959e120d6bc7eb4cb1cd489d46e5821", "ref_doc_id": "34ffd4ea-e4b3-45ad-b9fd-0375d4965494"}, "34ffd4ea-e4b3-45ad-b9fd-0375d4965494": {"doc_hash": "39924e1583423b80230923117287d43c4eff839701dad907243355fbf0cdcae4"}, "6b50034d-57da-409a-8636-3110ff079d0b": {"doc_hash": "0cfaa30c482a3e488260ac69bad70c61573a21c284730f5a72d009fce2ae4744", "ref_doc_id": "3c5dd1e1-59e7-4356-b077-4168a9cbf063"}, "3c5dd1e1-59e7-4356-b077-4168a9cbf063": {"doc_hash": "3493ca4d8636a7b3fd72921d629c5803838fc02ad9f59a12e7ad1e0f8c923f7a"}, "eb60e00a-5baa-4c84-98e9-165200151741": {"doc_hash": "20f5f258613460316a53cba53941b0e2d031b83b16769eb90ec46ac8a6a98db2", "ref_doc_id": "10cd83a7-0e3f-4c97-9df2-95ba80cc75aa"}, "10cd83a7-0e3f-4c97-9df2-95ba80cc75aa": {"doc_hash": "10c9b5aee276fbfe145a82a87b9e9a6dccde96276d06323ecd5cd27881c0a2ef"}, "2e8495b1-6dcc-4db5-b24b-bef3b48a5e1c": {"doc_hash": "e39f4ad4bb1b0e2ec8900c754b3088e92f09723c8da1664c9bc7bb97a429ea3e", "ref_doc_id": "b9c79cf9-fdc0-48e5-8ffc-4c3f9573cfe4"}, "b9c79cf9-fdc0-48e5-8ffc-4c3f9573cfe4": {"doc_hash": "3737a11749b1109c9ed9fbc9e93dedd14b06de27d1e3a7a9a9c10d662e730d27"}, "55436eb4-d968-4007-8536-0f4ec072ac0d": {"doc_hash": "7c890c2350f189d451ffc1b378eadd186b7b36258992d7360be8928e0dd70d50", "ref_doc_id": "791c882b-7d60-435e-9516-19ef92408ac3"}, "791c882b-7d60-435e-9516-19ef92408ac3": {"doc_hash": "a4658dc385dfc9cf4d0e32ff253ec03bc567899989e5df06155a90d4e1f78fcb"}, "22b3c4ad-cec5-4550-8815-ac37aedea246": {"doc_hash": "ce0f169a800eba89d3f39fc5d92358080efdaa56b39f973b61998b1ade347954", "ref_doc_id": "2cd817a6-4b76-4efd-b0ea-4f239c31929c"}, "2cd817a6-4b76-4efd-b0ea-4f239c31929c": {"doc_hash": "006becf2326cc6eff3f7664a6a3eeabaca8e1172887beb31eb1c3588c833ea7a"}, "be4671b1-3357-4846-8843-d8ebebfc1ad7": {"doc_hash": "60a4060ffb3f7af6255009b12886626f8405115820174201c3b0e6d8d0b8fb92", "ref_doc_id": "38e22a6b-20d5-4dff-92ef-487ce4aa504f"}, "38e22a6b-20d5-4dff-92ef-487ce4aa504f": {"doc_hash": "9c14ac1e34072c57c700c2a4bef4f133b6406552b162fd0227bfca391f5fb87b"}, "5f1f276f-be06-4632-8f23-e769d8ebf3ba": {"doc_hash": "3c5a5c4adb552634c4f5eedf42cd7e02fb42b9c752ebf08aee9f9c980170b137", "ref_doc_id": "70f38bac-f675-49e6-abfe-959aeef2d9df"}, "70f38bac-f675-49e6-abfe-959aeef2d9df": {"doc_hash": "c4d822e793798e230a28c300d4b692e2aa3ec2e52c05babde91b216babf66848"}, "8891ef0a-513b-4187-8a46-92b6bb9da132": {"doc_hash": "9f6ab370d6478d53601cde00a352b291ec44ddba5b7869b3ac8f7dae4b52e985", "ref_doc_id": "165f5c1a-6c30-4164-91ea-2363ffc670ed"}, "165f5c1a-6c30-4164-91ea-2363ffc670ed": {"doc_hash": "ea19b329d406521405fb00e79f0af9b902c1e355f97861a096d4a55d166c7775"}, "0dd73715-e49b-4c4f-8966-b02921a820ba": {"doc_hash": "904cfe0ec226a01cc59986f82f2f435ff7a8d85c865429483ece3a38867da02b", "ref_doc_id": "f5512f29-6383-4f09-96a1-483f4f4c8984"}, "f5512f29-6383-4f09-96a1-483f4f4c8984": {"doc_hash": "ae553d96cb1a7bf103e986e49fb03426c3b40c7f862b788de2d463faf283153b"}, "147447f6-993c-40a8-8ecd-0db4ab4aff20": {"doc_hash": "6cbd3435481bfec26604daf97a2a940477745e20a968d634e2faa68011ac7094", "ref_doc_id": "1f67bce7-25c5-4fd3-8afc-855a96fb397c"}, "1f67bce7-25c5-4fd3-8afc-855a96fb397c": {"doc_hash": "c5045cd34167d54afb54e59dee793b857e5fc66b7f383aade50e355914bc9696"}, "b7689ed0-6158-4268-a602-8665510d12f2": {"doc_hash": "f418239c672fe83b57d03a0c93952726b61e4a24aa0ebf0619473473e5a6a735", "ref_doc_id": "c3984c7e-fe57-4a4d-a681-a3c0c0330e9a"}, "c3984c7e-fe57-4a4d-a681-a3c0c0330e9a": {"doc_hash": "c1619fcc719fb3f8b0860d86447658a2c35d46566c5d152e8c3127e7d029c518"}, "76e9969f-8136-401a-9ef5-af2f21264143": {"doc_hash": "481104846e1adadca66892311fc8be5482ea86cdd66ffa4ca5aa8d794fbccfef", "ref_doc_id": "2ee6db9b-8731-41f0-9cd3-dd5124a9a6c8"}, "2ee6db9b-8731-41f0-9cd3-dd5124a9a6c8": {"doc_hash": "d95e4bb91d2f0609e1e88dc474b494c88836886d060e8867f935a121bf87deee"}, "c0b97ba8-391d-4f3c-9118-97894c63a1e8": {"doc_hash": "bd8c890402ec0711f9942469a6393bcfee2d51cbca23f98d382b84fccd3a3ef0", "ref_doc_id": "b5ee88d0-aa46-45b2-9343-3401459a6a11"}, "b5ee88d0-aa46-45b2-9343-3401459a6a11": {"doc_hash": "7fb50f46da391b89095e82a1abe65f795d0675cd141ca75cc36846d1ac13f6dd"}, "ba0709be-e72e-4f4b-822f-173a6544b468": {"doc_hash": "389d23acf3d77f30f5e30488b07e10d763f914921a94282ba4aa571c56c0117a", "ref_doc_id": "d066b393-bcf6-4afc-a495-bd7bdd2a60f4"}, "d066b393-bcf6-4afc-a495-bd7bdd2a60f4": {"doc_hash": "9556fbde3dfa028963e211cf3a35ab53da7762803c8a48563889393915a0333a"}, "9c926f93-9c8d-4619-8bdd-9a72fad56ba2": {"doc_hash": "6d2eb5bf9b9d63c1f2ee4b7fa6773207485ab9a94c14c3d00307f1d980d7dd59", "ref_doc_id": "402aa389-93ed-4859-b728-cca0b06c2e23"}, "402aa389-93ed-4859-b728-cca0b06c2e23": {"doc_hash": "b16a99d86e40e2756f3d8b341bb56ce17b90d1444a4a2987584fddf799c932af"}, "e2e7a163-cddc-44ec-baef-4b9129405fcd": {"doc_hash": "7d536e46055e0c90bd01400862208f4586263b77714ef56452b8e050ed07fe25", "ref_doc_id": "c695dd04-7924-43c2-8629-cef0bc2b5b6c"}, "c695dd04-7924-43c2-8629-cef0bc2b5b6c": {"doc_hash": "261dabca0e780dd87987100710474baf10042d51316d0b9020aa9fff127f1040"}, "6cc5ec7b-25ea-4b83-8d96-d8a33ea22717": {"doc_hash": "a1ab1ec7ea82f28d23f2e8d31925a94f35ac8450d80aad9d0f3ad5f8bb0ce5df", "ref_doc_id": "2a0e3e61-08e5-4c7f-864e-133a8c837076"}, "2a0e3e61-08e5-4c7f-864e-133a8c837076": {"doc_hash": "df8fe1d476649e604b37863dbe7f9b7a4b85d655911874e8568def67cd43fe48"}, "58973a7b-4e16-43f6-87b4-06d225ff99f1": {"doc_hash": "1f4723fecdf9ec134df2862db2921d3c4d7a829afb7cb4afcae9e5d8cd025378", "ref_doc_id": "3341bd3a-269a-45c0-b4e2-25c63536366f"}, "3341bd3a-269a-45c0-b4e2-25c63536366f": {"doc_hash": "75d86b48c228557b6e78485ef3154a629f5ae406a2a28a8969ef4dc880e3c61d"}, "a6745567-4f47-4526-81ad-1320e35b927d": {"doc_hash": "468249a535471431ae6a8e8c64584ee361b1f76ff01f019418b84fd0da924516", "ref_doc_id": "af29ff82-0557-4dd8-873d-019d3176b8b4"}, "af29ff82-0557-4dd8-873d-019d3176b8b4": {"doc_hash": "1c1c133e415c160de6d2c5463f6eab36799ce80624412dea21aef26863132d23"}, "ea418d6b-1722-48b8-a063-aacb2ccb0fbb": {"doc_hash": "a7aded7679b3f966fb2afe6e4e58b0485e1a2927a37475916a5a6ea0c22ff149", "ref_doc_id": "849b24af-1f5d-4e6f-9d14-d2088d8f64c3"}, "849b24af-1f5d-4e6f-9d14-d2088d8f64c3": {"doc_hash": "c9d12541ffc358de10a0174a14447c24a90e45f0051da2582f29e0ce271ec3ea"}, "ed4db473-8604-4cb2-a146-db94721096e1": {"doc_hash": "edae74e9ba017532386c5113d7038f3eafbe75f2b25382ea06a71a5e23fbabba", "ref_doc_id": "8cea9426-2ea4-4553-bb70-ae788f4e6438"}, "8cea9426-2ea4-4553-bb70-ae788f4e6438": {"doc_hash": "c2c25ac934f96aa6c7bd849c7b2e6892d64699e09b159dae2815226c0649fcc9"}, "ca5afbec-8a80-46ee-aad9-215281b903bf": {"doc_hash": "df68c85532a3f9e02bbfa212f8c6be4e15dcded8ea5a958df9bca2ce36bff946", "ref_doc_id": "debf1345-c768-4667-9aa5-41d6df9777b0"}, "debf1345-c768-4667-9aa5-41d6df9777b0": {"doc_hash": "ca24de2ca5eefd36562dae2bb88bb3b003545e6dc7c5ded0332ad88eab57e1c8"}, "44fc8dfa-dc1e-43f2-bd55-933633b81971": {"doc_hash": "9c5cbcea6a336b8883421935a44de13cd5af3c621fe194084941db538f999f9b", "ref_doc_id": "3572ae19-ba2a-4522-a92b-001073f80a8e"}, "3572ae19-ba2a-4522-a92b-001073f80a8e": {"doc_hash": "abebb8e0a8e16fd40af7b23e3b1a13b6446bbf8ed6484f528afc93a9adb89ad4"}, "5ad7a0ec-f1e4-445d-9b54-e34803834caf": {"doc_hash": "b1e06a1a29b337bde48b9f3026d7a3a81ef4fbbb6d7640ea9e2870fbb1311b1e", "ref_doc_id": "57eeb6ae-3b7b-4387-afae-28978598034d"}, "57eeb6ae-3b7b-4387-afae-28978598034d": {"doc_hash": "e1b0825da437a18e6656c12703c2476c3b0e3e86547e99b73fb0851626676f18"}, "34d3b7f3-c50e-42da-b667-e7ae8797ba8e": {"doc_hash": "76f2d935a421d1350f5760ad1666f23d77b9656fe6b4bd03141069ae08a25c95", "ref_doc_id": "845c37f0-1c96-4e7b-83fc-a508c5975806"}, "845c37f0-1c96-4e7b-83fc-a508c5975806": {"doc_hash": "b6104ddfb241e11299f089cffebcd280f7acf745f3b7c98db3b0e03dd656e12a"}, "dce86f0d-2a97-4212-9d19-624885eb718e": {"doc_hash": "bdc331e705ac90c6c6f0e9fbb83b94bccfda8fd86969c21c6385f8ae88d7809d", "ref_doc_id": "6f430967-d488-4621-95cd-3ec388606d51"}, "6f430967-d488-4621-95cd-3ec388606d51": {"doc_hash": "7288f34a36d4732743a385f34c19f713e2f969200b544c0d39f1398080face9e"}, "0f6c88af-4262-4786-9ddc-908868397517": {"doc_hash": "469a786ac166fb89872283422edf1067743985d34b2730f4102fa910941d03ba", "ref_doc_id": "082b5a6a-0e33-40d8-9d1f-48efc246067a"}, "082b5a6a-0e33-40d8-9d1f-48efc246067a": {"doc_hash": "8d129f213493b7574c6b5cfbc8cc1711e792ac439402c927e6051da4ae02fa05"}, "ed02a7df-85ee-4f48-9683-2ae0f9f4a030": {"doc_hash": "f3c8623fb9298744eb3555e0740a398fec94bbdf6551c0a3c0b5dce5e2d7333a", "ref_doc_id": "d09c9d25-f318-4967-ae59-5d111f594797"}, "d09c9d25-f318-4967-ae59-5d111f594797": {"doc_hash": "00e982e799519155f2bdc9ca9799e5bfda48f4ec6150a418b9605ac12b145457"}, "b5390953-4352-455d-b32b-bb85bea1e9df": {"doc_hash": "63f935f82bb2104e2f4ed4638a614e089920cd4cc12c134074e5b1457376e390", "ref_doc_id": "dcad46f6-b0e8-438f-b805-e42ea47fad96"}, "dcad46f6-b0e8-438f-b805-e42ea47fad96": {"doc_hash": "b5b7c862ff5641a5ff5ae61f025c3f991ade48b114676bf1619c5a809f066f6e"}, "d7f3792c-e598-4a91-b809-e199816ec83a": {"doc_hash": "6305d327b56d17685704c11b8eb999638094605766a9362ffda1804175a4fa29", "ref_doc_id": "6088de04-f16b-4222-bebd-35302ace5246"}, "6088de04-f16b-4222-bebd-35302ace5246": {"doc_hash": "76228ba8f5586b5fa582ffa1227fcd74a4303625c2b0a718bb14a0130bbe0ac6"}, "401519fd-b985-4547-9063-7174d24b6844": {"doc_hash": "ae33929dec101cfe3208bab76b966cb104418edc0d9ec41b7459da2fcb5423d4", "ref_doc_id": "4a8c3924-156b-4e2d-ab21-3e303e9f46d7"}, "4a8c3924-156b-4e2d-ab21-3e303e9f46d7": {"doc_hash": "25596d10b641c48c0307f5d77aee518295195506b88e26e7632d352b7b47bb85"}, "2866b90f-bc65-4a2f-a11a-a5914f8f9fe5": {"doc_hash": "447c6450e73fb8d7a1af7517b72cee8e47a199d24fc879b824d54cf5754325a2", "ref_doc_id": "289c2ef1-b25a-43b9-afed-8a5294e3e4b6"}, "289c2ef1-b25a-43b9-afed-8a5294e3e4b6": {"doc_hash": "06fe15a307694daeb507159cdbda11564d0e8ac4e394b41a5b020f03a74ca657"}, "0c5e44aa-c0c5-4531-afba-dc83567edcf4": {"doc_hash": "9b186a40a664bf4bab01f814456f2b9c616ad86873571548dd30e981c7b16fe5", "ref_doc_id": "80d9d0ed-12ab-4d47-a7d5-6bef7b6ecc9b"}, "80d9d0ed-12ab-4d47-a7d5-6bef7b6ecc9b": {"doc_hash": "efbcfcf679275016e526ce57407ad34bdcae27c2ee585bb84f97646d4653107c"}, "a3352c8d-dae6-41b4-8a45-8e3a81a29d7f": {"doc_hash": "653f7342bdf3e58b1655864dfdf62db52831da93faf158820a57d6988b80b0ed", "ref_doc_id": "b1aff601-c45b-4391-82d4-ff4e37b0d481"}, "b1aff601-c45b-4391-82d4-ff4e37b0d481": {"doc_hash": "8a8de0f593d6cba8f9166481fc086353c63ab62672b875dd3b4edf4dec32d2c7"}, "002bd2a1-8e8d-4c75-bda4-78eb57049346": {"doc_hash": "ec1c117698f545945531af7aaa94d617a7bf2b763bc2ac8e5848c097f57417e8", "ref_doc_id": "8e433381-e30f-466e-9510-10bf7a7c4ae1"}, "8e433381-e30f-466e-9510-10bf7a7c4ae1": {"doc_hash": "c380fc15a87a009d1730c0054c4b70e74f56417c55bf54f3b4880c6bd7c196ea"}, "9e23c077-db35-4fd7-a875-5dbf941e7521": {"doc_hash": "9e7b7df9a4c0d0bcb6f99222719f27cd50bdd9149d1e59cac1c85786e03e8869", "ref_doc_id": "bfb6d8ae-2fff-4c44-84c3-525d6b2e8f08"}, "bfb6d8ae-2fff-4c44-84c3-525d6b2e8f08": {"doc_hash": "de4dd0bbb330d26c28d7101468bd542193f18397437104d2e023ac878113fb23"}, "b4407c4c-72ae-4e82-91c5-4faa365a548e": {"doc_hash": "6d050e547c25097b7e2012e6e12027d06f963a12034bc80a71020545ce716d14", "ref_doc_id": "5d772de0-2e48-413d-be80-79872aa1e894"}, "5d772de0-2e48-413d-be80-79872aa1e894": {"doc_hash": "302c23583976998d2eb9ff03155d6312208bb31b686426c01e819b6a3b402584"}, "2ec27a66-0574-4f58-9fd6-d9ac490b723d": {"doc_hash": "c010731d41b0ac18185a81df6d285519a7b10953903e35327fe4e8c314bfdb05", "ref_doc_id": "53eef160-4db3-4a7a-a080-a5d081c8a53c"}, "53eef160-4db3-4a7a-a080-a5d081c8a53c": {"doc_hash": "473a464c67f78a77c9ec8bb9cea79df4a6d68206a7fffadf2b8fb080a45ce914"}, "8366257f-8a91-44a2-8f2a-3903081b254d": {"doc_hash": "27259d858aba10698b2e2ee437516946d832e6a7fbf77bfe506c07005ba66e65", "ref_doc_id": "ee0e1cac-460b-436d-bc12-f5b33afbae1c"}, "ee0e1cac-460b-436d-bc12-f5b33afbae1c": {"doc_hash": "9bf0b046f07a1786c3c78bc68e38b092964b9810523f9832397073747f6a05c3"}, "6680f73a-7084-46af-a01c-3246db7bde3e": {"doc_hash": "fe154cd3bc04d02c5cba1ba6af3cc112332387810afbfbb3947ed567700bc3d2", "ref_doc_id": "0031bdef-6173-4c2e-bae6-b53c75aa2206"}, "0031bdef-6173-4c2e-bae6-b53c75aa2206": {"doc_hash": "9dff2af40895004eb395601e7905cb1a3b2c90a7168edd4942f93825e375ade2"}, "6c4cf921-ec59-4587-983e-ffd583965cdb": {"doc_hash": "f396ede36971d86e8da93117fe73c92a64e8610648eac292a317964e3f18c675", "ref_doc_id": "f5e41dab-a87f-4eff-bdb3-6e55463e0bc1"}, "f5e41dab-a87f-4eff-bdb3-6e55463e0bc1": {"doc_hash": "a3ee97c8b0760677f12197be794b4aa09a4604d8ee9d2a9cbb5f62648189cf44"}, "5d7d7ac1-0274-4480-9208-2cce9929d57f": {"doc_hash": "57162407921f364e976d3e907b49fec86da517ccd1725d0495f75701900fa5b1", "ref_doc_id": "4bd673ac-83c5-4433-a994-a20384e925db"}, "4bd673ac-83c5-4433-a994-a20384e925db": {"doc_hash": "133ad85260bcaeb55a21701771911eaf122dc818c016e9412df14c88c5d0cff8"}, "e7151fcd-7a33-4e3b-89a8-ec1a54c10f23": {"doc_hash": "18568795cbc3818ad074bf60326b91d17dc5402da2388eb9a172bf1cd662a0ae", "ref_doc_id": "eff56f13-4e45-4d67-b1ec-50e48eefd5a2"}, "eff56f13-4e45-4d67-b1ec-50e48eefd5a2": {"doc_hash": "f50373ab67b07c06bd5d644fae44a2518a19fea75001db9ad4843e566e2929a7"}, "a50ea658-c80e-4a49-aaf4-b9f2dc12fdfe": {"doc_hash": "46fec07a823d171a3e26895302656fa7805aedfabbfd94cc182f90f901296b00", "ref_doc_id": "249eebf2-056f-4eb2-8958-e97b1ae316e1"}, "249eebf2-056f-4eb2-8958-e97b1ae316e1": {"doc_hash": "6bdce2d6c6e3849a67afe0fff30c170e88e58627b4c2bc683e7b0979efca5503"}, "5dc03a9c-7891-4c82-8f80-a9ed76bdf824": {"doc_hash": "8b3012d82e13f392991b84cd97f9515c247af9a63ab1e8c83612f9923647f87c", "ref_doc_id": "8f5a9d33-2104-4304-8a9c-2a543f06316f"}, "8f5a9d33-2104-4304-8a9c-2a543f06316f": {"doc_hash": "490eed23e95f460b347a51fe287f793297e6ed54f082bee18bd334b3730c654f"}, "175caa80-83ae-443a-b2e9-c24a92d4a3f8": {"doc_hash": "288bfa8bfd012137a8e7cdff4a8b5b27a992473381589546351f335312117bdf", "ref_doc_id": "85b24a1d-69d6-4cc2-9dc9-07942e75635e"}, "85b24a1d-69d6-4cc2-9dc9-07942e75635e": {"doc_hash": "42198517a43e267239a40cec2d3419fe45137c84681d5d92c3263c7a4de06ba9"}, "4e57fefe-2385-4fb7-8ab9-15c8342bd303": {"doc_hash": "2a0eb5fdc4d1fe41c2e353204aa7736da85bea33e2f2245e2bd7f76d3ee6131d", "ref_doc_id": "89401a55-9efe-4aed-a9d7-2dc4d641c742"}, "89401a55-9efe-4aed-a9d7-2dc4d641c742": {"doc_hash": "1bab8f5f5e879a2fd52f4ef8a4039b33e9ed677291564367cd88c46b54c7833a"}, "5458f767-713a-473b-99e6-43fd549f7275": {"doc_hash": "2c4c2c7ddb1bfddc5b067b67195d0aa675eb6ee57aabc8092a61c4a84767a3c8", "ref_doc_id": "139cc217-6db4-41f6-9c4b-a39a37b7b869"}, "139cc217-6db4-41f6-9c4b-a39a37b7b869": {"doc_hash": "c399f9c469b75b201f354e865b78359ba2e99119a7d041edf61d36ef80513154"}, "ec91d6de-3bea-4c42-99ff-ebe5375ba932": {"doc_hash": "88d15d5d94c7d758594a1f208e4d9cf6173871b4e65b198174b52e891a59af1f", "ref_doc_id": "bfc4c9c5-a0a8-4603-b344-b4d4863c2e0e"}, "bfc4c9c5-a0a8-4603-b344-b4d4863c2e0e": {"doc_hash": "07fdf2fa27eb639c3fd0cf40e66f16aeea3be48f7cea1a4958d2b13d4fe7e818"}}, "docstore/ref_doc_info": {"e06d7e7e-a58b-461c-9f03-8b7a580fc463": {"node_ids": ["44a4516f-48d8-42b6-bb6f-58a4abfdeb9d"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_04_handout.pdf"}}, "6422cd60-2321-4f9f-a31e-adf7b3c8e342": {"node_ids": ["79fd0146-12d1-4ff1-8076-8f75c79acb1d"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_04_handout.pdf"}}, "ccea239e-3278-4217-bcc7-0073fb4c1414": {"node_ids": ["0aa9bd7a-3e07-47d1-a24c-ad2461cf4652"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_04_handout.pdf"}}, "792f02b9-7eb7-471d-aaa6-f6169baedd5d": {"node_ids": ["404efbc0-6dbc-487a-9427-d3e70df83c98"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_04_handout.pdf"}}, "2fc29119-41e0-4bbc-afb7-4ab7cf1e3246": {"node_ids": ["3f0421dc-ab65-4734-a71c-4dc7aa417ed4"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_04_handout.pdf"}}, "09266a16-fa2a-4050-a53b-4a3b45e4ffe1": {"node_ids": ["811e87e4-fa91-4575-8784-703dbf9d7e71"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_04_handout.pdf"}}, "c9eacbf1-9acb-4280-baf9-e66191bd1537": {"node_ids": ["9a2db097-d90e-43cf-abd6-c353f326e1b1"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_04_handout.pdf"}}, "896d0f91-b641-4b85-92e0-2cbb50067abb": {"node_ids": ["918db2c8-8ecd-4aa4-b8ea-cd5b2eade6c4"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_04_handout.pdf"}}, "7fe48277-beda-4d44-8b8f-97dd5e58eba5": {"node_ids": ["316ddb63-1bd0-4ae5-a43b-a146fdae8048"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_04_handout.pdf"}}, "53dbe867-ff8e-4766-bec3-82ceb839b2ae": {"node_ids": ["606690fa-f540-43bc-a6c5-9189b00cd867"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_04_handout.pdf"}}, "fba38f01-4c6f-44a2-980c-196e7ca81b26": {"node_ids": ["747b4f88-e0a2-4b3d-83b1-a628af1df150"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_04_handout.pdf"}}, "418558c8-88f2-45b7-9d76-49d3c67ea76d": {"node_ids": ["158d60a9-2cb1-4bb7-ad16-fe7edaf6a03c"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_04_handout.pdf"}}, "c587750e-9ec3-48b3-b9f2-b450db98e029": {"node_ids": ["7aa6e472-c355-4fb6-857f-c2f67d407d01"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_04_handout.pdf"}}, "e881be5a-63d4-4f1b-a997-10fac13decea": {"node_ids": ["dbbe38c3-bf2e-4108-bf15-c347dee401c4"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_04_handout.pdf"}}, "d50c5b18-20d1-4d72-9666-c534ccfba462": {"node_ids": ["408c6a88-fd3f-48c9-9bd4-a59b52643002"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_04_handout.pdf"}}, "0cba35c9-da6c-48dd-b73c-684131dea98e": {"node_ids": ["08e345af-cf1a-4376-bc95-e1ce041ffa59"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_04_handout.pdf"}}, "f77de622-da90-4b79-bc65-9e201d49e4c9": {"node_ids": ["8149ef63-c626-4ba9-8054-4a976acb6c70"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_04_handout.pdf"}}, "863d7868-1ee3-4f05-9c72-7f1d46d6b063": {"node_ids": ["20632824-8363-4f70-8edf-a3eee67a88df"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_04_handout.pdf"}}, "1ebe5d60-f409-4869-abad-ae26365cdfbf": {"node_ids": ["fab85794-b25e-42fd-80a1-12ff155a0e75"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_04_handout.pdf"}}, "ae3d3124-9227-44ba-8f9b-cecee8cc8e90": {"node_ids": ["37c9f66a-a80b-4682-bbd1-50387e9a6a77"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_04_handout.pdf"}}, "c9158297-daf8-44a4-9e31-13e2b745892f": {"node_ids": ["15e06973-1d82-438d-b49e-f9de36ee61e2"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_04_handout.pdf"}}, "2e64b9d1-c1a2-41c4-9ceb-84f483cebdb0": {"node_ids": ["5312e1a3-76ba-4036-b69c-bf96300845e6"], "metadata": {"page_number": 22, "file_name": "data/finite_automata_04_handout.pdf"}}, "e6b87de4-a158-4cd9-9322-300f432d0fe8": {"node_ids": ["e80be110-19c2-42ba-b0cc-a1b73b00b842"], "metadata": {"page_number": 23, "file_name": "data/finite_automata_04_handout.pdf"}}, "ecfc2bb7-15c6-4952-a843-21830b4d4653": {"node_ids": ["9c54f287-5e66-40e8-9659-53c0b2d97e5a"], "metadata": {"page_number": 24, "file_name": "data/finite_automata_04_handout.pdf"}}, "abd01412-a2a5-4888-ab54-d9db0e07d473": {"node_ids": ["b7ae6035-c87a-4955-821f-dc4a5d75a757"], "metadata": {"page_number": 25, "file_name": "data/finite_automata_04_handout.pdf"}}, "9c5efe40-56b8-488b-9dbc-d097c4258d68": {"node_ids": ["14ec1988-cadc-4a9d-871e-e8ca9ef2a9c5"], "metadata": {"page_number": 26, "file_name": "data/finite_automata_04_handout.pdf"}}, "cc5aebbf-45ea-4b83-99f3-fff6be1134aa": {"node_ids": ["282bccf3-bb38-419b-b50f-ee9038aa356a"], "metadata": {"page_number": 27, "file_name": "data/finite_automata_04_handout.pdf"}}, "e2e91905-2d15-4b55-99df-347d83fca3c3": {"node_ids": ["51c8feb3-82b1-42fd-abb6-0ccc4087b037"], "metadata": {"page_number": 28, "file_name": "data/finite_automata_04_handout.pdf"}}, "fd7e1852-c001-4a86-9e09-d4121cee3ee4": {"node_ids": ["74e730ee-cd69-4dea-bca1-b54c34843a63"], "metadata": {"page_number": 29, "file_name": "data/finite_automata_04_handout.pdf"}}, "a94cf763-fe6d-4566-862a-410f8b003402": {"node_ids": ["4243b66a-f986-49a0-b011-80bc8d4afb8e"], "metadata": {"page_number": 30, "file_name": "data/finite_automata_04_handout.pdf"}}, "09b608c2-3577-4bab-bf3e-3a03bb544e46": {"node_ids": ["13b1e20f-33e4-412e-a321-883f3ce20ed3"], "metadata": {"page_number": 31, "file_name": "data/finite_automata_04_handout.pdf"}}, "5a6a7bc1-484f-4e11-a4a0-107029a66dab": {"node_ids": ["907d84ae-2ee9-4d8d-8ee9-09be239c6cf1"], "metadata": {"page_number": 32, "file_name": "data/finite_automata_04_handout.pdf"}}, "9ec3b70a-384a-4198-91a9-663c1bddfa62": {"node_ids": ["5503f188-0cae-411d-9af9-847ab0174b2f"], "metadata": {"page_number": 33, "file_name": "data/finite_automata_04_handout.pdf"}}, "8ae4db16-e834-4b63-aec6-9011df4709ee": {"node_ids": ["4d164f9c-d54b-483f-a407-f4fe77c1497e"], "metadata": {"page_number": 34, "file_name": "data/finite_automata_04_handout.pdf"}}, "663b1118-ae46-4bb4-b163-08946d6a6b1c": {"node_ids": ["5b151807-7f0f-4714-bcbc-2dddac11f51e"], "metadata": {"page_number": 35, "file_name": "data/finite_automata_04_handout.pdf"}}, "e7a0c189-4d0a-4efc-b233-349b6ab3c921": {"node_ids": ["8cfb7d45-d5a3-4bd9-bdef-6a0dc01a716a"], "metadata": {"page_number": 36, "file_name": "data/finite_automata_04_handout.pdf"}}, "e49e07c8-fa6d-43d7-bfe5-5ba466d699af": {"node_ids": ["e5cb788e-d634-4036-894b-bf41c5e5f0fb"], "metadata": {"page_number": 37, "file_name": "data/finite_automata_04_handout.pdf"}}, "6afb2918-29ff-45a0-a112-5c1e52ad55f8": {"node_ids": ["4365179e-5f3f-413c-8298-c317e4f6b258"], "metadata": {"page_number": 38, "file_name": "data/finite_automata_04_handout.pdf"}}, "7e2cd070-64de-47c6-9c59-08abdadc6e09": {"node_ids": ["9c25c837-77f6-4484-ace7-83bcf13359b2"], "metadata": {"page_number": 39, "file_name": "data/finite_automata_04_handout.pdf"}}, "466e5638-cb89-40c1-aae6-8b70d4e32850": {"node_ids": ["3a5e9ce1-f4bf-4d32-b294-55e1ca70dcea"], "metadata": {"page_number": 40, "file_name": "data/finite_automata_04_handout.pdf"}}, "92e08c50-d71b-465b-b044-385d76199562": {"node_ids": ["fe1eca56-8850-4f09-bd4b-025ccd7d7e7a"], "metadata": {"page_number": 41, "file_name": "data/finite_automata_04_handout.pdf"}}, "d9a6cdc6-aa63-4e03-bfac-55f337cc53bd": {"node_ids": ["4f59d11a-e974-40bc-b0ce-92426e2931a5"], "metadata": {"page_number": 42, "file_name": "data/finite_automata_04_handout.pdf"}}, "02ceb922-196e-4b77-bd0c-ddc4fdff10f4": {"node_ids": ["83c7e97e-5bf0-4fc1-89db-e9b58f9f631f"], "metadata": {"page_number": 43, "file_name": "data/finite_automata_04_handout.pdf"}}, "f1c8d298-ef17-431f-8f56-2836c26e0fe9": {"node_ids": ["3e5c864f-81ad-4b67-86b0-bbf441b39054"], "metadata": {"page_number": 44, "file_name": "data/finite_automata_04_handout.pdf"}}, "d5680555-aadb-4a8e-848f-561df3f363dd": {"node_ids": ["bc9e6995-a6b4-4297-b953-826146df086b"], "metadata": {"page_number": 45, "file_name": "data/finite_automata_04_handout.pdf"}}, "ec1bb5c9-11a4-4c14-a876-01b8e1173080": {"node_ids": ["4bb432bb-0036-4fb8-b191-a93268da5a7b"], "metadata": {"page_number": 46, "file_name": "data/finite_automata_04_handout.pdf"}}, "14924ae2-a3e0-4214-aff8-6d7ca98b05ec": {"node_ids": ["27c87490-8903-4584-91e9-0b20309c8153"], "metadata": {"page_number": 47, "file_name": "data/finite_automata_04_handout.pdf"}}, "52baa816-2fe8-40e5-8a39-b5f4cf652398": {"node_ids": ["480243ec-e1e0-4398-9e00-d017797b6b28"], "metadata": {"page_number": 48, "file_name": "data/finite_automata_04_handout.pdf"}}, "18804887-8c4a-4b35-ab3b-a9dfd1dc5514": {"node_ids": ["4c5fd6e1-d7da-4f95-8906-68dbe58cab01"], "metadata": {"page_number": 49, "file_name": "data/finite_automata_04_handout.pdf"}}, "b1386fb6-85ad-4fab-93b0-ed37d18f9451": {"node_ids": ["2600ac1f-ffb8-4399-a063-6f84fe276171"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "ce49c018-3db7-4d65-9830-422c565a4817": {"node_ids": ["b6c4ed74-24a8-46b8-ad0a-14801321d1ab"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "00161289-efef-4d60-b690-5ff8816fae25": {"node_ids": ["6e08f00b-6b41-4dff-acfb-6ffb4b3ae436"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "88d5f645-9e47-4148-84c0-be27114c5d59": {"node_ids": ["56400739-3c26-44c0-8bd2-7142c261ba75"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "7c78a765-cdcf-45c9-b74d-4cf52f493248": {"node_ids": ["2db5d772-2787-4f10-bc00-566545abef0a"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "377e8077-b608-4dcb-a58e-d01210294205": {"node_ids": ["879b5a55-51d6-4e52-9fd5-f0886a7c0dff"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "90127588-2851-43ad-bfdc-7b4ee5ff6f31": {"node_ids": ["0911a226-1745-42da-8b71-ecd4c5a79d47"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "f888be40-ef31-4678-ada5-3f4e9ba312d4": {"node_ids": ["80b44619-c59c-4c0f-88b6-c3cfb1b041ea"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "4a480917-fbdc-4394-b2f9-c10c69209118": {"node_ids": ["6695fdc7-383b-4e6a-816c-46ff4b5b994d"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "f4d4f92b-2a1d-4201-bfb2-eb009729cf89": {"node_ids": ["0a59c23a-2c1b-4806-835d-3a530b468048"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "425d87cc-2396-4503-8651-83b94db81b45": {"node_ids": ["6eeb919d-3ee1-4967-98c1-ed8556a4d76e"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "4c48cbe9-d0ee-4a2a-85e8-51433af36bc5": {"node_ids": ["ba2c4128-8dd1-4854-9011-e157887e0a9c"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "3a9f053a-b3ea-4cbb-8c2a-527a9290fff6": {"node_ids": ["542af333-5cc0-46a8-a2e2-a4ce683caff8"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "162622bb-e6e3-4ea2-a206-05017df4dccf": {"node_ids": ["b0f2ba1f-464d-4bea-b877-0c15413e1ff0"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "7ea18c94-16a4-433b-b258-afafb3325928": {"node_ids": ["14ce5567-2462-4a6b-9ed2-6550067a22b0"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "28116bfc-9dbd-4646-b790-3515969c56fa": {"node_ids": ["91803b6d-c0fb-421b-b469-46557b520786"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "5b79bcd2-ef15-4a11-94f8-d60efa66e83f": {"node_ids": ["cb9e4f26-8949-4aae-b263-31624afd9754"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "3e0e87d6-522a-46c4-93a6-541a6d01ffae": {"node_ids": ["8469eb3d-384c-4412-9763-6ae57f3911c9"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "620974e6-9c9c-45be-b6c5-5db4d79733ef": {"node_ids": ["b06faa2f-2108-4bea-b2a9-48a9f2d5b42e"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "77a9814c-c35e-452d-974b-e5515c763f50": {"node_ids": ["786a6ff9-7b09-4514-b924-b95874f53c2b"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "4d1f5928-bda4-4c0b-984f-f109d0da0903": {"node_ids": ["4a0d0678-7365-41bc-97cf-bef5e5d5bf42"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "00794d28-190b-4000-a8db-e4576a615c22": {"node_ids": ["bf7bdd8d-f1a4-4747-b68a-d8ea0a6a3155"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "8217f657-4b06-4560-9387-9a9ea32eb7f6": {"node_ids": ["01fe24b7-4d1d-476a-bae6-b47510460ece"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "1201afc4-3036-4df6-bf35-e670a682b8f1": {"node_ids": ["96071e48-6285-4eca-b7b7-6200394b6670"], "metadata": {"page_number": 1, "file_name": "data/turing_machine_02_handout.pdf"}}, "d60d05cf-c748-4bb6-853f-888add44bd73": {"node_ids": ["a03c8cf9-47a9-4aaf-89c0-51176e780611"], "metadata": {"page_number": 2, "file_name": "data/turing_machine_02_handout.pdf"}}, "53ec7105-a5c5-497c-9bdf-510a748c9911": {"node_ids": ["63bfe296-32d0-47b9-ae54-06b9084a44fb"], "metadata": {"page_number": 3, "file_name": "data/turing_machine_02_handout.pdf"}}, "b1fc1513-a205-4f29-9d32-a431aa6be6b7": {"node_ids": ["3b72e02b-b704-4510-8b8f-c3fcfa00ddd2"], "metadata": {"page_number": 4, "file_name": "data/turing_machine_02_handout.pdf"}}, "fc9653a0-fb91-484c-8945-f46af6b63c09": {"node_ids": ["22cc71d0-97d4-48f4-a111-423f3628af9b"], "metadata": {"page_number": 5, "file_name": "data/turing_machine_02_handout.pdf"}}, "b9053f8d-0a5a-4446-9739-ab5072c96ad0": {"node_ids": ["5bb19f60-a4b3-45a3-9bf0-f2ae85b2ae72"], "metadata": {"page_number": 6, "file_name": "data/turing_machine_02_handout.pdf"}}, "56e57d9d-6b90-4e60-bc1b-cc1c605370c9": {"node_ids": ["6eb26b5b-09e5-4998-b563-d12ea60b6cc3"], "metadata": {"page_number": 7, "file_name": "data/turing_machine_02_handout.pdf"}}, "53fbc237-cfad-41fa-a81e-e4391be04eda": {"node_ids": ["6f3c6cb6-f870-4130-aaa4-3a9c69532492"], "metadata": {"page_number": 8, "file_name": "data/turing_machine_02_handout.pdf"}}, "67846276-9d0f-4984-9f17-6c94abea1215": {"node_ids": ["135c0270-a941-4e15-b615-704cc24a99d7"], "metadata": {"page_number": 9, "file_name": "data/turing_machine_02_handout.pdf"}}, "7aa7e20e-6184-49b8-babd-79f086856f9a": {"node_ids": ["4e6aec91-1f7d-4a50-8394-a523bc2154d0"], "metadata": {"page_number": 10, "file_name": "data/turing_machine_02_handout.pdf"}}, "651ef24f-fe22-4ef5-acfa-f7bdb8341b3d": {"node_ids": ["b52e53d7-6073-4744-a0b8-6ded95795e70"], "metadata": {"page_number": 11, "file_name": "data/turing_machine_02_handout.pdf"}}, "70a96e39-d6f9-4fa3-a802-95cd305f4ff1": {"node_ids": ["381f303a-acbb-4544-ab90-dd4f3a4663a8"], "metadata": {"page_number": 12, "file_name": "data/turing_machine_02_handout.pdf"}}, "f497ee38-6c98-4e34-b262-3c9489a5a5e4": {"node_ids": ["e89873b8-26a2-43bf-a108-34c00eeea315"], "metadata": {"page_number": 13, "file_name": "data/turing_machine_02_handout.pdf"}}, "7c49de1e-9f22-47ad-926e-cc265a113ecc": {"node_ids": ["d6215dcd-ad20-4e6b-b5c9-f96eca613e6c"], "metadata": {"page_number": 14, "file_name": "data/turing_machine_02_handout.pdf"}}, "a23060d3-7fc0-44c1-935f-bf717ab30ed6": {"node_ids": ["087227f5-a237-4266-bb56-0f25d2cc9018"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_01_handout.pdf"}}, "e72add08-a51c-4cc5-9399-9ce9efdd9b78": {"node_ids": ["40b64948-51ce-44b7-8876-7b44d5152ffd"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_01_handout.pdf"}}, "a9ba1f44-d982-4669-9fca-ce7b7000beb3": {"node_ids": ["ebed8870-e638-4290-bdef-302394fb5c98"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_01_handout.pdf"}}, "aa136feb-6535-4523-88bd-e76550c00f9e": {"node_ids": ["0aaccdbd-bb70-4c75-8044-6a4835b7d237"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_01_handout.pdf"}}, "75886ffe-9a16-4591-b4f7-5452f85b58df": {"node_ids": ["27f5085f-cb67-4f53-9d85-82e0b952990e"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_01_handout.pdf"}}, "4f6d7880-bd44-4a73-ab9b-daeb57812aa1": {"node_ids": ["2a0a2b3c-b914-416f-88e0-92c83b08be43"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_01_handout.pdf"}}, "21809133-b190-4792-8c9f-632c9340f90c": {"node_ids": ["7dc7abe3-3450-456f-a4a0-75a585904414"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_01_handout.pdf"}}, "ffd3a7d7-069c-4ecf-a4b8-dbe55bb64b01": {"node_ids": ["2a0452cd-194c-4dfd-9357-1e56b85665f9"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_01_handout.pdf"}}, "abfe0c50-9e30-4175-b51d-5f07b502f632": {"node_ids": ["5180a6c2-bc69-4b09-941b-42b8267d0bf3"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_01_handout.pdf"}}, "43fac8c0-4b29-4cef-a6ac-7d1f35fce8c8": {"node_ids": ["e0a3b9aa-176a-449d-b2bc-6b96007f9cae"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_01_handout.pdf"}}, "4fb978c0-d241-4981-aec2-ca2db0fcaeaf": {"node_ids": ["26ba0906-e8cf-4cf8-abea-c7b2050930b7"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_01_handout.pdf"}}, "29578f41-64e3-48e5-9024-8a54483e265b": {"node_ids": ["ce3f448c-0cae-491b-8a24-64fd97bae219"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_01_handout.pdf"}}, "4c979f28-6faf-45d1-bd31-3366faa35b11": {"node_ids": ["b98e5633-abfb-40e3-9cc7-f0c28f3fb9a4"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_01_handout.pdf"}}, "e1cb3f9a-e7de-47fa-afb6-e01d58ccd4b9": {"node_ids": ["d6be9560-b049-4c4d-8633-4e4388933db8"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_01_handout.pdf"}}, "c5266d44-a3d6-42cf-82dd-0836f0f7105e": {"node_ids": ["4d404ef2-14e2-4016-9160-ae1b12f2e9a9"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_01_handout.pdf"}}, "67766adf-526c-473f-b29d-bc8b38fa515a": {"node_ids": ["97ad144d-dd6f-4975-8f99-e204ddd97cd6"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_01_handout.pdf"}}, "1239ecc3-4088-499b-a4be-e881a437770f": {"node_ids": ["e0f220a3-71cb-437c-ba0c-a174b3668b84"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_01_handout.pdf"}}, "d7cbe54f-6253-4253-a605-c578eceabd98": {"node_ids": ["40cbf2fd-29e2-4ff0-b6dd-07c0060d9ea4"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_01_handout.pdf"}}, "1915f845-6e52-49d1-97d2-b62d0c552310": {"node_ids": ["7b5ebe00-44fb-4f5b-9a01-66cf702fc1c2"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_01_handout.pdf"}}, "aeb70f03-ef30-43cb-8d7b-034826b0320f": {"node_ids": ["bd0e6f61-5219-4b4f-8892-27bab60550eb"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_01_handout.pdf"}}, "33bff7e8-f3c8-46ae-aca6-500cc2e861c0": {"node_ids": ["d2838f67-36f4-4831-a014-b857337be30b"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_02_handout.pdf"}}, "33537690-b4d2-446c-b019-e412a21967ad": {"node_ids": ["ed39f245-795a-4ec8-9158-da35347232c5"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_02_handout.pdf"}}, "268a753e-cd35-48fb-87f4-2e85619cdbfe": {"node_ids": ["2e0f219a-fbfc-4c6f-a38e-19e2889727c7"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_02_handout.pdf"}}, "be119211-3583-4fc9-aa84-6f25bbe0590b": {"node_ids": ["54893ab6-15da-47c9-9580-cd8a73e0b774"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_02_handout.pdf"}}, "b47aa7d7-b12d-4c11-8bee-de58e5f3cf99": {"node_ids": ["9354e623-9464-430a-85c1-ed1a0a685825"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_02_handout.pdf"}}, "da03ca81-8f56-44a7-ad5a-4b3bc91da4ba": {"node_ids": ["1d42ac74-e520-4691-8b0c-98c26f6390bf"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_02_handout.pdf"}}, "3416562b-b5c6-4c1f-a58c-645041792890": {"node_ids": ["08d1d904-bd85-476c-ba49-7549b52c143f"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_02_handout.pdf"}}, "0e1c4cce-b403-4faa-a41d-13d9dee922d5": {"node_ids": ["a355cba3-44bc-4b3a-83cc-7e65eb817512"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_02_handout.pdf"}}, "2ee7c1f1-08ad-466c-a7a8-5a529b8e6ee6": {"node_ids": ["bf5ff473-f3bd-45ec-9e7a-0eeca807cf7e"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_02_handout.pdf"}}, "49118fc0-c987-4507-addb-73640285d570": {"node_ids": ["8cd5aa21-0241-4f9f-b8ca-cc2f8ef438f8"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_02_handout.pdf"}}, "02d0ce3f-56e9-4966-bc7b-fd1d2589d295": {"node_ids": ["69dae294-3216-4119-a10a-c7bb69dd35f1"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_02_handout.pdf"}}, "275bed04-9789-4330-92b4-64cc8e7d3a29": {"node_ids": ["90d939d0-f4a0-41b4-a27a-4c47a0f636ef"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_02_handout.pdf"}}, "b9b439b9-66bc-47ad-b55c-efeb8d18490c": {"node_ids": ["18f7c5e8-a326-43fa-9320-7f64b85b3a91"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_02_handout.pdf"}}, "f0703d5c-6799-4917-90a1-103fad71995c": {"node_ids": ["6e93af0b-1548-4d2a-ab0d-1543a6e22af9"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_02_handout.pdf"}}, "fb90d954-52f2-440d-bf2a-3d472c8126b5": {"node_ids": ["e8013bd5-990e-4d6c-af0b-41662875b89e"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_02_handout.pdf"}}, "42522ea5-c891-4f9c-b164-fd0c950ddac0": {"node_ids": ["2335c1bd-979a-4955-a866-19da3c341988"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_02_handout.pdf"}}, "e27e0b80-9c95-4db7-a28f-d1bad7cf1e4a": {"node_ids": ["ae3dbe2a-c5e2-4c6d-b147-a384b340e9e8"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_02_handout.pdf"}}, "02dedd44-c93f-451f-90c8-c93c4619bcee": {"node_ids": ["10ad9e4e-1e48-4b92-b804-d134f671fc21"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_02_handout.pdf"}}, "2004be53-d697-4701-b9e9-4e860e877b1b": {"node_ids": ["64c67597-ebd6-494d-8dc9-4b3ac4a18833"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_02_handout.pdf"}}, "90e56275-c3e3-40a1-9482-8550ba5323f0": {"node_ids": ["874c2b98-79a1-48a7-bcea-cde96aa66863"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_02_handout.pdf"}}, "e1692368-fbc4-4cce-8e92-31446be6d163": {"node_ids": ["62f33d6a-d279-4ba8-98cc-89a9c3fd415f"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_02_handout.pdf"}}, "f5d499ab-869a-40d6-94ae-93acf0a76d5f": {"node_ids": ["f0095c55-0c0d-430f-8445-dcfe95b820b9"], "metadata": {"page_number": 22, "file_name": "data/finite_automata_02_handout.pdf"}}, "66271a71-762d-41d1-a48a-b64ecccc8575": {"node_ids": ["12441627-7081-4502-aa8c-a48eb0f873c3"], "metadata": {"page_number": 23, "file_name": "data/finite_automata_02_handout.pdf"}}, "bb822432-da73-4cb8-aa49-791fdade5749": {"node_ids": ["b281dca1-cd39-4065-a83b-8a211768ca28"], "metadata": {"page_number": 24, "file_name": "data/finite_automata_02_handout.pdf"}}, "f5741d7c-21a6-41f5-9738-575ca347de0c": {"node_ids": ["32028989-b629-4e4e-ab5c-c5551c1ac592"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "c7de38fd-d9aa-4c33-88ec-a44be9ff7b9d": {"node_ids": ["e49ddd5d-01f3-48f1-9ac6-c9dc783179a3"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "fcd0446e-c5a4-4381-9364-3d1156892065": {"node_ids": ["4dc4830f-ff65-450e-b281-feb4d5e76249"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d859ca18-b279-4b2c-9da1-f2f307c69980": {"node_ids": ["b1e59573-5fad-48ae-9ddd-3c070c6f789a"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "68f97990-1b07-476b-b1aa-dcde472bf156": {"node_ids": ["1c277a74-fc74-4126-bf3b-05ba93e183fc"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "8715f287-f413-404e-89b7-7d16ac6ff86f": {"node_ids": ["473e6e07-1bb8-4d52-bb09-3f90a64fdfd5"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "ff6839ec-42bd-4037-96c8-bafd3557384e": {"node_ids": ["0b025cc9-77e7-44f5-9cd3-de54d0a6aad4"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "826ce114-e57e-492d-9d36-db999b785c38": {"node_ids": ["1118c353-18fb-483a-8671-6a195dfa9e0f"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "34562b9e-41b0-4c55-b91c-a8e68e78c5de": {"node_ids": ["1022f269-ec9e-43d7-9430-c959108fbf5b"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "652b823a-51d6-4dd5-8a32-a9439ec86d14": {"node_ids": ["64a55c16-2ca8-46f2-9df6-f0446a1f8a4d"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "5c97d1bd-fb04-4323-85fc-1cb5de8a908e": {"node_ids": ["ec1ea724-9db0-4b4c-bc81-3033ca2aa3a9"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "f2b5f1a1-6867-41fc-8227-8ec99b6cea22": {"node_ids": ["16ccf850-39d9-468a-a6c7-e101b61a4fa7"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "177e0539-83a6-4ee6-b85b-8120da8f2bcd": {"node_ids": ["0511dd64-02e5-435d-8358-a45954132916"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "5d4ffcbd-0aa5-4ecc-8f27-26f90df73d2d": {"node_ids": ["4eb73dd6-245f-4699-be61-33c5dcad8f6d"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "14b3ded6-2db4-4f6a-8be6-d6092bcfce2a": {"node_ids": ["be86bcee-6fd6-45f8-a723-7136f6d86f33"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d224812f-ed2c-48b6-8b0d-4b85b6056a6d": {"node_ids": ["d5bdcc19-7352-42fe-bb3f-6515f67612f8"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "65ffad4d-a233-48b3-a13e-ecf477ded187": {"node_ids": ["13ab6c13-c02c-4a99-9110-5dfafca14a4b"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "19341d89-e6ff-4743-940c-b22f9a3293e5": {"node_ids": ["251c8e79-c925-4387-9cad-7462c94f0383"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "e8c640c8-7e65-4cca-9734-1bd2a956f7e7": {"node_ids": ["878b61fa-d1d7-4c4e-936c-ec9995cc92d7"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "e614d752-bcf5-49a5-9fc9-7883c532d2d9": {"node_ids": ["a6ba10e8-ee3c-4199-98f2-a3406d8f17a6"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "dc2a682f-573e-40c2-9bcf-343269d2a6dc": {"node_ids": ["c0b8b459-ef0b-4173-b93d-cfa855c0d6e9"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "94174a27-1550-49dd-bc2e-f888f9496523": {"node_ids": ["9d03caec-492b-42c8-a666-597aed8a1ff6"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "6db89246-18d0-47d7-85af-16b2dc31cd15": {"node_ids": ["024d6068-4e46-43d9-8a3b-7c1598e98d50"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d84d45e6-be5a-42db-a647-b6cc84755468": {"node_ids": ["6c5e7bcc-e38e-47c6-b36b-cbb890ca402f"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "5eb418ed-3041-4ad6-8bd9-b8129cae2861": {"node_ids": ["ebed2dc9-9faf-4ec0-97b7-917c0f01cfda"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d01b286d-3cce-46f2-a9ae-f0708d27e75d": {"node_ids": ["6f40f275-021e-4f4a-a7ef-8c12671097f0"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "bf16fd0c-21c0-41d5-93fe-5b78e601078a": {"node_ids": ["e445d215-3d9f-4f88-8b66-b54af187dbfb"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "a37f829a-0fd3-494b-b314-c279ba3c2d65": {"node_ids": ["86d1181b-979c-456a-ad72-4c6db3942256"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "b9d7d631-e605-4c87-91b3-8f92585b11f5": {"node_ids": ["e06064ef-047e-4e1e-bf8e-47ed84133f39"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "1d8e5a67-9ec0-4f33-afd8-5a97a8e192c9": {"node_ids": ["62861af4-7d71-4d9a-9a3b-a03f2506e9ae"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "bb591a49-da5c-4f82-9898-0d2a0d9ae501": {"node_ids": ["7b42f4d8-434d-4f8f-a038-86e5566150d0"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d4f282e5-53b9-4e70-9933-c9dbe963e10b": {"node_ids": ["3b894284-4fab-4e8e-bb3d-3b9d35e1b2b0"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d25d7bf1-7339-488a-8b46-bb0749a5166f": {"node_ids": ["9c693b31-9619-4fe7-aefd-3fdf2228f520"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "58e2f8d2-0842-4902-8e5a-b73208e12a9e": {"node_ids": ["c0ec1376-4987-438a-a9a4-177dad514475"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "8ac57253-6f5f-4cfa-a9ec-2ea74903388e": {"node_ids": ["dc8e23af-ecc1-41b4-adad-ef806f7725d3"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "57a131dd-3f13-475a-9428-926232d89fb6": {"node_ids": ["cadb9337-db01-4690-859d-636e48de1412"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "dd01422e-34d1-47ca-a0f3-c80b3ff6d0fe": {"node_ids": ["56c22d83-d5bf-4bae-a42b-88e30e05a718"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "6a6baab4-2547-4cbe-b1fe-465c0d949762": {"node_ids": ["d849bfcb-e3c9-4ea3-9353-5bcee8f6ee11"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "2bae00d6-f4c5-4561-84c3-5307560822fd": {"node_ids": ["f148cc4e-f8d4-466e-823d-fa133585c6fd"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "0ab8f1e7-1fb0-4774-9f93-2894a8287369": {"node_ids": ["3ac097ec-9d99-44ff-b398-253cd94d58ae"], "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "f839c0d4-a929-4b35-93db-418d7729f6bf": {"node_ids": ["53f6fb90-0138-4383-9dc5-2fe86404337e"], "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "010435cb-5b2e-4b28-b5e8-54c284e1a5e3": {"node_ids": ["85f80be4-2340-4355-a9ea-39edaf419b00"], "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "80490ea4-ef44-4b7a-bf3f-5dbb4800cd23": {"node_ids": ["8b484003-2a3b-4c7f-9e7d-8ff656f5d12f"], "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "e6f6b118-d604-46b6-bb81-dd86f1c4adb2": {"node_ids": ["517dd0e2-62dd-43eb-9626-26fd6ebff32e"], "metadata": {"page_number": 1, "file_name": "data/turing_machine_04_handout.pdf"}}, "3a11fae2-a59c-4767-9fa0-186aee0f6b3f": {"node_ids": ["18d0ebe2-2ed2-4c55-9156-c7725997e9bd"], "metadata": {"page_number": 2, "file_name": "data/turing_machine_04_handout.pdf"}}, "8606e7a6-1ab0-405e-8b62-e0fc6586d593": {"node_ids": ["ff45e917-6a6f-4e6c-9984-56af5f016d18"], "metadata": {"page_number": 3, "file_name": "data/turing_machine_04_handout.pdf"}}, "76196a68-7981-4c7d-945c-a04499e66762": {"node_ids": ["aab1507b-06bc-4478-bf03-7caa448ebf84"], "metadata": {"page_number": 4, "file_name": "data/turing_machine_04_handout.pdf"}}, "d02f9b46-091b-4c7b-aae2-fd39ccae1af6": {"node_ids": ["66fac2da-c6fb-4393-b8ad-f46a29563380"], "metadata": {"page_number": 5, "file_name": "data/turing_machine_04_handout.pdf"}}, "2f203be7-76b2-46a3-8f4e-3444a0b499a2": {"node_ids": ["b321d392-42e9-44a5-a351-9d695a62bd1e"], "metadata": {"page_number": 6, "file_name": "data/turing_machine_04_handout.pdf"}}, "daed4d87-e851-41f4-98a6-f0653081d48b": {"node_ids": ["559f7ea0-9b39-422c-8dfd-e8b4ee970962"], "metadata": {"page_number": 7, "file_name": "data/turing_machine_04_handout.pdf"}}, "665a0a77-502b-4c27-9467-9d5874b27483": {"node_ids": ["2d8abc21-9c87-4ca7-bea9-1a92153d3060"], "metadata": {"page_number": 8, "file_name": "data/turing_machine_04_handout.pdf"}}, "ecc51507-0ff9-4e49-a19f-5af643f641ac": {"node_ids": ["5c9d901b-9fa1-48e1-b569-6b714e9545cd"], "metadata": {"page_number": 9, "file_name": "data/turing_machine_04_handout.pdf"}}, "636b8d85-8dcc-48f6-acbe-d300c630e506": {"node_ids": ["ab1f283c-43ec-40bc-ad7c-d82404678886"], "metadata": {"page_number": 10, "file_name": "data/turing_machine_04_handout.pdf"}}, "ab0fbfe6-9386-4a48-90e1-730abead36de": {"node_ids": ["4dde2cd1-a05d-445d-9aa7-d4354549166d"], "metadata": {"page_number": 11, "file_name": "data/turing_machine_04_handout.pdf"}}, "33c4be35-9853-4469-8d78-c9ab83e01723": {"node_ids": ["56d2de3b-929d-478b-a3e7-59240cf8a2c2"], "metadata": {"page_number": 12, "file_name": "data/turing_machine_04_handout.pdf"}}, "78bdb8dd-4de2-43a5-b2a3-d860c7695619": {"node_ids": ["03050609-6a20-4dde-881e-6297414e5970"], "metadata": {"page_number": 13, "file_name": "data/turing_machine_04_handout.pdf"}}, "f744805b-9538-4ab1-a894-c961027efb75": {"node_ids": ["4e1937f5-e3ab-4d63-93e4-fd0b94677198"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "ce9169a6-62a6-4cec-94d0-508cac215a6b": {"node_ids": ["2699b800-cda3-489c-a834-9a8efd56d419"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "78548f55-5957-4fe2-83aa-ec57754083a8": {"node_ids": ["5d0d1fb4-423d-49c4-835d-91c15be1a38b"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "5771ff67-72bf-4251-930b-833d1764632b": {"node_ids": ["15f4e7e6-1912-4d52-a2a4-375c25cdf137"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "bca8fedc-c8f0-422d-a4b8-65ae810bce59": {"node_ids": ["72b44502-e75f-4b73-ab8b-07667bcfd5a5"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "f4bd7278-bc46-4029-a1f9-914ffd8a4b2f": {"node_ids": ["b1b920ab-3a0b-462a-9076-88709bc3b42b"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "02c96afc-6870-4d9f-90f4-a3ae2e6820cc": {"node_ids": ["61d06b67-33f4-4d8c-a89d-34ee655714ab"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "a373aa68-e184-4dab-85df-867937dcdb98": {"node_ids": ["d3bfdd2b-27c9-4125-b1c7-6213fcb87e2d"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "319afecd-f575-4d19-8c70-94ef80042c83": {"node_ids": ["d4a85794-44ea-46dd-aee5-0382241a20ac"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "1b085ac9-c481-4f39-bb59-45942753f3d1": {"node_ids": ["394f9e67-46a2-406c-a455-accb5443e4b5"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "3f412286-2258-4001-a60d-c422d6a67fcd": {"node_ids": ["44459b47-9047-4395-853a-6e36b2b1e41b"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "f7d6531d-80dc-46c7-8574-0931175abba8": {"node_ids": ["55909789-5a47-427a-999c-93cdc3b2b209"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "233401e6-f50b-47ac-a580-ec26f54046c1": {"node_ids": ["9ad11277-0150-498a-bd2f-ceba9d200658"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "b72b3a82-e2da-481a-869c-45dab9c4acf2": {"node_ids": ["07981ea9-a543-4553-ad56-832cdbcc5071"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "c289301e-a55b-477f-808c-d2e7a332b617": {"node_ids": ["fdea6b30-d46b-4b51-9f21-09c7f4b5d78f"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "fe91f5e5-47d9-4946-8247-4381d7af140f": {"node_ids": ["eb5c20d5-e5ee-4c2b-a06e-350899557cc7"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "1bd6ad7c-57a5-47e3-848c-5eff3697a2dd": {"node_ids": ["93ba9d86-f512-409b-aa4f-97ea0841f726"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "ab69c291-5e76-470c-ae69-41db01d955a9": {"node_ids": ["66367a1a-ef01-402d-aca3-aa13825f4ebb"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "6de3ff5c-dedd-43b3-8993-8f911cad9136": {"node_ids": ["4da3fd16-b28b-4468-a2b5-6bad720fb220"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "36fece7e-765a-40e7-afc6-a0c271429538": {"node_ids": ["8a8e9d24-b160-4885-8ce0-ddb32f41cffb"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "51620b85-d294-4618-bc89-3360b5d96844": {"node_ids": ["8e533577-1f58-4510-a775-1a3d3aab5f54"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "bfed46f7-e04f-4383-b56c-5bbc6b261074": {"node_ids": ["acfd7d91-933f-4983-8f9a-6125b45c8bbf"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "0cd0464b-2426-4762-a58f-49c3a35215e1": {"node_ids": ["051652dc-47a0-4ce0-83b9-8b57321a1fd7"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "931792e3-1793-4ba4-9d25-a5928d5be837": {"node_ids": ["0bc19176-b3c5-4d76-9931-28e2c5824b65"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "a4bd9921-3209-4389-a9a9-965f4f880848": {"node_ids": ["562fb4f1-b811-4904-b989-38b54fe38cb0"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "9af38552-175d-47f3-a805-7633c6cf22d8": {"node_ids": ["56d09198-2b4a-40b9-8132-d7972e4e39b5"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "e74a7022-c0cd-4f44-9372-e7f14ab9b4ef": {"node_ids": ["c61cf55d-77fc-43ca-b28f-3bde05f6eb13"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "ad3f9dde-9beb-4e79-bbed-9df2a49c3517": {"node_ids": ["5a338ade-d4f6-4e45-bc97-eae2f3119da0"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "82927522-c49d-4a56-b7fa-5c7e73f63991": {"node_ids": ["54cd775e-692f-4c7f-95ec-6d4e8b504067"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "dce37b19-836a-4c32-ac38-be196aca2032": {"node_ids": ["ba628075-6751-4052-8b1a-73c6489d90f8"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "ebd8a5ff-9822-4ebb-b087-f770afb0fac4": {"node_ids": ["6f27d851-b93d-4854-9b50-608647b18752"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "a3a56610-650b-47be-9ff1-dbaf14af3873": {"node_ids": ["38576720-f7de-46e7-8d6f-3b32821b6452"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "c5f7eca6-1fd2-4df4-b35e-274d93e653b8": {"node_ids": ["42e1512a-3c57-4c17-a462-3a8e95a3f4e3"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "21a904c2-1e46-453b-b879-d25ada42b096": {"node_ids": ["3b4f099e-c867-4e60-aa97-28895a0b89c0"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "028e5875-bc18-4263-8cdb-ae58b3482c2d": {"node_ids": ["b79dec40-0d50-4804-b873-aea79f5a7261"], "metadata": {"page_number": 1, "file_name": "data/turing_machine_01_handout.pdf"}}, "a0321963-8ff2-4ab5-8fde-6e17f4525236": {"node_ids": ["4c68e75b-b5bb-427f-a2d3-b625bc1118b2"], "metadata": {"page_number": 2, "file_name": "data/turing_machine_01_handout.pdf"}}, "2dd8238f-b5c9-44cc-83ae-7c10f4f43b3f": {"node_ids": ["03c8e27d-d856-4990-a6b6-276f4a095684"], "metadata": {"page_number": 3, "file_name": "data/turing_machine_01_handout.pdf"}}, "636fdb76-0a49-4e1a-9423-0b0c8eb670de": {"node_ids": ["4c00521c-6644-4cb4-b861-a82415284568"], "metadata": {"page_number": 4, "file_name": "data/turing_machine_01_handout.pdf"}}, "b82ac977-b61f-48dd-9704-799fd90d58c3": {"node_ids": ["5af2408d-91dc-454d-b1c7-6be79e171657"], "metadata": {"page_number": 5, "file_name": "data/turing_machine_01_handout.pdf"}}, "531afd3a-2533-4db9-9fb7-3b101ce460ed": {"node_ids": ["da9aa4c3-be4e-40f1-8ac0-2849f6615b27"], "metadata": {"page_number": 6, "file_name": "data/turing_machine_01_handout.pdf"}}, "c178e692-3bc8-45cf-b811-ae4b941afedf": {"node_ids": ["79833edd-7f38-4578-871a-ec5c2977af40"], "metadata": {"page_number": 7, "file_name": "data/turing_machine_01_handout.pdf"}}, "de92c691-5b1f-4be9-b182-ae35ad06a0af": {"node_ids": ["23a868d5-94ea-4364-b2e2-dad0e0ffd90e"], "metadata": {"page_number": 8, "file_name": "data/turing_machine_01_handout.pdf"}}, "07528021-ec45-453b-a31c-64b1153a5c7e": {"node_ids": ["b6b55b96-a7b8-4112-9e40-424c224e9543"], "metadata": {"page_number": 9, "file_name": "data/turing_machine_01_handout.pdf"}}, "2db1ef4f-ce24-45a1-ae1d-dcb103d839b2": {"node_ids": ["e936f96b-a97c-4a9a-b258-880ab4a9ce69"], "metadata": {"page_number": 10, "file_name": "data/turing_machine_01_handout.pdf"}}, "67967a6b-5d6a-4cbb-82a6-3b0d00479d89": {"node_ids": ["fa9a01ca-8177-42df-861c-6eab9431dc4a"], "metadata": {"page_number": 11, "file_name": "data/turing_machine_01_handout.pdf"}}, "73469d13-ed85-4f0b-b88e-785dccd018c1": {"node_ids": ["8f734291-67c8-454e-a6b7-842d005e4f81"], "metadata": {"page_number": 12, "file_name": "data/turing_machine_01_handout.pdf"}}, "9d23310a-def1-4b7a-8114-8751cd93b046": {"node_ids": ["10c63e07-62db-42d1-9277-ab5fe72f4d92"], "metadata": {"page_number": 13, "file_name": "data/turing_machine_01_handout.pdf"}}, "8a816488-4bd1-430d-9407-e4d437b06582": {"node_ids": ["e7c77766-e764-441a-bfd8-7cde60d718bb"], "metadata": {"page_number": 14, "file_name": "data/turing_machine_01_handout.pdf"}}, "31ef71f7-b42d-4df0-921c-fe65f7d441d1": {"node_ids": ["f1fe9bc4-d170-44d5-b12d-b28d06924c5d"], "metadata": {"page_number": 15, "file_name": "data/turing_machine_01_handout.pdf"}}, "bb034993-4e86-428a-9636-2c111a10847d": {"node_ids": ["e8f88aac-40a7-4e32-b8b5-6eca80c43ef6"], "metadata": {"page_number": 16, "file_name": "data/turing_machine_01_handout.pdf"}}, "2e94eac8-3942-47d0-8582-eddd303b488d": {"node_ids": ["4f68964d-745b-496b-8ba9-5d2a55f86b2c"], "metadata": {"page_number": 17, "file_name": "data/turing_machine_01_handout.pdf"}}, "d7460287-2399-4db1-b08a-297053c179fe": {"node_ids": ["05757e2a-afc0-4c3b-ab26-5d72f8442d0c"], "metadata": {"page_number": 18, "file_name": "data/turing_machine_01_handout.pdf"}}, "5d358f44-9364-4eba-9b06-2ffbdb4db936": {"node_ids": ["8f46aa61-3cd9-423d-870a-ee0049ba506d"], "metadata": {"page_number": 19, "file_name": "data/turing_machine_01_handout.pdf"}}, "2974e4fc-aa26-4792-a3c0-634dbaee5c8b": {"node_ids": ["13dc0332-446c-454a-8d66-7c8f2940ef6a"], "metadata": {"page_number": 20, "file_name": "data/turing_machine_01_handout.pdf"}}, "c718d7dc-0091-418c-ba49-268c0e532bc9": {"node_ids": ["4e1ff16f-88dd-4732-bcfb-b4e24a668348"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "efbc3004-ecb9-4354-bcdd-749a3d8cf57e": {"node_ids": ["a3c57bf1-7a1e-4b4f-a295-20d652be88ee"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "776c473c-2b18-47aa-8353-f9750d03e31a": {"node_ids": ["2f8c9461-f4c1-4bc4-b086-b52837e9dde5"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "87df2992-a843-4dec-a768-3b5e0d3e0257": {"node_ids": ["dbadd120-e10b-4298-9306-83ac98642d4e"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "90b55eb8-e599-47f4-b7f7-f63a12a7a2ea": {"node_ids": ["dac7922d-aba1-4ff2-942a-05dc43b1ba99"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "57cfb6a9-1246-4ea0-b824-e43d77405411": {"node_ids": ["adc8666e-fad8-425a-83c6-5461da464bd0"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "9da8e4e2-0e74-4996-8e3d-ee3c184080d5": {"node_ids": ["0e1cff9e-34f9-465c-84da-7bfdf53811ef"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "3fb6a6d7-8047-4129-9f16-c234707eed4f": {"node_ids": ["f7a2b0f2-081b-4af5-a504-c22b7219a113"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "c17cf19a-c752-4743-81ba-ab582098c608": {"node_ids": ["ca4f43e5-6590-41c1-95a6-d781981cb427"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "4d1f38c9-90c6-456f-bad8-0d543be10876": {"node_ids": ["8dd957f7-830a-4d9a-b399-52f58d480773"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "7f31de39-1a67-4001-bf9c-d25ed478162a": {"node_ids": ["8394def2-28e7-466d-9aac-fa6ae3d81566"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "0030bf3b-db5b-4058-9373-d719107e4a1e": {"node_ids": ["8618a457-caf5-47f8-bc2e-8b6962354f18"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "688dcb2c-bea4-44b7-8d74-4b05fc49dd55": {"node_ids": ["43d95cf6-b1f8-4dfb-a56d-ad100076aa3b"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "01758b2e-50b8-4ece-a556-02d4caaed0c6": {"node_ids": ["d7653125-7280-42e6-901b-cde7d067128b"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "ff6a04ac-047e-4fa0-9042-7c43009a93ad": {"node_ids": ["f94b4de4-a4fb-4936-a34f-90b403228a94"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "fbb126ec-4aaf-417d-bd62-c98629920739": {"node_ids": ["692bcea9-4254-474c-94c0-4bff1269fc61"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "889ad586-729b-4006-af89-d3dbc943ed0f": {"node_ids": ["5103e669-870f-422c-839e-cd1ebfd28525"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "fbaedddd-79ce-4928-8c01-39baa059cb13": {"node_ids": ["b0d34335-09a9-458a-a361-4427cea1e486"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "ec21280e-7d21-41cb-b5bb-f4cf36cb22ec": {"node_ids": ["323acb72-7aed-4c69-b3c6-ac3b34cba582"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "6a47b973-52a1-4b78-b3e8-ff953f489119": {"node_ids": ["4db24cba-5f30-4ab3-86fb-578fc4b809c4"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "ff0339ca-286f-4a9d-82f7-c47792fbf62c": {"node_ids": ["93f7415a-356f-4c18-b4a8-d6389ce30b1d"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "4a0b7b56-7b0e-4bdc-abbc-eebb14a0ca75": {"node_ids": ["88b3991f-da6e-4e56-87f5-451ae9af8424"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "b53aafcd-ee6f-409c-8581-fec15b4a55a1": {"node_ids": ["d1f511b2-7489-4f75-977a-5795cae771e3"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "5dc10584-eec8-4de1-9275-ad1e2ae6e431": {"node_ids": ["152a654e-06c8-4a2b-8d09-1cb30fe3309e"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "672de12f-2ec7-4a58-9f37-a258e7ae85d2": {"node_ids": ["bf5f9498-0cca-421d-9e3f-f82a04207e49"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "f1f92b47-4413-4f49-b916-cb98809531c0": {"node_ids": ["14f5c552-802d-429c-8f49-0aeebbcaf3a7"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "0f386667-5cff-4b58-b914-2f74fabe2441": {"node_ids": ["f34d38dd-fdfd-4fd9-ba6f-016993c2048a"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "d7280c29-b6ad-41cd-9208-94d6691bec18": {"node_ids": ["3a69c807-0a54-4def-a8e0-4f99d9b441fa"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "2caaec2a-322a-4442-9c62-78ac5612d765": {"node_ids": ["5db1e728-b007-487a-a732-3f49814eebc6"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "1d660d84-22f1-4371-b24d-85b784bbb36c": {"node_ids": ["e6bbb69a-6c5b-4771-8710-f73ee02e2a23"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "d7f0be94-137e-4112-a261-9f8507bd790b": {"node_ids": ["fc672d91-48ea-402d-a69a-c0b87ecbf10c"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "68c92e9e-2494-4d0d-9384-8fe4c432d4a7": {"node_ids": ["5f695016-2c03-4d27-9dac-2a86ab41123d"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "c7f0756b-4cdb-4f2f-a4b7-b4abf7281db1": {"node_ids": ["4a25c285-c1ee-4bd1-a708-111be55fb824"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "d71f7ef8-7f3f-4d3b-a80c-2b6fc5142f38": {"node_ids": ["392d409c-7e05-46cd-89c4-cdc868cb3672"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "2aee9b13-97e7-4c9e-b861-db680b45a462": {"node_ids": ["ef2d2129-d0d0-427b-8b34-21701e4fbcee"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "499b5452-7778-4177-937f-e34ad66ac19c": {"node_ids": ["ebf1440b-ff15-4178-b2ba-5665c029ecc6"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "f890d30b-4495-4093-b798-8e8648293dd4": {"node_ids": ["c87d2585-cb98-4028-9a0d-d8fe9bb6f029"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_07_handout.pdf"}}, "86610747-b21d-4b54-9e63-bcb1620938d2": {"node_ids": ["c23dafb1-27d9-479c-8aa6-994cc3287e32"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_07_handout.pdf"}}, "19271a26-4e3f-4d73-8254-4ccd2404a2c5": {"node_ids": ["cdd7fb14-0087-4b1b-b69b-e9f2c1521a80"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_07_handout.pdf"}}, "e863e51f-03de-4693-be1a-e1427d95dbae": {"node_ids": ["6bc45aae-cf30-4a63-8d64-ff0071847e36"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_07_handout.pdf"}}, "e327193d-0c0d-47cb-886f-0aa5b2de44ba": {"node_ids": ["fb1ec487-0fdd-4a4c-a2e7-9e01d8c8b1ef"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_07_handout.pdf"}}, "86cb79a1-8dea-4096-87c4-5fdee9068470": {"node_ids": ["afdd485c-5e15-42e2-a06b-c633f5e3e212"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_07_handout.pdf"}}, "a6ecf36b-beda-4120-9c2d-f510fd43c48c": {"node_ids": ["c30a26d7-d5ba-42e0-930b-14289cb7c8d4"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_07_handout.pdf"}}, "44fd8e5e-b2be-48fd-a409-dac7e8ca8b17": {"node_ids": ["8e289ad4-07f4-4973-8c5d-72048f23d697"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_07_handout.pdf"}}, "f2c10cae-5d9a-4acb-a45b-2c5dba2400af": {"node_ids": ["d27cb8df-6669-46ca-b314-e4166d755777"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_07_handout.pdf"}}, "b7818993-ede8-4367-9f6a-5fdf5943bece": {"node_ids": ["bf729cc3-3c4c-4b19-b546-fc0836c708c7"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_07_handout.pdf"}}, "578155f4-0e4a-4271-b8ad-f63ebd9a5668": {"node_ids": ["ab903cf6-123b-4ee6-a739-5bf2cbc95604"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_07_handout.pdf"}}, "95109bdb-511c-449b-8ede-afb99ef70043": {"node_ids": ["a6e66fdc-cbdd-4a51-8189-04d967b93dc1"], "metadata": {"page_number": 1, "file_name": "data/turing_machine_03_handout.pdf"}}, "f6802080-3da1-4a2f-83d0-b26707f55200": {"node_ids": ["daddf21a-e626-4978-92a2-56a21ef3573f"], "metadata": {"page_number": 2, "file_name": "data/turing_machine_03_handout.pdf"}}, "5caa264a-f7dc-4afa-8a67-5cb72b1655eb": {"node_ids": ["43ddd6e6-e136-4646-9ab2-858a6ecd7a0a"], "metadata": {"page_number": 3, "file_name": "data/turing_machine_03_handout.pdf"}}, "72e0c9aa-b71c-40be-9f5a-da9e7b8be455": {"node_ids": ["ed0c24d6-e82f-47dc-b4c7-c8033da8546b"], "metadata": {"page_number": 4, "file_name": "data/turing_machine_03_handout.pdf"}}, "ca41b5f2-bb87-4ee6-bcb1-fa8a1e39cbc9": {"node_ids": ["03a75a77-cacc-4427-b53e-7ba8ac45caa8"], "metadata": {"page_number": 5, "file_name": "data/turing_machine_03_handout.pdf"}}, "ed12e29d-0130-4d50-995c-6ae2d5a867ab": {"node_ids": ["f53f3554-6084-45bf-a812-98586246d2c4"], "metadata": {"page_number": 6, "file_name": "data/turing_machine_03_handout.pdf"}}, "8a49f89a-1c56-477e-9548-00a47562f51f": {"node_ids": ["b01fc261-a5d3-4163-a612-2f36538be0d5"], "metadata": {"page_number": 7, "file_name": "data/turing_machine_03_handout.pdf"}}, "e0e49a7b-27c9-4e33-b0dd-9bd77aab93b8": {"node_ids": ["9450bfec-28b1-49e8-b246-4a8942f0878f"], "metadata": {"page_number": 8, "file_name": "data/turing_machine_03_handout.pdf"}}, "58aeed7e-b50c-453d-97e6-fe4567615909": {"node_ids": ["dc242849-0c98-4b80-9e98-eecb0a817143"], "metadata": {"page_number": 9, "file_name": "data/turing_machine_03_handout.pdf"}}, "ee3ecdfe-e123-4a78-a143-4b090300b9d7": {"node_ids": ["04292cb1-81e0-4884-9b0d-284c45e38eda"], "metadata": {"page_number": 10, "file_name": "data/turing_machine_03_handout.pdf"}}, "c5611fde-0b06-4f39-8ee5-1462926e6a7e": {"node_ids": ["e853d4e3-0788-4418-9bb0-c888dff27d87"], "metadata": {"page_number": 11, "file_name": "data/turing_machine_03_handout.pdf"}}, "83a5d65a-7b0e-4811-8350-d54c95af23c9": {"node_ids": ["64fcb065-be75-47df-8f2a-6caff36d6968"], "metadata": {"page_number": 12, "file_name": "data/turing_machine_03_handout.pdf"}}, "e9a4d9ae-b033-4d29-a20b-5b85b896a8fe": {"node_ids": ["34e62bc5-13a7-4f3c-9429-53b3220dc0d7"], "metadata": {"page_number": 13, "file_name": "data/turing_machine_03_handout.pdf"}}, "09997602-71df-4827-b08b-ddcceb2fa6b7": {"node_ids": ["a52e31d7-c3b9-4095-9012-be76909d9d0a"], "metadata": {"page_number": 14, "file_name": "data/turing_machine_03_handout.pdf"}}, "8c007612-ceca-4859-821e-e8f949699739": {"node_ids": ["32908c3d-5262-40c6-9a1d-74a1e9940f33"], "metadata": {"page_number": 15, "file_name": "data/turing_machine_03_handout.pdf"}}, "41dd2289-fdb2-416e-9928-6616a6dd832c": {"node_ids": ["fe300689-09d4-405c-8cd7-2537c8332550"], "metadata": {"page_number": 16, "file_name": "data/turing_machine_03_handout.pdf"}}, "52419c57-ae65-4ff0-a76f-38809201ac13": {"node_ids": ["426b88ed-5aca-470c-ac1c-1e2e826647ef"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "3e847f41-4220-4f5d-a9b8-cb9175f29709": {"node_ids": ["9f6ce613-fdc4-4928-bf65-5eec78e35b5d"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "6c6fc445-b4e2-4744-88d5-f8655ce5af18": {"node_ids": ["7fea9b02-7b80-487d-a6cd-8bd114f4a7d0"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "e3e67105-1b12-45ef-b2e1-cd6ddbb3cf1a": {"node_ids": ["6b719978-e2d4-4f26-9d8f-f015c453e809"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "f2a5d9cd-caf9-450f-8331-5df48fd3c94c": {"node_ids": ["c0a0102b-0c21-44b9-bb38-f3a2ac82cc6c"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "dbb85775-0ff3-42aa-958c-1ac3a78e034e": {"node_ids": ["49c0c3b3-02a8-48ba-b6a2-9fc4058a6482"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "4daf4552-2b4d-43c9-ae2c-03ab77e60d9f": {"node_ids": ["b09e303c-2795-49e0-ab69-8e528cdb3264"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "4ca8f838-44c1-45ae-ac33-4755f2714aac": {"node_ids": ["1370dfd8-f624-4027-a9e9-35a6d2568faf"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "b4497ab9-2afd-4d8b-b3d5-9176986b0fdc": {"node_ids": ["b81c6e71-dec6-42eb-bf97-5723d0baf4e9", "41db2b71-aeca-47b4-9b84-9d96abd1dc56"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "a3cebf60-6223-453e-927f-4b8cc1c5b5b5": {"node_ids": ["48c148e0-c9d7-49ad-a775-b12b790d5061"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "f55b9170-8cce-49e7-9198-f8f694e61808": {"node_ids": ["42976374-c8fe-4c5a-aba3-6335dedf0e32"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "d55b425f-2c7c-456f-a76e-d4defd093678": {"node_ids": ["1c0586b3-8392-42a1-b290-3230baef34e4"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "ca5afee3-0cde-4e4f-8f91-a9cbc4d3b6d2": {"node_ids": ["6a762ca5-b07a-4a50-b67f-5514ee40908b"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "539f8591-5953-4660-a181-96febc6ed5c0": {"node_ids": ["ebcea148-b348-4072-9352-2f34241f75e4"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "c0f98458-c31c-4ef4-a41b-9ec99e614d67": {"node_ids": ["4197c6a8-f6c7-454c-b180-02651d16321a"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "2290dc41-4dcc-4716-b972-ea85bcad2128": {"node_ids": ["f0c174bc-9014-4222-a316-38c0604558ed"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "a86fce18-9a32-4ceb-b5ac-b84c4db13b04": {"node_ids": ["9ad7cfc6-2841-4bb2-866b-9540b92e53be"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "6cbf7941-acc2-401b-83c9-5cf6055c5418": {"node_ids": ["b5e16504-735e-4b45-b852-832513fa2677"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "ec83aa2d-60cc-454b-98b4-f14ed817cd2a": {"node_ids": ["d02c5e4c-c17c-4f3e-a0ba-425064ff2655"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "a6c539a4-563c-4469-818b-0af7e85abe18": {"node_ids": ["908c5982-cda3-468e-aefb-215af949be13"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "2ff26c0e-6a5d-4217-bf2f-ad58ff69e47b": {"node_ids": ["2e290ea3-891a-4e80-a1c3-941be45b3029"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "9b11cfb2-944f-4ee3-93f6-48af277ad8ae": {"node_ids": ["c47d994c-a4e5-4dbd-938f-abdb52be9263"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "6a860b3d-0380-4b04-b29a-cf435a112968": {"node_ids": ["6ce72a0a-d954-4c06-8ea4-ef08d62f32b1"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "3f234a7d-a8c8-4c0c-b6ab-8098854a1e6e": {"node_ids": ["9664f6cf-08ba-4659-8324-33be2c04c5ad"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "4af3f9ce-37cf-4e2a-957f-e0bae849a1a3": {"node_ids": ["dc2e3edb-c8bf-4c0d-8ec5-f8810277a6fc"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "2eb8ae5b-bda3-4f8e-80ce-4952786f603c": {"node_ids": ["5c9a208e-9d67-4541-a2e9-80f328d3099d"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "f94bcf04-9a54-4790-a1c8-7a8d22e987c5": {"node_ids": ["2785e8eb-cb22-4d25-a612-409558dc2f49"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "ea81f8c1-6216-493b-aad2-6f14fbdb22a1": {"node_ids": ["4c206349-a8fe-4f87-9aa1-d87203b87282"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "71f3c27f-ae98-4dea-a337-dd07ccc819a1": {"node_ids": ["8eaed070-28e9-4dbe-88c2-76f80f6cef9c"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "1c3e8b1c-1dcd-45b1-8664-3ad34bccc770": {"node_ids": ["858bc6bb-03a7-48f1-9a1c-334681b036b5"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "803f4178-7f87-4f8f-891d-cb59fddb0f0a": {"node_ids": ["cff8c484-2dde-447f-b5b0-89451db3b8c4"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "7b710131-364e-4bc5-b2e9-e7f4b5fcfa2a": {"node_ids": ["7adf0459-2c47-48f5-ab55-4f0d5b1950bf"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "e3abc501-edbf-4607-a901-88279381cc2c": {"node_ids": ["779d4626-b38a-4783-861b-5e8f6544bfd0"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "027c61ed-ec7c-4476-8731-74c8571cee84": {"node_ids": ["8d705065-30b3-401e-be16-dd9e194a81ed"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "2f75c810-f18c-4067-9252-4d09d1d18b2f": {"node_ids": ["597bf18a-85fb-460f-920c-55891cf72679"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "e2c78923-1204-4f05-b887-99a6bff120ab": {"node_ids": ["9ecd20bb-8452-4e74-8efc-c13a894491c0"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "0d7fab36-2c6f-4e23-b90f-2bc6730da0a0": {"node_ids": ["78dcd2df-213a-4088-b4ee-6fb5b28216ec"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "10dbccf2-1a8e-4b8a-b256-7d9568b285fe": {"node_ids": ["42573e27-8a0e-42a1-8944-db1877d0f848"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "33fdc0a1-6561-48c3-998e-89c0333c7e9f": {"node_ids": ["e0e83651-c7fc-4c99-8ec7-38f068e77c2c"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "4731bd9c-3858-4789-8f98-7cf1866689f5": {"node_ids": ["d39325d7-1383-4bf9-9610-fa7bcaf1a753"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_05_handout.pdf"}}, "f3ce54f5-9b69-4b0f-86b7-ba5bc66d7085": {"node_ids": ["5718c26a-17c5-4971-b398-7d33bad5d82e"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_05_handout.pdf"}}, "2e6140c2-6bb9-4cee-aa40-0ceba53a44b1": {"node_ids": ["cc03cb4a-6299-4a8c-8651-b2910d7560f2"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_05_handout.pdf"}}, "c3304f9a-595a-4dfc-96ba-bbd19e6f4f57": {"node_ids": ["8dd02411-dc47-43cd-b0bd-2a35f5cf09b0"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_05_handout.pdf"}}, "fa627162-bb28-438d-b7a8-5456eb82fb3c": {"node_ids": ["a1c2a556-9dfc-49df-b54d-14d54aca1096"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_05_handout.pdf"}}, "e05b56a2-c7c5-4c49-ba44-39e60e89b1c1": {"node_ids": ["2d034c71-061b-4cb0-bbd0-bfffb2baf3b8"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_05_handout.pdf"}}, "c41e11d9-ebaa-48dc-8284-7ed5367bf332": {"node_ids": ["8ed6ddf9-c718-419c-b010-bae367075e17"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_05_handout.pdf"}}, "0177558b-9d0d-49a6-9644-fc9d74730c0f": {"node_ids": ["f5fd928e-9e4b-43cc-941b-1fcb648478c8"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_05_handout.pdf"}}, "b7e2b995-a7fc-418b-8078-25620a255b71": {"node_ids": ["a8a2eca6-d2fb-4e86-85c0-e24609c8c2de"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_05_handout.pdf"}}, "169bbaad-84ad-4eda-acfc-26415a5e5f88": {"node_ids": ["72a8566f-ed41-40eb-9279-8c358eed6bbd"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_05_handout.pdf"}}, "a4c1fb0e-2a75-4b9c-adb4-a439757ced40": {"node_ids": ["be4536e5-1cac-4089-a8b5-50876374fd2a"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_05_handout.pdf"}}, "15e6d703-6715-4e5b-a989-4a4b14446bdd": {"node_ids": ["029479cd-ccb8-45aa-84e0-02032ed0d94a"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_05_handout.pdf"}}, "04a26b1e-a807-4772-bce8-c0081849eb08": {"node_ids": ["ac0906f4-73f0-4d90-9304-1ae39cfd48fa"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_05_handout.pdf"}}, "d9da3902-bdef-4d17-ab94-bdd46cf6fcb0": {"node_ids": ["43a4e60c-4f18-4094-aab7-bf7a64211336"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_05_handout.pdf"}}, "5851eca3-df58-4608-9748-65667ef53334": {"node_ids": ["77bce36b-8ad8-476f-82db-ae0732a8c309"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_05_handout.pdf"}}, "b40c98d9-c3b7-4bd2-bf36-3a0ba25d05e5": {"node_ids": ["e6e7873b-2f75-4530-bd92-8a587469342f"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_05_handout.pdf"}}, "efa53c04-3fa9-41df-83d5-fbacbfba05e1": {"node_ids": ["b18dc1b6-5d0a-490d-8b78-701dec761945"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_05_handout.pdf"}}, "04f3b053-992a-4ad4-97cd-9def0e9667cd": {"node_ids": ["ba2cf730-235f-48c8-8499-a11271d769f3"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_05_handout.pdf"}}, "fed0817b-0036-47d5-ab89-964ac95af8a4": {"node_ids": ["f1132bd4-f2c3-4c87-aaaf-89d6adc3e674"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_05_handout.pdf"}}, "bf3551bb-a69b-4786-8b97-9e1991779b25": {"node_ids": ["5baa32cb-d5f4-42ed-aeda-58dd11f2fbfb"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_05_handout.pdf"}}, "dd4802ad-d90b-4097-b027-0c9063d87a6b": {"node_ids": ["fa139241-552f-443c-9c90-64fee4377610"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_05_handout.pdf"}}, "e1dbcc9b-86f2-4156-989c-97a5793dd227": {"node_ids": ["26325910-8f1d-45ba-a499-6be1cf11e2de"], "metadata": {"page_number": 22, "file_name": "data/finite_automata_05_handout.pdf"}}, "afbb6827-a175-4052-8938-0a65fa569958": {"node_ids": ["444ca371-63f5-4bc7-87d5-af528c7eea75"], "metadata": {"page_number": 23, "file_name": "data/finite_automata_05_handout.pdf"}}, "d3f89eb8-9591-4eb8-90f5-78862abd97ef": {"node_ids": ["cdd168c2-9c88-449b-8bf7-020c5a9a094f"], "metadata": {"page_number": 24, "file_name": "data/finite_automata_05_handout.pdf"}}, "80239979-c162-4be3-a87b-d736b75d6d86": {"node_ids": ["24fc1550-be07-42f3-9188-2c53766041a7"], "metadata": {"page_number": 25, "file_name": "data/finite_automata_05_handout.pdf"}}, "b632da1c-a299-45b5-af0a-c02d87d51ab0": {"node_ids": ["58670055-e2c8-412b-bf7a-931a857941e6"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "5e01de27-ac07-485f-8ec8-aaa8727920fc": {"node_ids": ["fb59083c-69c3-4755-a769-4cd8b99041bf"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "1054260f-7162-43e1-87e2-4adc704520aa": {"node_ids": ["d34643fb-423f-4160-8127-37ba20bf905b"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "8f275a63-b889-4200-9f19-6b5e79099395": {"node_ids": ["22e59c78-09f1-4246-84b7-6fbbefbb6138"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "f849f020-c8b2-47ef-a5ad-8a712f14a243": {"node_ids": ["e7cf1409-e420-4b5d-8d5a-1fe3b6f93e8d"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "51a40464-b60a-4af5-8ed7-0aeac71e3790": {"node_ids": ["69ce28e1-6a0d-40a2-80a4-53bec8d6878a"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "50ac2efc-012c-4509-834a-ed09ae8f63de": {"node_ids": ["408fe7dc-92b5-4f10-a3bc-bc2989373c24"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "d866a6a8-3bd0-464d-848c-abe58043d188": {"node_ids": ["1cb034ee-b1f4-4619-84d5-9dbbcdde5a9d"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "87b2b43c-0df0-4eb3-9aea-59147a753c60": {"node_ids": ["0b1f4a46-922e-4d55-9d4d-c5e0b0211409"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "f2405322-6a69-49ab-9945-70f2c4a4c31c": {"node_ids": ["80ab7cc7-5d4a-4438-9f55-306b0b8c1038"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "f287c9f4-8311-4f48-8743-675111602dd0": {"node_ids": ["d45ed6a6-1de5-429c-8e27-b88b43011766"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "a56deb37-fdb5-4992-8631-cc26f94c6811": {"node_ids": ["b3e6608b-393c-4629-91f8-ebc8cf32d140"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "c9269bbc-a5c0-4847-871e-c48413c459f5": {"node_ids": ["148f4746-0472-4818-b762-cf8419471311"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "a688981c-5fdd-4b87-90f9-4e5a7c7b9f2a": {"node_ids": ["f4035c4f-dd38-4eaf-95d6-8bbaaec46ffe"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "6ce55b5e-e69b-4764-91b4-0bf267aefb9c": {"node_ids": ["7e4b2efc-b005-4b28-9303-39a1a3e7c40c"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "dce7d637-fa63-4b5a-a7e3-a173d79e4d55": {"node_ids": ["6967bae5-313b-4026-a70f-7c49d38ff1e6"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "88fdec93-e525-4504-a951-124a7b7fb27d": {"node_ids": ["e05e2cda-ea97-4ec3-b289-f3c25ed78210"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "0372323a-6121-416a-9281-85ba8271185f": {"node_ids": ["3d911852-496c-41c8-9b0e-d0e947f76d3e"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "8613a745-e3ad-428f-a3f4-f46d707a3be6": {"node_ids": ["dd5dd3dc-9e12-4008-96c0-0512503f36d8"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "d67d9b9d-a347-4ebd-8c68-eab5e57d6a15": {"node_ids": ["613c648c-620d-42f5-948f-8866b19892ce"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "d4bc8f5d-66d9-4d67-80df-5a54f94d49eb": {"node_ids": ["9e3dbff5-ebd7-4dac-be74-1111171328cc"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "e94de2b8-a1c9-401e-b46b-55842d2b42c8": {"node_ids": ["ce6351d7-0ac9-4266-ade0-e06225721be1"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "07a578e6-45e9-42ab-a845-4e10000dfdbd": {"node_ids": ["838f6c59-bf15-4887-84f1-3593bcbb5af6"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "223a0db6-4f51-4623-9c88-c6f1e3e57f3e": {"node_ids": ["5df98e36-fc29-4a6e-8947-a644905fd532"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "290cf564-ff5f-4e14-aab0-e2daab98f2d8": {"node_ids": ["05dd4dcf-3b28-46a1-8b4f-60a08bc0639d"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "ffe8d2c3-f7b0-4546-a0b6-62af01debd44": {"node_ids": ["019979f0-13a5-4bc5-9fc4-3267d007e25f"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "744d61ac-3c3f-4bcd-a02a-75cd6e617007": {"node_ids": ["2905d948-3972-4c07-a434-30536c23caf3"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "f0ec5205-b0be-4aed-82df-6d032d3d95be": {"node_ids": ["e67904c6-050b-4b49-8266-577114e62da7"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "a43a5582-b664-4232-8cbd-e1a698c76529": {"node_ids": ["263fa9d3-b7d7-4835-880b-8b61605e29e9"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "7dddbbb6-98c9-40b3-9aa4-ee6d51fb5a10": {"node_ids": ["174119db-f271-44f2-b1a5-cb9c309ef103"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "d4d49f27-79ad-4678-a77c-2e4773879061": {"node_ids": ["f1eb7004-5e6e-4969-9537-5405184494df"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "35e396a6-b1b3-4ba3-b8da-3e78d25e7c11": {"node_ids": ["3df43b51-6aab-406b-9ebc-4f521cf1618b"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "5bf9f36f-1ffc-450e-ad32-5aa4ec0b074e": {"node_ids": ["31584f26-5cf2-4a82-bdf1-884b1d66f78e"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "799365a7-246d-4db8-9743-423571ba73d4": {"node_ids": ["17a9411d-5b20-4b2b-b595-c710ed69773f"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "d0422eba-a342-4da4-a900-10f22e1af418": {"node_ids": ["4be4f840-841a-4a3f-8628-7e0c2ca1c2ca"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "1886b990-6e64-458b-a499-b0788432dc1b": {"node_ids": ["aa1f6aab-19dd-46e5-ba87-6dcf880a75e1"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "8b750aba-9a8d-44cd-a6de-5bd835fe7668": {"node_ids": ["d3a05920-199c-4102-927c-3b9129e2c475"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "c8dd567f-3b26-42ba-a364-e1a6cc1aea91": {"node_ids": ["d5c91e31-68dc-4b65-8d54-83e83cb0a283"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "13989220-a054-4245-a93e-d6888b340135": {"node_ids": ["30188c2a-405e-4df6-aed8-a27c80572983"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "697cfd63-29e2-4306-be1f-256208ad1dd6": {"node_ids": ["54b3843d-c918-46aa-81c7-2d3a5d722bc5"], "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "5da6453a-0764-4d06-bf7d-57dcc8aa8ffe": {"node_ids": ["67ecc16d-d2e1-40eb-b131-1937eb90bab2"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "726dd4aa-a665-4d0f-88a8-14d896a7ffb3": {"node_ids": ["3cbf3fe0-7e29-42f5-95bb-3428ee9bde41"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "e616ef71-4a0b-4cab-b1e3-11e4414e2198": {"node_ids": ["430b4321-1113-45e0-a4a1-1af224b6fd4b"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "04f11f87-b9d7-4add-93cd-fddd8ea9c421": {"node_ids": ["64d8ac29-2b6d-41c3-add3-57d597854303"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "84fce7b1-c416-420e-8163-895208ff3738": {"node_ids": ["5f19ccd3-1aac-4728-9c49-874e3d58447a"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "f905dd96-3364-41de-b8d9-9b52b790479c": {"node_ids": ["db5e19e5-f624-45ee-bbce-840acaf4ea40"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "32d90b03-e4d9-4c78-a68b-9f2757d3c282": {"node_ids": ["f3743615-5342-4734-93a1-58f5dc45fcef"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "d4e3cdfd-5afd-4465-b1b6-297275b2075b": {"node_ids": ["035ec694-4c56-447d-9d81-445ca6ddf586"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "c926d539-2327-463d-9e6e-e70ffe3abd2f": {"node_ids": ["775d3e70-ba3e-4ee9-a4a3-937c85ca2944"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "cccca899-8ab8-4615-81b0-1dac5d48ed99": {"node_ids": ["02218cea-5376-426a-99e9-93ec0e45bd3f"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "c0e197b3-ba58-4e4b-8214-20ea6bb78a63": {"node_ids": ["94183481-7d55-4cc2-a5ce-fbed7497cf69"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "dc1dc521-9838-4b9a-ad8d-70416b301089": {"node_ids": ["1469041f-0eb7-4286-90ea-e28a153a1b8e"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "19b71fcd-15d8-4271-a2a3-125f386bbc21": {"node_ids": ["a4df2723-367d-4aa4-9fb8-2f4b3037985c"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "e09f0a03-a02d-4663-9d48-1bf00d5fdc4e": {"node_ids": ["68e68022-8735-4f93-83ce-df521ef92a1d"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "25e03c5c-4106-46c5-819b-5da441c12aa8": {"node_ids": ["ecf2bc3c-4b78-4d2f-9e84-523d290b5f19"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "99428655-c2f8-4f80-89ee-416f5a73c506": {"node_ids": ["d1d6223e-d11a-4aa4-900b-f883b02c8126"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "a8b8a16d-03a1-417c-abae-fa999fefa8b9": {"node_ids": ["e36500f0-5eb1-480f-a09c-cebe16a60844"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "620c0c64-71af-4f84-9bea-9cb655339ebf": {"node_ids": ["5f13b708-06f7-4a63-af40-c35b59334a79"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "c4708dd5-68d4-4aae-8ccf-78ba5b0bb2e4": {"node_ids": ["bbc010b8-4a0d-4e97-b739-f966e45ff91d"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "c2588257-46a5-4107-aab9-e30dfc2f039d": {"node_ids": ["e3c2fe52-ad60-4196-969d-fbe856fd3520"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "ba7a052b-e731-4020-822a-b834a9201dcd": {"node_ids": ["0fadaa87-845b-440a-9256-af5304735ecf"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "c7475fab-c6f8-4a13-956a-ee42b4597bb6": {"node_ids": ["7ffde410-532e-43fb-8e2a-b52629a7b4cc"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "4f9fc753-4917-4a02-87a9-e3a23c6a9764": {"node_ids": ["37da0edb-cea7-4c0a-baa2-9c3e00c30027"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "c85615fe-eab1-4b76-8657-f4b59ca1cdf0": {"node_ids": ["74916d55-4321-4e62-878f-fd732b83b0dd"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "f047a5c3-91c6-410f-8802-1a7a518cd5be": {"node_ids": ["df3f39db-af4b-4003-a2f5-37b8606f399a"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "a8f5e1c0-1477-4982-8b0f-eb310384510e": {"node_ids": ["509f4580-14bc-46c7-b6f7-b51f99f08ab9"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "a148c81f-57e5-4ebb-8f75-a9338a4f350a": {"node_ids": ["779d0987-a343-4e99-a569-9f0e2cd6a793"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "ccbdd146-08da-4e5e-bee7-c08456289b09": {"node_ids": ["ead8c55b-772d-41ef-bdfe-82354f1f8e9c"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "575f2d11-d731-47d2-ac53-6fb66fcfba4f": {"node_ids": ["49a9b64c-675a-4ef8-864a-11b91ac76fb0"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "fc76e065-cd9a-477d-bdbc-8b4ee513fbb1": {"node_ids": ["87bd4044-c308-4483-acc5-75aa1ed6b0d2"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "e9fee1c7-0f03-454e-8c49-4aa4c54980fe": {"node_ids": ["2cd9ff24-6171-4849-ad82-89eb228db8ad"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "4bd5360e-180f-4515-af78-3351033db5cd": {"node_ids": ["ce13a010-200c-44bc-bcf9-7c9aa5ff13bf"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "b562eff1-8611-4a50-9cae-734517aaaba6": {"node_ids": ["7f3bae4b-d9bf-4146-9a9d-97aec35c22a4"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "cd1debd8-c3aa-4c88-a574-047a013dada4": {"node_ids": ["4894c612-4f4b-44ef-b446-5ad895e0057c"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "92a40f89-2155-455d-b05a-89b585944884": {"node_ids": ["a24daadd-e48d-48da-8f25-e666ab587b6e"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "a08a4887-bebe-4910-a559-29469701d3bd": {"node_ids": ["9cc3475c-5c68-4340-8bae-5c9059167510"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "ae4786c2-b8c6-4b78-b1ce-4bc15a04f6cb": {"node_ids": ["bb1f9b28-0d9d-4ec6-a573-d388758012fa"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "23fa9e9f-f346-4c66-a40a-6ebaac43783a": {"node_ids": ["5f479c12-1239-46ae-bfb0-2f0aaf4de1c6"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "2d91f457-af7b-482c-87c2-bb6c5951eeb6": {"node_ids": ["32e57dc5-01cd-4151-a9fd-a5e3cdf34d99"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "4fdd7801-f42e-4314-a8bf-54ab7349d058": {"node_ids": ["11fed973-8cb7-4715-b804-2eae5a034d4f"], "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "562d8c23-f0de-4efa-bb19-3f8dbfc4e739": {"node_ids": ["30053f6f-ce96-4f66-9c43-b42aa00e65da"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "329513eb-9027-4f77-a34d-9691b4b55308": {"node_ids": ["ccac079e-86ed-4539-b564-d1652a576d38"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "ecae360b-ffea-4275-9cf2-c9348f9912d1": {"node_ids": ["f07195ae-53b0-43c7-a0b3-76b435a8879a"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "ba46548f-c0e3-42b1-91bd-1edcfdb78f64": {"node_ids": ["64fad90e-236d-415a-979b-20b9861e98b0"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "ea686be8-b317-47f8-bce2-f5f58a9ff1b5": {"node_ids": ["12a2437d-8cc5-47d2-82f0-e48af71d2762"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "118f7e01-ba0b-4828-ae19-5afe6c94367a": {"node_ids": ["3a9c156b-870c-4ffd-afa1-9f00d1604024"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "22b30988-4276-4847-a318-d41456d456a5": {"node_ids": ["8c151c8e-d7e3-486b-9231-1518589aa755"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "689e2465-c0e9-46d9-b7d0-9c7cab6543dd": {"node_ids": ["c2e416c5-4cdd-46b2-8336-2faa9387332e"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "ca7589bb-9b3e-4601-804d-28498152a7ad": {"node_ids": ["83ef3da2-6102-4e08-9b77-a835f3d2612a"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "89e98d9b-081a-42da-9d8b-91abcd90bf1f": {"node_ids": ["9ec91f4b-74db-481d-a982-0ac0afece875"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "fd17eb08-fc20-4a90-a4a1-c3b4cf6b89bd": {"node_ids": ["0da49feb-0ae9-4576-adfc-a377ffbcb18c"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "4d98d23d-c42f-444b-9323-1fe97baca94e": {"node_ids": ["c2fd5c17-3cc3-4c56-b21d-2c71276d38ac"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "8ec72078-d96d-4747-a4e2-a7daacc332a8": {"node_ids": ["b65d9d3f-b955-4f40-a185-1691256386fc"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "794ad272-a4d7-44e7-a22f-46892474b952": {"node_ids": ["0173a25f-3887-49f8-b8ed-cd83682fcf81"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "a32121c2-7242-410d-98fe-f2d81d8e58c7": {"node_ids": ["06958429-3c4d-4593-aaf7-0e5462b645e8"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "429c284f-4fe9-480e-ab19-d64267de40ec": {"node_ids": ["21f821af-52f4-403a-8f5d-afad4e403009"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "9d36db84-fefe-4e6d-8034-9eb0e37c55fd": {"node_ids": ["f4e80a2e-2667-473d-aa02-45c1d88d566c"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "42781a21-7024-426e-83ba-4af0bb4387b4": {"node_ids": ["d8a5dd12-6cd0-49cb-b8d0-442672752690"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "c9587028-18dc-4835-b0ca-e2efcf7e12a9": {"node_ids": ["7ecc1b24-59ed-4d3f-a551-0cea5992dfc0"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "5200c3ed-ecad-48ae-a6fc-9e49e59a386d": {"node_ids": ["33f6c40d-c4f2-495f-8c2f-845c693b5ad4"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "8ab592e8-7178-4b82-ab4e-e27508a21501": {"node_ids": ["150a6315-59c7-4fa7-b43d-7324a3584f1e"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "fc139323-ae7e-4f71-a7d9-089bb416b7d2": {"node_ids": ["0e93c412-e25d-4d00-9211-4cb84eb05d47"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "880463eb-8565-4a9f-9410-927a8e0084eb": {"node_ids": ["8311fd1f-a666-4272-bcee-cc6e1c1d8ea0"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "650aaba2-9ff6-49ca-9da9-5b6941e2e460": {"node_ids": ["1f08ceaf-c39f-4fcd-b80d-e6c9c5f32cc4"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "65067d81-e80a-49d0-be37-bdbeb86477c3": {"node_ids": ["728d4e1e-0912-474d-a13c-3dfec6840006"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_06_handout.pdf"}}, "1c3dbc12-03a8-4b38-8cfe-d3260f3aead2": {"node_ids": ["21c4e6f2-ea29-4288-ab32-78ef5e9c4283"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_06_handout.pdf"}}, "5f6e090d-e6ab-44ea-b030-63a0b81e5890": {"node_ids": ["0246f201-6f15-41dd-9ba3-e7c495e55454"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_06_handout.pdf"}}, "3c25db0f-0efe-4641-85b8-41f37d34f11a": {"node_ids": ["30acbbb4-283c-40e9-8aa4-7276852e265e"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_06_handout.pdf"}}, "80a26ef5-2152-438d-93f2-e99d0ff385e8": {"node_ids": ["aca39985-4dcc-4026-a08f-81cccc60b0fc"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_06_handout.pdf"}}, "f6f0a271-e590-4481-bbda-1673f8911af6": {"node_ids": ["141316cd-14d2-4c33-ac98-10eebb3881bd"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_06_handout.pdf"}}, "c92c3ba1-c02f-415f-bacf-a21086a8ca30": {"node_ids": ["993b1b15-d413-417b-80b4-bca6b3102572"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_06_handout.pdf"}}, "82817cec-6ca7-41d4-b42f-2dae2f0b112a": {"node_ids": ["f21b0a3a-dccc-4c2a-9272-21368cae552e"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_06_handout.pdf"}}, "25e80a7a-ab4e-4d67-801b-ed1dd66320d5": {"node_ids": ["871ae3b0-de62-45ec-8d41-b378016a2bf7"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_06_handout.pdf"}}, "e9acb4f4-88b6-4ea0-bc71-4e926e70a931": {"node_ids": ["35ea75f3-c13e-4018-945f-872f6251d0b1"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_06_handout.pdf"}}, "d80eceb6-ebb8-4704-84e2-c4e31aea85cc": {"node_ids": ["d655f37f-761e-493f-91b7-eadfa023b346"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_06_handout.pdf"}}, "3bd05c2a-98f0-43bb-9c18-068045afbd73": {"node_ids": ["d247f619-fde8-40e2-8b3e-5fd1259ae8fe"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_06_handout.pdf"}}, "a2824579-7f5c-4154-ad0c-5f4a8497bb6f": {"node_ids": ["81bf18d2-00c6-4ddc-a842-5f55ccc7a982"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_06_handout.pdf"}}, "06c7b0d7-c250-47a7-b208-4988b241d811": {"node_ids": ["467558c3-e094-43dc-b88e-d59b2009928c"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_06_handout.pdf"}}, "b0e5baa2-f02b-4bfc-9d28-1b2505e3f73e": {"node_ids": ["497e79e3-be9e-40b2-8edb-a5996c71a4c2"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_06_handout.pdf"}}, "2d97bbc7-d34d-4676-9c49-2bebce8cde61": {"node_ids": ["6a9babf7-2595-4eaf-a5f2-6791b4523678"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_06_handout.pdf"}}, "c96dd937-7ac2-4451-ad25-f023d0883c0a": {"node_ids": ["ddc3920e-1495-4f90-a987-3e4e03b4094a"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_06_handout.pdf"}}, "830305c3-609b-4801-9adc-005c67d22cc6": {"node_ids": ["347f96c7-eaf6-47b0-8418-e85e3b6ba4f4"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_06_handout.pdf"}}, "f9abceb8-bdf5-4600-a217-efd48276f962": {"node_ids": ["8aad0ff2-ae77-4639-9fea-67d0bb34374e"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_06_handout.pdf"}}, "dbc6a8ca-6079-4a3f-9f79-ef586620a4ab": {"node_ids": ["a2c1c819-1ab6-4eb8-a613-69663a3453fc"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_06_handout.pdf"}}, "471e4d15-b9dd-4fc2-a696-b406755c55df": {"node_ids": ["c2863b92-e1f7-4b40-9088-ed90b8087a05"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_06_handout.pdf"}}, "acffaf91-caa0-4d73-a07d-c749c5bcda6f": {"node_ids": ["49cb22d8-d0c8-475b-b601-b153020a5f74"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "6f2844c6-fd21-482c-b18c-3dbb1b3d3520": {"node_ids": ["f9b24bb6-fdc3-45ee-97ca-36ae4e970830"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "fab66206-335d-4130-bf81-df3daaacbd2a": {"node_ids": ["fe17e153-46df-46b9-86eb-0008f84b9722"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "91a0e099-9352-43c9-be28-b097c6948ccd": {"node_ids": ["217bf5e2-c5b9-4b63-802d-556058a0085f"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "e373490c-63ab-4a0a-9468-52bb59feb4eb": {"node_ids": ["3eba1c17-a17e-4c47-822c-e928c296572b"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "ffa06323-0f28-4158-858e-420adb2b52ee": {"node_ids": ["59ca93af-7d14-40e9-9abf-4f523f3967ae"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "18cb1284-786a-4c85-b1d9-3be29b41e3d8": {"node_ids": ["e30b55d8-0065-46bc-8a62-87fa60eb5bb1"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "895ce90e-7271-45ca-99a1-6b64e506194e": {"node_ids": ["609613be-622c-4399-9520-972093ac0af3"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "983665e5-b3c8-4f2c-9cf5-642420dca2fb": {"node_ids": ["1f19df44-bb56-4512-b6a1-07277aa48dd5"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "574ad8ba-e6f0-46f6-aa1c-b3540f8ef1d5": {"node_ids": ["a20991bc-8767-4e8a-aa1f-5755a297db79"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "47712a70-0e42-4e57-b314-df6893743083": {"node_ids": ["165085db-1f95-44b6-940b-c5cca6842b1e"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "67fb5e22-830d-4357-b7b1-24aa423c671c": {"node_ids": ["4fb53d4a-1cfc-4d48-abc3-26017f53a822"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "31286cb6-e92b-459b-8a12-1b78d8a964a5": {"node_ids": ["2f52a19d-fbc1-45af-b617-b1a0a5bb5442"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "9cfe2d17-5416-4b9f-aa4f-9d99f68bca8c": {"node_ids": ["7b527787-96da-4226-9382-d6940ff03097"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "020699a9-b701-46b2-a642-b577f16ab28c": {"node_ids": ["73d8a3f4-aac1-4760-839c-d9f35314c71f"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "7a9e7e27-00b3-4beb-9aef-3d1b001d4be4": {"node_ids": ["52fc16cd-9438-4db7-b20e-6ba898d1a3d7"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "a546c90b-f54a-4ead-a910-873dcbcf3679": {"node_ids": ["5a07a60d-8e79-4a7b-a081-3cb40cd8c90c"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "4f42f07a-0612-4806-b7f7-d8340894b052": {"node_ids": ["8d6e60ab-5079-411a-b140-74b407662a38"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "4a4c7a86-55ca-4fea-86b4-31b073c4c7a4": {"node_ids": ["5127b3b6-0396-4ecd-a2ab-0d4eb61fe826"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "c732afba-4e52-4c28-b884-4898cbbf8cdd": {"node_ids": ["181101e7-b7f0-4a5c-8f26-2c4e0a926e02"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "2c5c2ddf-7e81-4453-bd3c-1820ccf464fe": {"node_ids": ["7ae099af-2305-4fc1-a0c0-c81b9fb112d4"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "c92d81c9-a929-45c3-a048-9a6079e2325c": {"node_ids": ["a5ba9817-a5d2-488f-b85a-0d1a52593071"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "d5489249-da51-4c41-99b0-7272b2fd55db": {"node_ids": ["365743a5-9d9f-4233-a559-198392666f13"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "45d2774f-fd5e-422f-889e-9b49ebe8aabb": {"node_ids": ["7c7e803c-b7cc-4098-bf47-14a970fed3cc"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "f0b615a9-16af-4b1e-88b9-7851aff8a6bf": {"node_ids": ["a872cb37-41f0-4edf-9734-b48da18fb4ab"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "782dd48e-91d1-4ac3-8964-5c039488bebe": {"node_ids": ["e7cbff7d-1181-479f-a570-edbc3e78e753"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "13f9a580-e911-46b8-942f-a573c653285e": {"node_ids": ["588ec552-d024-40cb-8227-661219987a07"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "91261279-84e1-4e31-8385-422fc05bf691": {"node_ids": ["e5ccf591-1040-41ae-be1d-a8346f207f33"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "baeede9e-dd88-42be-8318-e867b5f18e1b": {"node_ids": ["e5ace444-4f8a-4d6f-b321-ed511d2dfa22"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "4a61b464-204b-4c5d-a1cd-4a2e8d2ec383": {"node_ids": ["4e496608-68d4-4426-8289-00aaec8c5a1c"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "a59bee68-7978-4dea-b538-21f517b45231": {"node_ids": ["71a928b2-dd65-4147-ae36-a611b24ec474"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "6e7782fa-7c64-4be6-b1a8-b775384c6045": {"node_ids": ["223d108d-3a96-4fc3-86af-cd7ad0f869a9"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "cf46b441-f121-4ceb-b962-533de2ab09ef": {"node_ids": ["d9e92c63-6c38-44e8-84e8-ecbc7a945bb1"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "b7c22205-d09c-4c1b-8769-27187f8f8f3c": {"node_ids": ["dba849df-4ab3-48c1-a42a-681574bf5874"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "1b5246dc-12b7-4622-adbb-65c56b283528": {"node_ids": ["18892d8c-f772-4afe-9a4c-7e3248c913f7"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "0f09bfc6-d04a-40da-ae1c-216cd687c2a8": {"node_ids": ["c575b97f-68ff-4e6e-8893-abba43e9882c"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "301b59e1-7bfd-424e-bbea-c78435a4e74f": {"node_ids": ["dfe1af4c-e6f7-4e72-976d-cd544f46d6ca"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "4c3acf80-a37c-4608-b91f-7d138698cc39": {"node_ids": ["b331adce-78c4-4106-aec0-e265f3c93550"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "6a94ba21-36ed-4666-b23d-68c960f0e51f": {"node_ids": ["e79562a0-d816-49ba-b5d7-6e22b2262755"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "a796ce72-4b56-4e6b-9153-af284fec00ff": {"node_ids": ["cc9f9c4b-da7b-4308-8a2e-d16ce5da2549"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "e415bf5b-c8df-4d49-8f9e-929870e90d82": {"node_ids": ["2af20fc5-f229-4a96-8b32-21d8d206296b"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "26d95543-2609-44ca-a060-642c622650a6": {"node_ids": ["f2a62183-e832-4709-9a26-36e803bffe7e"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "9f131792-ce60-4bd0-9d09-76c9faf87792": {"node_ids": ["db0bef2b-e52c-4e6f-839b-8e551556273b"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "3233a8d8-e958-4023-9cd3-e31a1fe713cc": {"node_ids": ["31b5046c-98a9-4b23-a6b7-5a8c6ae14d2f"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "fcc46606-2a7c-4b00-8e9c-02ef0088ec48": {"node_ids": ["1c04a149-9edc-42f4-b82f-4ac9dad20fc4"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "9a689495-cd44-40f8-8713-1e688b3fea5a": {"node_ids": ["6810bf0b-5de0-4a95-a4e0-59cafa0b0549"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "23a4e7cf-847d-4167-887a-9503eebeb38c": {"node_ids": ["dc857518-0890-4de9-9bcd-73fa9c03cf9e"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "073d7554-2822-495a-88c3-8181a0d96057": {"node_ids": ["552ce3fd-f6be-44e8-8cfc-1ecd642c9e34"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "0861b705-526f-4ec5-8512-5a223a554697": {"node_ids": ["d0cb3c00-ce6f-4e68-8801-b59965fd9f50"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "299bdafd-87c1-43ad-ab20-1e15cea35998": {"node_ids": ["100e256c-b31c-4980-8b18-66bb26e5658e"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "86419b13-fe0b-4ebf-b289-7a76d092426f": {"node_ids": ["6194bf94-85ef-478f-8032-9777db67d686"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "a0b3d243-a1be-478e-af7f-5cb685263367": {"node_ids": ["748d2d9e-d021-473f-85d0-4dc7dbd466af"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "fd270dac-04c1-4540-bad7-be889e6f13b6": {"node_ids": ["417bb18f-2806-4d2b-9105-5c8ab590d81f"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "79cdcea3-4106-4852-af23-05376dc62149": {"node_ids": ["1e7df8b9-7dde-4853-b068-94bef3c1cce6"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "14d5a4f1-97d4-4afa-b7e2-ce34b22ee040": {"node_ids": ["ac42d99f-c337-4120-81da-21d4ec5f3994"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "c8c1849e-79b1-4ea8-9416-eadcf372d06d": {"node_ids": ["db8dcb55-38f3-4529-8cea-a2251d43ca78"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "c38b6e84-c14e-4c89-a98c-203da93122f2": {"node_ids": ["80bd1f7e-f5aa-4f48-80ce-3ec2020d2ec6"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "24c147ae-2bd1-4716-89b2-a4ccd9964cfe": {"node_ids": ["a1274bf9-7155-408d-964c-6a26033a2418"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "cf158de9-7c38-42aa-a93f-23d893e79d03": {"node_ids": ["ad1fa5bd-9807-4b34-8c3b-306b626c2ab5"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "1afb2557-03af-4d8c-9e3f-91403f1e7a0f": {"node_ids": ["cc53da89-a4e8-44fc-b199-757185d1aa6a"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "aa8a5db0-1399-4397-9812-efe1d991257f": {"node_ids": ["1824ef33-3ae1-4007-990e-2a38a329eee1"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "96bc6cf5-071b-40f2-a18e-7228b28f954b": {"node_ids": ["edad2037-5822-4d1d-841d-66ded241e10b"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "e682343e-cde9-4486-b456-e475edfcbdfb": {"node_ids": ["fbae79a1-b97a-49e7-b325-491294704e07"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "2c0df155-53aa-42c6-a41c-1f606533b23d": {"node_ids": ["8fa28574-ef92-4c6c-b836-a486fc0311c3"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "9090fba3-be99-400b-a1da-530771880f18": {"node_ids": ["72677465-31f5-4878-bbb7-93947e22b346"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "c702bfd8-9800-49c7-92fb-b693c6145849": {"node_ids": ["74e65e2d-e14f-4cc5-8016-e3766e4319a8"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "b0c6553b-33ee-4108-96ee-62f106037168": {"node_ids": ["9a6ef3ac-b79a-4356-b902-35ed95df741d"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "26481353-f152-4f38-9411-b83984780735": {"node_ids": ["696ba37e-8197-4a87-8c57-69869db5cbd3"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "02d62435-c5fa-48cc-9f0e-fb7aeb8c728e": {"node_ids": ["5fadc877-5586-4b9e-a555-77bdd03dfae4"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "e64df88d-e942-40b8-ab22-c5364989388f": {"node_ids": ["f93cbaa7-56e2-443a-8c05-f4a2f768520c"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "6092dddd-47de-4263-b7fc-a3ecfecdb2cf": {"node_ids": ["72a7ec13-75f2-4f7b-9315-bf2ab8e1bcec"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "6284aa5a-d57b-40b1-86ca-1dc2ddb4f77e": {"node_ids": ["b0024046-c605-412d-a67d-c4feb989ee23"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "b62617e8-5b2e-4ecb-8f1f-43e6137f9488": {"node_ids": ["f461ffe1-3e70-4beb-8e4e-2fb4513d940a"], "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "c867a2ae-a7d9-425a-a1de-196b65d9b431": {"node_ids": ["786fd7c3-f6c0-4853-9e02-18d51ec84468"], "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "a05b4cb2-113f-4bf3-be3c-04b7d84b88da": {"node_ids": ["c3eead52-fc52-4935-8e0c-17c3e66a0d49"], "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "12209d31-5909-44ad-841d-8d24c207b7fb": {"node_ids": ["68257f21-2395-453e-b427-e449a71cf1e5"], "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "7df62fdd-2eaa-4daa-94b5-eb47e66a77d0": {"node_ids": ["61d73bee-5e2d-489d-823d-0563b5462d6b"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_03_handout.pdf"}}, "ad712aa0-cfb6-477a-b7a8-f688e69bc2a6": {"node_ids": ["79afa0b5-9289-4e77-97a6-77fedcf62191"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_03_handout.pdf"}}, "9424c67c-0023-4cbb-a07b-55ddb2e96746": {"node_ids": ["6105b810-1abb-40a3-b00a-ac84c03b4110"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_03_handout.pdf"}}, "a59eff89-d205-408b-9480-3ac62d20ac25": {"node_ids": ["bd07802f-a077-4fbc-ab10-9d0b766136a3"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_03_handout.pdf"}}, "1052f264-49dd-47d2-a3d6-8443a6955451": {"node_ids": ["87f41955-fa21-472e-8dc0-cd4711c3a796"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_03_handout.pdf"}}, "f46a460e-58b5-46bd-a6b4-347d8650a1f3": {"node_ids": ["f3ada881-f366-49e2-974f-fac699dcc276"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_03_handout.pdf"}}, "ff3189ee-6cee-4ea0-af55-214386c4311e": {"node_ids": ["8e85461e-56c6-4a43-a9c2-1460615792dd"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_03_handout.pdf"}}, "9f775235-b052-436e-9a44-029203885d7e": {"node_ids": ["87452903-5997-468c-892a-4d4233a18f1c"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_03_handout.pdf"}}, "f9196c41-455c-440a-9fbd-4c48c23b1073": {"node_ids": ["b8035955-6e30-47bc-a4e1-611048db7055"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_03_handout.pdf"}}, "140c7a6d-d3b2-4654-94da-9c360bd4924a": {"node_ids": ["95a6c872-151d-4014-aa31-2437d61168f4"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_03_handout.pdf"}}, "3fd70f57-777c-4642-8892-0ffefdcd50e6": {"node_ids": ["dab178e8-44d6-4ed4-8d29-b250367ee35a"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_03_handout.pdf"}}, "3b30874b-f2b3-416b-9e10-2f652fab7ae2": {"node_ids": ["232f7354-00ee-4af3-b01d-62e2a6cf1a21"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_03_handout.pdf"}}, "487b3eb8-8cab-406c-8060-a2e6e36a8ad8": {"node_ids": ["1a4ccf2d-69b0-4c6a-b47b-cbcd8656fb08"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_03_handout.pdf"}}, "bcc9a12f-2bce-4e9b-b756-a2b1d08dad75": {"node_ids": ["9da2d37c-95b6-4260-aa56-f9a6e39fb71a"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_03_handout.pdf"}}, "0a0fc459-8fe1-4b48-a380-b63513da438d": {"node_ids": ["739158d1-2fb3-4caa-83c4-ef42559e09c9"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_03_handout.pdf"}}, "36bfac59-dc60-465f-b915-1005e705be87": {"node_ids": ["bb35196e-acec-44d3-94b4-03f4ba22373b"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_03_handout.pdf"}}, "a74c4f60-ea99-49c7-a20a-06789922b60b": {"node_ids": ["03875b2e-46aa-448c-a638-f3b4d34d686b"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_03_handout.pdf"}}, "fec25271-d813-41b3-b484-99b53b8fccfb": {"node_ids": ["6b41a10c-13f5-4d44-8080-8ff81315e875"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_03_handout.pdf"}}, "dd0a9c1d-115f-466a-bf74-24eeb03a0ba3": {"node_ids": ["3e7ffe36-12db-4f88-b6e4-3b5ad7af0b1d", "a56c9b23-c481-44bf-bc26-f353c0d3847c"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}}, "b6b592f8-7b24-4370-a06c-86013706fef3": {"node_ids": ["c8ee41d4-888f-4964-ba60-aae034fed8dd"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_03_handout.pdf"}}, "7b5d463d-d3de-4791-a2fe-4a4dff9bb6b7": {"node_ids": ["dd0adeb3-984c-4b58-913f-ee347afc4bee"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_03_handout.pdf"}}, "3c91e7e0-16a3-4ccd-b7ab-d0d8c4d7eb5e": {"node_ids": ["9bbd0c3b-82cd-4e5e-bc4b-01fdcae31938"], "metadata": {"page_number": 22, "file_name": "data/finite_automata_03_handout.pdf"}}, "a8d0ae09-ac89-4e73-8aef-8b45d3e55522": {"node_ids": ["590e7498-f4a9-4b9a-b8e7-56688901f0b4"], "metadata": {"page_number": 23, "file_name": "data/finite_automata_03_handout.pdf"}}, "0382de30-f2cc-4207-b40e-c03dd9526da7": {"node_ids": ["5a3b743a-33a7-4c1e-ba74-9f532f407616"], "metadata": {"page_number": 24, "file_name": "data/finite_automata_03_handout.pdf"}}, "68f337d1-3425-4e8c-b46e-e92da8276b9b": {"node_ids": ["08cbe4ad-c49a-4959-8a6d-c8e9d9f9461c"], "metadata": {"page_number": 25, "file_name": "data/finite_automata_03_handout.pdf"}}, "376f03af-7831-4263-944f-067a8a739610": {"node_ids": ["d2121c03-ca57-4920-930d-2806d96a5540"], "metadata": {"page_number": 26, "file_name": "data/finite_automata_03_handout.pdf"}}, "65963bed-bac0-49d6-a9de-d65a242db975": {"node_ids": ["76adf11d-d524-4787-bbd0-a77a5bdfd853"], "metadata": {"page_number": 27, "file_name": "data/finite_automata_03_handout.pdf"}}, "b43b6e13-0f5a-425d-9275-2729a955c844": {"node_ids": ["7cb02807-3a6b-4322-a1d6-d8aece2f2bf7"], "metadata": {"page_number": 28, "file_name": "data/finite_automata_03_handout.pdf"}}, "29c3b60a-bb82-4527-bde0-350a15fbae8f": {"node_ids": ["5dcc40da-7eb2-472b-b22c-6775eb440a35"], "metadata": {"page_number": 29, "file_name": "data/finite_automata_03_handout.pdf"}}, "3d053e94-cef1-4380-b5b1-e0b0d51c5222": {"node_ids": ["c5c359ca-e3cd-4bfc-a33d-1c1a7d0f1599"], "metadata": {"page_number": 30, "file_name": "data/finite_automata_03_handout.pdf"}}, "313d1cc0-c831-4786-a0da-932c1fc8bc88": {"node_ids": ["14d5d01f-e73e-40d1-846f-b207bf893c48"], "metadata": {"page_number": 31, "file_name": "data/finite_automata_03_handout.pdf"}}, "35a7a5d5-29d2-44dd-9aa5-27639f970e07": {"node_ids": ["edd13447-bbd1-4ad7-ad95-8d1c79ba38c0"], "metadata": {"page_number": 32, "file_name": "data/finite_automata_03_handout.pdf"}}, "14b6087f-7eb1-4559-b618-81303dba6bad": {"node_ids": ["e01af6d8-e78f-4b51-b017-6a668eaca36e"], "metadata": {"page_number": 33, "file_name": "data/finite_automata_03_handout.pdf"}}, "9023d277-fae0-45f5-95a6-6469aed88c6b": {"node_ids": ["17650171-9692-484b-8800-0431b1999129"], "metadata": {"page_number": 34, "file_name": "data/finite_automata_03_handout.pdf"}}, "b94e7616-e08f-459d-b18e-d9c8cccc5c04": {"node_ids": ["d51528f0-e47c-46ef-a09c-f7fa954bb167"], "metadata": {"page_number": 35, "file_name": "data/finite_automata_03_handout.pdf"}}, "f190840c-f1c7-4a6c-9501-64b2db54a31f": {"node_ids": ["cb47fab4-3a26-4663-971d-d0b1896002e3"], "metadata": {"page_number": 36, "file_name": "data/finite_automata_03_handout.pdf"}}, "849394fc-644f-4569-8500-914171e26ecf": {"node_ids": ["7d7f38d0-f610-414d-95e3-c3c680064ebb"], "metadata": {"page_number": 37, "file_name": "data/finite_automata_03_handout.pdf"}}, "b5c10dbe-54b3-4806-8983-d3a98129a858": {"node_ids": ["4a253d66-1583-4cfd-bea9-984528c6e8ab"], "metadata": {"page_number": 38, "file_name": "data/finite_automata_03_handout.pdf"}}, "e356ac61-993e-4364-a94e-f7b445b0a58b": {"node_ids": ["9ca1348c-2def-4c68-a259-7d11d229331a"], "metadata": {"page_number": 39, "file_name": "data/finite_automata_03_handout.pdf"}}, "73ea29ac-969b-4aeb-9022-a5bd0df59e05": {"node_ids": ["9d0b0d10-d046-4e08-bbfe-d3a26db58db9"], "metadata": {"page_number": 40, "file_name": "data/finite_automata_03_handout.pdf"}}, "eac1c32c-3264-4aa1-bf3b-5fc59fa1b043": {"node_ids": ["49162b36-6737-473b-b3a9-7793482ee363"], "metadata": {"page_number": 41, "file_name": "data/finite_automata_03_handout.pdf"}}, "9526bc96-2551-4757-9b96-b103199d49a8": {"node_ids": ["8ebc2396-6364-45ad-82ce-dbab340a70ea"], "metadata": {"page_number": 42, "file_name": "data/finite_automata_03_handout.pdf"}}, "8ea0761b-9bdc-4d7a-9681-d8639b64bec9": {"node_ids": ["58822eb0-35e8-495a-8200-bdf3662c0cce"], "metadata": {"page_number": 43, "file_name": "data/finite_automata_03_handout.pdf"}}, "32061c73-6c51-4127-9f5e-6bb73e1ea3da": {"node_ids": ["e1275809-2525-44a9-bafb-15e14944f645"], "metadata": {"page_number": 44, "file_name": "data/finite_automata_03_handout.pdf"}}, "af10af35-89d4-4899-8f12-81ec55b469f6": {"node_ids": ["769c905e-eb1c-4fdf-84f6-14f27e971937"], "metadata": {"page_number": 45, "file_name": "data/finite_automata_03_handout.pdf"}}, "c663017c-a0f0-46d9-8375-9598f20f5bf8": {"node_ids": ["bed8fca3-37f1-4a86-af25-385ae63ad65c"], "metadata": {"page_number": 46, "file_name": "data/finite_automata_03_handout.pdf"}}, "d1de82e4-a7a6-4543-9d6d-42a010f1f92f": {"node_ids": ["915aeab3-6584-4617-9f58-fc713d80a9dc"], "metadata": {"page_number": 47, "file_name": "data/finite_automata_03_handout.pdf"}}, "b296c27a-953f-49b2-943c-493f33ba628b": {"node_ids": ["79e3792a-83eb-4108-a9f8-bf22774d7ebc"], "metadata": {"page_number": 48, "file_name": "data/finite_automata_03_handout.pdf"}}, "b2cbc931-737c-4e43-82b5-4787d6ff0a47": {"node_ids": ["61753fa5-98cc-4327-96d5-64296678dbc1"], "metadata": {"page_number": 49, "file_name": "data/finite_automata_03_handout.pdf"}}, "433ec58a-41ab-4f6e-baa3-5537eec5d764": {"node_ids": ["0ddc2be0-ce5a-4e4a-a046-e87ae0be01ec"], "metadata": {"page_number": 50, "file_name": "data/finite_automata_03_handout.pdf"}}, "d3469469-a7dc-48a1-8114-c6ad60289b02": {"node_ids": ["f68b9e7d-da2f-4e1f-96b0-9d1bb241ca5c"], "metadata": {"page_number": 51, "file_name": "data/finite_automata_03_handout.pdf"}}, "92901df1-6b57-4508-9883-c67975b880bf": {"node_ids": ["675d2460-93ba-4808-9665-89eab9f8d9cc"], "metadata": {"page_number": 52, "file_name": "data/finite_automata_03_handout.pdf"}}, "9bf6d0f4-f6c7-47ff-ab18-11ad9a806eaf": {"node_ids": ["1507ec4f-e5eb-4eae-adb6-b0da7e39a5e4"], "metadata": {"page_number": 53, "file_name": "data/finite_automata_03_handout.pdf"}}, "c553e89a-8eff-46e3-9bf6-baeba39fb35e": {"node_ids": ["130f7a3f-48c9-41a3-85bf-f050bdb4cf02"], "metadata": {"page_number": 54, "file_name": "data/finite_automata_03_handout.pdf"}}, "477b0431-83eb-48bc-9e40-157830569fb8": {"node_ids": ["02aeba3e-3b4c-4e7a-bde4-4916d2109590"], "metadata": {"page_number": 55, "file_name": "data/finite_automata_03_handout.pdf"}}, "654b897d-5ce5-4d9e-a1d6-375372571733": {"node_ids": ["d13cf60f-7ae0-414a-8adb-baf89547fa12"], "metadata": {"page_number": 56, "file_name": "data/finite_automata_03_handout.pdf"}}, "edf49ec4-4d0b-4505-bff6-39e537e5d32e": {"node_ids": ["4b4cfded-8949-4b05-a853-f4379e0166da"], "metadata": {"page_number": 57, "file_name": "data/finite_automata_03_handout.pdf"}}, "8cdddba1-58cc-48ab-a868-f85419425888": {"node_ids": ["2e587b98-181b-4b7d-b59b-2c22706e75f0"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "3b6e9bd9-77e5-41ce-84a2-340f4dc22022": {"node_ids": ["f65e948b-543c-4c3e-9d06-36a16842a1ee"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "5305a6bb-8838-4138-a781-5f865e2a288a": {"node_ids": ["9b52bcf5-6aea-40ae-aaf3-05e8d96df639"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "5d74f000-553f-4673-b3d0-28cbababecea": {"node_ids": ["5767ab18-6e20-4627-91af-3637d7f1a09d"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "fdd79aa2-d716-484a-a5fb-b48c5db3d5aa": {"node_ids": ["6751d0ef-b8bb-443f-8614-b1d907c212c0"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "89380637-7b41-45f2-94b6-102faa2120cc": {"node_ids": ["8ab66ea3-8192-4554-8f82-ea41d4e94aca"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "f86f8db1-8f12-42ea-8488-e1c3f148d78e": {"node_ids": ["db6014ac-e6a5-49a6-9f7e-aa422426479f"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "b03e76c6-5dbd-4cc4-86b9-0c41fbb6e934": {"node_ids": ["bb6121b2-c770-4cd8-9d65-d67a062c63f4"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "a44778b6-04dc-4c57-9d08-5713937c5fef": {"node_ids": ["f6195136-b503-4e23-bf30-71204259bd9a"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "3b2847fa-3592-4070-aa79-ae706c9bea34": {"node_ids": ["f94d4268-a09d-452c-b0d3-cf107a84fc94"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "f79cdcab-543f-48e2-bb71-863126c6495c": {"node_ids": ["e2783e38-ecf5-4d4e-a4b7-09c4e2ae2e6a"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "f721df7a-b66d-4897-9ea3-08df3e5b20ed": {"node_ids": ["71d5db72-221f-44ae-8812-54b0c05a8556"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "bf341016-cc1e-424a-8872-7ea2560af094": {"node_ids": ["eb25e297-6a78-4bb2-973c-3de5fa8fc760"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "07352b2c-813b-41b2-b7cb-cabd91963b87": {"node_ids": ["9bee7d1a-e45d-4743-9edf-53ce4139b13c"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "98ecebcf-8483-4dff-99de-733175d15d8d": {"node_ids": ["fcca7c53-29a4-46e4-99ed-0ec171908c81"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "bf851eec-2363-4255-bfce-6e5a2ce887d6": {"node_ids": ["efe5721b-79de-48e0-a2d0-2389066fe3a4"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "9482f7ce-699b-4e10-9e1c-330a59a1ac13": {"node_ids": ["cf6e7a4c-3047-4a28-b9f8-f9950b935083"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "d333ef46-2cbe-44c7-8cd2-7d22ef295230": {"node_ids": ["8bd3240a-47b5-4a05-ae24-3ea8daa969b6"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "d5899192-847d-48b4-8348-1000d74a02e0": {"node_ids": ["bdc9d362-8f2c-434a-9e92-09a5bfd224f6"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "00dff377-29bc-4669-8075-bfab96c2ca66": {"node_ids": ["0487618e-03c2-4e67-b652-56f46ad28697"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "bf4d503a-d04e-42cd-8153-0ab8786dba05": {"node_ids": ["7aa3a21f-8102-4da9-ba10-7ee71283fb95"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "5332aef8-8ef3-4fa0-b8ca-cdfbd77c062e": {"node_ids": ["38b8eef2-7afd-48f4-8f75-8b0a020124e6"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "979f47ee-e5bb-433d-a991-5b92cb40f992": {"node_ids": ["a926350a-786b-45fd-aa91-6adfe4fb3def"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "4281f524-bc7b-4554-b8b9-a13b304bc605": {"node_ids": ["113352a7-c106-4583-8bb2-06d6c0fbf89a"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "6a0515f2-807e-4b4b-ac9a-376f6efe938c": {"node_ids": ["64187f61-a927-45ef-baef-2a35c3f136bb"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "de4298f5-fbc9-41a6-a59d-7c5f671d60a6": {"node_ids": ["44558ddc-be83-4265-b51a-d45e16a8caae"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "0c36b890-20db-4625-88fe-dc89dd530421": {"node_ids": ["ee4d1527-accb-4dd6-9838-4c44408a2af9"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "8e43b393-8712-4bd4-90e5-4e9f272248b2": {"node_ids": ["1e7aa0a3-2aea-4491-8d56-57c784e9f604"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "0a2cac94-e3ae-430e-853e-96e87c7c4076": {"node_ids": ["2fd8ee16-da22-4e9d-9936-c0c22d8e1ba1"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "563600d9-22df-4913-9ee8-0d844699b933": {"node_ids": ["67e1cb8b-5256-48c1-a90e-ca6003f5c620"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "18c99039-ee9f-4928-8f54-809ac322b639": {"node_ids": ["18dd071c-a3e0-44cd-af83-15e2cde938fc"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "f846fa69-fbba-4bc4-b518-1fce147a6f1e": {"node_ids": ["5cd3fc98-b977-4d9c-b7c6-4d3b25857ff1"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "a38742a5-fa61-4ae4-8eb4-a33df82b70dc": {"node_ids": ["a14086b3-9ff6-43da-a005-0537ec346656"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "23480e28-694a-410e-8c32-c1564b42eb4b": {"node_ids": ["9072d78b-a77a-4797-8cd8-92fe4ee426fb"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "904cc442-d779-4828-9fb7-2b83100b2806": {"node_ids": ["c3d67f7c-f583-4e4d-b107-2555d2b17450"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "905c92b8-d357-4515-b79e-5bff0111919b": {"node_ids": ["93cfc5ca-d795-40cb-a027-a8bb477e988f"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "38cd58e3-b09e-44e0-94b1-3423dce4b9f8": {"node_ids": ["81f08320-54e0-4b34-8ba1-2353b3a272cb"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "a795fad3-2212-4e02-9e00-514efac487c5": {"node_ids": ["3106406f-8920-4dc2-a1de-29e4aae6c3e8"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "2e108bd3-c332-42da-98dd-21c0e7067bc3": {"node_ids": ["99896596-fae0-4b23-85d7-3ba9a58ee859"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "390775b7-73ca-4a1b-b432-7883309453e9": {"node_ids": ["f14295c5-8bc8-4bd7-a3a4-ea435710e33c"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_04_handout.pdf"}}, "c75a9774-4709-4ab1-8b53-6fd84730cc34": {"node_ids": ["990b7cf1-8db1-491f-96d9-bc316d7ef66d"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_04_handout.pdf"}}, "e1979233-032d-48a1-9317-03d767fc53fb": {"node_ids": ["2bce2a9f-d74d-45a7-92b4-4ccb7eba8457"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_04_handout.pdf"}}, "5fb1ee39-5090-4b07-90e9-c5bf71da6ed8": {"node_ids": ["57340b14-86eb-4bdc-97af-48ac997391e4"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_04_handout.pdf"}}, "319077a3-2c6a-438d-90e4-63ebef919951": {"node_ids": ["e8c3f3ed-be45-4647-98c9-358ed28703c8"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_04_handout.pdf"}}, "897cb987-6286-42d6-b2d0-c654a3c061e6": {"node_ids": ["a4d924fe-d2ea-4bc1-8159-2aaea4423b79"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_04_handout.pdf"}}, "2aa3b17d-72bc-48ba-b8ad-88ac5076cf8e": {"node_ids": ["04fc9317-5a4e-4fe6-bae2-a8f0afcf9e62"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_04_handout.pdf"}}, "54d904ed-21db-48a1-8a45-b3ba7ba64f72": {"node_ids": ["fb2bf04c-4060-4c87-871a-5ada3b605c4c"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_04_handout.pdf"}}, "5e74b34b-eb5a-4b6b-af4a-803a3ee3ff6f": {"node_ids": ["3530f9dc-adf6-46b8-8a48-8fea3a2e1f2c"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_04_handout.pdf"}}, "80270694-d82f-438e-8c5d-83d03b0453fa": {"node_ids": ["a99b20ee-a088-4330-b194-5e3a4c333303"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_04_handout.pdf"}}, "9b5cad84-0d77-47bd-9483-4c8d13e17508": {"node_ids": ["59d2d095-7ff9-444f-9171-bc1d4a3b84a1"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_04_handout.pdf"}}, "5c8c757b-3a1b-4444-807f-ceb985abe70e": {"node_ids": ["13c833dc-1fb7-4089-abc8-53f7de8563ce"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_04_handout.pdf"}}, "4eece4c0-4d4c-4693-836f-573dcc71cd53": {"node_ids": ["acb56be8-9a1b-4c3b-bed6-d852c6597435"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_04_handout.pdf"}}, "50cb0eff-5ff3-46f3-9aad-b9a3c3f6a225": {"node_ids": ["5905125e-58c9-4361-ac68-5601addcf354"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_04_handout.pdf"}}, "f7a69ada-233a-4113-ba6f-ad5324c5000b": {"node_ids": ["538818db-d6d0-4ac6-8997-48e8bf90a63a"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_04_handout.pdf"}}, "da18c6d0-9e9d-40ee-b7fa-e9b2ca3f0909": {"node_ids": ["44c3fd5f-3a8d-4790-8196-b48e8a7912a4"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_04_handout.pdf"}}, "4f14144a-bbcd-454f-a287-be3319c91fe5": {"node_ids": ["68ff64d1-f772-4140-a8bc-ce1aff2a7cf9"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_04_handout.pdf"}}, "1255c252-46f3-4dcd-873e-0107ad97ed4b": {"node_ids": ["95b96890-c2e0-4a0d-b1f5-825cbec81892"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_04_handout.pdf"}}, "91a516d9-cd79-4482-ba5b-4c0bcc201abc": {"node_ids": ["5d72d2be-dd7d-4497-a15b-5ba2afe3c678"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_04_handout.pdf"}}, "f696f574-a0b5-40c4-ae6b-597d1cb86c47": {"node_ids": ["8fc6e945-90cf-47ec-b4b6-7d80e049d8bb"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_04_handout.pdf"}}, "d1f5ec44-598e-4805-a737-446d3782b359": {"node_ids": ["096b2c11-b7a0-4d08-939e-f88845f147c3"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_04_handout.pdf"}}, "93892016-49e0-4ee5-8eb1-600130690e97": {"node_ids": ["85cff011-36b1-45e5-929b-1355b41729e8"], "metadata": {"page_number": 22, "file_name": "data/finite_automata_04_handout.pdf"}}, "1a3d9013-8129-4b59-affd-4bf6d3c3b30d": {"node_ids": ["bcdc8e12-a386-42bd-9bab-60ab41b7472a"], "metadata": {"page_number": 23, "file_name": "data/finite_automata_04_handout.pdf"}}, "88039fb6-0435-4027-ac96-952b87d3461c": {"node_ids": ["7c2d66cd-60d3-4fbf-9078-6d24f7e529c2"], "metadata": {"page_number": 24, "file_name": "data/finite_automata_04_handout.pdf"}}, "8565e127-64fd-4e8e-87b1-a62c4e0a4087": {"node_ids": ["af0be530-21ff-48b7-8529-efecd6bf9053"], "metadata": {"page_number": 25, "file_name": "data/finite_automata_04_handout.pdf"}}, "d8636770-184e-4456-bf21-7c0ed65ac51b": {"node_ids": ["22451f25-82f7-4b91-8668-b55d6feec00d"], "metadata": {"page_number": 26, "file_name": "data/finite_automata_04_handout.pdf"}}, "25ffc98c-2146-4ccc-8af6-4d0f1c035148": {"node_ids": ["f15790b5-5a4c-44ad-b951-95d751207ac6"], "metadata": {"page_number": 27, "file_name": "data/finite_automata_04_handout.pdf"}}, "55ec8e21-69b2-4774-b3c3-25617312f725": {"node_ids": ["92944ee2-8bb9-40ba-933f-96c4760a53aa"], "metadata": {"page_number": 28, "file_name": "data/finite_automata_04_handout.pdf"}}, "7ee03cff-3537-4e6f-b56d-a8c68697da5e": {"node_ids": ["68a758c9-67a4-49ab-8480-0dc610a7a50c"], "metadata": {"page_number": 29, "file_name": "data/finite_automata_04_handout.pdf"}}, "ff7673b3-65a8-4ce1-b4a5-8ae68668275b": {"node_ids": ["533e926d-ee75-4d15-aa72-f636551be196"], "metadata": {"page_number": 30, "file_name": "data/finite_automata_04_handout.pdf"}}, "2fb1e7b9-2df7-488c-a17d-2ea45d6ed82f": {"node_ids": ["09ba93b3-53b8-45e1-a067-abfd9e60fbb7"], "metadata": {"page_number": 31, "file_name": "data/finite_automata_04_handout.pdf"}}, "856ec17e-c35a-4961-8813-bc73be85ba28": {"node_ids": ["376477e8-24fe-46a5-87b4-63b466c105f3"], "metadata": {"page_number": 32, "file_name": "data/finite_automata_04_handout.pdf"}}, "a4788d3a-7d86-4c74-a97b-f660c85ba81e": {"node_ids": ["e43ed44b-4c53-4fb7-a89d-50a3c917d88f"], "metadata": {"page_number": 33, "file_name": "data/finite_automata_04_handout.pdf"}}, "1135ba6a-9c20-4df1-ad71-ee3456f0192e": {"node_ids": ["25a77643-4be6-4bb9-9397-2a1a026050cb"], "metadata": {"page_number": 34, "file_name": "data/finite_automata_04_handout.pdf"}}, "47c5fa76-12bb-422a-8b91-9e19ea224364": {"node_ids": ["f2e498bc-f37c-4d4e-90f7-07af7a0a7977"], "metadata": {"page_number": 35, "file_name": "data/finite_automata_04_handout.pdf"}}, "b9c2efa5-79fa-4ce2-b2d4-2f6d1250e449": {"node_ids": ["907e77f2-dbab-4bd1-9278-bd47a754380b"], "metadata": {"page_number": 36, "file_name": "data/finite_automata_04_handout.pdf"}}, "d9709f5c-98f8-4a21-beec-02fb4704be0e": {"node_ids": ["c0850307-e8d2-4c5a-9251-0248f5f7aa26"], "metadata": {"page_number": 37, "file_name": "data/finite_automata_04_handout.pdf"}}, "209dca3e-1c5f-4525-9320-993732fad42a": {"node_ids": ["59af2193-22a5-4da7-9c8c-ea0f41752d83"], "metadata": {"page_number": 38, "file_name": "data/finite_automata_04_handout.pdf"}}, "549eb705-0596-4651-b3d1-26e743c1a7d2": {"node_ids": ["1efd72ea-78e8-448e-aeca-b5778e3f4b04"], "metadata": {"page_number": 39, "file_name": "data/finite_automata_04_handout.pdf"}}, "f851805c-0de5-46b3-84dd-ca001c4b7a87": {"node_ids": ["248e33bf-88a0-4a73-ac62-e269450f3051"], "metadata": {"page_number": 40, "file_name": "data/finite_automata_04_handout.pdf"}}, "86b63677-0291-41a0-a0d9-2406faa8046f": {"node_ids": ["0b520c7e-b477-48a3-bd46-c8757100f8ab"], "metadata": {"page_number": 41, "file_name": "data/finite_automata_04_handout.pdf"}}, "47208838-32d0-4a89-93dc-33610e133da1": {"node_ids": ["1b916caf-54ed-4890-9fba-d9fa6647ed34"], "metadata": {"page_number": 42, "file_name": "data/finite_automata_04_handout.pdf"}}, "8c56baff-f625-4ec4-8843-40ba82c47f3b": {"node_ids": ["dc431c00-b433-49aa-b989-234c35ceb779"], "metadata": {"page_number": 43, "file_name": "data/finite_automata_04_handout.pdf"}}, "622a7326-69ec-4c97-ad9e-ac8a53b67172": {"node_ids": ["ba08c877-faab-4163-b4cb-964157b9845b"], "metadata": {"page_number": 44, "file_name": "data/finite_automata_04_handout.pdf"}}, "dbb582f0-9ec9-4f89-b643-df55518f9c6c": {"node_ids": ["fc552436-dca4-48ad-aa55-83c4ce4b443f"], "metadata": {"page_number": 45, "file_name": "data/finite_automata_04_handout.pdf"}}, "9a9528dd-8360-4fe0-9b1f-3a0b63b0b69f": {"node_ids": ["44a40ffb-3a1b-40e4-8318-c92add56ee94"], "metadata": {"page_number": 46, "file_name": "data/finite_automata_04_handout.pdf"}}, "b602f896-d8aa-45b6-bac9-c6f20193a9c4": {"node_ids": ["ff3ae762-1abd-44d9-84f2-a0e8a77be634"], "metadata": {"page_number": 47, "file_name": "data/finite_automata_04_handout.pdf"}}, "e7f34dc9-d3db-4e14-8224-e3f94ea79a6e": {"node_ids": ["bcaa8d2b-098e-4fd8-b20f-6a19b1b3bc69"], "metadata": {"page_number": 48, "file_name": "data/finite_automata_04_handout.pdf"}}, "91ab1f46-f481-43c3-8d2b-fd91860138ae": {"node_ids": ["c209a8bb-a3f4-4f96-a693-49a3e44ab17a"], "metadata": {"page_number": 49, "file_name": "data/finite_automata_04_handout.pdf"}}, "91dc68ee-0783-4b9e-a937-147f9a0c2063": {"node_ids": ["330f1faa-1546-49ff-8e97-4bfcd61dd7d7"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "35c5ab7b-3271-4f14-adb3-8ab6a7021f12": {"node_ids": ["eedc18c6-6ea7-4e44-934b-17ddcd50ab75"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "90fddeca-16f4-4209-a617-245cee723795": {"node_ids": ["7942043c-2a19-403d-92b3-4252da50c885"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "55fcaa92-ab8b-4693-8779-0b64f9a81759": {"node_ids": ["9ca68525-acca-432a-b07a-67b0f6882344"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "4b9a3583-7636-4200-827c-c08babd56c54": {"node_ids": ["e51d87ed-d0ed-4879-a40e-4bc7d861d6ab"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "aff86d27-7984-4b85-aa38-855a4f775804": {"node_ids": ["250acb03-d118-4007-b9ef-88a0b285a1c0"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "e1a6446d-497b-4011-a12d-4cf542371059": {"node_ids": ["06a4982b-3d9a-4aa6-881f-bc2d3802d80a"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "d636c721-b4c3-4311-8e6c-72d6035413ad": {"node_ids": ["d65fce8a-f657-4f8d-bbc3-bd14b5ee1500"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "83be7494-9cef-49c1-b7fc-e674f1023213": {"node_ids": ["c36f4f78-ae09-43c4-b5b0-1a7e689ff498"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "88d9fd90-4a10-4b66-a41a-2e47fa286831": {"node_ids": ["422ba458-794c-4cf4-b36a-d1ce852f7ee6"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "04b72893-0a89-4468-94d0-90c16f2fcc3b": {"node_ids": ["e73dca09-83a1-44b4-a42d-c4b17a7257ce"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "feb489a1-2f51-4638-ab25-e5a46b98728f": {"node_ids": ["5260150f-11b8-423e-81c9-b64f7e413e8e"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "ba4014f8-75e7-46d8-8d38-7e513709d626": {"node_ids": ["0450ace0-1b52-4dc8-bd40-3be6ee69ee5c"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "f5c65637-70c3-4feb-be73-2cc8e1b6d78c": {"node_ids": ["1b32da85-5ac7-44df-a548-9be81b351032"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "a91c9f32-ad03-4a92-9798-4f11279ce83e": {"node_ids": ["fd15c25c-146d-4bb1-b40a-0d7d4a790e3e"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "430bc2d3-166c-4aaa-93bd-93baa7616694": {"node_ids": ["e9c58e0f-38ba-421a-ae42-2528e04a0063"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "8b90d55a-4de2-48b6-88fe-9d158b21c344": {"node_ids": ["d1441c46-b745-418c-9592-33d162505ee6"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "dd135064-4e06-4cd8-b179-5dbebc859e00": {"node_ids": ["4ebd56cc-4925-42fb-b349-9801db902f75"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "b1432dda-71c1-44b2-8ac8-20abf6c9e766": {"node_ids": ["bf82333d-c011-431b-a1e2-6ecc1fc0fef1"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "a3b08b90-8731-40ce-b423-ade4fc508431": {"node_ids": ["25687547-5520-41d0-b642-e33221c1dfa1"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "2aef485a-8f4c-4454-acc6-e62dd6fcbe7f": {"node_ids": ["aebc80a1-aa97-4b32-8426-7b50709597e6"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "bf7ec57a-ec3b-416c-93bb-006869e86321": {"node_ids": ["c535073b-fbc0-48c6-ace6-ba58a9813dcc"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "5b5569d5-f294-47c8-b391-1fea11204b82": {"node_ids": ["7be49e43-790f-4de9-ac1e-3f826838d606"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}}, "4915e440-17f3-43c2-bb7a-397d302cb337": {"node_ids": ["b2fab268-16aa-40b0-8c61-ed6e349b7937"], "metadata": {"page_number": 1, "file_name": "data/turing_machine_02_handout.pdf"}}, "03868c16-a5bb-4b3f-99cb-fedef8f2348d": {"node_ids": ["ca31f95b-b902-4829-9083-00f50d7727a9"], "metadata": {"page_number": 2, "file_name": "data/turing_machine_02_handout.pdf"}}, "0318d49a-342a-4ca4-9449-2436cf1f0ccc": {"node_ids": ["dce2dd2b-6fdc-4d2b-b211-f8316dc618f0"], "metadata": {"page_number": 3, "file_name": "data/turing_machine_02_handout.pdf"}}, "b87810de-cc1e-41d9-bb44-a72f685dcbc6": {"node_ids": ["1946a552-c35d-4c7d-ba81-135d6a1c4c8b"], "metadata": {"page_number": 4, "file_name": "data/turing_machine_02_handout.pdf"}}, "cc2d5143-9eb7-4818-8521-2da64743047a": {"node_ids": ["1b114976-ad8c-4404-863c-2d9c0611c3ea"], "metadata": {"page_number": 5, "file_name": "data/turing_machine_02_handout.pdf"}}, "ccd1bbef-a1f9-40bb-843f-749a1c7dd4ba": {"node_ids": ["eef15daa-4182-42c2-908c-db3a26e122ae"], "metadata": {"page_number": 6, "file_name": "data/turing_machine_02_handout.pdf"}}, "7ce7fd8d-7fa6-4b47-bd30-0adf46568376": {"node_ids": ["de3c4d0c-6406-4fd2-9896-782b4d2e2674"], "metadata": {"page_number": 7, "file_name": "data/turing_machine_02_handout.pdf"}}, "1e149010-c0ef-45e3-a48a-3f4fb63925de": {"node_ids": ["268da651-ae3a-4df9-ae31-b5d4239fe728"], "metadata": {"page_number": 8, "file_name": "data/turing_machine_02_handout.pdf"}}, "c55b4077-d252-4f49-92dd-f4c38e06feb5": {"node_ids": ["55f8e941-d0a7-419c-8399-788d88809a03"], "metadata": {"page_number": 9, "file_name": "data/turing_machine_02_handout.pdf"}}, "96d95bfb-09c6-446a-9c3a-f360e339af06": {"node_ids": ["b4eba33f-9464-42c5-9b1f-f143df051e2d"], "metadata": {"page_number": 10, "file_name": "data/turing_machine_02_handout.pdf"}}, "a12781a4-59d7-4ae5-9f1c-3971c7694b96": {"node_ids": ["73c6fa6d-c2fc-4a54-9768-ffee5a41c080"], "metadata": {"page_number": 11, "file_name": "data/turing_machine_02_handout.pdf"}}, "9cb6dd0e-83b2-4b00-ae98-c4fa330284bb": {"node_ids": ["bb7487ca-3805-47f5-97d0-c2964dfbbe51"], "metadata": {"page_number": 12, "file_name": "data/turing_machine_02_handout.pdf"}}, "4abee0cc-815a-4d6f-8ffb-bf25daa10ac3": {"node_ids": ["7d09607c-3274-4142-91bc-e65b80cf252e"], "metadata": {"page_number": 13, "file_name": "data/turing_machine_02_handout.pdf"}}, "1475f156-f228-4de9-b99b-f729f15d5807": {"node_ids": ["3b0ae7c0-c278-423d-b2e4-4a1b9836994d"], "metadata": {"page_number": 14, "file_name": "data/turing_machine_02_handout.pdf"}}, "388c1da4-8c9b-45d7-8e80-4abfb946d9af": {"node_ids": ["0bd2d91c-4d79-4909-b820-5595e341d082"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_01_handout.pdf"}}, "a28e4b84-1ce1-4fd1-b95f-bd501611d125": {"node_ids": ["6fcc3f14-98ea-4a68-8d0e-335105513b44"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_01_handout.pdf"}}, "298673f3-fe23-441b-9ce3-ba4f564659df": {"node_ids": ["8f07caa3-dd39-4fca-8d0b-924e31e2f334"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_01_handout.pdf"}}, "8f3b69c2-36e9-4aed-8c98-dc3602c04af4": {"node_ids": ["d9dd97ca-f8e6-4c1a-9e99-a448cacda8ff"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_01_handout.pdf"}}, "49af145a-e1f6-4024-bdbd-539b2531ef2d": {"node_ids": ["3f89d198-6577-41af-832e-e0776c41423f"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_01_handout.pdf"}}, "3e7097a5-25d1-4b64-a03e-e5e29f23dce3": {"node_ids": ["e02315a8-fad9-44ff-81e7-92f9e837829e"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_01_handout.pdf"}}, "09042b00-d6d7-41a4-879c-ff905fdd131e": {"node_ids": ["7f3bff10-9bff-46af-ae3a-f8583759fd87"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_01_handout.pdf"}}, "5c85fe46-4f4b-475b-b4ab-f15fb29f98c8": {"node_ids": ["e7330047-ad52-4fba-9b12-b35d32eaa7ac"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_01_handout.pdf"}}, "4e9e77e7-b3a7-4a2b-81ce-a0b8945a0d1f": {"node_ids": ["b6864e42-c368-4ee3-8f83-946fa183dd0c"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_01_handout.pdf"}}, "b621c161-c769-4f48-a1f0-39716952e53f": {"node_ids": ["5aa50165-04f9-4b30-a938-d9c46955a4f9"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_01_handout.pdf"}}, "ac08d9c3-95b2-4436-96ce-a85b1a5cced4": {"node_ids": ["ff473386-015d-4d01-95ad-f687b0ccd9a9"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_01_handout.pdf"}}, "c8de334e-306e-4a41-90d4-65da2e252d33": {"node_ids": ["b0c44be1-a37a-4caf-9017-5f29cb807740"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_01_handout.pdf"}}, "6bdcc7fa-935f-4039-8ed4-9f423a99370b": {"node_ids": ["02198f83-6a75-4b3a-a567-907c86ca8197"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_01_handout.pdf"}}, "ee6010c0-8bdf-4e7f-8f94-2b399585946c": {"node_ids": ["994a1bcd-0425-4ec3-91f3-d916016fbc41"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_01_handout.pdf"}}, "b34d648e-db66-4a0d-90f4-b0a95b73a9af": {"node_ids": ["0fc7b4e1-fa2d-47f1-a8d2-8860789844a5"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_01_handout.pdf"}}, "7cc20e1d-a658-49ec-b62c-91ec7855b24c": {"node_ids": ["cf2850c5-67ab-4cf1-a1cd-bf24bfc00f68"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_01_handout.pdf"}}, "4162601f-e4f5-48d7-8f9d-48a8731e802e": {"node_ids": ["075fcc1b-5fd8-4220-a252-0d7efe93be6d"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_01_handout.pdf"}}, "f42f0d86-6789-4853-b1e8-e052fd81e81b": {"node_ids": ["1bb1df32-4e75-48e1-af89-3b651572ed11"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_01_handout.pdf"}}, "3a09cda0-0770-43f6-8889-1e3ac2225644": {"node_ids": ["5d6784fa-3fa7-434b-8a02-50b698ac6ab5"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_01_handout.pdf"}}, "cda44dee-a432-427e-b89e-82d8b90605c6": {"node_ids": ["5fa51d73-17c9-4ba7-985e-50404eb9ab1e"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_01_handout.pdf"}}, "a35eca81-4b00-4041-a670-6481a4efa8e6": {"node_ids": ["0e8e9878-7be9-4dfd-89b7-268e73dbb836"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_02_handout.pdf"}}, "a3cf92aa-179e-4dcf-b05f-d45694669387": {"node_ids": ["27ea65bc-0c19-4a70-93d3-417dd71e0899"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_02_handout.pdf"}}, "ee064636-e607-4a66-b77d-d671ef4242b6": {"node_ids": ["e2ce2571-9f45-4e5b-b2ce-4b58030eb2e8"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_02_handout.pdf"}}, "8ff2cc43-0dc9-4a0c-880d-1a06a1c14516": {"node_ids": ["5d5d081f-db49-45aa-bc30-2e8c292deac4"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_02_handout.pdf"}}, "7837205b-874c-40ef-9674-dd122ce79e8b": {"node_ids": ["6d0dda9b-bd75-4796-808e-f27e37e1369c"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_02_handout.pdf"}}, "e229179d-d08a-452e-9dfd-aaaeb4bb1394": {"node_ids": ["131db4b6-7fd9-40a8-8079-69e12df26f35"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_02_handout.pdf"}}, "b734bedb-fbd7-4923-affe-033a97f421a4": {"node_ids": ["a34f8e48-3e87-44fa-aa5a-c3865c65cc0b"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_02_handout.pdf"}}, "5e74573a-1dbc-4881-a1aa-89fe5019fc22": {"node_ids": ["67cd5c93-1882-405a-a914-7eec9594af3d"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_02_handout.pdf"}}, "d1ae296a-6f19-49ba-a3c8-29ab82140c7f": {"node_ids": ["0333160b-15c0-4c8b-b0e1-08f542e129e2"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_02_handout.pdf"}}, "1bbd62e3-aaba-4fa5-a152-804ae52cd12a": {"node_ids": ["a0667c18-3ef4-4c34-85b0-142ceae12655"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_02_handout.pdf"}}, "a9a7cdcf-82ec-4b18-9aff-6e826cc74a42": {"node_ids": ["b93b119b-e9aa-4590-ab41-a961bbc3844b"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_02_handout.pdf"}}, "24834713-4167-49dd-be55-784f6878f4db": {"node_ids": ["391d073f-9257-4d7f-8c31-6e596ef4f43b"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_02_handout.pdf"}}, "6e5d2228-8b1d-460a-a784-6a986bafb824": {"node_ids": ["76ca7758-009f-431d-8a50-c1f1e0d349dc"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_02_handout.pdf"}}, "71c71302-870e-4a74-85d6-02170aef8831": {"node_ids": ["e3bd8fae-822d-4c25-b057-8f11e5856c2e"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_02_handout.pdf"}}, "5e6f636f-5dd2-41e8-9725-d2377da4d912": {"node_ids": ["9cb92825-eedf-4f38-b87c-58ac8c3c371e"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_02_handout.pdf"}}, "c9c546aa-edd2-482a-bb08-95fc3ebbb66f": {"node_ids": ["6b61fe6c-4b08-4931-9253-1765b0cf01cc"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_02_handout.pdf"}}, "7e1e4c2c-7963-4e44-bde1-441f67db048a": {"node_ids": ["e7801e29-6084-4c09-b14f-f36c2ef53cc7"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_02_handout.pdf"}}, "a7a7d8e7-0d75-4428-9cee-f3539180de27": {"node_ids": ["3b2f6924-5058-4f92-9e89-4b4a1af8b637"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_02_handout.pdf"}}, "00f57648-3df8-4ef6-bd53-926decec2597": {"node_ids": ["45c73c5f-fac3-4ab7-9f4b-c1c12e8e17a7"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_02_handout.pdf"}}, "6da110ac-aff3-442a-b0da-d7882dbfbd28": {"node_ids": ["4a0f1799-f1f6-4e37-a32c-a983f81b3eac"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_02_handout.pdf"}}, "8757f5e2-2c13-46af-8844-6a837ac6c620": {"node_ids": ["80ee4351-d2e3-4313-8db7-cc44c5baa56f"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_02_handout.pdf"}}, "8f2b7f50-2bf1-4e7d-9619-aacfe7afc768": {"node_ids": ["15dc59b7-ab2a-40cb-9d83-95b4b884fe46"], "metadata": {"page_number": 22, "file_name": "data/finite_automata_02_handout.pdf"}}, "d6ece9ca-b727-485e-bed7-dada89314586": {"node_ids": ["0dbce0f9-b2e7-4a89-8e27-d51ae17f87d3"], "metadata": {"page_number": 23, "file_name": "data/finite_automata_02_handout.pdf"}}, "266d2c3c-b80a-4cb3-bba4-e080351b7183": {"node_ids": ["b925801a-dc3c-49fb-b706-12aa3eddce41"], "metadata": {"page_number": 24, "file_name": "data/finite_automata_02_handout.pdf"}}, "5967aa4b-bab7-4a0f-aff3-dc3d21eb8392": {"node_ids": ["ccdbcf9c-1d21-4f6c-a325-cba488bcba28"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "af587276-2133-4a42-93ea-3a96f3fa59b8": {"node_ids": ["9f20ae3d-8eaa-450c-bf2b-9adc4bbe320e"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "fb137286-c8b8-4a9f-96e7-78bd6bc76ca1": {"node_ids": ["39ee6b94-e6be-4b39-873e-786fa919f6e8"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "a140bb0c-ee7e-425c-b53a-a2562764016b": {"node_ids": ["829f4ba2-1b03-4379-bfc3-c178cd2092ee"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "8f82b6fc-066d-444e-98c3-0d5c603f6c4c": {"node_ids": ["d822a0a1-769c-41aa-bc2c-cf433b31caae"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "1d5b0f39-f7ee-412f-b4b3-7b907701769e": {"node_ids": ["99dd902b-c2cc-4849-8038-f098727ae79e"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "961d2857-1b3f-4615-a14a-a550306070ac": {"node_ids": ["015e052f-b219-47e2-83a5-6aa14e383218"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d69116b3-cdcc-4f30-adf8-510a55217076": {"node_ids": ["bd1206e1-6854-4d58-a884-214344c5c753"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "fbde05cb-f208-4694-8d09-9fb34fe02218": {"node_ids": ["3c574f05-08e9-4c0b-8906-ecdeeaadf914"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "40f0fc8b-abbd-4d21-9662-147bd61869f6": {"node_ids": ["ac87b2da-5bc3-47a0-98ad-684eae496914"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "3006742a-dd04-4e2f-b4e0-f3745c5dbb1b": {"node_ids": ["91ace2d0-0eae-465e-a7cd-d96d081ecfa1"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "5d109cc2-54f1-4cc1-a882-f6ad37ce29bd": {"node_ids": ["6fe40d8a-f21f-4be7-86d8-4a3cc9d5896e"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "5678a189-d277-4bce-8ccc-281672b34472": {"node_ids": ["8d9cf26e-ccda-467f-8367-f591a9fdc671"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d659a1be-6a06-4184-9187-15fcd85995a9": {"node_ids": ["ad2a513e-8eb6-4926-919b-9f25c6c9e78e"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "c72b244e-621e-4335-8f3d-3b94be606a44": {"node_ids": ["a1ffeec3-f726-4f06-9f75-5d141d1e384d"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "87355608-b928-4694-a4bf-38528e393dae": {"node_ids": ["da7b68b4-e618-41fe-9e89-c521c9e666f7"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "6c81bad8-3008-4d78-b184-ff30eff78cbf": {"node_ids": ["34c36b38-266f-4670-922b-9d0ceb35e88a"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "a092e841-f6f7-4721-90ef-6acdd6dd05f2": {"node_ids": ["fa912051-4e1b-4d23-bc65-f0260f288fca"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "1a613961-8e1a-4c3a-9b65-1c3d18e86e11": {"node_ids": ["e46d527d-f53c-4e33-b3dc-14ea2b85973e"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "2b351626-476d-4488-a10e-775b12360a42": {"node_ids": ["4a3e33da-b45a-4b8b-8e38-1f42e4f43080"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d1b81d8d-a3bc-490f-b97d-2d8144ab6dd7": {"node_ids": ["1171bf29-bb3b-4657-a2a0-274fafd9e20a"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "a798e670-54b2-4490-9817-31a9b82bc6bc": {"node_ids": ["bf715c94-25db-4622-a8a6-a7a1715b9889"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "322047ab-a946-4e0c-88de-02cbd1f5622b": {"node_ids": ["49a34094-c998-42e2-be9c-36500503ae78"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "f995764e-0ceb-4141-96ca-af3004349f66": {"node_ids": ["c1f988af-d816-4d7d-ba12-8bb3edec13b0"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "b9c54d02-220d-4d6b-bffe-67a782db3268": {"node_ids": ["44500bbf-15f2-4b98-b713-77b6bc2cc40b"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "b27bb8b0-02cf-4c85-ad7d-0a664c22d1ef": {"node_ids": ["c5d28357-4171-4bfa-8e9d-1db2f30a158f"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "d5c919ab-0f03-4f9f-be11-2c1472e815bf": {"node_ids": ["6c07ff97-99cc-4d91-8526-8d7922ddf6c2"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "2c9ed2cc-c769-4de2-9012-4f0023e82ec0": {"node_ids": ["518be595-5ea8-4e62-9423-47401abd6683"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "b974d3ca-ca7d-4d98-be7e-14c4c2e34031": {"node_ids": ["7886d762-cffa-4e27-b133-6f81186d23b8"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "c96f5f55-4236-49f4-9378-8c4ec1df75da": {"node_ids": ["4647ae00-8cf2-4bd4-ba67-abe38c8fb375"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "27af1bb3-df49-4d55-8d6c-aa02e0d9eabd": {"node_ids": ["8d5dff5d-872d-4b22-854d-682a97e6d38c"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "1e77117e-93db-49e4-a612-38b0e2d12601": {"node_ids": ["1a2123f9-d05e-4639-8971-343b22eac214"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "efe08df7-6807-4b11-a8a5-f2b12ca98214": {"node_ids": ["1b4b2385-313c-4a44-b081-ac433ac0efeb"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "ec38d52f-c79a-419e-9854-5e7d812ff39d": {"node_ids": ["c5b26799-40c7-46cc-adc0-7fea818919b0"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "b3e21805-40e6-4640-a602-b99493a93619": {"node_ids": ["d262c34a-44f0-4b58-bec6-b841ae7b520b"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "899716dd-0f52-445c-999e-f6401f82e53a": {"node_ids": ["0601cc23-c604-4970-a8dc-56e351ba29cb"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "7accf737-7dff-4c23-974f-fae835d06bfe": {"node_ids": ["cda5aa5f-b6d7-4e19-a872-2f1905bc622c"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "a7a292c8-0442-49c3-a555-f1fbbced5a11": {"node_ids": ["66d5d72f-8b14-4092-abd2-3ae331f97fdc"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "29a044f2-0d32-449a-abf2-0bb89fbed685": {"node_ids": ["a49367b5-8166-4ef8-9c51-11e24bb9bae6"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "2e15443d-680a-450d-bf76-28bbb9ba5c58": {"node_ids": ["3cf29be9-7ec8-4227-a7c0-b7540f6f80ce"], "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "5067daf4-ce26-44a9-9f57-593e48801f7d": {"node_ids": ["0591449b-bc1d-49aa-adf0-1afe69862ed3"], "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "39e82b4c-2eea-4d5f-b363-8e5851a8e173": {"node_ids": ["8554c5c7-6204-4441-ad1b-72b3cb869b87"], "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "2976cae5-17fe-4e97-90a1-ccbbd4affb0d": {"node_ids": ["b4832df7-1a00-4374-b378-da0c65660647"], "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}}, "1b78836f-8eb6-4bc9-a070-b721df297f54": {"node_ids": ["6f7b327d-e7f0-470d-95c9-e555b324614f"], "metadata": {"page_number": 1, "file_name": "data/turing_machine_04_handout.pdf"}}, "f1cc888e-8adf-4fb6-be26-6e8182c86e7c": {"node_ids": ["80e790e0-36cf-491e-bf66-6c07378fe115"], "metadata": {"page_number": 2, "file_name": "data/turing_machine_04_handout.pdf"}}, "8861fdd5-3a76-48a6-8c4a-7b3b12c7bd76": {"node_ids": ["af8eb324-191c-4345-8470-62370db5594d"], "metadata": {"page_number": 3, "file_name": "data/turing_machine_04_handout.pdf"}}, "dd7f50d9-513a-4172-ac62-dc818f3a77e3": {"node_ids": ["4ac9a2d6-7dc0-4751-b309-3eb75031fb25"], "metadata": {"page_number": 4, "file_name": "data/turing_machine_04_handout.pdf"}}, "759f0009-a9ab-4ff5-8b0f-4e1eaf337cc5": {"node_ids": ["e46b8c6f-8aa6-4815-b09c-bdaa67f03b47"], "metadata": {"page_number": 5, "file_name": "data/turing_machine_04_handout.pdf"}}, "30541b0d-fb92-4a5e-b098-bb8d4192522c": {"node_ids": ["3847a489-078c-4242-8ca4-d3e3e64c0ec5"], "metadata": {"page_number": 6, "file_name": "data/turing_machine_04_handout.pdf"}}, "0bad938d-a22f-42ee-93eb-faad8e05c6ac": {"node_ids": ["45b66ae0-348f-4024-9072-b76734054ddf"], "metadata": {"page_number": 7, "file_name": "data/turing_machine_04_handout.pdf"}}, "cd6e83af-7290-4e76-8ce6-752abd2bf88f": {"node_ids": ["c6c7e947-5730-42f1-b9b4-0c149e83cf76"], "metadata": {"page_number": 8, "file_name": "data/turing_machine_04_handout.pdf"}}, "6ffc99ff-aaf6-4a66-8b84-8c4a6895d09d": {"node_ids": ["0986cdb8-8a54-4948-b249-4d01dae7a799"], "metadata": {"page_number": 9, "file_name": "data/turing_machine_04_handout.pdf"}}, "2a1322b4-4bfa-45d0-a31e-ba66a0cb0aa7": {"node_ids": ["2e6afa40-dc69-42b5-a08e-a577a616e454"], "metadata": {"page_number": 10, "file_name": "data/turing_machine_04_handout.pdf"}}, "91b923dd-b727-411d-99d9-81ec6060622f": {"node_ids": ["c4f85860-bec4-4ff6-92f3-e8bbc3150172"], "metadata": {"page_number": 11, "file_name": "data/turing_machine_04_handout.pdf"}}, "6dbfed81-1217-4441-a9dc-f60fdd0439dd": {"node_ids": ["3631641e-a89a-4a0f-ac48-8db57f5b38d1"], "metadata": {"page_number": 12, "file_name": "data/turing_machine_04_handout.pdf"}}, "8a5479e1-0112-4e61-8aeb-c69f243a3048": {"node_ids": ["081615f8-c639-4a8f-b78f-ecc1da04bd8d"], "metadata": {"page_number": 13, "file_name": "data/turing_machine_04_handout.pdf"}}, "cc231400-7e1f-473f-896c-4b69a8121111": {"node_ids": ["6e640e24-51ed-4511-b4c5-7a1998ccfcd7"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "aa531ed4-128e-4161-bef7-e2d77ca6e3f8": {"node_ids": ["a6409862-ce30-4c79-b366-d5f386e6cd74"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "1390b0c3-8426-4f96-a059-babc10149e0b": {"node_ids": ["5e3a13fe-1099-4c91-bc48-6980c0740307"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "14114aac-05f0-435a-8483-9b8dc9ce0edf": {"node_ids": ["00ea1af3-57f7-43e9-bf62-97ef3fdc33c1"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "1687a4dc-2554-4962-9a20-1422ed2a3b37": {"node_ids": ["a9e680e3-ae45-4ef6-b947-0da06d414459"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "0da0bf71-3502-49a1-b64f-f2a2d0e9a6f6": {"node_ids": ["7ed148b1-ab3a-40d6-bbab-57d0f04101ee"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "67080765-7312-4c6e-8200-725c949f678f": {"node_ids": ["4d2f0e2f-c372-4946-9b4b-6d16e3c7251d"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "a3df930e-23d0-4f86-b6f3-85dc14e465ae": {"node_ids": ["eafd7453-9967-45f1-a581-a50382b5c28e"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "8dddb3f2-f88b-43bb-bb84-8047a11ab2f3": {"node_ids": ["7d65b5f0-9301-4391-b828-34089ceba7a6"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "ea91a3dd-433e-45ca-a0eb-9bb966aac1c5": {"node_ids": ["90b7b832-dcd1-4ceb-98c4-d7aca31bfc02"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "9eef6c47-abe0-4227-aae9-9530ad647ebb": {"node_ids": ["a04358d6-0fdc-4a7c-bcbb-514be3466186"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "c7d6ebe1-830c-491e-a58a-35706c527888": {"node_ids": ["bba07eca-c91b-4013-a1a0-c4297a35557b"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "5013d4fd-1f93-48dd-a92a-acdfe0d40ca0": {"node_ids": ["992b030b-6d80-4c1c-825f-3bd4e92d4851"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "554a79a5-ffe5-45ca-8d6a-971f646af1bb": {"node_ids": ["6598170e-24a5-4746-aac2-48a808b7bc0a"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "c847ff92-9dca-4207-9d2e-65f93c06ea24": {"node_ids": ["18dc3aea-4e48-49e5-bde9-976b5fc44c26"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "4436ea16-0c7b-4670-96d6-6044c12fb767": {"node_ids": ["d29b271d-8dec-4265-bcb1-933a1a03e860"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "aad66c98-768a-4079-b1a0-f3468339e9fb": {"node_ids": ["0be0c4dd-13fe-4f7e-8832-62cf540edebe"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "9f3c4dc2-2c7e-4689-99ba-e007f7f45915": {"node_ids": ["6b50b864-6ca1-49c8-b223-1da7ec69ad85"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "fd165a1c-d804-4dff-9caa-7f91a5c9889d": {"node_ids": ["0d44c4e1-bba9-4d00-b6d4-b4e22e917e54"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "afb57750-d892-44a3-9e44-ff21bd8c5129": {"node_ids": ["4331c831-30c5-4782-a99b-0a6995c656b8"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "4bc910b8-96e0-4206-967a-7bdb180b0b2c": {"node_ids": ["0fb7336b-e30d-4f1d-ac1d-cd3ade4cf822"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "2589c2b6-9943-4ba1-a64b-4b74a57a9f33": {"node_ids": ["2e6565ae-32c8-4a26-b9d2-706f455aaf0c"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "81a7893d-37f9-42fa-8c5e-5664e742e0cd": {"node_ids": ["2c089c49-2bd8-418f-b6d9-410de832dfdf"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "2fae99c9-572c-438d-846e-ba4721fdb69c": {"node_ids": ["376f1a79-f4c0-4b47-a481-fe50c2dbf7f1"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "d7462afe-e96c-460b-9ef3-ffe39476c7da": {"node_ids": ["7947fb2a-178f-4abd-8634-a655f235101f"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "2ec55281-0bc9-4e05-b8a8-c445a6aaac75": {"node_ids": ["eed5ee0b-1eb7-46c3-8b9b-440f3220dc4c"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "6f8c0c9c-80a1-4a91-8fa6-06a7b8cbef7c": {"node_ids": ["eab6b231-b65f-4aa4-8c0a-58ce4f93b13b"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "7c33f5b7-633d-4afb-91d7-cd95997c74f9": {"node_ids": ["f9698ab2-925c-47a7-83b5-bf24df213f1b"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "a3071fd2-2d00-4b71-b7f3-d4385766bd85": {"node_ids": ["6b54c984-07be-4eaf-8743-19fd01c5b12c"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "74de1da1-28ea-4353-971d-cfa838e7af9f": {"node_ids": ["348aa0a8-5cfd-40f8-8f80-f9b91ac23506"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "d22e652b-23b3-4d7b-b35f-e8dc666ef600": {"node_ids": ["565790d9-5038-4830-8aa8-f5b53ba03da5"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "d569f7cd-7f99-4f6e-981b-e5510a8aefad": {"node_ids": ["a943f8e9-5ed3-477b-9ed0-bc4e5f2b747f"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "08eefcaa-7266-482e-bd72-dc39740d6207": {"node_ids": ["fd0dfe16-c066-420d-b844-f5136d2c9027"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "0f1cb1fd-64ac-4e8e-b693-e3a2e57eab81": {"node_ids": ["87e72b6d-927b-469d-b7f1-2bd42dfd6936"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}}, "faaed87a-ac73-4028-abd1-287605f107ed": {"node_ids": ["b927188e-859b-4b23-bc2b-757dad8b64b7"], "metadata": {"page_number": 1, "file_name": "data/turing_machine_01_handout.pdf"}}, "7612d31b-4ef9-4640-949c-0d9a28b0ca2b": {"node_ids": ["a96c48b4-0caa-457a-9d1d-98a44d4df424"], "metadata": {"page_number": 2, "file_name": "data/turing_machine_01_handout.pdf"}}, "bc1d666d-3217-468c-ab86-c82e94eded59": {"node_ids": ["a6ba3f0f-195e-4561-a77f-06f4364485c5"], "metadata": {"page_number": 3, "file_name": "data/turing_machine_01_handout.pdf"}}, "5bce56ea-0443-4947-9c3d-77596d9bf5b6": {"node_ids": ["81aebd08-ad3f-42d6-b782-3dfe4a003cca"], "metadata": {"page_number": 4, "file_name": "data/turing_machine_01_handout.pdf"}}, "8f55d63a-b7af-463c-98cb-0acf2e22d030": {"node_ids": ["6be68313-a3eb-4002-acab-5f6fa4f857e2"], "metadata": {"page_number": 5, "file_name": "data/turing_machine_01_handout.pdf"}}, "e076ad8c-295f-46b4-84e0-2eb7e29247b0": {"node_ids": ["b34e9ee9-eb62-42fe-8909-fce4b5b0ab85"], "metadata": {"page_number": 6, "file_name": "data/turing_machine_01_handout.pdf"}}, "cde2fe34-3dbc-4a40-bbf7-7e76dc888737": {"node_ids": ["cd23dac7-3110-435a-a425-009e94d6016b"], "metadata": {"page_number": 7, "file_name": "data/turing_machine_01_handout.pdf"}}, "06fa7d7a-26f5-4678-b4ef-3e4d9a722230": {"node_ids": ["6564d194-bcc7-475d-abba-ba906f67bc99"], "metadata": {"page_number": 8, "file_name": "data/turing_machine_01_handout.pdf"}}, "8c535be3-cf42-4e20-a38b-46a3d73544a2": {"node_ids": ["87c5df61-76c4-4d14-b6df-f510e146736d"], "metadata": {"page_number": 9, "file_name": "data/turing_machine_01_handout.pdf"}}, "325a70f8-09c0-4acc-8535-a7b663aeae7e": {"node_ids": ["9b08e1a2-7570-4caf-bd93-446617714985"], "metadata": {"page_number": 10, "file_name": "data/turing_machine_01_handout.pdf"}}, "dc74e7d5-9572-4f63-9924-8ff432d69ee7": {"node_ids": ["daeebdc0-ea63-46a1-b5f1-8e83e4d5bd0d"], "metadata": {"page_number": 11, "file_name": "data/turing_machine_01_handout.pdf"}}, "4ae69d03-c6ab-4718-8adb-57792fe1e739": {"node_ids": ["95cba21a-d4b1-44e6-a761-a81197f6e89e"], "metadata": {"page_number": 12, "file_name": "data/turing_machine_01_handout.pdf"}}, "7b1e35fb-4826-45a7-9249-bef79bbd8b6a": {"node_ids": ["76d389e6-3abb-4c22-9cdb-07ab96538a32"], "metadata": {"page_number": 13, "file_name": "data/turing_machine_01_handout.pdf"}}, "da13a56d-8fce-4bba-b7ff-fe4e6be10c51": {"node_ids": ["e48b9a83-2ab3-483b-9f67-d16080347b1d"], "metadata": {"page_number": 14, "file_name": "data/turing_machine_01_handout.pdf"}}, "113fc94a-e2f3-4f1b-ab15-6c549fe4e6ac": {"node_ids": ["b4372a48-da76-4024-8610-8ff9e7dd482a"], "metadata": {"page_number": 15, "file_name": "data/turing_machine_01_handout.pdf"}}, "d15ce02a-2818-4ba0-afb2-ed14474a85ec": {"node_ids": ["cf696657-82b7-40d6-a644-cdfff1f5c616"], "metadata": {"page_number": 16, "file_name": "data/turing_machine_01_handout.pdf"}}, "1b74419a-3fd5-49cf-9c34-dc9ed76d46cb": {"node_ids": ["6b9ee4b8-06ce-4fdd-ba28-19be70a516be"], "metadata": {"page_number": 17, "file_name": "data/turing_machine_01_handout.pdf"}}, "1591ea00-6029-4901-868d-12718487f37d": {"node_ids": ["73f85509-7129-4186-9d07-bc5571f06b05"], "metadata": {"page_number": 18, "file_name": "data/turing_machine_01_handout.pdf"}}, "ff36db98-51de-4545-be95-89278b6353e1": {"node_ids": ["e8070576-4d56-4c8e-a243-2cd0fe949833"], "metadata": {"page_number": 19, "file_name": "data/turing_machine_01_handout.pdf"}}, "39d97e15-b263-46d9-a01b-35c642aa0817": {"node_ids": ["3b4364e7-7c52-4eff-a9fc-83af69226891"], "metadata": {"page_number": 20, "file_name": "data/turing_machine_01_handout.pdf"}}, "7b9a644b-c6fd-4dae-a579-e57d0a58931c": {"node_ids": ["ec7a7edb-528d-43a2-8462-edb28ab51181"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "9caeb76e-b863-4703-8716-f08392de7434": {"node_ids": ["93839d3c-727b-4d0f-b764-42f0e751bfb5"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "56e2c99c-5552-41e4-8778-e7d4543d5356": {"node_ids": ["60723f65-59e9-407f-8519-ad6abcf921c1"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "2bb80e4b-b034-4ac1-9d3e-8b0ccdaadbb7": {"node_ids": ["19e8956f-e6eb-4069-b57b-766a1330fc48"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "2cf6ac9d-5afb-4840-a304-5add74fbc154": {"node_ids": ["79a72844-85ee-47a0-8ac5-6937396e186b"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "c08a047d-c8e7-426b-8b1f-2d73a5bd7e65": {"node_ids": ["0b13cc6c-6e49-4290-9177-4ec1c61bea7a"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "1a67f596-05fa-4a66-ba9d-90e594959bb9": {"node_ids": ["3971ccae-05e7-426e-8275-04aa01cfaad1"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "eb35ec36-bab1-4940-a149-e2197bf3dc3e": {"node_ids": ["49fd31d1-35c1-40ee-b0a1-e5fb8d64e0d0"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "8c9fc755-998f-45ee-91a7-a4f7e13bd03c": {"node_ids": ["238da70f-2360-4a2c-bc16-e5a5bd8e639b"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "4b70aaf1-ede9-484f-8617-0ffa8a8b7154": {"node_ids": ["56d940a0-f071-41c3-9b21-4ec904915bf7"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "3e9f24e1-8b12-419c-a9a1-988aa0b8706f": {"node_ids": ["4eb7659b-d89a-4b61-ab72-02db40cc9215"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "aa72dab5-1dc2-4ea2-9075-5b00e1505098": {"node_ids": ["00f1fa25-1638-4350-8910-4ef90434996a"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "00740293-5c14-4195-9b5d-9da45586c457": {"node_ids": ["ed3e380f-5a63-4e5e-994f-9568efb2e284"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "2a077a1b-1206-4ba8-81c6-1ceedf2c5725": {"node_ids": ["cd045430-ca5f-4cb6-b5aa-95ff0da36004"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "8faaaa9a-00ff-46c5-bb5e-c499e551507f": {"node_ids": ["8f5a0a96-4ff8-4666-a04d-60c1cca8633d"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "add62337-df97-4c8e-8621-e6255491f25e": {"node_ids": ["22932222-1007-4266-8f37-b778afb0b4fd"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "2ba8096b-ed93-4ec5-bd8b-d3025f371374": {"node_ids": ["b418b2bf-bbcd-468a-9249-4dcae926007e"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "38988292-1cb1-4b1a-b3a2-5ae8eaf43460": {"node_ids": ["0facf28e-5a61-4baf-98e5-707c943cc6d3"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "ef4ddd3a-a366-4d61-94a6-a98c21f2effb": {"node_ids": ["99b84183-91b7-45ac-bc2e-1cce9453a76c"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "d319dc7d-0846-4e43-af7f-96ed5d2d729a": {"node_ids": ["aa6c5b6f-bce9-44aa-a66d-faf5aa5f7ef4"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "b048e24d-2a83-4a68-8f68-80ec7faf22cf": {"node_ids": ["f5798380-5897-4c13-b360-6a8fa6d07c78"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "7083108e-8415-424b-a96c-2981abddfcb7": {"node_ids": ["1f1cea00-e48b-4455-846e-12c48ae1fdb7"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "a4f4b551-74bc-4323-8a9a-02a0f1e6a993": {"node_ids": ["54a6d5ff-d3b7-4585-9fd6-d2bcadb95dd2"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "6e91554a-885a-4e4a-a777-056e8d5a8c57": {"node_ids": ["2d5ad4ed-5aaa-460b-a201-929d2434f81b"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "a3548692-800b-4fcb-ab46-84c0cb5b9005": {"node_ids": ["38cef840-1efd-449e-9eb4-5a9bd20e8906"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "a7a2ba92-f3cb-4cd4-a3b8-2d1267d23817": {"node_ids": ["565237ec-1949-495b-af0f-3e21cfb8e36e"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "14beb26f-cda7-4ea9-bc85-9710da43e6ac": {"node_ids": ["6ad23681-9de1-4ab9-b140-37de2062114a"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "a6a2986d-afce-484e-a66e-fb5a0f8ac5f6": {"node_ids": ["14d0cbf0-7dea-4331-8706-cd0001dc215c"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "86b61dfa-1138-4166-b8e3-88cc0d13739e": {"node_ids": ["5c43a70c-6302-4fad-9134-a78b3123213d"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "788eb3b6-5244-4563-9cf1-7aea78dfe1a7": {"node_ids": ["f0cc97e0-1d67-4330-8cd6-a522791b2789"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "1982a36b-a5e5-4468-acd7-b54524f9264c": {"node_ids": ["761b4ec3-3622-4a5a-b012-c92280e3a419"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "a2142bd0-11cf-4b2c-9ebc-8f44aa906c42": {"node_ids": ["c93de882-c6fa-4a43-8698-34bc6c8c9bfc"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "344aafc7-2407-450e-ae54-469ab61d1900": {"node_ids": ["473aac86-8c7a-48c9-af09-95111d1f6f25"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "2e3eacf8-8901-4ea7-b295-bf183c160cf7": {"node_ids": ["b299084e-9357-4596-b282-b15882acd860"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "aa4940e7-5589-4db1-8fa8-3ed77aa08bf0": {"node_ids": ["70ebc0ac-6b55-402b-b223-8d0876dff4c7"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "54eaaa6d-90a8-4240-8460-4c1991539627": {"node_ids": ["1e41604d-cd99-4802-ba42-2392510bc49f"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}}, "a355a15e-17e2-4b65-ba87-cd6807176452": {"node_ids": ["22929174-27ee-4496-a9eb-fc80e8c624c5"], "metadata": {"page_number": 1, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "e4524f65-03ac-41f5-93ee-b3929e7167b8": {"node_ids": ["aa1f3d29-3083-4e9f-ada1-f5df1a50ab7f"], "metadata": {"page_number": 2, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "34dc9f85-ca3b-4157-a4df-b75299068343": {"node_ids": ["54d3f433-3f90-480d-9479-7a38f1568e2e"], "metadata": {"page_number": 3, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "0a81626f-1913-45bd-ab50-53f8c3b45e4d": {"node_ids": ["13e17dd2-b939-47bc-95d5-e5e9cde74300"], "metadata": {"page_number": 4, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "5ec126f6-b6cc-4988-88e1-a152b8c1ecf3": {"node_ids": ["80b3d163-235b-45b7-899e-0196ebb70c78"], "metadata": {"page_number": 5, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "878e7b74-cd68-4177-9e20-cde9449b2a7c": {"node_ids": ["14d1d358-0fa1-4589-9677-ed7678535bb5"], "metadata": {"page_number": 6, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "ac454ac9-bc7b-420c-873d-351a766465cb": {"node_ids": ["d2d3c724-8cd0-4ff5-adf0-b9b5e179cc23"], "metadata": {"page_number": 7, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "d4037846-a27b-494a-b2c5-1629a4fef24c": {"node_ids": ["6ff67467-80f2-4ac6-abcc-8b05f42e1c53"], "metadata": {"page_number": 8, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "9ede11bc-6f3a-484c-90c6-74667d534864": {"node_ids": ["3bdab8b8-5661-4f28-a5aa-04b4310fa716"], "metadata": {"page_number": 9, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}}, "fe7cf247-c839-4fd1-8b37-ee84fc8fcfdf": {"node_ids": ["41d3257d-5b62-47fa-9108-5a668cd0a0b9"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_07_handout.pdf"}}, "1ebcf251-6a6f-4b09-aaa2-74e159a74d0e": {"node_ids": ["169e1e10-490b-40e6-95ec-945cd0923375"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_07_handout.pdf"}}, "2ac1b4b5-c959-4be3-bb99-a56f9e944ea1": {"node_ids": ["9aa731c7-12d6-4982-8b43-4e91452524e3"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_07_handout.pdf"}}, "42d5c750-c96a-4ecd-a013-f598907a8749": {"node_ids": ["4b2b47c1-6d90-4c1b-a7ff-c8891d489a10"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_07_handout.pdf"}}, "a9587dee-3cb3-4ece-b0ea-3b2f376171c2": {"node_ids": ["61cbfd59-0d36-4e50-aef1-e5d5c430075b"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_07_handout.pdf"}}, "b2e83e5e-2b85-4e9a-a91b-15c4707616bb": {"node_ids": ["71493d7e-106b-4e9c-883a-92b1a118af65"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_07_handout.pdf"}}, "f42795b4-e940-4b2c-b6fd-1b90d8a4fe18": {"node_ids": ["f150b3f1-82bc-4d41-84bf-662b826242ad"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_07_handout.pdf"}}, "ce60d42f-774c-45be-8f82-8234614b496c": {"node_ids": ["f896cab0-ca11-4e57-97e1-15a2cc79d2d4"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_07_handout.pdf"}}, "fa4f7cd1-6aaf-4c36-8830-5c1991ce8c46": {"node_ids": ["89d08691-b7d4-4c1d-9988-e9bc477dc78c"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_07_handout.pdf"}}, "ca27478f-f999-4258-95ea-2c39924b819f": {"node_ids": ["993b0fa1-7b50-411b-9997-526063978c50"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_07_handout.pdf"}}, "2b23393f-70b3-4d44-abde-b9c000d04556": {"node_ids": ["1dc08559-a231-4fe7-8206-b4d80d0359ca"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_07_handout.pdf"}}, "5cce898e-c4ba-4fe2-96f2-025fad7ce913": {"node_ids": ["8af965c1-d008-40bd-b22b-65286d760fd6"], "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.5.pdf"}}, "1b3e1f01-c706-4ee0-88da-684c66521545": {"node_ids": ["c64b6ee7-1e25-47c5-b07e-dabb9bab3006"], "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.5.pdf"}}, "a6802d02-2f18-453b-acda-a82718dbe52e": {"node_ids": ["6ea020d7-d092-4a18-89c5-108637e539e1"], "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.5.pdf"}}, "73152520-c96d-44a3-b318-c7b46f501e6a": {"node_ids": ["455668e0-baed-4f3a-aac7-31e8a08f8ee1"], "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.5.pdf"}}, "c5cdd5d4-6cae-4b2c-9b03-e023963379c5": {"node_ids": ["a6d1efbd-b938-439f-a17d-f2f3fe98e6ed"], "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.5.pdf"}}, "730b7232-7bf9-4779-bbb8-d3aa655008b8": {"node_ids": ["a6c73f7b-51e4-479b-8a39-6edbbd67efbd"], "metadata": {"page_number": 6, "file_name": "data/linalg-exercise3.5.pdf"}}, "fce1dc6f-ec26-4afa-a285-686cfc4ca177": {"node_ids": ["6a962772-98f0-4acc-a32c-baca453ad7b2", "d364f5e0-5e49-43b4-ad39-56ac7b1c0222"], "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.4.pdf"}}, "f2753149-ca16-467d-891d-375ac1605089": {"node_ids": ["b354e15f-b3ad-4a67-b892-ee0dac7738dd"], "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.4.pdf"}}, "4a444f75-6e18-4482-b589-05a6390afdfe": {"node_ids": ["673b9a54-3e9f-4ba0-a4e3-b04b75b03d37"], "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.4.pdf"}}, "8003e391-f392-42eb-bdc4-e036de0cc1b5": {"node_ids": ["02130206-5772-49c0-bd8e-24b1a1c1b1e3"], "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.4.pdf"}}, "5b4f9cdf-d59a-4374-bb7e-9c62710639b6": {"node_ids": ["a6516802-0f51-442f-b3d1-67b17610390e"], "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.4.pdf"}}, "8c4aacca-a606-4419-9582-63f7c920afcc": {"node_ids": ["313aec9a-8acf-4ea8-88d8-fd8839f7ec6a"], "metadata": {"page_number": 1, "file_name": "data/turing_machine_03_handout.pdf"}}, "1745efb8-7677-4aeb-baf8-a0ce8c84d00b": {"node_ids": ["b0eb17d0-2641-49d8-8fc4-06a5fb0f965a"], "metadata": {"page_number": 2, "file_name": "data/turing_machine_03_handout.pdf"}}, "740a39fd-f3f9-46c6-9b73-87f8e8ae8bd5": {"node_ids": ["064c8e96-5f3a-46ad-aeba-448c97777fc2"], "metadata": {"page_number": 3, "file_name": "data/turing_machine_03_handout.pdf"}}, "f615f675-b7e8-4a17-ad49-08e88ad98a1b": {"node_ids": ["5b8adcf0-21e7-46b8-92db-6cc410bbec68"], "metadata": {"page_number": 4, "file_name": "data/turing_machine_03_handout.pdf"}}, "fdaae3d2-5b84-4f71-93d0-c27b16a5197e": {"node_ids": ["9805a311-511a-4b27-bd95-4eb342075d80"], "metadata": {"page_number": 5, "file_name": "data/turing_machine_03_handout.pdf"}}, "eab7eead-8afe-4734-b370-bdb375c2f381": {"node_ids": ["a2143cdc-e9d2-4908-a7ef-e1a9ba13535e"], "metadata": {"page_number": 6, "file_name": "data/turing_machine_03_handout.pdf"}}, "ea37d9c1-e0f5-4793-8558-3806f8f8bd2b": {"node_ids": ["7d5b5f88-0c9d-4f3e-b726-af02c5a31c25"], "metadata": {"page_number": 7, "file_name": "data/turing_machine_03_handout.pdf"}}, "e85e602f-37c2-475d-a6eb-393dc47a1d9c": {"node_ids": ["094546fc-9079-45c1-9f0b-add2c310c6fa"], "metadata": {"page_number": 8, "file_name": "data/turing_machine_03_handout.pdf"}}, "ca66ac90-4fc3-4b0a-abed-08edce25372b": {"node_ids": ["04471d1a-a7bb-4245-8ec1-5ffeb2a51ab4"], "metadata": {"page_number": 9, "file_name": "data/turing_machine_03_handout.pdf"}}, "dbe39631-bd9d-4a62-932e-8e3a2053bf48": {"node_ids": ["b12ba6e4-9629-479a-b947-83012986cc97"], "metadata": {"page_number": 10, "file_name": "data/turing_machine_03_handout.pdf"}}, "f7ae5db8-fef5-4fb6-b2ad-afb312cf3c2d": {"node_ids": ["1470dcfd-e56a-45d6-bded-4f611be7aca7"], "metadata": {"page_number": 11, "file_name": "data/turing_machine_03_handout.pdf"}}, "93fb6c04-173e-431e-9437-27019e2d30d8": {"node_ids": ["35e27975-fd30-4268-96de-0cac6f36a7f8"], "metadata": {"page_number": 12, "file_name": "data/turing_machine_03_handout.pdf"}}, "b029384c-bc4c-444f-be95-86b3fc5614c6": {"node_ids": ["ac03c541-18e1-4456-9b9e-7cc261161704"], "metadata": {"page_number": 13, "file_name": "data/turing_machine_03_handout.pdf"}}, "d170b1e5-96e4-4e84-a7db-c7af7c317b50": {"node_ids": ["aea2dd2b-066e-4b77-95bd-24f1c2ea5c27"], "metadata": {"page_number": 14, "file_name": "data/turing_machine_03_handout.pdf"}}, "ad247c6e-989d-456b-a419-17faa183291f": {"node_ids": ["145da6de-e1a9-4c66-801f-94304e939a92"], "metadata": {"page_number": 15, "file_name": "data/turing_machine_03_handout.pdf"}}, "556df3eb-5e75-4c12-8f9d-871b41a201c5": {"node_ids": ["a0dcdd8d-55fb-458f-8312-60e96b156240"], "metadata": {"page_number": 16, "file_name": "data/turing_machine_03_handout.pdf"}}, "6016b247-2949-49ed-95c3-4928a84a50e0": {"node_ids": ["022dde97-a10d-4dd6-8259-12c832150616"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "8f44c98b-f497-4533-b75f-d9821704864a": {"node_ids": ["1fcf48db-498e-411c-9c8f-d69122133465"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "afea7eb3-328d-4efc-8adf-52fcfb87fd91": {"node_ids": ["b9df3f83-eb76-44b8-ab9a-589a52997667"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "3cf97fea-2309-4345-8d25-53588bc9586b": {"node_ids": ["fded6829-6d93-4b34-9de9-b951e37a5589"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "3100c93a-47d4-4f60-ad05-ee2843f4a783": {"node_ids": ["a1869168-5a40-40ae-bf05-2de24be45cf0"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "b6f042b7-f885-488b-940d-39e4ce001fd5": {"node_ids": ["f27e688d-6004-4025-b26f-4ddb1ef222fa"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "94737efb-cd85-4e8c-89cf-e6c2c21043b3": {"node_ids": ["eae233e2-2203-4d50-8f7b-482e8af4def9"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "ccbd441f-8799-4476-b6a5-3b1353e7a2f9": {"node_ids": ["93562b12-8f81-45f5-ba40-bc6e13d1067f"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "9aa025b7-5fc8-4b94-a35d-56001617d9f0": {"node_ids": ["78498733-b704-4ffc-aea8-6b7b28efaccc", "77c05992-0f8f-4098-9b2c-0225933dc19e"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "9de5ba0b-34b2-40fa-a7f2-011ec63f567a": {"node_ids": ["bf510fba-a2bc-4c4f-8c4c-7e822b0bdb5c"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "c41a95b5-bf00-4b26-a9f0-9a345256a65d": {"node_ids": ["afa252b6-cbc0-43e9-a469-f5df67841906"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "e0c962c7-baa5-44e3-ab37-f91c53ef93c3": {"node_ids": ["0a1fd5d3-e992-432f-9e02-68985d83b72c"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "50e44d53-9560-4d5f-a75f-c8b18a5e9227": {"node_ids": ["fa03d660-2f6d-4246-950a-47db56a8c4b6"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "73db9602-2ee1-4cef-8433-901e5dba4d2b": {"node_ids": ["3735f76e-7748-48f6-a5b0-adcd169a0e69"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "2a2a5f27-063c-4db0-8a3d-12fecf8b4110": {"node_ids": ["dce40eac-4033-4b74-b735-9b62bc62ad48"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "aa2731c1-86d5-45b4-8daa-b224bc3eb7b2": {"node_ids": ["c1af160c-09d3-4c32-af0c-cc9acc1bcdcd"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "ac4dac7b-cc44-444d-be84-13ecbfc6b266": {"node_ids": ["9d157d34-052c-47b5-8b04-4b8f99612bca"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "bf9737d3-4054-4f2f-83d6-5fdcb2925d6b": {"node_ids": ["5136580f-c873-4979-88e1-4115c1964474"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "6a89546b-c389-4aaa-a279-886a20c9caab": {"node_ids": ["02c5a5aa-e24b-43b2-ace7-0d5e6ede6a92"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "9ae10eef-c25a-4b53-861f-f17028b2402f": {"node_ids": ["a22299ad-171a-400e-9a2f-b531607ad11d"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "b31c209d-d66a-438c-afa5-ca4ad9a10f5e": {"node_ids": ["9f9efefe-f719-4de3-92ee-e74dbc6d8fcd"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "5c02af17-4305-4152-ab79-a7714eb348c5": {"node_ids": ["c69f5b95-3af2-49a3-aee1-880349451fed"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "26cf7402-bcbc-444b-a875-b45d91dd48cc": {"node_ids": ["bd5b07b9-8bb4-4913-872c-04b94267cd86"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "6a052cab-bf70-4450-af2f-8580e6380cd3": {"node_ids": ["75eb406f-4bc3-470d-9385-cb119ae527ca"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "40a3e6c1-ec88-4a0d-b1bc-affb95e38bca": {"node_ids": ["09bd8f55-721c-46e4-966f-ce3c91f3462c"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "aceb5e5e-cd6a-4922-9e39-00a5741971f7": {"node_ids": ["3196fe2e-08a4-4a4a-aade-624c43a7ccd8"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "eadf4452-062a-4793-bb6e-09dbcda383c6": {"node_ids": ["1bfc5f3b-0f8c-4c22-a6d5-85f5c95e923a"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "41d0a0d4-9ec0-45dc-88d4-58190e850fb5": {"node_ids": ["5c7a986d-4731-4245-a0fa-2316eca4b280"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "7bd0cba3-cee5-4f75-9d26-76c64796f830": {"node_ids": ["281a1774-50a0-4ea9-9e6e-a5dd2ac3d5da"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "de3d0e1e-dcda-4c23-be53-5a0f654e7843": {"node_ids": ["2daec92b-9af7-40e0-8025-fbeef76a072a"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "a65bfeb2-5f1f-4018-9eff-f0660f4f856d": {"node_ids": ["f44a7fdd-0ad4-47cf-81bb-eac8511d5931"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "a57f04c9-047c-4b6f-9ba5-1ba2cb0e731d": {"node_ids": ["9f5c1ec2-0e00-4370-b85b-1408c7791077"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "22575121-ce67-487c-865e-465affb1bd5e": {"node_ids": ["2a7124b1-f880-4168-9ab2-964ef0ec1ae1"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "dfe1073b-abc4-4f99-8c3a-9f5197fdefc1": {"node_ids": ["3c297091-df54-4c03-8569-a149c72710f4"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "986b98fb-80cc-48a7-995d-b37cfa03d2cc": {"node_ids": ["af252593-92dc-43c9-828e-3c70a912fc5e"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "e34dc260-2ec5-453e-8102-7d51164e7081": {"node_ids": ["546012d4-d6b5-4fc0-b89a-bec2fe90a3b0"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "8c1c73ac-b6f4-4c1d-8f74-5ab1fee36ca5": {"node_ids": ["3e9ff352-7473-453a-9b2d-18d3a2fa83e2"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "063f6dd6-b3e5-4c94-84a1-bd120a2af1f4": {"node_ids": ["9fc02151-c02b-4f0b-bf6e-3c2299ab7f08"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "568d1e42-3052-4ba0-8992-6930ddbe5263": {"node_ids": ["c4fda650-591d-4984-9682-efa8a200d78b"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}}, "62007139-1bc4-4bf0-9844-c6f1454cf5ea": {"node_ids": ["d0b05057-1e9e-400e-85cb-3193f7034848"], "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.1.pdf"}}, "42087f5a-55e0-4801-a2f6-003c2b3be3da": {"node_ids": ["7ffe3683-7898-472c-b7f9-2ff746f3cfde"], "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.1.pdf"}}, "dc9e16d1-12de-4b8d-a650-bb2e2345084e": {"node_ids": ["d314deb0-203e-4439-95f3-9992e151dafa"], "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.1.pdf"}}, "607008c7-e44c-48aa-a69c-0108562c7736": {"node_ids": ["ddaf2519-82e7-4493-8009-665ed91e1e0c"], "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.1.pdf"}}, "0c343d7d-bed8-4d29-8a8b-9f3421460efa": {"node_ids": ["89fb24de-5fc3-4ec7-960c-bfacc2c6b021"], "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.1.pdf"}}, "43d84296-44e9-4cc4-912d-491a9f7c7d20": {"node_ids": ["5b14c48a-e865-4bc5-9e6f-4ef3f1409031"], "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.3.pdf"}}, "ab4da2db-e293-4e2f-8842-36cc560736c4": {"node_ids": ["9e54d555-4392-49ed-8b0d-e3fb38b17bf2"], "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.3.pdf"}}, "06e9fc36-c8c5-44a8-b365-1561333227d4": {"node_ids": ["148ed1f9-274d-4078-9083-509448ec75db"], "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.3.pdf"}}, "5f7cbdc5-f5ea-4e7f-b45b-69b8a9ca61e8": {"node_ids": ["76fbd06f-2597-4c60-af4b-46ebaab317ed"], "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.3.pdf"}}, "4a4536af-b427-4d5c-b08b-ddb1725ab449": {"node_ids": ["557afe8e-4224-434c-8c00-40f813d74da7"], "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.3.pdf"}}, "a453b917-08c2-4675-b534-11b42f8500d3": {"node_ids": ["728bc04f-1d56-44cd-84d5-8714439b2016"], "metadata": {"page_number": 6, "file_name": "data/linalg-exercise3.3.pdf"}}, "b273ecee-81a3-428c-8099-909a8e4dd220": {"node_ids": ["14e4f700-08dd-4d9f-8633-08b30a4539fc"], "metadata": {"page_number": 7, "file_name": "data/linalg-exercise3.3.pdf"}}, "6a2585ec-a9ef-4159-93bf-bc7f1b406f14": {"node_ids": ["d27669b2-262f-4ca1-89c1-0b2efd5afd41"], "metadata": {"page_number": 8, "file_name": "data/linalg-exercise3.3.pdf"}}, "771266c4-c2f0-43ec-819b-de99af9edc98": {"node_ids": ["ec7959b1-326c-4644-bf65-8614a7d9fa98"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_05_handout.pdf"}}, "4743713b-1897-43f5-ba3b-0ad67f2cb42f": {"node_ids": ["b9b7b5fe-84b7-42c0-9ba2-135780349c26"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_05_handout.pdf"}}, "fc834d20-807b-483f-b70e-d074bc3a1c1c": {"node_ids": ["98fbb5f3-f44c-493b-b4ce-74b09ae519c8"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_05_handout.pdf"}}, "47f5b28a-d72e-4d8b-9a2b-57bffa6f3929": {"node_ids": ["a3775415-993c-458a-8661-7e2f69c7ad43"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_05_handout.pdf"}}, "9cfdff68-8adc-4ecb-b607-a425500ddd9f": {"node_ids": ["69467209-6ddd-405a-a876-7d609e3a81d2"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_05_handout.pdf"}}, "3cf69a79-91af-4678-9048-65efc3bebd8b": {"node_ids": ["85ea7d8a-f538-4d2e-b96e-74c72381c891"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_05_handout.pdf"}}, "2c421db4-d62b-4a01-beb0-a7887462f08b": {"node_ids": ["8530acb4-603c-4bd1-9262-a92f1ff6c29b"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_05_handout.pdf"}}, "98d259cd-9f81-453d-bf62-7ff0c957662f": {"node_ids": ["9ce6f5be-aee1-4296-abfd-26b3663f140f"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_05_handout.pdf"}}, "0a84be4c-a3fc-4aa6-a26c-491c97d6c982": {"node_ids": ["ecbbc5c3-a770-4e60-9a4a-56384c9afc66"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_05_handout.pdf"}}, "6198b53b-fb1f-40fc-85b4-788f6365adfa": {"node_ids": ["9f087958-aae5-4c87-b927-59d19b8bc4c5"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_05_handout.pdf"}}, "bc2859e1-b884-4e96-8b7f-88dd0ec0c20c": {"node_ids": ["80b2c24c-27dc-4129-b2c6-279c7751f942"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_05_handout.pdf"}}, "76f84c99-3bbe-4f61-8908-9715c4ab1485": {"node_ids": ["60f2ac86-be8d-4e58-bf3c-53201713cbaa"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_05_handout.pdf"}}, "152edc16-c920-437a-b0ba-f35581ef93d8": {"node_ids": ["4433fcdb-b224-4ef0-94b9-0377add9c674"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_05_handout.pdf"}}, "93eac258-2d68-424f-9aaf-d72d778453b0": {"node_ids": ["2f978a54-0acf-40b0-80f6-5684f06acd25"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_05_handout.pdf"}}, "6e656f5e-02b3-401b-b505-df91fe32ea06": {"node_ids": ["3d89c03a-aaee-4768-8242-966922ad3ce5"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_05_handout.pdf"}}, "3464d2e9-13a0-49d6-99a8-6c6dcf36c2f5": {"node_ids": ["8ce34de2-1475-4d46-9132-ea21a7202f7b"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_05_handout.pdf"}}, "d6516930-e907-4f5a-b0ea-f75ee045e244": {"node_ids": ["49843578-c758-48cd-a44e-4c539c5bb422"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_05_handout.pdf"}}, "0243a187-3d87-4bcd-bb20-126432441bef": {"node_ids": ["5163eae3-c83b-462c-85f6-77ae72c61835"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_05_handout.pdf"}}, "44a18c7a-1916-4ec4-b88c-ff5ab8794657": {"node_ids": ["70bc87f7-acb1-404c-b066-e632d50f9f34"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_05_handout.pdf"}}, "7d412a0b-f7b9-46f1-bc62-a0739570e40a": {"node_ids": ["8d41604f-ccf3-4720-bb83-47e03db28606"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_05_handout.pdf"}}, "8cda882e-c3ec-423e-b6c6-6cb7b0986f20": {"node_ids": ["0bbc0af0-26c9-47aa-95bf-5c02799ecb32"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_05_handout.pdf"}}, "e23ea3ab-a4b8-4949-a436-5e59373a7b76": {"node_ids": ["6ba662f2-8a46-4641-9d20-03df369170b0"], "metadata": {"page_number": 22, "file_name": "data/finite_automata_05_handout.pdf"}}, "9fe088f9-2ef8-4423-a3d5-62436e7fff08": {"node_ids": ["1293141a-4ed9-4df8-9fe2-bf7f5c8b93df"], "metadata": {"page_number": 23, "file_name": "data/finite_automata_05_handout.pdf"}}, "749ed0a1-0e6d-470f-9c78-872325577a9e": {"node_ids": ["0952c587-dcbe-4775-8254-649de5d73d8b"], "metadata": {"page_number": 24, "file_name": "data/finite_automata_05_handout.pdf"}}, "078502d8-ea4d-451f-89cb-2a4389055b0d": {"node_ids": ["19750fba-4c0d-46cc-b01c-66c5a3a01144"], "metadata": {"page_number": 25, "file_name": "data/finite_automata_05_handout.pdf"}}, "b99946d8-1495-43bf-93f5-337eea7ebf34": {"node_ids": ["9bcff89b-8957-42bf-8ce8-ec024d6dca0d"], "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.2.pdf"}}, "3bcb1699-795e-491a-8d46-c4b2107c8145": {"node_ids": ["895b7cb0-029c-4158-be4c-8ceb8eda3f39", "5f8842ec-53ca-4559-8590-2d471000e749"], "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.2.pdf"}}, "4e861827-dbc3-4c7c-8acf-0832b29737a8": {"node_ids": ["2226b3f8-9a47-423b-bfb7-9f1c3c19e811"], "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.2.pdf"}}, "6bb28efe-b03f-453e-a3a4-9ca9a3c10dfe": {"node_ids": ["e2472239-ecf0-4729-854e-86369be33f4d"], "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.2.pdf"}}, "4d267c78-1ef5-4a18-93eb-cf93685669b9": {"node_ids": ["32d17c28-a73a-4de7-8dd4-7d4d94907749"], "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.2.pdf"}}, "cf9d54e1-c2df-4961-9b91-25c4c54db7ea": {"node_ids": ["c60e9ae1-94b3-4a8f-ac00-108993561cba"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "61633c9d-7881-4c29-a960-1e0db00f6700": {"node_ids": ["94c5d420-cece-4681-acfa-00357f41916c"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "ac68996d-f79c-42b8-b138-1351bcbf1f2f": {"node_ids": ["569f92d6-1f26-4b58-962e-54f2b7bce4e4"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "8ffd5cf7-5ef6-4e1c-aee5-80d2472b1b93": {"node_ids": ["ba03d2ec-0d06-425e-a6da-21b577b28d8f"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "dfe96f9b-45ec-4b99-93f4-5c9a29b03785": {"node_ids": ["860b4059-cdae-4448-8a59-c839916365c4"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "fdd64d34-b5f8-48bf-a526-1bfc739811d3": {"node_ids": ["4362c638-951d-4f4b-bfaa-d1822e60860f"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "f27af0db-5d61-4d73-8439-a49ab1b687cd": {"node_ids": ["3d72b014-630b-4897-8107-60eb0f1acf86"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "2310afd9-90fb-4ca7-9fa6-a180b7bc204c": {"node_ids": ["970c747c-5872-4284-99cc-a989953733e6"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "79d3249d-23bb-44af-b504-04cd52c29379": {"node_ids": ["92b340f9-a62d-4c23-8bd1-5bcea6ed6123"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "0ac1af02-820b-4a37-89d1-e073bc6368d6": {"node_ids": ["60b85182-d6e5-4b96-9fda-0a4833547f99"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "ecf78f4d-7ec9-4bb9-988b-7df436dfc86e": {"node_ids": ["b63bd7f6-f324-421b-9c6e-777ddb94f673"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "06845a24-060b-442b-8534-d74ff8f75b7c": {"node_ids": ["c6bc7b54-dc8d-4b4a-a711-1f5bc596b2d5"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "816da3f9-5b41-42dd-88bd-2ea5ac55438d": {"node_ids": ["7b2e8681-c142-4677-b713-ceb5945e89e3"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "7ae45023-52d3-42aa-b85e-1f645b677ad6": {"node_ids": ["2888cca9-6403-44d6-a8c7-4a5eaedd17de"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "6995170c-9106-4d29-a47a-4ce2a3f4e86b": {"node_ids": ["50231e6f-349c-4eae-a150-43ced5e5d842"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "195ac748-dbe6-421d-83bb-6986ca46a829": {"node_ids": ["2af6906d-c13f-48ca-83bd-2aae04bd12ad"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "896ba819-470d-42da-ad54-994460cbfe57": {"node_ids": ["63193667-7336-4ecb-bba3-9144e2275e97"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "642d6733-882d-4b31-b1a3-6ac2d039eb2c": {"node_ids": ["01d86669-adb9-4c8c-b142-31f921e79c79"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "16da0020-2364-462d-b933-7ae036657379": {"node_ids": ["3d0181fc-f232-460e-a52c-5e942e54cc92"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "72174a2f-75c8-4f33-b59c-d7238cfa2269": {"node_ids": ["8153c5d4-07bf-4d47-b397-770829bb2604"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "5fda9851-09a4-45a9-9932-3c425534ee85": {"node_ids": ["3d6a1113-dfaa-40f3-934f-1d756b8ea0bd"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "c68617d1-f8f0-4702-85d0-b3afd8ffc724": {"node_ids": ["07b948e6-2f87-4ddc-b172-dc81e9514c7a"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "314055b8-7bc4-470f-81f3-3e92b27bdf40": {"node_ids": ["a41a406c-eb68-4302-aead-cffc922191b9"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "50122b4c-c8d6-4a0c-9fcf-5d027871f863": {"node_ids": ["52d6b7d2-9032-41f8-b54e-6efda932d479"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "3a515d3b-83da-4cd6-aeb0-a42223e71059": {"node_ids": ["8ab6ac17-f717-4382-92aa-8b0acb620dcf"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "94c708e0-5040-45a8-94e1-a3fa5eaa49d0": {"node_ids": ["af461c86-afa7-4f98-aa15-b3af34742f54"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "cf1be8e3-f1ae-461a-a11d-d49e09db5ec5": {"node_ids": ["12aabcca-962e-46fd-99a2-b3525d102c78"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "e788a4e4-15e9-47df-8bd4-48fdc2fb0b7b": {"node_ids": ["2be00d2a-9957-4a88-998c-d5e5db173c66"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "e9683055-78ac-42fd-845f-1ff50d3d03c7": {"node_ids": ["8d077e62-1044-4535-b6ff-e8808fd97425"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "b202c7d3-d116-4f9a-a5c8-38e4cefc5a7d": {"node_ids": ["8808c8e8-fb0d-432e-9d5e-89c30ee3b43c"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "2bc7caf0-40cc-4dbe-82be-f500dd0fd271": {"node_ids": ["8ec2d9fa-7673-41b5-a9bc-a252244010ed"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "514ea317-c2e7-4a4c-b87e-2818f235e22d": {"node_ids": ["51189d5e-0c0d-4da8-acbd-c3a6aa0169f9"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "84da65eb-0d7c-4813-9e35-39dbf0e2790d": {"node_ids": ["43a8200d-5dd1-4f84-878c-ceb6ba62cc49"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "f3f33dd3-1faf-42d4-80e2-8620431240a3": {"node_ids": ["17755531-2f7c-4073-9bdb-c13d7a4e5d45"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "09f663b3-7ae3-42b6-85f9-f44131912f34": {"node_ids": ["964eb663-d927-4cb5-a573-0aef8810f2b5"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "9c5da269-4ae3-40fe-9809-a08872ddf5ab": {"node_ids": ["d7a4997b-b460-4b5e-98a8-6e0a0a4f6e6c"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "4029c6c4-7d7f-452b-8e35-6b88212b0b3b": {"node_ids": ["97fbf733-c9f5-4700-9f9e-41a6fabf1b20"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "e56cd5b5-e39d-4fd4-98f3-2460c2e252ae": {"node_ids": ["0d4f797e-9985-4483-8104-fe1927bd8b5c"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "a4e6c93c-47cd-4e41-8a78-3dbeeb5c34bf": {"node_ids": ["787d813b-1ab6-4dee-a0e6-49d957f9e274"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "e03ca417-2d71-4e1c-a7bc-a25ef548ac2f": {"node_ids": ["3c3f90c1-d851-4f7c-b9d2-350fc5592566"], "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}}, "e0bba792-72c9-4fdb-a0b8-5e3da1913546": {"node_ids": ["c3b856e2-7053-4ed1-bf06-4c3d2538b613"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "14a5cbb6-7253-4615-8c05-4e79d1fdb30e": {"node_ids": ["68f2d445-fc60-4725-8eef-911788692de8"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "bf5091ec-4cf1-4144-8886-174d3d0f9af5": {"node_ids": ["1f89421a-9671-405a-aba9-a3949ff17da5"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "adafa2cb-411b-410a-95ec-3069faa7a0af": {"node_ids": ["b1159d31-79ce-4b9e-869f-75cde235395d"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "61575fc3-24fa-4f47-8b43-68d8e7fdc638": {"node_ids": ["471e69ec-4447-4f32-b0e0-6c38124d0b5f"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "5a63520f-9330-43c1-84cf-67eccac4be74": {"node_ids": ["9d276082-74bf-4feb-a42b-303a4665b7c6"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "72a424ee-9763-478d-9508-c753ba6c8c51": {"node_ids": ["4b613efc-6fe5-4ac7-b6ca-5e557770667c"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "82b44829-a534-4ed8-9b66-60fe47d3e5fd": {"node_ids": ["b74cf6d4-de87-4e09-9638-8dbf3f4f8726"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "48c402ad-313c-4181-bc4a-8d2997250b7c": {"node_ids": ["3244239d-a4aa-4b1c-b19c-750ef7dbd3af"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "b88a3a67-d85a-451c-aac5-77a507f29ce3": {"node_ids": ["2d754c5f-f169-4a3f-8139-95bbecd7c23b"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "977507ab-d922-453e-a3f2-dcda52e5344d": {"node_ids": ["c0bb3e45-b69e-447d-b5a4-58416d9f8d5c"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "6b68b636-07a0-4f54-93ef-561b1fc63de5": {"node_ids": ["2d156c58-40e5-4710-a013-830b05915263"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "481f9f36-a631-4fcc-961d-23598cc3a83d": {"node_ids": ["5cd17b0c-0dbd-42c8-8d17-ecb39c8c3588"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "15cb52a3-6501-4504-924a-e4b2e19e3a58": {"node_ids": ["cc2f60c7-dcc5-4813-9923-5bd2294b88fc"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "bbd3ae42-f5b3-42e0-b4b1-e2090eef440a": {"node_ids": ["622dc20a-3231-4758-b22a-6d77a0dfeee2"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "791f0259-fe3e-45c6-972e-5e1c252786b0": {"node_ids": ["52324635-1791-4763-9c51-7d077921cc88"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "64c67caf-15b1-4dcd-a046-421762e8a85a": {"node_ids": ["6858370b-12eb-4b6d-8914-206cdc817a40"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "bc11e2b6-fe0c-456b-90bb-ed46d44aecba": {"node_ids": ["5e373bf0-aaf1-4de5-89d2-30d911a52869"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "93c1599b-7d54-44e7-9347-6b746e4d7cb8": {"node_ids": ["acebda19-b11e-4861-bdd5-c180e1e89079"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "ef4b4f75-4a76-4140-85bc-50e25dc262fd": {"node_ids": ["a6a5c7a4-88db-4088-807c-d960df4b0794"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "7dd39cad-9633-4b9b-ba63-ac82f4d02aff": {"node_ids": ["8d50af42-2b4d-4ace-8838-c09b93e09197"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "b3bff095-746f-47f8-af97-095c5038ec1b": {"node_ids": ["88c25460-9466-44db-89ef-c587f87c6377"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "77ba68ff-937a-4ed2-9c5d-01665ba1f1b7": {"node_ids": ["c525ba9c-6067-42d2-8c80-790d4840013d"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "b0a987dc-d3ca-4ef3-b304-668868c09180": {"node_ids": ["50ead9d8-4657-4fa4-b0cb-8840d2a06f05"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "877f7f59-df91-474b-b75c-afcbf2d4b9b7": {"node_ids": ["d9854c03-7fcb-416e-94ae-8c97bbdc6856"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "7051b3dd-4d79-43a6-b1b3-c89d556d2e68": {"node_ids": ["6531b6e3-f81a-4c5d-9863-c6e395414efe"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "fbbc8503-1475-4947-b912-3059e446b2bb": {"node_ids": ["173623bc-35ef-4ad8-a0c0-f9c1bca862d8"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "190a9d68-98f5-4d75-b0d8-b5e165b4694c": {"node_ids": ["dd85f7f1-3f92-4e0e-ad6d-6f918facf12f"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "ea137193-e93b-440a-a277-b607cafac298": {"node_ids": ["97bd0c57-bd33-4c1c-82be-79ef73987bf5"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "d67ab403-8372-48a9-8776-d300dc869b4c": {"node_ids": ["a86aae8c-ca6c-4a22-a513-e4022181376b"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "b1480fe5-791e-45a9-8b8c-0b0b2d4c9191": {"node_ids": ["d4c5a479-b3f2-4585-a19a-a89b3b2a75d6"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "a03b1efe-aac9-4cb9-acf9-277ac12ec752": {"node_ids": ["bba72d35-cd5e-440c-b039-9a0ba1a428d3"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "203d4f46-f24d-4a0b-b43e-3c428de86a23": {"node_ids": ["37475df3-c871-41a1-a4c8-2ffeb3067560"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "96b4781d-2e91-42e4-a79b-2fcb4e315d8b": {"node_ids": ["a2c56ade-147e-4fb3-85c7-c13323d6e6f7"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "be887a72-739b-47c8-bb4c-35ae9e606b99": {"node_ids": ["9dcc91c2-a801-4919-b325-4a8f4bfc15bc"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "4d6c8b3f-8932-4f5a-81b6-edd95343572b": {"node_ids": ["1ab389b6-2115-47bb-aeec-7be32c6a2053"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "0ac034fb-3054-4d67-a943-46b8389c2984": {"node_ids": ["1a9b4364-f598-447d-a712-772063d6729d"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "a31b2f55-034a-4581-b274-1436e3ca8d0f": {"node_ids": ["94aa738d-b63f-4c85-b782-8cbb06c100c6"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "ff3870d8-2c67-4e1d-a9c0-37eb56e8e33e": {"node_ids": ["5d140d26-97c5-4ca1-80e8-a0c1e0730325"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "58af28c2-21a2-4387-a0d5-7c817fac3bdc": {"node_ids": ["9806ef9d-7f5a-4767-8f8f-eb5e23df388a"], "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}}, "463740aa-a3e9-48a1-86e3-990873fee07a": {"node_ids": ["8e574618-3f03-49ec-a32d-ec32cdb3f66d"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "4a9acad9-d56f-486f-9978-e86c027d6fd7": {"node_ids": ["6f2b2508-4d53-4a5f-bf06-7a5223712aab"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "e6657ff6-19ed-4955-9d87-14b2acc56ae4": {"node_ids": ["b016ffda-8016-4a12-ac99-767a81d312c4"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "29240b77-2b40-4355-82a7-df92e3d0807f": {"node_ids": ["c7640200-2ced-44fd-a3fc-f4d11c51b289"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "38a42405-03b8-46f8-ba7a-b5e548284cb1": {"node_ids": ["b4fe4dde-c229-4758-a86d-8c601aaac4b1"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "7294040a-b290-4dde-a92f-fcf941383279": {"node_ids": ["1cbdd9ef-d700-4ffd-ad34-fa80fdb9705f"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "f9fd4cf9-d8df-4d74-b628-8895b3d9b3f0": {"node_ids": ["7d1f8691-b244-4496-8764-5bc383b1b366"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "639e9ba1-8fd7-4bac-9837-71b6592a1e4d": {"node_ids": ["6584d311-cbbd-4b61-a621-152009a2cc7a"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "e49c7fbf-64ea-4378-9a82-41820ef9d0d5": {"node_ids": ["fa7cdc8a-c5ba-446a-b0f8-457b61db1163"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "659255ba-ffce-489b-aa81-9ffc24801bb7": {"node_ids": ["830f85e5-fcd5-494a-8a2f-8049a11902ec"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "f1e2e5f0-9f8c-46ec-9ee5-bc2302936e83": {"node_ids": ["35d83263-4765-45bd-a834-247ab205c9d1"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "7b4f12db-a505-4a9e-bc16-27c766ac8d8d": {"node_ids": ["92b966e7-f5b5-4ebc-a62f-fe6fb6749cf3"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "40852467-32b8-4ed4-869a-2b9c97fed4a4": {"node_ids": ["0a65cf1f-dbae-41e2-811d-ac85377c65b9"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "dd7f324f-8b3d-403d-a752-7d7936b87f2d": {"node_ids": ["26754b02-10ac-4294-ab61-8606747481a6"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "424275ad-bfe4-44f9-8e20-f68bb6b3e631": {"node_ids": ["2f4cf99a-9d9e-497e-a129-57fba644deea"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "fff9fcf0-9f03-4da8-9131-513b4e0534c2": {"node_ids": ["e077666e-9b56-4f93-92b1-58bd1933b05e"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "87d81d5a-f08d-4faa-9eb5-d9715453b9f5": {"node_ids": ["bec45c04-2c03-485c-b436-b4a2edc8f488"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "3f6f8cfb-88bf-40ae-8f11-5b1b2fa52eb7": {"node_ids": ["b569ef62-732d-4b3c-ab1c-04f159aaff03"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "126920c8-87f2-4454-b2b5-3917950c9d56": {"node_ids": ["ed58abdb-3f42-4596-8078-cc9c6f3f6296"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "a5b66cbb-659a-4699-91a1-a7c87eff186c": {"node_ids": ["3c3d20f2-afb3-4943-a101-964027605d63"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "9e9984fe-10ab-4825-a75f-96736ebeae2d": {"node_ids": ["54b72f60-84b2-4cfc-8e5c-2dc029ada0a1"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "204961a7-a0ea-4479-b96e-3c4a7d355c08": {"node_ids": ["8e12c694-d733-469d-bdc2-8a084e09398a"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "3031a8dc-c4ae-4e40-8aa9-645dd78b2f84": {"node_ids": ["63f0ed18-e2bf-4692-a2e5-c2e4ac901f27"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "ecc8bbab-8428-4ddf-864e-d49c42263547": {"node_ids": ["d9124f19-9d86-4ba3-a55c-ea7f965a7fa0"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}}, "cdca87fe-14e0-4772-88ec-a4ece88d26b2": {"node_ids": ["4d31d5d9-cdc1-48b3-869a-69b3c97849e6"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_06_handout.pdf"}}, "bafdd229-b208-46cf-a444-031e80048ba8": {"node_ids": ["e7952109-965d-4f0c-b838-4da2a935753c"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_06_handout.pdf"}}, "5a9d375f-c894-48a1-9e4a-7ad413f4071d": {"node_ids": ["5e3f567c-1b7c-499d-b269-a9f4df8a3ff8"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_06_handout.pdf"}}, "d4ad1757-00d0-474c-b1e7-be0618f2c4d1": {"node_ids": ["a1312908-8d75-4d1d-a16b-7c21305160e3"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_06_handout.pdf"}}, "b433b04b-dfe9-4aa5-8c12-756881f00bae": {"node_ids": ["f86f2c50-07e2-451d-93c6-7d749d3d404a"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_06_handout.pdf"}}, "c8d62847-e439-4736-8535-d336cbf0fa00": {"node_ids": ["66c574e5-e577-4e44-a34d-379b05c6c269"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_06_handout.pdf"}}, "2dbf7dbb-c3f9-4c54-a58c-82815b6ebffb": {"node_ids": ["ead62cd3-b4e9-4706-a9d8-89e6998f47e0"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_06_handout.pdf"}}, "9470b431-53c2-417d-96c4-0d925b15ee5d": {"node_ids": ["e4f61d22-7aff-4709-8b12-89bea09ecd26"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_06_handout.pdf"}}, "7bce44c5-2d28-42cf-a196-13cfda6929e2": {"node_ids": ["7e90c132-f83b-4af6-9a0e-ff3203d90f93"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_06_handout.pdf"}}, "7a27f286-5258-48e8-97fc-c550284db073": {"node_ids": ["5ed2bdfa-b0b8-439c-a1fe-df50b414bc64"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_06_handout.pdf"}}, "946f9fb4-b712-4008-89f1-8a20df9b2957": {"node_ids": ["3a36a66c-0ccd-4b65-980e-f30513ef37cf"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_06_handout.pdf"}}, "89fda37e-572f-47c6-a8ed-201090cf3364": {"node_ids": ["2bcb55d1-52f4-4f83-9018-7bd6cfc6e478"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_06_handout.pdf"}}, "c036f34b-4133-4b44-83a1-97ee91807928": {"node_ids": ["2f5e8d25-a51a-4ef0-8ac4-00d5605ef63e"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_06_handout.pdf"}}, "5829d8da-addf-4211-9134-15402624bf5e": {"node_ids": ["28666901-e172-4b2d-8562-666e62017c36"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_06_handout.pdf"}}, "be572f60-6696-4072-9a71-80a9bc07e30c": {"node_ids": ["cf39c3da-ef51-4a22-bad6-33e41397d96a"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_06_handout.pdf"}}, "068c0f46-d480-46cc-95e2-4093b0aee543": {"node_ids": ["b7684f27-11f4-4892-87b6-9ddbdce4a7ba"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_06_handout.pdf"}}, "a153a91e-1881-4d93-8098-42b3bb0965b6": {"node_ids": ["e28c467b-4967-4309-b988-7403cd49ba04"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_06_handout.pdf"}}, "04f3c222-d1d7-444a-aca3-1f02cc1f306b": {"node_ids": ["2d474c2d-0036-487a-9933-74465cb57184"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_06_handout.pdf"}}, "7198435a-678a-4867-8f63-5f12ea61b07b": {"node_ids": ["065dead1-4d2d-4034-a92b-b4c48f135092"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_06_handout.pdf"}}, "71e9cf54-9bbd-46b7-963c-c08f2cb189d4": {"node_ids": ["dab06e0a-f372-4659-be61-c79fa044233e"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_06_handout.pdf"}}, "0631cdd4-19a6-42ad-b8a4-7b4f690323e9": {"node_ids": ["7f80f496-c869-4a66-b880-b51b5cc24f37"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_06_handout.pdf"}}, "03f25ad8-6a63-4ec4-9475-6c819ebf5ca3": {"node_ids": ["09e10d3c-9b24-46ac-9ae5-864571a4abda"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "593b3180-e873-4a9c-8268-04e773247b22": {"node_ids": ["34a8ed1f-0385-43b1-8440-791ccf228f68"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "2bad4e9d-0616-47a0-805d-4fa9f7bd71ae": {"node_ids": ["007d7afc-0a97-44d2-84b4-c2fe395bfbaa"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "226c3a6d-b458-4852-b4b2-263f0c16aa50": {"node_ids": ["91682a16-0db3-4259-ac00-129233f0e2e6"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "2ddf17a6-0296-422d-a820-6d742d1eae70": {"node_ids": ["c0a69061-8144-4412-9b81-f2ffa6608f32"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "60e19b7c-a004-417d-a410-126b2be1a4df": {"node_ids": ["a7d3c121-c54b-4403-a667-241210094ed5"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "6471dc92-b93e-4f30-a43c-efb8f060d3c2": {"node_ids": ["e1d9dd2e-41ba-490c-a082-a73e9cf73571"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "5e858da8-01b6-48cb-ac91-7b5ae3bd16f1": {"node_ids": ["6cab47cf-c2e4-4022-bb5e-b13188ebc3ce"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "a34f71e9-940d-4c04-8bdf-97a8bf33a08a": {"node_ids": ["25875abd-2b18-493d-9083-5124a865f02b"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "fc212e69-299f-477a-a4b0-739f4541bb26": {"node_ids": ["5688ccc6-0121-475a-9ddc-2b7a947c3e1e"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "f2644a50-fe9b-43ea-984c-d4f852cba306": {"node_ids": ["a7b60696-7573-4b97-879a-3d5d7155a8d7"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "1f8313ba-10c8-4b6a-863a-c61464eafeef": {"node_ids": ["6c691297-621d-413f-836d-4a77e2eb1c23"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "8d6ba957-ccfc-4d68-8ee4-a84ad890b44d": {"node_ids": ["d87deb22-42f8-4ec1-bc49-85725578042d"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "99bdbcdf-81f4-4ac2-a966-73034197bcde": {"node_ids": ["de17239f-a396-4936-90b2-06a173c12c13"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "93e0819d-79aa-4c36-8132-084c6f85b6f3": {"node_ids": ["f02b7e7c-a6e9-4e3a-be82-4fef2b610908"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "8c4d7806-aaaa-41fc-acf0-e6161d4d7a34": {"node_ids": ["da4d94e6-3263-43db-a764-dee47ad20dee"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "d5c13ec5-fed4-45ad-bff4-1a3090dcdb9a": {"node_ids": ["275a2b8d-41bb-4aa4-8fed-22d1748b22a5"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "af8823c5-692b-4fb4-8812-4f0740c44d09": {"node_ids": ["728c14b1-51ac-4928-ab65-0dc6bb642299"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "efd3da35-ecdd-4ed5-a692-f63fa32efd33": {"node_ids": ["0ffb9621-b4ac-4fda-9ae6-ef6ec12a31e1"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "6b3c56d3-ca49-4534-a4fa-f5f4a723891b": {"node_ids": ["557df62f-9923-4ecc-839b-115034ac2e66"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "979b7276-3617-49dd-bed3-5ab8b31e5e68": {"node_ids": ["30608ba5-da91-4451-87e5-2e4280996e4c"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "e1d20db7-6a39-428c-9bfb-8206312bac7e": {"node_ids": ["c24ef5c8-1338-4124-8ecf-5de63727dcab"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "9b7cd8ad-14a4-408e-8194-28fc3ead0488": {"node_ids": ["5d817f88-3ee5-4db8-8aaa-ca69837cc6e2"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "ec8d3f5d-fb22-445b-88a7-4e5ce35e21cd": {"node_ids": ["73c66621-0f4f-4d0b-b1db-e04e16259eb7"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "b43fdd4d-fc0a-4212-bb9a-fc538eac2795": {"node_ids": ["414c27a3-6472-4d23-afc1-06f622688d74"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "8e4d1a49-6cae-49fe-a6b5-c4d9e66f6928": {"node_ids": ["15a098c8-df09-485c-83c3-9967b9f697ca"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "a66fa939-82eb-45dd-9d78-a631744f0f3f": {"node_ids": ["e10558a5-a8e9-478c-9469-b8398081f5a1"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "77eb1218-0a57-40bb-89de-b641499015bc": {"node_ids": ["0c97c806-8af3-4cb1-8e7c-884d9076b55a"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "f6e8205c-d9c2-4952-b053-b3133c8f12c8": {"node_ids": ["026d317c-659c-4231-824b-acd61ac88fc3"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "33901706-5176-4c71-a924-da3aecbdc8d4": {"node_ids": ["a8741110-6a31-40fd-bf40-5030bc87b40b"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "23438934-ee15-4e87-acfd-cc34b9fd2112": {"node_ids": ["e3fcdce7-53ff-42c4-823d-13abf1d1ea3a"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "18cd83b7-2c26-40f4-bc65-9ea5dfcf196d": {"node_ids": ["b0e5b886-f092-47c2-9361-c74ba4432ead"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "200ec2f9-2fa4-4de0-984c-f3bc384813c7": {"node_ids": ["8d65da26-7878-4ed2-bafc-76e747f237ad"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}}, "4a827d1e-7925-439c-b632-378477007b21": {"node_ids": ["2f965bef-03b5-4a67-8b22-b46f5467e6eb"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "dd1e6e11-db2d-4854-8b59-3d18604f9971": {"node_ids": ["0e0c5c9b-9afb-44d7-bf98-b7a5c1a80aa0"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "2e105a24-68d8-43b8-b162-b80e3f83d12f": {"node_ids": ["2c3cd011-9abb-48c9-bcf7-8056bb73c568"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "52cf2a6e-47de-472f-84f7-b80b6c0944a8": {"node_ids": ["5796ba79-7e7c-433d-b48d-22a655968aeb"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "a310a22c-a977-4018-a8b3-63cfc47b9d76": {"node_ids": ["8efa8173-f5f1-4ce0-9b6f-fb3eb938898f"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "09632e4b-9c2c-4f3d-8e8b-17c3a983bfd7": {"node_ids": ["5ed184a3-272f-432c-9e5b-04a3c02bcd92"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "4bee6f71-ad54-46d0-bb6a-2488041fe94c": {"node_ids": ["c73b8060-9483-4686-9e13-d6b0eef84b5e"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "849c8e65-06a3-4493-8b4f-a6bb19a5e7e1": {"node_ids": ["4555b0c3-63ff-4cf3-b86f-861d9b77dfa1"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "2cc71083-62de-4379-a490-fd8c725c98de": {"node_ids": ["090cb24c-9b6d-472d-912f-6a4448358be8"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "55ce72d0-e872-4f01-8316-85de990989b8": {"node_ids": ["69c4306d-c4e8-447b-ac3d-ecdbc55f66be"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "96a5e1d4-3a44-4808-84e0-006d4e50824a": {"node_ids": ["6ce170d0-de6d-47f8-9cc2-9d93e545e26c"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "d960c8dc-b652-4b42-ba69-fcd908e69af2": {"node_ids": ["774a44b0-3088-4750-ae97-3bbb49d0d6f9"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "820f09a6-3d45-42b1-a963-1051ae33190c": {"node_ids": ["8d79d967-2eb5-40bd-8145-dacb456a947e"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "8b00d762-35d4-4261-a871-f369c4d16de5": {"node_ids": ["edea398a-2304-4ef2-b6d8-d7a0df04bfa8"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "850a12ff-ae48-45b5-acf1-881323c2c2d9": {"node_ids": ["d456bff8-0bd3-4b17-a9cb-df318909f8e1"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "bd111ff7-ee33-442b-b5ae-4698486cfb7c": {"node_ids": ["d53ca97c-808b-407f-b32a-f104583871be"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "d5eadb0b-0ad7-401f-af1a-19e9608e7dc6": {"node_ids": ["d0170b27-876d-40f6-8ba0-9eca6eb7e0e1"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "17865a76-1af1-41e5-bc22-b6c1face7709": {"node_ids": ["257fdbf0-91f3-4e4b-955b-08f4e325e421"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "5d90dada-a0a8-4ed4-a5a2-82ce9e49ecd2": {"node_ids": ["ef67e797-b336-4a1e-87bc-f5c8a992b115"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "433d2c75-b036-4963-ada7-8cdb5b1dd316": {"node_ids": ["14b7f516-a77e-4422-9c4a-cb3f224397a6"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "f0af1888-0f79-470d-a37c-a36d516f4dc9": {"node_ids": ["48e638a4-84b2-4916-8957-7725cba2c9c5"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "a989aa71-c288-4976-9e56-076abf2ab5bc": {"node_ids": ["9f7d5b09-883c-4a16-b9ec-7d77d995a07f"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "77091342-8a0e-4f23-9c16-b6b1fbbb49e8": {"node_ids": ["b01ec726-5cc6-4f56-aa39-8b61db71a386"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "9cc55493-15dd-44d7-861a-02186be7e170": {"node_ids": ["fee606ec-0b7c-4b2e-8d1c-083e872d5135"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "972303b9-f1ec-449a-8d42-7b650f9d457b": {"node_ids": ["b2ea1f89-e316-4e2f-ba47-29c769737331"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "7ce7b465-fb9e-4488-ab96-36fc28afb7a8": {"node_ids": ["0080e1d3-6727-4daa-9f3d-23e80637ea38"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "dc2a2cbd-7261-4f67-8a85-be3bcdfec953": {"node_ids": ["ce51ebcd-7973-4f54-a9b9-2f36f14e0b57"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "96e085e8-1061-41de-bf6f-84218fdaef29": {"node_ids": ["38318fda-ea12-470e-a3b8-195bff811fc5"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "0003f322-1862-4b88-902b-c3047c20b95f": {"node_ids": ["fd44d322-205b-4916-bc1c-69d9c746c6f0"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "e378900b-5579-483b-bfac-7cbe0c154480": {"node_ids": ["6b93ba28-0f3e-4e5f-b318-38617dd07da8"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "37b1bf66-4b24-4612-8d0c-f0961a0ac4fe": {"node_ids": ["11ca59fd-302a-4a91-9a66-dad17526e1ac"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "959e2354-28f8-4f99-9e10-96dce1ceb07b": {"node_ids": ["d7298e4a-e931-42b5-b0ca-10e58a947139"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "53dc8fb6-9ec2-408a-8fad-81b8c9303ff0": {"node_ids": ["ae4b13ad-8da4-485c-8090-e4d20dbc685d"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "05f11ef0-fa2d-48ca-90e2-e9f12fb84917": {"node_ids": ["22029af3-752a-4b90-925e-fac3652be058"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "a08353db-c8a8-4f4e-b29f-c2287160fab5": {"node_ids": ["a9db3d6e-f6d2-4371-b3bc-092fa1bddc51"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "fa1f8998-39cd-45e2-9d1d-745e33dac4d4": {"node_ids": ["ad9fa682-2df1-4886-8ae7-d616ab983b81"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "0565f8d9-7eba-40cf-bea8-8a11d7cde435": {"node_ids": ["3ee44ab7-7a10-4fe4-bd57-1842e699f120"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "77672d43-e4b0-4999-88a6-69a551604fdc": {"node_ids": ["50ddf094-a331-459d-9a7c-d8a48cddca08"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "285aeb43-e3ca-4417-9adc-c5a6771c61f9": {"node_ids": ["32cb20ce-4500-413e-b496-d9ce2802e311"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "e66c195c-d82e-4269-9a31-5deb43e94d49": {"node_ids": ["7fde53e7-27a3-491f-ad05-586817f6ad03"], "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "3e30467f-1d4c-485e-8fd2-3d22eef0bdcf": {"node_ids": ["e4ffe82f-bcfd-44db-b683-ea6195a5163b"], "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "52b185b8-5f6c-4bb1-bf94-30f19b347ee6": {"node_ids": ["dc397f6f-2134-4a15-92dc-51d9a98b24fc"], "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "b7bf983b-b6dd-401c-8d62-154daf97e269": {"node_ids": ["5a9908fb-ac0d-4dd4-ab76-ed0d0a77b2b8"], "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}}, "a1587175-d422-4fef-acbb-a7de0af05fa4": {"node_ids": ["1ce8506a-4a39-4d4d-9090-cf991674e9d9"], "metadata": {"page_number": 1, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}}, "0f7ff6c8-e613-40d2-b8bf-3cc509b3c98b": {"node_ids": ["c1339826-7773-4b98-a407-6c7c217349aa"], "metadata": {"page_number": 2, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}}, "8ab6606e-62db-45dd-bb72-f407ce65c29e": {"node_ids": ["eddaa69a-a249-43af-aba0-e287507c512c"], "metadata": {"page_number": 3, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}}, "5bd66240-4543-42b6-aab5-49a5d04a4e11": {"node_ids": ["0385826d-de6b-41d0-9a8b-7a7903c7f459"], "metadata": {"page_number": 4, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}}, "9e53ae31-ba24-4f86-ad48-1a7d745cea65": {"node_ids": ["936b1d2d-91a1-4bf6-809a-85802025ede1"], "metadata": {"page_number": 5, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}}, "b3008b2a-ac12-49bc-89ba-4c0617781400": {"node_ids": ["591bf9af-ec7e-4a53-bf01-215b27e8f1d4"], "metadata": {"page_number": 1, "file_name": "data/finite_automata_03_handout.pdf"}}, "9c779b89-3f1b-47be-89c4-34f3406302cd": {"node_ids": ["cb9e0c36-9700-4eca-8038-536b64e1ad3c"], "metadata": {"page_number": 2, "file_name": "data/finite_automata_03_handout.pdf"}}, "7e0f3e04-25d5-4709-92c5-ea6c6f68dac0": {"node_ids": ["c25b58f4-8de6-46df-b9f5-7db7d6fe99d2"], "metadata": {"page_number": 3, "file_name": "data/finite_automata_03_handout.pdf"}}, "86f287a5-2c1a-4341-baef-e98c75387f62": {"node_ids": ["227ab497-c3cf-4541-acd8-f98cc888156d"], "metadata": {"page_number": 4, "file_name": "data/finite_automata_03_handout.pdf"}}, "9882f8bf-0325-407c-bc54-1306a1b278e8": {"node_ids": ["b1d13147-09e1-4118-91c2-25fe75d05a95"], "metadata": {"page_number": 5, "file_name": "data/finite_automata_03_handout.pdf"}}, "1bbbe7a0-8936-4ef6-90ff-055a365293f9": {"node_ids": ["ec41c5c9-27e6-41f0-8eab-94ed1a184da3"], "metadata": {"page_number": 6, "file_name": "data/finite_automata_03_handout.pdf"}}, "f3ace595-1395-42df-9b6b-e2798ff90d30": {"node_ids": ["4c129e56-a557-486f-b35a-230f790b0fe3"], "metadata": {"page_number": 7, "file_name": "data/finite_automata_03_handout.pdf"}}, "c2033555-c02b-4f7c-8cdb-eadfefeccda7": {"node_ids": ["3e053218-ffd1-4ef3-ab64-ca76e076cefc"], "metadata": {"page_number": 8, "file_name": "data/finite_automata_03_handout.pdf"}}, "a71e606e-e7e3-4fa0-93f9-eb311f92baf3": {"node_ids": ["8f9ca842-b03e-4bb2-905b-9722a421525c"], "metadata": {"page_number": 9, "file_name": "data/finite_automata_03_handout.pdf"}}, "f463fa3a-d974-4fd8-9f7f-e8ddd2821326": {"node_ids": ["23c50a80-545e-4c8f-a09a-74c15a6b3c6b"], "metadata": {"page_number": 10, "file_name": "data/finite_automata_03_handout.pdf"}}, "1c559c90-9452-4db8-8681-c7a54a9c5286": {"node_ids": ["85ca2f50-4681-4609-b8d1-1d6812bc2242"], "metadata": {"page_number": 11, "file_name": "data/finite_automata_03_handout.pdf"}}, "292bec32-a67c-4008-a728-f4568e2d8d44": {"node_ids": ["db79a153-140f-429c-a1ed-41c7e09473b0"], "metadata": {"page_number": 12, "file_name": "data/finite_automata_03_handout.pdf"}}, "0fd7590d-bb21-4ccd-b111-9b097e1052f6": {"node_ids": ["7e892f75-5666-4f65-a282-9e59746d45ec"], "metadata": {"page_number": 13, "file_name": "data/finite_automata_03_handout.pdf"}}, "0d022d69-765c-4c7a-864b-760064a5ade5": {"node_ids": ["c16839bc-c1f0-45a0-8563-993209dd64a5"], "metadata": {"page_number": 14, "file_name": "data/finite_automata_03_handout.pdf"}}, "70f27a3c-a3b6-4855-9f21-ee29b16fcece": {"node_ids": ["ca069203-9a54-4aa8-bf18-75e84b31731f"], "metadata": {"page_number": 15, "file_name": "data/finite_automata_03_handout.pdf"}}, "f6994e75-4882-4e96-a83b-775aaffd2c4a": {"node_ids": ["a9fcf9bf-5845-4bd7-8fa4-f8ac201af5d2"], "metadata": {"page_number": 16, "file_name": "data/finite_automata_03_handout.pdf"}}, "4edc1e1c-0fb2-49e5-9a06-53b018572931": {"node_ids": ["7283b19b-71af-4f90-ab86-04a6a55641ad"], "metadata": {"page_number": 17, "file_name": "data/finite_automata_03_handout.pdf"}}, "9db427bc-1d47-453e-a478-48e7685ef756": {"node_ids": ["cd13a2e4-d353-4b12-8e54-24c57c39a859"], "metadata": {"page_number": 18, "file_name": "data/finite_automata_03_handout.pdf"}}, "79ee54de-9447-49cc-ad78-0bc197a0447b": {"node_ids": ["dc55a138-91b5-4399-8f46-b26f7fd57b30", "c8c8e69b-8376-481e-9704-bb217aa74301"], "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}}, "85067c64-69ac-4bd4-bac6-bf2eb961e5c4": {"node_ids": ["8dda78d4-ad91-4963-ac8f-dcf9e839b2d3"], "metadata": {"page_number": 20, "file_name": "data/finite_automata_03_handout.pdf"}}, "2d1bc86c-6e1c-444b-ab3d-6baf335ed473": {"node_ids": ["8c5cf998-4c13-4302-97ce-d24b8633b858"], "metadata": {"page_number": 21, "file_name": "data/finite_automata_03_handout.pdf"}}, "b32d3b91-f722-482a-aa43-30f30c57ddd6": {"node_ids": ["ca0f3026-cdba-4f66-83f1-b0be87846b55"], "metadata": {"page_number": 22, "file_name": "data/finite_automata_03_handout.pdf"}}, "c28575e4-9878-4488-b406-964327dd23f5": {"node_ids": ["dbba36b9-63e0-4bf3-b014-eced9ad47700"], "metadata": {"page_number": 23, "file_name": "data/finite_automata_03_handout.pdf"}}, "6979f85e-e551-404a-b491-ba4ffdfb5d4a": {"node_ids": ["dc462d90-6867-4bcf-ba4e-104a2d69eac2"], "metadata": {"page_number": 24, "file_name": "data/finite_automata_03_handout.pdf"}}, "e8b07e38-2a7b-4fad-bacd-b9afd304e9e1": {"node_ids": ["01444860-860a-42da-8879-c976bcff6301"], "metadata": {"page_number": 25, "file_name": "data/finite_automata_03_handout.pdf"}}, "8499928b-2f98-4446-8f35-a37641daa79f": {"node_ids": ["0744e485-3832-476b-b10b-14ead35d15d7"], "metadata": {"page_number": 26, "file_name": "data/finite_automata_03_handout.pdf"}}, "5e37ac4e-6cc5-4ed5-87e1-d3a4131137eb": {"node_ids": ["83cd16e1-3b29-413a-bae6-583b104989f4"], "metadata": {"page_number": 27, "file_name": "data/finite_automata_03_handout.pdf"}}, "042c61c8-34e4-4260-8e3d-6ba01244bd2f": {"node_ids": ["d3d4d6b5-42f9-49b5-9015-6c6bd301be2d"], "metadata": {"page_number": 28, "file_name": "data/finite_automata_03_handout.pdf"}}, "085ad039-a817-4643-9154-cb8305ce5d20": {"node_ids": ["72e8cc9a-9e26-41e7-a08e-c7bcdf71b1c9"], "metadata": {"page_number": 29, "file_name": "data/finite_automata_03_handout.pdf"}}, "12838b53-4e33-4df1-8107-d08b9569c7f2": {"node_ids": ["9caa47b6-5999-499b-8e5b-762a2a84968a"], "metadata": {"page_number": 30, "file_name": "data/finite_automata_03_handout.pdf"}}, "9eee640d-dc80-439b-ae05-f9b8a79a6096": {"node_ids": ["902e66bb-6ea4-429c-b2ae-de56c3fe4dd3"], "metadata": {"page_number": 31, "file_name": "data/finite_automata_03_handout.pdf"}}, "90a3f105-cbe2-495b-bd13-c0e2978438e8": {"node_ids": ["51ba8e47-06ca-418e-ba55-e104effe5347"], "metadata": {"page_number": 32, "file_name": "data/finite_automata_03_handout.pdf"}}, "a5768b26-7696-41a0-b868-86e3986dffcb": {"node_ids": ["bee06b5b-5a02-444a-bb65-f6f6a79df9e0"], "metadata": {"page_number": 33, "file_name": "data/finite_automata_03_handout.pdf"}}, "0797f499-e696-4f72-8201-e6c75148a7c4": {"node_ids": ["4764cda8-f885-4660-b945-0ff6400c7307"], "metadata": {"page_number": 34, "file_name": "data/finite_automata_03_handout.pdf"}}, "0df4e757-64a1-452f-b671-9280aae4dac0": {"node_ids": ["bbbbd032-7319-4ed8-9143-3a0a59dcc43e"], "metadata": {"page_number": 35, "file_name": "data/finite_automata_03_handout.pdf"}}, "65eea34d-2136-498d-b7b3-516d0a817ef7": {"node_ids": ["26fd60c7-e2e3-426c-ba56-9d76645c5139"], "metadata": {"page_number": 36, "file_name": "data/finite_automata_03_handout.pdf"}}, "d55767f4-f8f7-47d7-9b3a-60c20e383c10": {"node_ids": ["5fccc8a9-98d7-4587-9f8c-07882c2dc165"], "metadata": {"page_number": 37, "file_name": "data/finite_automata_03_handout.pdf"}}, "7ac84f70-c0f7-4f70-86a3-1fdbac58f97a": {"node_ids": ["b915c724-fa4f-47ca-9c0e-36488528123c"], "metadata": {"page_number": 38, "file_name": "data/finite_automata_03_handout.pdf"}}, "5544d1a1-d01f-4ba8-bac7-b9b9e4815bea": {"node_ids": ["064d9689-bca8-4b74-b78c-5b94cb9955a9"], "metadata": {"page_number": 39, "file_name": "data/finite_automata_03_handout.pdf"}}, "4e17fe43-0b9c-4226-834e-9eaaa6b2a263": {"node_ids": ["feb33e0a-e7ad-46de-809f-e0a1ed768482"], "metadata": {"page_number": 40, "file_name": "data/finite_automata_03_handout.pdf"}}, "8aa6e372-ae5a-42f1-b2bf-187dd7328366": {"node_ids": ["3cbb7f25-a96d-4d47-a931-9c3ad6475a24"], "metadata": {"page_number": 41, "file_name": "data/finite_automata_03_handout.pdf"}}, "ea80808b-5465-432d-a0c8-6b23a1878bc7": {"node_ids": ["1348de6a-9381-4213-8705-6a52225ce36f"], "metadata": {"page_number": 42, "file_name": "data/finite_automata_03_handout.pdf"}}, "6b2a0b57-9e74-4fb1-98b9-b65215d0ba22": {"node_ids": ["4b7fd765-1ee4-4698-9b87-23f30f80eb5e"], "metadata": {"page_number": 43, "file_name": "data/finite_automata_03_handout.pdf"}}, "b5088f63-d52a-4d17-9b95-8de06dd2000b": {"node_ids": ["f84ac2a0-e6c8-4c75-8c68-4597861acc46"], "metadata": {"page_number": 44, "file_name": "data/finite_automata_03_handout.pdf"}}, "4ab71bd7-b6d0-4d60-82d2-3c39075663ef": {"node_ids": ["116d2211-fd50-473b-83cd-519df4c30c60"], "metadata": {"page_number": 45, "file_name": "data/finite_automata_03_handout.pdf"}}, "4632f6a8-82a2-4ea5-bac1-3b15b943b35a": {"node_ids": ["c9c813fb-fd73-4e46-8233-9b3998de8102"], "metadata": {"page_number": 46, "file_name": "data/finite_automata_03_handout.pdf"}}, "e46acca1-5422-4598-ab84-d34ba83c7c20": {"node_ids": ["1b16dc86-13b1-4c42-a857-ce02de8a5940"], "metadata": {"page_number": 47, "file_name": "data/finite_automata_03_handout.pdf"}}, "b322784a-5fe9-4029-b54d-1eabc143fff0": {"node_ids": ["fa57ea10-4774-448e-8d05-bea7b6d6a0ba"], "metadata": {"page_number": 48, "file_name": "data/finite_automata_03_handout.pdf"}}, "0abb6ac1-6c17-42f3-b041-9a0918b54f96": {"node_ids": ["a0e19e5d-7135-4db3-b4da-d146b540b97b"], "metadata": {"page_number": 49, "file_name": "data/finite_automata_03_handout.pdf"}}, "94a717c6-62e7-4ec8-b702-2554e6dd727b": {"node_ids": ["e88e6a95-af59-4d41-a235-7e6ded194165"], "metadata": {"page_number": 50, "file_name": "data/finite_automata_03_handout.pdf"}}, "e525d31a-de2f-42e3-98c0-400cd916858b": {"node_ids": ["59786032-696b-4482-8391-272678e3edd8"], "metadata": {"page_number": 51, "file_name": "data/finite_automata_03_handout.pdf"}}, "54a47b57-4645-4c7b-a016-2d7797caf81a": {"node_ids": ["1c88a6fd-a0b0-404b-9049-54a2b8452198"], "metadata": {"page_number": 52, "file_name": "data/finite_automata_03_handout.pdf"}}, "77b55822-058d-4f77-bbb7-21a5acdad6d4": {"node_ids": ["a804996e-693b-4160-be9b-1a59ef285781"], "metadata": {"page_number": 53, "file_name": "data/finite_automata_03_handout.pdf"}}, "8940f755-031a-4ec6-8680-ff6d3a6fe5f4": {"node_ids": ["b85ef640-cc34-4561-b75a-9a0108f16462"], "metadata": {"page_number": 54, "file_name": "data/finite_automata_03_handout.pdf"}}, "cb2aff72-bb40-4367-9724-a929433648cc": {"node_ids": ["962fac05-c1bd-4059-a964-0eacc2442fc0"], "metadata": {"page_number": 55, "file_name": "data/finite_automata_03_handout.pdf"}}, "875127da-e07b-461e-a8a1-b1150f0dedee": {"node_ids": ["9b2ae2ac-7b81-4572-9892-e1650d2f4109"], "metadata": {"page_number": 56, "file_name": "data/finite_automata_03_handout.pdf"}}, "fb39a5af-8e25-4989-84b5-18a980862b55": {"node_ids": ["2cf3cb68-f6dc-4d1b-9109-4e468a1efbc4"], "metadata": {"page_number": 57, "file_name": "data/finite_automata_03_handout.pdf"}}, "fbcc9fad-7996-48c2-819d-446635fb3a59": {"node_ids": ["f3d040e2-0232-45b1-ab5a-3fbb79d342ab"], "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "3c134616-817e-4580-a266-0b4e38cff838": {"node_ids": ["3345996c-6312-48d3-b6f0-38f55c57bc45"], "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "646b71ee-93df-4104-bfdb-f33cf60b2f30": {"node_ids": ["f9ec57fd-7992-4345-9d2b-7974f8549950"], "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "69fbb569-291c-492b-a13f-e76bc1d513d5": {"node_ids": ["0a876bb4-0f31-403c-b58e-d1160d276818"], "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "2bd609f2-3a13-48fd-8b4e-761f4cdc77f4": {"node_ids": ["7dc3ff70-34f8-4923-8af7-3b9d157ce14d"], "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "57c49573-7dbc-490d-9a8f-8f2e520d1390": {"node_ids": ["193fddf7-e36f-4693-80da-15f748115cda"], "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "58ad2fdb-6e81-4218-9643-83f058d3a0aa": {"node_ids": ["c158ad55-4c8c-43b8-9eb3-e74cbc9ef65d"], "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "620c4bb7-bbd7-4f69-8f83-51a7b210a803": {"node_ids": ["7719425c-ac43-4099-bc01-4d0b4b66fea1"], "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "a05f1d8a-e2c5-4844-a86d-01fd34816939": {"node_ids": ["450d2224-4322-4949-8a64-4dd14ccd1386"], "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "aea43ed6-806c-4e18-a86b-6c106a7ec0a0": {"node_ids": ["0eb6fb63-0063-4290-bf64-67cfa8e12f70"], "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "a13153ae-6dd2-468b-ad0a-1332002ecff2": {"node_ids": ["9fc47ce0-46ac-40c1-8216-4c1f1e9bfe0d"], "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "c0c492a3-bd70-46f4-a0cc-99538b346d0a": {"node_ids": ["cab1ed8f-6910-433b-96f3-0e50962f12fa"], "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "d5b20b14-bc34-4c84-8388-0bdd499e44ad": {"node_ids": ["19875395-4eeb-4841-8025-823c836aa164"], "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "8edcaae6-cc68-4627-baed-0d0fa16409f2": {"node_ids": ["7729555d-1d0c-4e40-b998-87af8b1a70f0"], "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "b07b7cb4-75a6-462b-a825-c21b3fa769ff": {"node_ids": ["856bbe0f-01a8-4a8f-8ce2-ed9ccf0d0245"], "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "573c541f-0e6b-487b-9b96-fe98361ebfe0": {"node_ids": ["a6339315-ab35-4ba7-94bb-047adbcaabd0"], "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "aba2442a-a388-4514-933e-7a1badb4cdd2": {"node_ids": ["3ce71bba-25f0-4c53-b3fa-942be2597af9"], "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "130fbc49-517f-495a-be31-c1945c802564": {"node_ids": ["439f5fde-3b93-487c-be2d-1ac7f600d84c"], "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "c97300a2-0565-46d5-9a7d-af787c746f22": {"node_ids": ["97c19ee8-2295-4266-bc6f-51b874b34d69"], "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "0fca1f0f-ac3e-4465-a69d-d1d2ed929b6d": {"node_ids": ["1eeafca9-737c-4b16-a6ab-88ffa756bcf3"], "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "b39fe785-1aeb-4715-adae-ca6084531563": {"node_ids": ["0d91d4a5-e541-499f-8aef-4b36675e11b7"], "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "990c8f06-dbd2-4d4b-9a14-df02c328e945": {"node_ids": ["0fb888db-a05b-4930-b272-cb10c3c8973c"], "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "fb086dad-c5db-4e85-bdc8-3413c7801935": {"node_ids": ["5ba29234-170f-4a04-a6d9-967bd023aa01"], "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "c8cfb321-c13b-444a-88b2-4d522aab499e": {"node_ids": ["27a51c7f-94c5-4f86-8e21-4b54aadc8a3d"], "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "e17b9223-2220-4379-9bf6-1783335585b7": {"node_ids": ["3740446e-61cc-4172-accc-e8f2add77742"], "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "a3a95eba-1ddb-456e-bb5e-c432f2b2ce45": {"node_ids": ["3add3248-ef7d-4108-a10b-e9e287f78eb9"], "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "5c22f98e-f8b3-4d8f-9864-4ff21d053d5b": {"node_ids": ["253e50a4-96a1-4dde-bf1a-70a7e7724435"], "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "c111f4b7-35e5-435e-8518-51f0c3ac2200": {"node_ids": ["b1bb2d02-ee69-48a4-9fe9-c55588dcc8f2"], "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "ab49e505-6b3f-4e87-a61f-5d59f6295288": {"node_ids": ["7139f466-15bc-4998-b4df-fcbab76581ed"], "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "41342fc2-047a-4cf1-b772-74dca44459f7": {"node_ids": ["fc7b0a31-59ee-4737-a98c-0760f0a896b4"], "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "3e80166f-993c-46e9-a037-98fcdcc28b9d": {"node_ids": ["503697e5-a94c-4e27-816d-494f04f21f75"], "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "d5864625-c9be-445f-9e4a-c30cd44437cb": {"node_ids": ["0fa8d65a-9ad9-495f-82f4-b98fb5408966"], "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "42a5d6e0-eab4-4b77-b093-ba614715da6e": {"node_ids": ["87210355-db43-422a-b548-8847ff487536"], "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "fee92934-aaec-452e-86bb-1d2ec83bc2cb": {"node_ids": ["a6749a63-50b2-4c64-8b4d-96d6fb87ed7b"], "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "ad50ef99-e2ad-46b8-8a38-aebb5391ceaf": {"node_ids": ["d3b733f8-884a-4ca0-9fcc-ca200dc84628"], "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "9af3c669-bac0-40fc-b901-cbc5fcd5b2a6": {"node_ids": ["2663b813-7343-41a2-a80c-5355c9f7e0b0"], "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "53f7dc9c-e37a-4196-be54-483b167d975b": {"node_ids": ["fdae2512-8514-49fb-af28-d91d67f5317f"], "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "3c7aa30f-7357-4b7f-b640-b7f4bcb86dee": {"node_ids": ["c81e9f7e-2f7c-43bb-89b8-79ab08c9c730"], "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "6e17e445-2582-4888-8765-4b614aa41f47": {"node_ids": ["6164be7f-4986-48ee-b712-c28304adba66"], "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}}, "f3a61259-32ca-4b6e-aee5-d3566d5f791f": {"node_ids": ["440cd232-b6f6-4f2d-85bf-b821d0e78f33"], "metadata": {"page_label": "1", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "06404be2-f5ed-4c2f-8b26-2cd30b9f9c51": {"node_ids": ["caa23d73-62d8-421e-8d8e-be748af860a1", "f72bb77e-280f-48cc-b8d8-cb49f491a3da"], "metadata": {"page_label": "2", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "6b2e297e-cc31-4af2-925e-7a7e882b9bc4": {"node_ids": ["349ad651-5541-4d39-a543-6878cc4088a0"], "metadata": {"page_label": "3", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "7af7a1be-b0a0-4073-85e1-85bb3b1a090c": {"node_ids": ["f326ebd3-a8e9-4d5c-8f3f-562d5c67bb88", "f5138396-7f9a-4ff7-b9a4-dea45a933b62"], "metadata": {"page_label": "4", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e9b4ed23-6302-454e-856a-b46b2e1ad595": {"node_ids": ["399928f1-52b9-45fa-b4de-34a17cb2255c", "c3aa7a63-78be-42b7-ba50-b186b28f1709"], "metadata": {"page_label": "5", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "f0c6d9b7-c3d0-454f-9d33-da6698bf5202": {"node_ids": ["4b6e6cef-8f5c-4187-9b9d-540a013b48e4", "d1b23f3f-6a56-4e93-8430-d641a8e46441"], "metadata": {"page_label": "6", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "924e4d4f-013e-42c4-b985-9159ad2887f4": {"node_ids": ["3265af36-ab5e-4f9a-845e-da4cee60776b", "4dd31aea-b426-44a7-90b8-4934175498d2"], "metadata": {"page_label": "7", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "fc9c6221-a543-4ff5-baeb-5b2b1421c3e7": {"node_ids": ["b08b0287-c781-4e9c-a633-4e3d1dd9b864", "cbcb5b53-8510-4887-9300-d896b7c6c4d9"], "metadata": {"page_label": "8", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "32f8e853-2230-4c9b-b480-3101b50a35f0": {"node_ids": ["5277f552-6d6c-46b6-b636-0ffbb583735b", "e82c0de1-f6db-40a1-b354-fc85962a0ce2"], "metadata": {"page_label": "9", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "ff9de819-784b-4c17-8647-808862e8ae44": {"node_ids": ["ca8c7592-4a9b-4e16-96df-a633ac2dbf6d", "865bece9-a27e-4be4-914a-4be381469195"], "metadata": {"page_label": "10", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "ce801ccf-e814-4685-b425-5d7543da3593": {"node_ids": ["f023a46b-7a71-4216-a144-02688eff4aaf", "7bde4273-3465-4015-b487-458b0abb7a12"], "metadata": {"page_label": "11", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "1c086f2c-7bb1-4802-8cdb-f6bcdcfb1730": {"node_ids": ["ac51e598-6ab8-4a16-bc06-7a4287cd218f", "80d069a0-251b-4429-a9b6-421799997b9a"], "metadata": {"page_label": "12", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9ce07126-afe6-4bac-9e61-f57b88febf97": {"node_ids": ["704fb551-9606-419d-b3c8-b2b28a6bebca", "33c9ce2a-fb27-44d5-bbf7-36cd02421762"], "metadata": {"page_label": "13", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "b102015f-6e3b-44f9-93a9-b2f62c79d676": {"node_ids": ["1f8a5636-b169-41da-ae1d-8da9fc11ce5c", "5cf21468-4245-42b5-a7bd-3d61776124c7"], "metadata": {"page_label": "14", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a6033241-ebac-44af-af9a-9cc49aa0e123": {"node_ids": ["6758de60-e2a8-46f6-910b-d91fcf3473a9", "e0c6d0ec-d049-4542-9b04-22c6592e113a"], "metadata": {"page_label": "15", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "358bb789-a27b-4533-ad4e-a7a2d5afb115": {"node_ids": ["adaca468-4596-4142-a862-2c63cbd522af", "01aa8caa-e272-433d-8501-23c318d4e632"], "metadata": {"page_label": "16", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "47a17007-4a08-4d87-96af-3831a84027b3": {"node_ids": ["d9247f3a-987b-49ed-aafb-bf03ec0dbbcb", "f2887c0a-bb19-4cb5-a3d5-674c4ad6537b"], "metadata": {"page_label": "17", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "91d77b80-b8fd-4863-ba2e-909379bf911e": {"node_ids": ["5f3cf013-de30-469a-b104-741977a7946a", "71896282-7ca5-4b1b-a0d2-2e0d31f29389"], "metadata": {"page_label": "18", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "ec3730f0-80bb-4c97-9530-2fadd6ab0ae8": {"node_ids": ["0a95e94f-69b3-41b3-b39f-fb2e489d5985", "e347acd8-9558-4957-856e-96a0592d5583"], "metadata": {"page_label": "19", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "064c0af8-dcbb-4743-a3d3-3d39087ed765": {"node_ids": ["f47659c9-1dc5-4bfc-b39a-3014c7828736", "349e2184-1f68-430d-9bde-98fd3594d4ca"], "metadata": {"page_label": "20", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "c8aa2e5e-c915-40e4-a5ba-5c109b77a9d2": {"node_ids": ["bdc90b98-9ea4-4d31-81ba-79418630a920", "0050c67f-4b8e-49c6-b8f9-32bc458866a0"], "metadata": {"page_label": "21", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d48eb661-131f-4ebc-9a1d-652b0e12d101": {"node_ids": ["4f3c8d74-ca06-429f-9600-807dfe996b3b", "65f70ebc-854c-470e-aaaf-cb5901ce7a35"], "metadata": {"page_label": "22", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "50164492-6ab0-4027-a7e0-c3d2b0b6c44c": {"node_ids": ["574dd432-24aa-4978-9c24-b55be5f2f83b", "c0fa3ed4-cbe4-4aca-98ea-35be62cfd346"], "metadata": {"page_label": "23", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "1e729a09-41f9-4fc6-babe-f24c071a836b": {"node_ids": ["0f46b6ed-1094-4dd0-b715-37e8363ad5b7", "11551208-76be-4d91-b828-8e932381db15"], "metadata": {"page_label": "24", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "902ca4b2-266e-434f-9a3d-b4cbbae6d0af": {"node_ids": ["f9308aa2-d315-440e-a8f8-021faeda9479", "bdc49586-5b1a-475a-92e4-fee9bdf8e193"], "metadata": {"page_label": "25", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "3082f703-7407-4588-8dcc-1cc5040d80a1": {"node_ids": ["232ba979-8a57-4bed-8051-3299d5fd8ece", "f743108b-482c-41ba-9775-f0122fcb0e20"], "metadata": {"page_label": "26", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "24eb9f5f-f2c9-4b97-9515-3d2606a6a646": {"node_ids": ["0809b442-30b2-4a73-8b71-e5311f8c78f2"], "metadata": {"page_label": "27", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "2615e661-07d6-4b96-b150-176712710820": {"node_ids": ["bf860b7e-516a-4f78-a709-7ce7f052ca49", "7c92c64c-5fa2-40af-a61d-84efb740473b"], "metadata": {"page_label": "28", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "db682d13-1ac3-478f-855b-3cece37ac8bb": {"node_ids": ["12b96c35-320d-4bbc-8cf0-4de78613af05", "99047b82-41e1-499c-8fab-34b70540719e"], "metadata": {"page_label": "29", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d00857e4-765e-4200-b2d2-7e7ce5dee666": {"node_ids": ["72d98900-a444-46aa-ab5d-2d30a56bf24b", "45116969-d656-48a0-9ecc-ddb03c4064fb"], "metadata": {"page_label": "30", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "80e19c0d-183f-4fc3-bbf3-e2d14bce68d6": {"node_ids": ["c530f08c-d0fe-4afd-beb1-9107d81f9add"], "metadata": {"page_label": "31", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "1ae64888-27a5-4928-a4b3-5f429dc9c097": {"node_ids": ["7196a3ff-df61-42c2-83a8-9bdc332aac2c", "e46c0bb8-52b5-463a-9b7b-00194c3af9ac"], "metadata": {"page_label": "32", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "f3ca6720-4221-460e-898a-6e1e12d423b4": {"node_ids": ["4a60d729-daef-4def-9eeb-dc87a848843d"], "metadata": {"page_label": "33", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "da406491-6449-4aca-9174-fad6bf5cb954": {"node_ids": ["f52103d2-dc8d-4fdf-86ab-11327aa67c18", "22c9cb0e-7efc-489e-abf9-9700fae651f7"], "metadata": {"page_label": "34", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "fac0f3f2-6e9b-4d43-a810-6388eab12b8f": {"node_ids": ["9da34a3c-c97b-41f6-9f19-dc022dafd7f4", "5ea7565c-6786-4cda-934d-5139badad18e"], "metadata": {"page_label": "35", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "ba2d068d-951e-4ee9-b44d-aa0ddfd7b5cc": {"node_ids": ["e0b3ca43-0c41-4b12-bf82-dbf352bf65dc", "ce1264c4-a478-4cf2-aba0-79def8c91177"], "metadata": {"page_label": "36", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "b6a6436a-3fb7-4e67-b2ca-6ae6ae6ba45e": {"node_ids": ["43ce5aec-9d84-490d-ab1b-923a2073ea6f", "7b4c107a-8319-4745-b437-9ff271b97811"], "metadata": {"page_label": "37", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "5d97e345-c4b0-47fa-9b54-2f57b4cbf1c5": {"node_ids": ["3b625432-35dc-43e0-88aa-075869771f12", "3d2bc89b-89f5-4961-b4d4-e582a1f349bd"], "metadata": {"page_label": "38", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "73a993c3-6382-40c6-bd98-66696b8ec897": {"node_ids": ["744d69e1-6e50-4abe-82a6-0711b381bab5"], "metadata": {"page_label": "39", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a7969e2c-51ce-44f0-8a9a-c3fab2d158c0": {"node_ids": ["324fcab3-3e33-4e3e-8b77-648bd55d0261"], "metadata": {"page_label": "40", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "5ffa3258-a07b-4392-8e79-8f67e325ebd4": {"node_ids": ["c293048a-7ee2-4867-866c-3812f3d145a5", "0ffc8dde-7090-4f22-be02-0d50c6178815"], "metadata": {"page_label": "41", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e379bf22-1e75-4d65-8854-4e22d5118a15": {"node_ids": ["9df41178-0edf-4f06-bad0-b37584a6aadf", "0c6a5788-8cdc-48f7-974b-3cffa6eca624"], "metadata": {"page_label": "42", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a1960744-7195-4181-8b69-e11bb541bebb": {"node_ids": ["91bdb95f-7974-4792-8a59-441c661ac12b", "6d72a0e6-492a-4b5b-a726-65efd801dfd3"], "metadata": {"page_label": "43", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "c0b28c08-6f67-4705-be98-a243077d7fc6": {"node_ids": ["81799b67-5d97-4c8f-8b7c-61b934fe97dc", "ef6e4763-9e32-4029-9d17-2815a17861e8"], "metadata": {"page_label": "44", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "2e126897-77c0-46e6-a66f-27d3b704ac78": {"node_ids": ["9100e1da-cd25-44e9-922a-b44dbe3e9adb", "011a72ce-6c19-485f-8e97-8b89762e9476"], "metadata": {"page_label": "45", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d55d68cd-e013-46c9-bf85-bcbe005861ea": {"node_ids": ["4713e071-a6d2-41ed-aaf2-00c315f0188a", "e4052a00-190a-4ebd-976d-5ac985730e3c"], "metadata": {"page_label": "46", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "270521dd-ab06-4994-b12d-8a12071828fe": {"node_ids": ["aaa96581-8c2d-4da4-92d7-f7262b6396f4", "68889eaf-2d44-4291-934d-41187c3df005"], "metadata": {"page_label": "47", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "68bda86b-1129-40f5-ad93-f8da9dc62b9c": {"node_ids": ["6b84357c-8b3b-4414-a458-2ba577cdf1b0", "a34a8564-b22c-42b4-b8ad-3245c7adf2a6"], "metadata": {"page_label": "48", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "3f14eea4-a471-4300-a64f-33aefdb9d886": {"node_ids": ["7fa8b6ee-051e-43f2-8dff-2a534b0cd611", "0b4aaeba-381e-4cda-a169-f4628a06f7cd"], "metadata": {"page_label": "49", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "6bde58a7-52d7-401c-a9dc-b3398bd77340": {"node_ids": ["dc1bcdbc-3909-499a-bb95-6f7311ac9970", "526642ea-f296-473a-8b15-123104aeee45"], "metadata": {"page_label": "50", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "df0d90d1-f48b-4eb6-a0aa-d6b2e6fc4b75": {"node_ids": ["4dcf984d-2348-44c4-b9be-4af4611d7b56", "d90a6e64-b54d-4b75-a61a-e3a6a8b29519"], "metadata": {"page_label": "51", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "55df7199-dfb5-4d4e-8d8f-7ccd1678457e": {"node_ids": ["02e25d7c-18fe-4b01-84c2-246320251797"], "metadata": {"page_label": "52", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "670371a6-ba32-465e-b09d-b856ad588836": {"node_ids": ["781dc339-d858-4c89-a1f9-46afa6c1c838", "ebdf1ad1-79e8-4189-8978-9220710d45ef"], "metadata": {"page_label": "53", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9734b56e-f035-4853-8553-7a05c3a8e22a": {"node_ids": ["fa2e2347-de35-4ef5-82ae-d4c8522bed41", "4c75878d-9f4c-4244-8120-d57ad7c2ae65"], "metadata": {"page_label": "54", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d0ad5319-88cf-4d45-920b-e5b1b4d55dcf": {"node_ids": ["4d97541e-d268-42c1-aea6-76f4242be1f8", "8f85c303-6c8d-42f1-bf51-817e83a35c30"], "metadata": {"page_label": "55", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a8a8894c-2001-4641-a7fc-7b4e033c16cc": {"node_ids": ["6b5d66f0-1114-457b-a3e3-67da1e8d6d99", "abd0c3b2-9ec6-40bb-89ec-30a864369492"], "metadata": {"page_label": "56", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "fe8e6459-ab0c-440d-ba38-af73b34d13d1": {"node_ids": ["016d6195-182e-46c6-b8a3-be732245c0e7"], "metadata": {"page_label": "57", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "4e01b025-b557-419d-ac46-26cf780961d3": {"node_ids": ["38b2c6a0-c770-4716-9062-f32e30148c7e", "29dd9225-31e0-4d76-8661-a05b73337d1c"], "metadata": {"page_label": "58", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "126443c2-698b-4747-8b05-e3b7790a77b8": {"node_ids": ["9d08900e-783e-46cb-9a10-d3ba38dd11b7", "30765315-99d9-4c2b-9cef-575712e3dbec"], "metadata": {"page_label": "59", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "8a1e1e52-e76e-4cc1-889f-8aa84f7b70c3": {"node_ids": ["a2a83a21-c192-4650-a894-3ae1c7c43c47", "7819aa04-ab48-47be-ad02-d3509ac7c1a4"], "metadata": {"page_label": "60", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "70f03fdc-17c1-4a2c-8499-fe56d2de4667": {"node_ids": ["0a35eb35-ad0e-4b2a-a887-1ae52d0caf61", "548fb47c-8295-4687-86ca-eadab0daefe3"], "metadata": {"page_label": "61", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9117bb24-9114-44c6-a872-19b7b8539913": {"node_ids": ["c457b770-efbe-45ae-9abb-15f5915f50e7", "e2a7ab99-f8f8-4c3f-8019-e9d46f67e496", "f68121b6-7ab1-4668-9610-b3a0322ed1a1"], "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "2de5941f-0a8b-42d9-ad57-2c7f696bbbbf": {"node_ids": ["9a302642-0d11-4eb8-9ce1-5c7302ddcdd3", "cb62514e-a30a-443c-a871-a02a475ef5ea"], "metadata": {"page_label": "63", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "0b988ea1-8646-4c73-ba8e-a111123a9719": {"node_ids": ["9ad3150f-a64b-414f-aabd-bc167128898d", "3f131cd0-709c-42bb-8811-6fe27ad78d00"], "metadata": {"page_label": "64", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a6667b95-a83c-40b9-91e6-8bd41e77f90e": {"node_ids": ["98f2f163-8bb7-4021-9a9e-fd4c87b2e1ae", "a4d9224b-eee6-4a07-a1d1-252dd935e981"], "metadata": {"page_label": "65", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "4402408b-272d-4e52-8a62-6dd7dfc8ec19": {"node_ids": ["8058d037-ec0e-4218-8911-4cd1d325fb0a", "bae5443b-c8a1-47a7-9068-0628106ec594"], "metadata": {"page_label": "66", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "137bceab-370b-4526-b524-5d373b9cca23": {"node_ids": ["23105f73-d96e-4520-ba21-b824675c5639", "3a927d8f-e5a7-45af-895f-c8963ae0a533"], "metadata": {"page_label": "67", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "433e5758-8a5a-408a-b537-6e55204f9f9b": {"node_ids": ["8abfeb21-760e-4235-b5a1-e5e0c36919d2", "8f0045a4-502e-4c25-9e1a-8d9366e86ef5"], "metadata": {"page_label": "68", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "1bd50407-7ef1-4ae3-bafd-79cc04e3f54e": {"node_ids": ["0f74543a-ea51-4d04-af29-d39b1d047dd5"], "metadata": {"page_label": "69", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "10394f42-35fc-4590-956c-e2560e932aa3": {"node_ids": ["9f063f5f-5659-4f67-9d1e-b9d70c0a1bb0"], "metadata": {"page_label": "1", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "8bf12b64-8306-4b09-b710-f3083615d607": {"node_ids": ["16574fa1-75cf-4d52-a934-6121a89cd11b"], "metadata": {"page_label": "2", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "73f36a54-c93a-40a6-8dc5-20fff6b4d625": {"node_ids": ["64a2026e-5108-4a9a-9a29-98ed34d3ad3f"], "metadata": {"page_label": "3", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "6611b480-b8ae-47d7-a786-df17580de002": {"node_ids": ["481f8cfd-84c9-4318-80b0-9fb753817978"], "metadata": {"page_label": "4", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "88314352-f86d-4ab3-95ce-dd5ce9d68e21": {"node_ids": ["b3a76d4c-a414-4ac9-92f2-edae53fdd0c7"], "metadata": {"page_label": "5", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "18f7632e-b5f7-440f-b068-c6dbbf3e87fb": {"node_ids": ["627f12ce-a0b4-47bd-8794-89b16c8be51d"], "metadata": {"page_label": "6", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "6b70a31d-f201-49e9-89dd-c5569c06e4ad": {"node_ids": ["4a4c9101-c64e-48c3-9332-7e09aaafb852"], "metadata": {"page_label": "7", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "59855c4f-335d-4391-9e83-8a4acfc0bd19": {"node_ids": ["2e9afe7a-1103-4ed9-ab8e-326d03f11817"], "metadata": {"page_label": "8", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "aa5625ba-d371-46fd-9ee0-6f5b1a0ab90a": {"node_ids": ["910a5a03-ec10-4792-aefe-814c6fdd3590"], "metadata": {"page_label": "9", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a1749e84-25e2-45b7-bb03-49c37dd49bb1": {"node_ids": ["3b413ecf-433e-47ab-8f80-3a9b97c4eabb"], "metadata": {"page_label": "10", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1f19ace0-9a90-47be-95ff-23ec376c9d59": {"node_ids": ["c4d832b3-2758-4507-98c7-a31f99e7aeb0"], "metadata": {"page_label": "11", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1a6ffbce-b766-4645-a3f1-9ff8e5f099fe": {"node_ids": ["55d66bad-b7e7-48af-990b-672e99a74a7f"], "metadata": {"page_label": "12", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "f380c042-fe55-4440-a2f2-542598f35cb6": {"node_ids": ["e6d86c7a-dfdf-4f59-9ee0-06a4e9013df4"], "metadata": {"page_label": "13", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "89e09443-5e2c-4a1a-8bce-7316e006d6d2": {"node_ids": ["23a4432a-69ca-4a2c-8e00-30c57ba15c15"], "metadata": {"page_label": "14", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "50344488-04f3-4bb9-a752-2466d79f196f": {"node_ids": ["c6a96fdf-1139-4482-9c9a-de48a1fdce78"], "metadata": {"page_label": "15", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4b83be5c-3d59-46f1-b11a-98c359a78ed6": {"node_ids": ["b3d31cc8-1043-4d2e-a34b-5be6865b43a6"], "metadata": {"page_label": "16", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c76da34e-7ea9-4e1c-8701-a5a4b2c4d549": {"node_ids": ["016d2eae-5d6e-4e92-afa5-67a2de30d57b"], "metadata": {"page_label": "17", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "cf0e6cac-6adc-4175-95a9-72ce24cf8188": {"node_ids": ["8c24cc1e-9370-40ae-9f15-0a3db1e3c547"], "metadata": {"page_label": "18", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "460f22cc-661b-4909-9d3c-4ae719a99a5a": {"node_ids": ["830ecf92-5635-4028-8af3-2e8c6db0230d"], "metadata": {"page_label": "19", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b5e09ec4-cc9f-43c3-a206-317f3aac3d01": {"node_ids": ["6e6be80d-75a0-4c44-a907-46129ad9bb48"], "metadata": {"page_label": "20", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c1052afc-ed3f-431d-867a-2a5d652d3d1f": {"node_ids": ["5d5c1f22-d098-4f23-a152-af2284dd3652"], "metadata": {"page_label": "21", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "54695d38-e8eb-46c3-86c9-f4f91f28228a": {"node_ids": ["62d84c78-c987-464d-827c-584ff3be00ba"], "metadata": {"page_label": "22", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "8f922c41-c0c3-4728-9a86-7aa0aebd10fe": {"node_ids": ["1c821ebd-3e87-45d4-ba54-306443b336d5"], "metadata": {"page_label": "23", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "d2eff9e8-03e0-4a2a-aa6f-1fb967333d5a": {"node_ids": ["bc9356ca-2520-4c59-9026-2f398569de33"], "metadata": {"page_label": "24", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "3ff27585-7985-406e-9aa2-fc9bea23307c": {"node_ids": ["e7778f03-a372-4606-9308-63b985488d92"], "metadata": {"page_label": "25", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1395a7f2-4e6c-4dc8-beab-da74aef3ee62": {"node_ids": ["d3667365-403f-49e6-b8cd-1e39ccc56c71"], "metadata": {"page_label": "26", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "3e3044ce-1509-41c5-a557-60b20de22061": {"node_ids": ["ae2cf901-51d0-45fe-86b1-d2a99802cfcb"], "metadata": {"page_label": "27", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "8c112790-838e-4736-af6a-4623feac1257": {"node_ids": ["53945ba5-c990-4e7e-8f22-88d7a59146db"], "metadata": {"page_label": "28", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4db5aff1-480a-4e2d-983f-d6f8ba002d4b": {"node_ids": ["79107f28-55a2-4e84-ac14-749e8cea3e43"], "metadata": {"page_label": "29", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "10bb1224-58c2-45c6-aca1-2d2278d263fd": {"node_ids": ["b82337a6-389c-4e03-b48c-527f43ecf23d"], "metadata": {"page_label": "30", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "38261782-6ceb-4335-afee-4d2b4d129b9c": {"node_ids": ["01eb6ed3-097a-4bdc-9c5d-b971ccb866d7"], "metadata": {"page_label": "31", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "9168f233-dae9-45ad-8abe-93abed1b5fe7": {"node_ids": ["3bac20e3-6bd5-47bb-add6-d0bf64b19638"], "metadata": {"page_label": "32", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "eac62f56-be14-4c81-b14e-2d9684f1db5a": {"node_ids": ["caf48bca-9fb5-4344-acec-81a0d6753b45"], "metadata": {"page_label": "33", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e72b2881-ebb5-4147-b7cd-51297ad6551f": {"node_ids": ["b7ca8406-a7e7-4eb4-b89c-d97e37c3a6f7"], "metadata": {"page_label": "34", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c4636b61-d9fb-4cf4-ada9-d3d3271c618c": {"node_ids": ["8e2464ca-053c-4e70-9072-3a979fc9790d"], "metadata": {"page_label": "35", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ea1fdca2-572c-48a9-bfc6-3009e9585843": {"node_ids": ["8b03040e-e89d-4226-8090-46f285a22ba8"], "metadata": {"page_label": "36", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "be4dbe9e-06af-4285-8ccb-79fe623ef33c": {"node_ids": ["2b6e40be-dd63-4724-a881-eccfa637ac42"], "metadata": {"page_label": "37", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4551556a-98d1-44ad-8536-cf6a5eba0449": {"node_ids": ["46f58001-b5f5-40e7-bf3b-7899e55c94ea"], "metadata": {"page_label": "38", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "f856d32b-03f1-4c57-bf34-ce38624f506f": {"node_ids": ["e239097c-ba5a-4cc2-852b-a68892ac94a1"], "metadata": {"page_label": "39", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "50783030-ebb0-4fdf-bd12-6d558fb91473": {"node_ids": ["b13249ce-a164-448b-9131-b54a2f2032d2"], "metadata": {"page_label": "40", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ebce0090-8e32-44b6-a16b-3c35a7a6f517": {"node_ids": ["b150701e-a2c4-4ddd-8f20-142efb3a9e3e"], "metadata": {"page_label": "41", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "df38730e-0a34-49ad-957c-bd2607f80521": {"node_ids": ["ec029116-f1b8-45fb-997c-f4e2f7e82e92"], "metadata": {"page_label": "42", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "044ec92c-448c-4ed7-8df9-e76b97075c9e": {"node_ids": ["7e92c5e1-e311-4567-848e-17ab35c6cfd5"], "metadata": {"page_label": "43", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "07b23a38-40af-4c4d-9388-ca2720904281": {"node_ids": ["afd60cdc-ccec-488d-95ab-f990c8584abc"], "metadata": {"page_label": "44", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "11af0922-d576-4b5e-ae2f-c3549607116d": {"node_ids": ["c7e9b39a-59e1-4f81-9a4d-0281710a36f7"], "metadata": {"page_label": "45", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "918e1af8-855c-43c8-857c-b57f2913d517": {"node_ids": ["f6ad4367-1725-4063-a121-8c10644a3577"], "metadata": {"page_label": "46", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "940e8cf1-face-45d4-8940-0487fac93d23": {"node_ids": ["00d33e93-b2f7-4a35-92b0-e2bbe39e0de2"], "metadata": {"page_label": "47", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "89fed957-f366-4e31-a87a-4599a8780f60": {"node_ids": ["df954e97-b5b5-40e3-ad12-437e0d73a9f0"], "metadata": {"page_label": "48", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b91e099a-3135-4d70-be08-23bd1dd5c9e9": {"node_ids": ["08a1b59e-b813-4a88-ac48-bb413953c1d6"], "metadata": {"page_label": "49", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "0170703b-d0c4-4348-ba91-ca1efc8a9622": {"node_ids": ["c131b625-eb03-4754-be81-5c6bd75f1905"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "469753a1-9fc5-49ec-86cc-738ad17c0a6a": {"node_ids": ["ed3a5288-7470-4209-ac97-1fb2e176d581"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8013ac9d-3081-448f-b2de-e97e88658bf1": {"node_ids": ["7b18d53d-90dd-4b3b-ad3c-fb606afd12aa"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5c0da684-1f8d-4b34-81fb-130444e5b610": {"node_ids": ["d7c298f1-0594-4b4d-bee9-a5eebe80a1a9"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e08ff3f0-c1b3-439a-b235-201483086321": {"node_ids": ["dea8506f-66df-4cbf-8c4f-a6bc88e5911b"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "919413f3-4b34-4115-a4b7-205cb2b230a3": {"node_ids": ["a4c39a4f-5bdd-4fc6-8c0c-79c825f80234"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "69643f39-218c-47ce-9b8c-687714a406f0": {"node_ids": ["75c25815-2ee1-4999-aef0-12aa2ad234e0"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "29e5951b-e72b-4e48-9f59-4a26a771fff8": {"node_ids": ["070bbedb-7b70-4e13-8d6e-8f645940f1be"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "9716e860-dcb6-4d91-8d87-efed44460d97": {"node_ids": ["1e6c31e0-91be-4e24-894a-17be19b78f89"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b5a3587a-5387-4166-9797-9d41b326e718": {"node_ids": ["7c3f92c6-8ae5-48ab-8422-fba966069999"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a59e102e-39b0-4f02-b623-cc445c9b5682": {"node_ids": ["1c710b36-8375-4c23-8b0f-1a35d58d6a7b"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2a3403e5-e127-4309-8343-011bbcdc17a5": {"node_ids": ["3891bbc1-d439-46ca-8bd7-7806173cd1eb"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f6937158-68c5-423d-95ed-7863f1a58a31": {"node_ids": ["fcf6de11-bbb3-4a3c-991e-4665156206e4"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4a0779cc-03bb-4408-bc8e-7975080c96b3": {"node_ids": ["2be2d239-3829-4fb9-bf6b-c39a23648f51"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "48ca6ba7-3608-4441-8971-25995fdabfad": {"node_ids": ["37d7e496-4d67-431e-ad6c-9fe9403f33c4"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c8e7225b-a4fd-4e11-9b8a-86b15763edf1": {"node_ids": ["23de831c-04d9-4fc4-9286-8d96091b38bf"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6bbc7683-bd13-4f04-b2a4-b5de187a74dc": {"node_ids": ["2280c4c6-642f-477d-8f5c-64cfc8dba4c5"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "34fef496-1ca7-4b28-9953-c02ede808d32": {"node_ids": ["60e41624-77e5-428b-ae75-5817f76da9b6"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "87c648e6-47c1-4b86-b905-7508e0715706": {"node_ids": ["20c7886e-5de2-4ccb-9c32-a0da6786fb45"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "320e192a-1134-40d2-b7ed-e3b1891e95bd": {"node_ids": ["335875ad-a325-4ab4-a8e5-31626ffaae75"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "822b294d-bfba-42f9-bcc2-46d3e97eb8aa": {"node_ids": ["f3ba2599-94e6-4369-91d6-95b8fbdf1b64"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5dbacaa6-59be-4a89-8257-f82a4f0cbd52": {"node_ids": ["9d744d44-68af-4e4c-8669-35e1d4119f6b"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c7ade4a1-4dae-4828-9e2d-a4abadb3ad80": {"node_ids": ["6e5436fc-7997-4412-a418-f7a0a9009fc4"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "738a1616-55e1-4fc4-917c-f00c33851467": {"node_ids": ["b65302d3-2037-41d3-bccf-dc3d7e002445"], "metadata": {"page_label": "1", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a2406327-a05c-43ab-a523-b94b71dfb8e8": {"node_ids": ["d448005f-4628-4aba-b014-5cf6cc4d4bbb"], "metadata": {"page_label": "2", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "459cbe4f-864b-4ee6-84e4-9d5528f0ab2b": {"node_ids": ["ea670127-b831-478e-8089-691603dc8bbc"], "metadata": {"page_label": "3", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "96e64037-016b-434b-86d3-50909c995059": {"node_ids": ["18254b7b-c554-4f13-ad9f-e8fdf4c4cc78"], "metadata": {"page_label": "4", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ede9cdd6-df47-4547-a6a8-9dc311207c26": {"node_ids": ["d15626c3-9419-4cc3-9433-91bfdc6f0b3b"], "metadata": {"page_label": "5", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "34cc02b7-aba4-42a7-a0f4-b5f8d795f066": {"node_ids": ["9480335b-cdb1-4f51-be2e-bcb0a5c20329"], "metadata": {"page_label": "6", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "13d67913-a837-4132-a899-9806a0dd2e28": {"node_ids": ["106200a2-0389-4779-900f-293f1b1d6816"], "metadata": {"page_label": "7", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "024cee3e-501a-4949-8819-ba8ee5c71dd3": {"node_ids": ["d66ca358-ebec-4061-89e4-50d8d8c795d3"], "metadata": {"page_label": "8", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "0bc29098-04d0-4476-96c6-6985df1b9511": {"node_ids": ["be3f978b-d76e-4f49-99f2-98840691b73a"], "metadata": {"page_label": "9", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "dfe9cd7b-7607-40a8-b84d-0ddb2dcfb902": {"node_ids": ["7c55d182-7372-46dd-b968-32daf467dbe6"], "metadata": {"page_label": "10", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "500a3a9d-ec76-423f-8d3a-989b0622fd77": {"node_ids": ["a4df9aeb-60b6-4aab-8cda-d96bf3fe966e"], "metadata": {"page_label": "11", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "0380dfb7-1021-4932-842a-2cda8b103062": {"node_ids": ["f1e27185-aa99-4fd9-8a02-99a6f36c9fb8"], "metadata": {"page_label": "12", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ac32c456-417e-49d9-9f5f-bd21b075e559": {"node_ids": ["3c23f89c-8775-477c-8649-0e98717d8c5b"], "metadata": {"page_label": "13", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e0da3927-abff-4ebc-9da3-b1b4b1081d67": {"node_ids": ["563c0d1b-2c13-4504-8a1f-0816c0f703c5"], "metadata": {"page_label": "14", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "47159003-0512-450f-846f-3541daf0bedf": {"node_ids": ["91c780f2-e00c-42e1-988f-5b4c379400ea"], "metadata": {"page_label": "1", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ba457e8d-f38e-435c-acef-3a3ca2d16b2f": {"node_ids": ["637c2fb9-2c58-4ac3-9fff-7ee4474f2ab2"], "metadata": {"page_label": "2", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c2de9332-bb6c-4412-98fb-5b7e36011ebe": {"node_ids": ["05742c33-5a3e-4f48-9562-b43d68de0187"], "metadata": {"page_label": "3", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "dc895550-ebb2-4cd2-a2e4-4d1f52920ee9": {"node_ids": ["1677548a-0abe-450e-8a62-b4b87242c011"], "metadata": {"page_label": "4", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "98cd22be-4fe2-49b4-9ce1-180f1674d6a1": {"node_ids": ["f6d91c48-260f-46bd-b7ff-9c16806b590e"], "metadata": {"page_label": "5", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ead5e181-28b1-46dc-bc30-b2cda2aee85d": {"node_ids": ["ce986c5f-e23d-4d65-8d51-00dd825485ff"], "metadata": {"page_label": "6", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "7ebd468d-8ad7-48f7-90d9-54e94a44710c": {"node_ids": ["0fa35980-8ecc-44db-9b93-2d4c2c704a54"], "metadata": {"page_label": "7", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "85eb2f03-bedf-4763-8f1d-b3faa72838f6": {"node_ids": ["ec84fca1-2917-4f94-9c99-15045fb8a2bf"], "metadata": {"page_label": "8", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "da441aeb-0a98-4cb2-928e-8278e2e9e4b7": {"node_ids": ["009985dd-369a-437f-a9a0-d476ad6ecbfc"], "metadata": {"page_label": "9", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "df296e86-3ed4-47f7-830b-6231dadbd94d": {"node_ids": ["8e30b37c-66c9-4333-971c-beae3904bdb8"], "metadata": {"page_label": "10", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "360123c7-2220-4213-ae4f-0fdd58de1dce": {"node_ids": ["7bff3ef9-85ac-4bd2-997a-6ba6f6f7dc4c"], "metadata": {"page_label": "11", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "5056afae-9e29-4423-876e-974c69b47b59": {"node_ids": ["dbd8ef2c-aae2-4d49-b487-93c305b1645f"], "metadata": {"page_label": "12", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "3ee165b1-d5d3-4eb6-b21a-759e12d5e62e": {"node_ids": ["0775778f-2e80-40e8-b3a6-c343d02b1b1e"], "metadata": {"page_label": "13", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ad4b58a7-9f70-482e-b9c0-49e492104513": {"node_ids": ["4a268878-05fa-488b-9f62-45d882265e10"], "metadata": {"page_label": "14", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "73b33eb7-22dd-4ee6-a733-977e67167ca2": {"node_ids": ["fe559364-d6a5-4d03-8fd4-fcd789455bc8"], "metadata": {"page_label": "15", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "2538f572-4f95-4240-adb0-85a953fbac78": {"node_ids": ["4ff6ead6-613f-47e9-8b1a-a10aec732d85"], "metadata": {"page_label": "16", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1af466b1-c965-4493-b940-01336d5e20a2": {"node_ids": ["4ec4f539-6fea-4775-9f79-50a91aa4701a"], "metadata": {"page_label": "17", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ee4531e0-8ebd-4ba2-b55a-9d1ee792f8c4": {"node_ids": ["03a065b3-c424-456c-b532-b1ae6885b411"], "metadata": {"page_label": "18", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ecabaec9-7053-4fef-a028-7a5e90451106": {"node_ids": ["56233dd2-61cb-4b65-aa74-a4ecf1e62ccd"], "metadata": {"page_label": "19", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "fb9e593d-47c3-47f6-9436-b3ead9af19a8": {"node_ids": ["6a028ebf-c93a-45cf-bc23-bd8af32af4ff"], "metadata": {"page_label": "20", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b9d9f8af-944e-455a-b554-6eb573f8b5af": {"node_ids": ["94a60deb-68d8-48d4-8109-1033c555d3fc"], "metadata": {"page_label": "1", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c561844d-c9ad-48fa-adcb-0ef7a4761663": {"node_ids": ["af281cb5-f6cc-42ea-bc43-8b5c1fe4208c"], "metadata": {"page_label": "2", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ef020027-009d-4754-a551-7febde25fa66": {"node_ids": ["252fde62-e6d8-41a5-b9ad-d5e64f528247"], "metadata": {"page_label": "3", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "6b9915d2-15a5-462d-bfe0-af34959c5def": {"node_ids": ["67497bd6-5a50-4182-b7fb-75130a4a74b3"], "metadata": {"page_label": "4", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b29f7818-33e7-41d2-960f-2d02af5cdb51": {"node_ids": ["38659c88-b43c-4412-bb92-1d810c529020"], "metadata": {"page_label": "5", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "40235ef6-e7a4-41a8-8d19-2a80c8c6ff11": {"node_ids": ["dfe7201f-0f40-45df-ab44-edcc3a821cbe"], "metadata": {"page_label": "6", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "dc976ff1-86a3-463c-a420-c8234904e814": {"node_ids": ["5cb9bb1a-aa09-4d75-9c26-02790cea472c"], "metadata": {"page_label": "7", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b5c2917b-316e-4df4-bfc1-e707e2d3ea55": {"node_ids": ["7005d6a3-2f58-4549-8e38-c0dd4cbceeb5"], "metadata": {"page_label": "8", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "aedea1b0-6064-46ac-a4cd-e475e1385a51": {"node_ids": ["467c75f2-3066-423b-bbe2-e14cbc1af19c"], "metadata": {"page_label": "9", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "829ba2ba-b371-4b96-b89f-5022b5b9faed": {"node_ids": ["2d1b294a-9018-4538-b2d7-c1c2f375736d"], "metadata": {"page_label": "10", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "abd18bfe-702c-4f15-a58d-4a8f988895f5": {"node_ids": ["537bee9e-5c81-4df5-b1ce-dab8dcf3a1db"], "metadata": {"page_label": "11", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "7ae54935-d815-4d59-b568-13471c46ca64": {"node_ids": ["7a4e4224-5912-4293-afe7-96b1ae529135"], "metadata": {"page_label": "12", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "9a708ccd-88c7-4d2e-839c-13228a48b1c7": {"node_ids": ["e4023d40-19b1-4a24-94a2-bb0805f02b86"], "metadata": {"page_label": "13", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "f4b0214d-fdd4-476a-a6be-fb9d79d03023": {"node_ids": ["1e7e9c67-1a4a-4516-b61f-f9092bbb1223"], "metadata": {"page_label": "14", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "71dc420e-9259-4877-b126-c41ad65f1c68": {"node_ids": ["72d0aaf2-5e62-422c-a095-30981ea628ff"], "metadata": {"page_label": "15", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "0ce680a9-c2ea-446c-a0f4-2a0590c4695c": {"node_ids": ["2670f62a-c02a-4d33-8bb4-6d2c0cfb0e2f"], "metadata": {"page_label": "16", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b1adc91b-1434-4aa8-ac63-c7d6d101b1f4": {"node_ids": ["2a7c6757-dddb-4037-997c-660332a80fff"], "metadata": {"page_label": "17", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1bb28e61-d109-47ee-8ffd-7175a71d0ff2": {"node_ids": ["e9d56925-16d6-491c-b7e4-fdd0b850121f"], "metadata": {"page_label": "18", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "0749bb7a-6f4d-4af7-816f-f6d65c8db5b4": {"node_ids": ["0b3a0a51-6f21-4d9e-ada3-67c9294cb00b"], "metadata": {"page_label": "19", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "6b448192-c2ce-4af9-b692-aa92bf6e7b50": {"node_ids": ["a07a0763-270d-4a83-8bc4-ce856d7a44d7"], "metadata": {"page_label": "20", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "fbba7767-d745-448e-94dd-0a4707070be6": {"node_ids": ["d413c4d4-b827-4491-9181-3ffc12455202"], "metadata": {"page_label": "21", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "2d3def46-d976-4f8e-a02a-32df3c3da393": {"node_ids": ["6e392611-6caf-4d92-8c41-39a5d74e6f1b"], "metadata": {"page_label": "22", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "239925cc-9e29-4b23-955f-101eb6ab7969": {"node_ids": ["b2a77eac-3a04-4b99-9ff3-7e12e279ba9d"], "metadata": {"page_label": "23", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a4ddfd56-f385-4e5a-8bc0-4008297c95e9": {"node_ids": ["ef05fc0b-df9e-46e8-85e3-540c1d1d747f"], "metadata": {"page_label": "24", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c5db3bf3-5408-4c19-8d16-634340f30261": {"node_ids": ["65338228-3a83-46b7-b8c2-75d0f836cd5f"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f65407be-8352-4426-b7a3-e049dcc7289d": {"node_ids": ["487a3772-33e3-47c0-ac4a-bbc4efe479ef"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3952095c-349f-4c7e-af88-d6a759a3238c": {"node_ids": ["d07ea0cf-6df7-40f0-b350-5d0b2d4f5fb8"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c3a278c7-9e60-40f4-93b3-f79c0111e8c9": {"node_ids": ["735c91e1-2791-4f52-9d0b-7ba6b2b8d69d"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "33a3d352-5a4a-4003-8f83-7bf28ee9f9aa": {"node_ids": ["d46e201b-9f26-4d73-808c-9cf3e0b5245c"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "13ecc7b2-1740-4bf9-b3a9-34c6e3c8209d": {"node_ids": ["43c28715-8eed-4ca9-a895-411395b26582"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "adf51932-177f-47f7-98a1-69e7bb87ef07": {"node_ids": ["dc6c472c-8b27-4697-9a5f-8fa347d7d28e"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7fa61f5d-5e8f-4173-9150-2a855d1a0d18": {"node_ids": ["49a023c8-3078-48a2-872e-bcd9cdc7c01f"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f6385f05-badf-4a57-b1b0-ab41e35bdf36": {"node_ids": ["fe627dc6-3831-4229-b78e-6d17cb990b60"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "9b643540-a745-4936-8b18-02adf494bd54": {"node_ids": ["6f7b928c-d80f-4fe1-a191-016481e2deb9"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "cd024fe2-dae0-48cf-8b07-4820ef9bcf9b": {"node_ids": ["c11ba327-9ec9-49ca-bdba-5b04fb2a4f39"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b0dcfbd5-3c9b-4bb8-a665-fdcc37cbca09": {"node_ids": ["2c747bff-d7e9-4a70-8c05-8282c5363d70"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e4d332b0-32d3-446a-aa5e-ccdbfe6631c0": {"node_ids": ["e10e29e1-8e41-4022-9d45-49e5575d496c"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6c3db2b9-0754-4891-bb37-555dd0afbf0e": {"node_ids": ["78810e9b-ef96-4d8d-90ef-88ba509398db"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "41a2987e-cd45-478a-9a68-ec1420d7e863": {"node_ids": ["9c864924-c364-45eb-b99f-f4ebc96d6ed4"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fc215ca4-a2e4-476a-83ed-52c4f86564e6": {"node_ids": ["c6127806-849f-4376-a7d0-95b95fde046e"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "87d1f8c7-3b05-420f-ba8a-9d8c65f11d25": {"node_ids": ["99dbf7ed-03bb-402e-aa90-8e94689afcbc"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4970a8d6-dd02-4842-8645-669293903f9d": {"node_ids": ["3b60e204-a29b-4c75-863c-824ab3353ba8"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "38cbe270-c9cd-4ef5-a940-d5257a69085a": {"node_ids": ["843e61c4-5aab-42cc-976f-7e81ca2971ce"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7508f5f0-2d2e-4c99-a723-3a3e119f8d5c": {"node_ids": ["9d0fb2b3-f181-427a-a19d-ad78767d73e0"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b8094ab1-a9e6-4fd8-a893-71d18e2aef96": {"node_ids": ["48904e94-7ace-4f5c-a0d5-96aeb82088ec"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6be84f75-2a19-46a9-bc3e-0ed35bcf5cbe": {"node_ids": ["2e055b1f-cb56-404b-9b8d-58c4865d21bd"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "45e09047-b0cf-49f9-abda-d594646bfedf": {"node_ids": ["ab3a4135-ea34-4bee-a46f-ce2fd8286a45"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2f1909da-73fe-4955-963b-98ac36f67637": {"node_ids": ["866bf039-1562-4df6-a32b-e4c70d9e4fb2"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5135e5f0-2cbc-4475-b1c7-5494f88af73e": {"node_ids": ["6833b504-d384-4868-b962-4d362a4ae864"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "334a8e5a-689e-4467-9485-dfb39e140a51": {"node_ids": ["9a9cd1b5-8a18-4e01-9eb5-c0d8ab26eead"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c63284ec-a5bd-44ec-83be-852b585e57b3": {"node_ids": ["23e703f3-8e01-4325-93f0-e2e15130e4a1"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7c1f9207-8cbf-45f9-ba14-7c238ec26f7e": {"node_ids": ["8b3730c2-6075-4c8d-848e-39f438c1a0d7"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d3e146bc-ea90-43ab-9e57-b18b90e68002": {"node_ids": ["75621848-865c-4bc0-891b-0a07edd7ca26"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "755e4091-dc6c-4688-b360-2944a04111cb": {"node_ids": ["14b2ac73-329b-41ab-8642-2ce2ba7bb312"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d8c277f5-d53c-47f3-9e01-7b798d5a174f": {"node_ids": ["2e589ef8-6faf-4b76-899e-747e701e1244"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6f871bd0-953c-4df6-a1db-aeba1e7cc338": {"node_ids": ["eef1c4d0-9a9e-49df-b6f4-a54ed8c9793f"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1d62337d-7f5d-46ae-8456-20510cfb469f": {"node_ids": ["f5b491be-01ed-41fe-acc0-98a0e9fe232a"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8c732a62-c012-4318-80e0-24f3f2900750": {"node_ids": ["46312cf9-6521-4298-afc2-88d164010986"], "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "132c0925-c38e-4590-8e2a-16da92210b63": {"node_ids": ["97d07a57-d8b7-47f0-ab61-4cd36b4f97d6"], "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5badcbdc-4241-4e0c-b20a-51c06f0c671c": {"node_ids": ["416a2d2c-7fad-44db-8dfa-9cc18c75e872"], "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f3c28ed1-d38d-4823-8632-d5572c18afaf": {"node_ids": ["d6fa9c1e-e032-4284-b163-82e276c85ee6"], "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3e142592-27ca-4214-bece-c0271dc8245d": {"node_ids": ["ffe32c6f-491f-4ed6-82b3-35fb00fa0ed9"], "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "af9a1593-1b8f-4b8b-8479-4c05bf898f45": {"node_ids": ["d54c21fc-11e6-404b-9fd7-76aff8c033cb"], "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7030d3e7-e9c9-4d51-a767-f7f2cd1fd011": {"node_ids": ["865d7fa0-49be-46df-a201-24ac9520164f"], "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "70bee93c-8638-4953-ad1c-34b7af23944b": {"node_ids": ["b3abe04d-6b86-4dc0-b1d9-efb1c826d158"], "metadata": {"page_label": "41", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5e1fe2e3-1af2-4ef6-bc27-4ab265f713a8": {"node_ids": ["fd2c580e-c930-4986-8df9-5b88d01530a5"], "metadata": {"page_label": "42", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "96c97066-733f-4c4e-8ae3-57250ee04420": {"node_ids": ["93e65704-4eeb-4d29-9156-2ebbe1328f2a"], "metadata": {"page_label": "43", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "496c9259-fbbe-41f5-a83f-88b29fb1d513": {"node_ids": ["8df68cce-eb46-495b-8503-bedbc4f0de82"], "metadata": {"page_label": "1", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "d50f7420-eb47-4cd9-833e-93b4b096754e": {"node_ids": ["bb0dc959-82d6-4d05-bdec-a27185efde5b"], "metadata": {"page_label": "2", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1377fff7-1cf2-46fc-b172-049d3fb71aab": {"node_ids": ["6b4c6c2e-48a9-4df3-a67b-3b91d1f84d38"], "metadata": {"page_label": "3", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "f4d52a8a-ea8f-4df4-beb6-357626548916": {"node_ids": ["99b80284-1fe7-4710-9ff6-a2222d675a58"], "metadata": {"page_label": "4", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "2f4a90dc-d453-4396-8bb1-94ac5c7afd92": {"node_ids": ["24bebd62-3f53-4e44-9eed-70786187f20d"], "metadata": {"page_label": "5", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "df599c42-1e49-4963-92ea-222c83e915f3": {"node_ids": ["cbcbbd19-95f2-48e8-a5bd-f5447bd689ef"], "metadata": {"page_label": "6", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "18fb179c-5a14-4749-b3fc-fece39bedc83": {"node_ids": ["4300fabe-8f0b-40be-a81e-eed2880c4170"], "metadata": {"page_label": "7", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4e64b583-24d8-4126-8355-055daabd1653": {"node_ids": ["c9a8dbca-8b68-4add-a1dd-35f35a8778ad"], "metadata": {"page_label": "8", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ea130fbe-181b-4538-b4d4-2cc3b0b702b2": {"node_ids": ["3878d460-aa31-40c1-a599-dab739c7215f"], "metadata": {"page_label": "9", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e6cfddb3-1bb2-42dd-914d-aa9aa6f942b8": {"node_ids": ["598bcf82-13fe-499b-9cec-4424a6e554a4"], "metadata": {"page_label": "10", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "adf69100-2828-4f85-97a3-b84bb9df390e": {"node_ids": ["cce4890d-fce1-4439-9977-ff80c3e01657"], "metadata": {"page_label": "11", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1c74b27d-1d44-4838-a8c3-a486d4a1f373": {"node_ids": ["f86b5c33-f04e-4d4d-9faf-ddfd9d319dfc"], "metadata": {"page_label": "12", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e76b7df2-c820-40af-ba10-96e56d0a06ab": {"node_ids": ["8c01943f-9918-471c-adc0-236162bccdc3"], "metadata": {"page_label": "13", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "292e4d1f-65bd-461e-90bc-a4efa98c0b1d": {"node_ids": ["2f10e3e8-32e2-4023-9a58-0cf7f5e20f46"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1a91aa11-6a78-4a94-afb2-f52835ac0f26": {"node_ids": ["3418a462-5a7c-4117-9b49-753f6e1b1a69"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2195278d-e5c4-426c-923f-1feda49f5f71": {"node_ids": ["75c9eb33-b669-49c6-a299-c8397bc059f5"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2343d400-ec8d-4458-bbf7-5f666f6b38b6": {"node_ids": ["00672ac4-9ae6-4dd5-b462-9ea919733c2a"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e49dbc56-46b7-449f-84dc-9e6cc19d01f1": {"node_ids": ["67d8c09f-00c2-4aaa-8101-90bd2f0d8d4d"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "66fb9a26-6d6d-4e7b-835f-3bc168f2025b": {"node_ids": ["0262060e-0f45-4518-9bcf-c4e7cf3feec2"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d953cdae-ab6c-4a5a-a24c-2b515c46a23a": {"node_ids": ["ff34c4df-3994-4666-b8f6-ced08b671f67"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7d977a78-ffa4-43ce-9bef-aa405e7a1cc1": {"node_ids": ["0df0d702-6101-4bf0-bc18-db11fb3e196c"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a7b4c3ab-ad5d-4a9b-a43b-3bf3d2f5c9af": {"node_ids": ["fb42a946-2e61-4d6a-8002-32b14c336117"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3188332c-fe5d-44cc-a076-92bceff85e87": {"node_ids": ["9b4140cb-e999-489c-b597-3f70fda1525f"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8083a45a-d2ed-4c2b-9406-3796a9a59349": {"node_ids": ["288913ec-d7b0-4e90-bb08-0d65f135efa7"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "783448e2-2c2b-479c-b955-fbb73fcd5c02": {"node_ids": ["e29bd514-e623-4574-bc11-07ac2b0cbbba"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e45392ca-f1d1-49dd-bbad-4a029de0ae2c": {"node_ids": ["75827215-6cb2-4dec-b4d7-f54904636bda"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fa50e8e1-e535-4ba1-833b-5c158abd510d": {"node_ids": ["21d71050-2c72-4434-a1e8-2e0e625859a2"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1aedc1b8-92e1-424e-8cc6-953221fcd82d": {"node_ids": ["b01afde3-7d09-483f-98d0-583cf1d48219"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3ede7535-27d4-4811-a35f-5896acd648bf": {"node_ids": ["dd08777e-5609-41b0-9417-7de65610c7f0"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1c2f84df-c17d-47a6-81fd-24befa827a12": {"node_ids": ["31a466f3-5e95-4116-be68-b425275475a7"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2951bc6f-56a3-4160-b514-e757d6e43c21": {"node_ids": ["0f2c3754-ce9f-451f-91c9-0cfe92c9c721"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "723a75a1-7fca-444e-beed-8a0110d73546": {"node_ids": ["fa563532-a534-4482-95f4-79a986e1da1a"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c6d3cd54-e678-43f8-b031-d6e57c13e647": {"node_ids": ["1f89dda9-c909-4595-aa41-83ace6d73d63"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5a94de9f-6044-44d1-b93f-f90d6a44e3b0": {"node_ids": ["84c6a002-6e7c-4ef8-a707-45e517aaa24c"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5728df22-0c73-40d0-a367-8d832dbc9245": {"node_ids": ["aa35b91a-8a7d-478d-afde-70382db8eb5f"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4e8ecb21-d6de-47ce-9b00-bfcd3cd5ffce": {"node_ids": ["0d70634e-780f-4d2b-a0f4-ac131ca34fcb"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b093fec2-dd90-411a-926d-a10db30fedcd": {"node_ids": ["24b276cc-163b-49f5-85ce-705a25555198"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f51d3ed0-5889-4bff-8ab6-40e9c92ff529": {"node_ids": ["dc1920e4-52b9-40a7-ad20-44ca7ccb2ff0"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "eeb5cdf0-e4da-4d6d-b4e0-cc467e2e1907": {"node_ids": ["6c4c8708-2648-4306-b151-eddf313431f0"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a52b9a9b-55c6-4931-8fef-8555958f3701": {"node_ids": ["a330d2d7-e148-45ae-9d98-b9191f7e4af0"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "39fbdc42-0275-4646-87e9-320ff6d39f9f": {"node_ids": ["6be0c93d-d7a3-4874-8004-00bb13ba837a"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4c7377c9-ea36-4d2f-b766-9f51398f8c87": {"node_ids": ["93e3fa5c-fda3-4607-9131-e83ed518615d"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fa666ad6-38d4-4f8e-a12c-53f24f5c97a6": {"node_ids": ["c8384be9-d4ab-432f-8cda-552d4749bab0"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7b20e562-945e-48f1-bbda-baa07b639e92": {"node_ids": ["db394940-7c95-43b8-b62f-42db3aff10e8"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "923b9369-a4a4-4e4d-b56a-3585644e3c3d": {"node_ids": ["eab5ac70-92f7-4f1b-b2c2-8a2fe562dc94"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "172a84e4-2166-48d1-96a0-22a1f95045f2": {"node_ids": ["de7ec8cd-5a2c-4771-8bcb-b77a894a1318"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "22382a28-8fed-4ba9-ac00-44094d5016a2": {"node_ids": ["5d0b8fd9-d208-491e-8506-3e586825344d"], "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7de5545e-6393-43a8-a87e-8a9d375e9c58": {"node_ids": ["41ce7366-06c4-413f-a284-e27b33b53cfb"], "metadata": {"page_label": "1", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "33e0ef97-a35c-4ea5-b89b-80ab519ba72e": {"node_ids": ["88eab325-3e1e-4db5-b526-08f98923a4ea"], "metadata": {"page_label": "2", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "0f7c824f-aca2-4673-a033-7cf9f8464a54": {"node_ids": ["ee1b05a4-6410-4f87-a211-c3117e832878"], "metadata": {"page_label": "3", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "1392dcc5-9e16-4e70-b8a1-2f7903261ac5": {"node_ids": ["6accb3fc-7e30-4ba6-b5d5-75762108a040"], "metadata": {"page_label": "4", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "7c683655-2719-497c-bc6d-b992521ae69c": {"node_ids": ["812f5dc6-f36b-467a-9323-2e2207446974"], "metadata": {"page_label": "5", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "72b43a5f-00e4-4bab-9ca6-630865dd72dd": {"node_ids": ["02f8b8e3-2455-405a-bfa1-6f6559d07b74"], "metadata": {"page_label": "6", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "0b20c804-1977-4ddc-aa89-7a18711bca94": {"node_ids": ["bc7ce527-f24c-419d-8c7a-3f7d6d28f77f"], "metadata": {"page_label": "7", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "507acf09-95fe-4b35-8ab9-e22e9bc24523": {"node_ids": ["c5e71ba7-fd4d-4989-a9fe-3c8cf4e5a166"], "metadata": {"page_label": "8", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "c0d16807-73a8-4ff7-b6aa-e6573307f07c": {"node_ids": ["9489258f-4f6d-4b7a-9ddf-cee0c257a1b7"], "metadata": {"page_label": "9", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "b96ba79f-bcc2-4f8c-be21-4be9f02d621b": {"node_ids": ["f910d2ba-454d-4f35-93aa-f0d931acc75f"], "metadata": {"page_label": "10", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "13499eb3-08cc-45c2-909c-0a81d3a9e96e": {"node_ids": ["590886d3-f11f-42f5-aace-dd88f8a53ab8"], "metadata": {"page_label": "11", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "30b8c80f-632e-4203-a93e-c28321da47f5": {"node_ids": ["c7ada9d0-2b59-4c5f-8f16-85a67e15aa91"], "metadata": {"page_label": "12", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d679ad58-2d3e-4ddf-a86b-b9a3a63e6527": {"node_ids": ["5746061d-90b5-41d3-8931-8e945335b7ca"], "metadata": {"page_label": "1", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b072f526-1918-4a60-9652-b7e4e3273063": {"node_ids": ["5e1e4ba2-a8ba-4ded-822b-f68e794ecf40"], "metadata": {"page_label": "2", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c3ccc1a3-f9a5-46ce-86fc-3619d3c08153": {"node_ids": ["fa0d2da6-253d-4b0c-b166-18a3b1269546"], "metadata": {"page_label": "3", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "99bef275-00dd-47c0-968e-3489385c0ffd": {"node_ids": ["9ebee44c-7a36-4491-8dbd-8a32e5515c79"], "metadata": {"page_label": "4", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "602cadd5-6702-427f-acc7-4aa62e7b0de9": {"node_ids": ["2b4cecc1-6641-4e37-87dd-d7cae7f18c3a"], "metadata": {"page_label": "5", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4a6d9aca-e483-49c5-8613-7a0ae4cbbc9f": {"node_ids": ["6473bea9-1ab4-406b-bacc-085e2f8c3515"], "metadata": {"page_label": "6", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a278f36f-84a6-4db0-8bb9-b5fa649f93b3": {"node_ids": ["c10b7e91-e3e8-4dec-be7d-3152531b1d08"], "metadata": {"page_label": "7", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a42ec5ec-74bb-4a38-a1f9-7883a1d3dc80": {"node_ids": ["5238850b-970e-4277-9a2e-143b61fdf482"], "metadata": {"page_label": "8", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4135db71-ca87-46d5-844c-96fe1085dfad": {"node_ids": ["b3a977c5-bd59-47c1-afae-816cafcb914d"], "metadata": {"page_label": "9", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "748d40d6-ace5-46b0-8309-0fd21c84f198": {"node_ids": ["a3ec8fa6-5720-4dec-a049-fe2bc54b5b56"], "metadata": {"page_label": "10", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e08b53bf-7abd-4d61-aed8-24ffdd337192": {"node_ids": ["c4569df0-8d93-4e9e-be62-1c45493ad55e"], "metadata": {"page_label": "11", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c665a9a7-0a52-4c44-8bc8-8ad48acfe0b2": {"node_ids": ["ce4edeb8-a1b2-4306-88e8-4e84c376fe58"], "metadata": {"page_label": "12", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "8ee05925-2b08-47cf-86b5-c59562689426": {"node_ids": ["972c5596-b6a3-4830-9335-047fe09c519a"], "metadata": {"page_label": "13", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "0e78abe2-024a-4c08-93c2-1c1c13ca9f36": {"node_ids": ["13579c03-d33f-4025-9848-f463cfc65ca0"], "metadata": {"page_label": "14", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4aa7c7d6-483d-4778-b66a-6ba86e08c69b": {"node_ids": ["2f88ff68-f901-4eed-b5ef-ca44c394fc52"], "metadata": {"page_label": "15", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "3367915a-8ae1-4fd9-998d-99d084b3f786": {"node_ids": ["dede0616-9634-4a68-bf1f-33936d4dd7e2"], "metadata": {"page_label": "16", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "476987cb-ff5e-4163-a5e5-a58492bf8819": {"node_ids": ["ad88d551-a40b-4491-874e-54f0a11742af"], "metadata": {"page_label": "17", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "35232bd7-c9eb-4f0b-a47b-faa2ceb8c3ec": {"node_ids": ["e09db520-1276-4204-853f-6f6b293c3901"], "metadata": {"page_label": "18", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "5b9a90d3-5c2d-47b9-89f1-03e5c0cbcfbd": {"node_ids": ["969f863d-4425-48c1-b535-34e609a13e2e"], "metadata": {"page_label": "19", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a9eb911b-59c7-4932-a519-52294bf25586": {"node_ids": ["846c71cd-b8d7-4388-882f-0484951403dd"], "metadata": {"page_label": "20", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "52a867f5-d24a-49cc-ae8b-1d44dee56407": {"node_ids": ["42bc6faa-7a50-4bcf-8860-059c1e302bf7"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4f9d71e7-c150-403e-a0f5-7f882420c8f2": {"node_ids": ["c1d3c98f-6f37-4e33-96f9-35feb5d6deb3"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ea3d1355-b75b-4ddd-9f63-f776004e673f": {"node_ids": ["6d61cdc1-9f6e-445e-98f8-cee5d917b46b"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7882693f-c9e1-40f2-84cb-7432106ed68f": {"node_ids": ["6b353a2f-30dc-4b80-9765-c9fa2cec2618"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c8c440a9-5a15-498f-8905-e514e70f4a46": {"node_ids": ["d3059437-7c75-49e7-88ce-070ebc7730f8"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "214979ef-0bdf-4d75-aeca-82f819b061fc": {"node_ids": ["40d66cca-9248-423e-a008-8eac849da5e4"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8bdbc301-1f8d-4aff-841d-5893a5362faa": {"node_ids": ["54c6cebd-850f-4d6e-8204-728fae0902ee"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b66fbc2a-02ff-40c5-99f1-6e94e75a114d": {"node_ids": ["ce2c2b4d-4977-442b-b94d-fd3aa2d4074e"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f346e1ae-486d-41ee-a6c6-9490b0c95cbe": {"node_ids": ["90dbfb0f-ed08-49b5-956d-86d340863ec7"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "37ba1b7c-5882-4e2f-812b-bab51f1363bd": {"node_ids": ["1c7d0ab5-6da2-46bc-a7e6-c8b0d0e55062"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a143c385-9e12-4014-b254-aee11af21567": {"node_ids": ["9f7627b8-6b8b-4972-b8a0-9eaa51f91fc6"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "cc81deea-3bdc-4415-bffb-2f950bf9aa01": {"node_ids": ["599bd291-21c1-4bb3-bf60-ef220423588b"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "06b3050e-156f-45f3-9bd7-04a20ac646f3": {"node_ids": ["6481111e-1030-487d-9b22-4abb0b03dba5"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "cc879ecb-dce3-40ef-9f28-f178761daec1": {"node_ids": ["66e3ce64-5931-4dcd-a431-dd0d8e79b3a3"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a556389d-2b29-4ec2-96a0-da03efb32c28": {"node_ids": ["6a61a361-ee84-431f-9b8e-345fbd615d06"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a5252ac2-58b2-4c3a-bb26-eb235117632d": {"node_ids": ["3fd9645f-d8cb-4a33-a074-21c79a84ee98"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "19eb1ee2-3e28-477a-894a-3af9c3cdcaa9": {"node_ids": ["bf64f202-7169-4c52-9aef-6b43e6ab3015"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ca41dfbe-6a46-4674-a6f1-4a30cc1042da": {"node_ids": ["f44d9f1d-04b4-41b7-bfaa-466f258ce913"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "67bf30f6-8ab9-4a7d-9abb-0cf049b988f4": {"node_ids": ["861d7266-037a-492d-92a2-37adde585903"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6a50c414-62a8-47bb-aa2d-5b7d920543ad": {"node_ids": ["74f7263d-e677-44ac-b03b-5b608c63fc59"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "9e33ae02-ae84-4a57-94d7-815d9ae41338": {"node_ids": ["21f2e5ed-ee65-4031-bea7-51c6f1a5148c"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c9588e24-fa7b-4b1a-b5c7-dd33fd74b64f": {"node_ids": ["53416d69-4436-4473-93f0-c30958793c0d"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0a78aef7-02e9-40b9-a852-5740f4d18448": {"node_ids": ["b0a482e7-58f6-4b4a-bb74-ccff1238cfc3"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "23f4377f-7668-40c1-a148-599b39021f6e": {"node_ids": ["e8101366-a1c0-4fbc-9be9-81fec56bc487"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0189a6dc-6c40-4add-a051-e01c59f23e7f": {"node_ids": ["420dcab6-cd31-48cb-94ba-d17e6ef79c6e"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6cc9ecc2-fcc3-4905-b3f0-9d75894c3c22": {"node_ids": ["aed73659-ce46-4e6c-8f5d-d0a72a14681f"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d7cee033-efa5-4516-b46f-85defc419060": {"node_ids": ["fb4c7361-380d-4033-bcc7-2ee74110fd9c"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ded5d653-a03f-4c3f-9f74-f3fc4c5fe13f": {"node_ids": ["a448a452-7de2-4a84-aa7b-6bf12f14d858"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "59c22896-5f63-440e-a00b-1c57d3e43ce5": {"node_ids": ["ac4084a3-7803-4b39-882d-456d8f8a2ef7"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ab949337-9384-4fb8-adca-d7b035948076": {"node_ids": ["150317a5-b946-4bba-a513-44595dd0feed"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fa62f79a-7aed-4a50-a8b1-61adb35fd69e": {"node_ids": ["8a2b26a1-6783-421a-ad7b-47aef3258e85"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b3c9a43f-5158-41cc-abea-99f7c245c96a": {"node_ids": ["0c8bad04-8d38-4b87-85d2-48cfe9cf42ad"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "07931240-a7b7-43fb-940e-2e95ba0516fa": {"node_ids": ["19497f37-de48-4f3d-98f6-564754b49d2b"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4451411b-caec-41b3-b34e-87531dd2a79d": {"node_ids": ["0d20c7cb-6c16-420e-95cf-3c8d98dd49dd"], "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "9fa9c323-87b5-4617-9daf-b9728773c725": {"node_ids": ["085d1397-5ef9-4f9c-8d1d-e8f26ce6b55b"], "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1ea43d8e-23d1-4534-ad76-9c820e0fc918": {"node_ids": ["7537522f-c6c1-454c-a4e4-9ec4ffe81d1d"], "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "39deb505-0a45-4837-86a7-8dbbd7c683c8": {"node_ids": ["2efa92f0-ab3f-4f36-a939-d0d709c9a6ad"], "metadata": {"page_label": "1", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "de2471ad-0756-425e-8e77-d8a4693adb1e": {"node_ids": ["16f1da0a-c364-4ede-b99e-a3dbd7625fef"], "metadata": {"page_label": "2", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "b6db348c-6aca-43ab-80ab-0696ce167d57": {"node_ids": ["5a039a54-a105-4e78-8a6b-6e1149475c1c"], "metadata": {"page_label": "3", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "b14c5289-ecfc-4d5d-9115-717a1c9346de": {"node_ids": ["411c56e4-038d-417b-a57d-8e46190d9638"], "metadata": {"page_label": "4", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "17da65f6-cbe1-479a-a51c-0e5b2f7111e2": {"node_ids": ["d4e78955-1063-4852-9f45-5ec64ff847a0"], "metadata": {"page_label": "5", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "5ea1871f-8415-45e2-a396-543db1ba094a": {"node_ids": ["966c1404-53dd-4eeb-9e13-57fc96841073"], "metadata": {"page_label": "6", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "885c810c-d089-436b-b009-f645158ea52a": {"node_ids": ["acb832fd-bd9e-407c-abed-f426a7a8e10b"], "metadata": {"page_label": "7", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "3e634dd9-f2db-40ca-8c8f-6516e511579f": {"node_ids": ["4397c530-f2c0-4afc-a7e3-7210ebf517db"], "metadata": {"page_label": "8", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "6dbf7d20-39f9-4320-b2fa-ef0e14f31674": {"node_ids": ["f708bfaa-9bfc-4d59-8216-7b2fd6a2bc09"], "metadata": {"page_label": "9", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "5709cf4b-26c2-4e71-8765-db4eef6afd02": {"node_ids": ["c8687213-1136-4568-9fb4-45c011f7adfd"], "metadata": {"page_label": "1", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "dd4d5bea-f002-42da-99c9-8b2d7d327ff1": {"node_ids": ["2eb75872-a6a2-4dd5-8879-3ab1ca293008"], "metadata": {"page_label": "2", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "6c387dfe-1282-4f17-b9cf-36c32dd23c52": {"node_ids": ["230bb030-3563-49ed-8215-b7518b20f64e"], "metadata": {"page_label": "3", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "be7312a6-431b-4ddc-b1a6-3140f10dfe60": {"node_ids": ["4370143e-7ad6-427b-89b9-429d1a02887f"], "metadata": {"page_label": "4", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "f4899501-fbd3-49ee-bba0-f35e0332dcda": {"node_ids": ["1df5b839-2bf3-4b52-a6f0-8112d46979e3"], "metadata": {"page_label": "5", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "41efc110-5e48-4d28-99d1-a8c3a358c149": {"node_ids": ["199c8337-17db-4353-91c2-13a8dbb6e72b"], "metadata": {"page_label": "6", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "3702f97d-4aac-4aa5-abff-0e66963bf049": {"node_ids": ["7d11918c-9ca5-4f65-95e6-3ecea7dd4faa"], "metadata": {"page_label": "7", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "39c53dab-077d-4a11-97f0-33ace19be2b9": {"node_ids": ["6c6bef40-6386-4e89-97cd-867dc3e2708e"], "metadata": {"page_label": "8", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "38ddf893-bed8-425f-a9ac-4de73da5fe09": {"node_ids": ["a7808370-cc4f-4740-8a29-1390d345cd94"], "metadata": {"page_label": "9", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "cd19dd18-c13e-4b3a-9507-8d8138a5caa5": {"node_ids": ["607d98ee-8b42-4097-82d8-10b0b4958e6d"], "metadata": {"page_label": "10", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "2715fcf8-8a4e-4a26-bba2-df851bb7b45e": {"node_ids": ["8e8a1100-23bb-4a5f-88d7-630bd31ce61a"], "metadata": {"page_label": "11", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "be1f2b27-f9cd-4c97-af23-e0a708da3bd3": {"node_ids": ["7af6f8c3-20cc-49cb-bfb9-2c5fa395e400"], "metadata": {"page_label": "1", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "b405ca75-f584-4797-9d4a-17cd73695b08": {"node_ids": ["4fb11d85-aba8-4f83-8a35-92e2cb1ce4a1"], "metadata": {"page_label": "2", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "1e124133-b23c-4bcd-a910-5c903749973b": {"node_ids": ["62806a12-8601-48e4-bd39-0d4584c91e45"], "metadata": {"page_label": "3", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "1db83b6f-404d-4021-b1c2-e80f102b635f": {"node_ids": ["175a26fd-5c3f-4412-a183-96fb4437a869"], "metadata": {"page_label": "4", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "2ff37699-63ec-4045-b524-489514d9cdfa": {"node_ids": ["1f6fe2b7-16b5-491e-8693-fcc87238fe3b"], "metadata": {"page_label": "5", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "67f9f86c-6e83-423b-baf0-d01020ddd856": {"node_ids": ["e829393e-61d4-41a4-9f57-7dfedfe455d9"], "metadata": {"page_label": "6", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "be81ee35-2a0c-40b2-ba66-d3de2d042c39": {"node_ids": ["691c40ba-53c1-407a-be2a-004cd294321a"], "metadata": {"page_label": "7", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "2467df83-26b7-45b4-b8bd-56c290fcb848": {"node_ids": ["96e88998-18cf-49bc-a5e4-ff1e79bd3e57"], "metadata": {"page_label": "8", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "3ed8ea3f-0cea-4a13-9835-cfec2d8598b2": {"node_ids": ["c2d21751-1412-4a00-b1b2-3ee563beb18d"], "metadata": {"page_label": "9", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "063b35d9-e68d-4410-aa68-ddd13cb0af63": {"node_ids": ["8917fc20-e1f3-4f90-ba22-66d9ee39d024"], "metadata": {"page_label": "10", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "2f8666c9-0449-4463-a031-bea15f20207a": {"node_ids": ["b4c769a3-3ba5-4edc-957d-8c6894846d1d"], "metadata": {"page_label": "11", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "4723e2af-dadb-43de-917a-cc286d008642": {"node_ids": ["7149a5ef-768a-4a86-b1e5-0a2118518778"], "metadata": {"page_label": "12", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e995fac2-4118-4c3b-8df1-8131b92d0f86": {"node_ids": ["a89b57f8-ec27-419d-8867-a3b3461cc1c5"], "metadata": {"page_label": "1", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "fff652fa-0649-4f91-bbaf-64076684d2e9": {"node_ids": ["d097b518-b49b-407f-abca-7f0a199cf1c3"], "metadata": {"page_label": "2", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "ed9240a5-f41e-497e-9517-04557a73720f": {"node_ids": ["a7391b02-a144-47e0-87b1-cae11ca9277f"], "metadata": {"page_label": "3", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "3d653429-95d8-493f-918e-31538255016f": {"node_ids": ["79124434-2611-44ed-9eb3-9ed17953f601"], "metadata": {"page_label": "4", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "6b414f66-c2bc-4954-978a-73af938d7e77": {"node_ids": ["d763d8d7-1898-4ba7-8288-ced0f035e458"], "metadata": {"page_label": "5", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9c49b8aa-264b-464d-9b72-1848f1b71c4b": {"node_ids": ["5f37a94e-b6c2-4f03-9eee-7cff929ecd92"], "metadata": {"page_label": "6", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a2a38b57-e448-41d6-b583-a05dde52b7fa": {"node_ids": ["5c42cd2c-bfe3-40ce-b9f5-16d665735533"], "metadata": {"page_label": "1", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "7e8d4b48-b9c8-4de1-9dc9-5b4667b8af30": {"node_ids": ["921caea4-6149-47e1-8bc4-1a04cbf00340"], "metadata": {"page_label": "2", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "2a1f6169-dfd8-4331-8e5a-ffbd6cd05908": {"node_ids": ["daf16049-d721-48b1-80da-f28dab9d130e"], "metadata": {"page_label": "3", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "69f507d0-b818-47e2-b7b1-f68fae234921": {"node_ids": ["2261da80-2802-46e1-b928-a63ed06e8a55"], "metadata": {"page_label": "4", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "5e0e696e-b5eb-4c8c-bf6b-56235a707b58": {"node_ids": ["4f861d76-0996-461f-b7ab-6a2bd91b9b78"], "metadata": {"page_label": "5", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "efe7824a-78c0-475c-8189-555423ed1bbd": {"node_ids": ["21dbfd7b-dadf-48b8-aff3-cf69427afdfa"], "metadata": {"page_label": "1", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ca60869d-9fa6-490d-9739-6bbf4f227711": {"node_ids": ["8b757cac-d8d8-4019-abd6-77d640a5186c"], "metadata": {"page_label": "2", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "9fc8d408-c575-481d-8f34-ad105018391b": {"node_ids": ["78b29f77-9f59-4279-a17e-c27c02c88a9b"], "metadata": {"page_label": "3", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4b4bee4d-5d55-4997-be8d-5b9991e212cf": {"node_ids": ["28e09020-273b-42a3-8e32-238443d6d62e"], "metadata": {"page_label": "4", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a470d5f0-ff52-4144-bc52-64cc850cb77f": {"node_ids": ["46de2890-f283-4fba-b582-60008f8ebe67"], "metadata": {"page_label": "5", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "40c0188c-b138-4f32-a1ff-162ac2d0628b": {"node_ids": ["5da06c90-b4cb-4957-b189-809ff0137653"], "metadata": {"page_label": "6", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "6f7bbca6-bd7b-490a-8c9d-bcc073e4e3e4": {"node_ids": ["7e8d0a8a-d1b6-4bba-a6d9-a38fae8ee5dd"], "metadata": {"page_label": "7", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "26eccf46-2789-4335-8101-b4f1c84c9605": {"node_ids": ["090dc937-c2d6-4832-9f68-a789c8852e95"], "metadata": {"page_label": "8", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "70b8eae1-99bf-44f7-bffd-02e8f0abfe0e": {"node_ids": ["b564f9c9-dc8c-4510-9e8d-fa143bb0f3bf"], "metadata": {"page_label": "9", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ca3b1f60-b7f6-4a85-8367-21bdfb58e553": {"node_ids": ["78dff5b2-914f-4c67-a3a3-fe7f83b5308b"], "metadata": {"page_label": "10", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "7e7da755-8bde-4561-9418-3eeebec483e6": {"node_ids": ["3b477e16-22b0-4fd5-9b6d-3df71662d743"], "metadata": {"page_label": "11", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b26e7695-4811-4e6f-875a-feadadc8ce4e": {"node_ids": ["ebec6313-ab88-4d96-a6e9-b30fdc67b0de"], "metadata": {"page_label": "12", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "957616c8-3cba-4a73-a5ec-c599201af525": {"node_ids": ["1bfd8922-cbfa-47e8-99e3-ad454e6a9d61"], "metadata": {"page_label": "13", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "357caa4e-b94f-4bf3-a6d6-3eebebae9b19": {"node_ids": ["bf2d96a4-512b-489e-92fa-2d6774b2cdd5"], "metadata": {"page_label": "14", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ea340909-ea92-4653-b1e3-c0b73d576e87": {"node_ids": ["93a9b256-fea0-4de6-92ea-ff7ac6fc5d5d"], "metadata": {"page_label": "15", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1db35492-bcee-4eef-a1b1-c9ebcdd5bef8": {"node_ids": ["24f8fed8-cdb6-44e2-80cb-87273aaabe86"], "metadata": {"page_label": "16", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "f60cdee9-4794-4fe0-9136-11a29b4782f6": {"node_ids": ["7a9ed59c-e036-4b48-92b2-abed501990b8"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d7c612f7-d1f6-4cca-9ab7-5e4345b87d62": {"node_ids": ["5debf129-de4f-410f-8656-393b66abc056"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3cbd2b1e-c9d3-4e2d-9599-4749692fdf8a": {"node_ids": ["43449008-1604-4908-a9bc-ded41889f173"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "92a70660-f8e4-4d55-9d06-cf734ad29ec3": {"node_ids": ["fdf34102-788e-4aa1-8f99-d1b53a2815cc"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "77ee5175-1df2-47f8-8b13-bc91d64d9449": {"node_ids": ["17adef7c-5f8b-4c8e-b9e5-eeefb6cdb2ba"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7e127cdc-c068-4d32-9977-869a77634530": {"node_ids": ["82f1663a-b29b-432c-905e-aaf655ccbef6"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "69ce4449-8183-425f-98d4-1355f904f806": {"node_ids": ["64c03211-fd76-47cd-a982-d3f898a39494"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d92f897f-ba99-44a7-b780-27205f8d348c": {"node_ids": ["f52ce07a-5128-466b-8620-285227a82b03"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c4335a7a-ad86-48ad-b76d-0da1981974c3": {"node_ids": ["3da76fd9-f5a9-4b2b-82eb-8edd249ef76a"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0788fd21-b3ab-4c9e-a647-12c1ba90048b": {"node_ids": ["73a28bd6-c06d-437c-82f9-061f646f41ff"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6b780e96-9405-4a8a-a4e5-79d1f5ae8a5b": {"node_ids": ["0501395e-63ba-4069-9e3a-24af777f98ef"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3e94b2f6-b760-4a80-9854-fe2fabf5ff6a": {"node_ids": ["5b8d4236-de29-4b18-8110-737d9b1b52ba"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "25c0a3cd-d24f-4712-acaa-4edad0c15f8d": {"node_ids": ["4755c985-1153-4077-ac6b-521ecdb8c063"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e9f7c0a1-dc04-4f63-a1eb-41d19b628243": {"node_ids": ["92978c50-4ed2-4fba-a9fb-4a746789f41e"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2820ab74-1e8d-43a9-b0ce-6f1d1d1c613a": {"node_ids": ["551a7dd9-9822-43f2-af6d-1d0777137bdb"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2c2058f1-976e-41c1-9260-ba2ca2c87118": {"node_ids": ["c6cd2eb9-f5dc-48ee-98e3-32a17be0759d"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f2fcbca7-7a1f-4dd2-8cad-9513fe07ff66": {"node_ids": ["6042b93f-4bca-40b0-ace3-e2d14218dae4"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "652cedc7-cb2a-479e-9062-75361001e71f": {"node_ids": ["4156fee8-6813-42ba-b7ec-029ff8942c6f"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4550cb32-2b46-4d8b-9106-eac6b6e7eb0b": {"node_ids": ["0c3d5123-64a4-49e3-b904-8e4f29430b36"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7491ee16-6fc7-448d-9703-74d14aaca13c": {"node_ids": ["77378ffe-1ffc-40d7-8bd3-a179c2c043b7"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3d62f05c-c1e6-43f4-82ee-33df57a635a7": {"node_ids": ["bc45e888-00a9-4070-8c87-250011e75923"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "35f685fb-45c9-4cb1-806a-4212bdf38bbd": {"node_ids": ["a47f9a03-327c-4a44-81ee-5dd50313c0dd"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "75341269-a155-48c9-8619-e23e387ca51a": {"node_ids": ["0bacde41-c473-42f7-8bcf-7f7b6019425c"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "143338fe-6861-4483-b036-dd713a8efd67": {"node_ids": ["e715df3e-1fc5-4ba9-9931-a157963a403f"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "68b1958e-c079-4734-82b3-3203e36fd317": {"node_ids": ["902f3134-b5ec-4571-9e26-51b77236a418"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fe370f19-f363-445e-b527-87fa00212d63": {"node_ids": ["8e801ecf-b33f-43a5-b430-7d1ce77ce7e5"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "23a87717-86f0-4ed2-bb14-81b2417b6397": {"node_ids": ["2b4de9d3-c5b2-4ca8-8156-28b79528e988"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e345aa6b-27e0-4bcc-948d-d8219ea19623": {"node_ids": ["ce4bbbdd-baa1-48df-8c0d-6de11fbc0b1c"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2809d04e-bf40-4bbd-b035-82d9841b5796": {"node_ids": ["77ff74a5-593d-405a-a82d-8e776134baee"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "99b2d761-eb9a-40ad-883a-0048e462b25a": {"node_ids": ["2e6a033e-10d6-4144-9411-9fe374f48916"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "666dbbad-c7a9-4fe6-98f8-ff052d9dc985": {"node_ids": ["9874bdc3-4708-4dd0-a5c6-0b3f5d7720fd"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "abd913c2-194b-402b-b7bd-59ea8fd7544b": {"node_ids": ["49528c4d-956c-42c6-a774-8fdd647f05c8"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "642ea2b7-1b90-42a3-8d44-0ec6963e9eda": {"node_ids": ["ba823129-2286-45e9-9809-3ce4f9503ab2"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c430efa5-7291-4ebc-92ea-ee8600010f4b": {"node_ids": ["5661ca69-838f-41a5-9ce8-1e63d9e6ff87"], "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "86e2a7cb-b60a-49f3-bc42-c98f0f1a287a": {"node_ids": ["877f10b3-5d04-4d47-9a22-5b99373d2583"], "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d3ccbdca-1bfe-4e55-ab6f-00d81ecbe320": {"node_ids": ["a5f10eab-755f-416e-8b79-0292e3f3cedb"], "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b7a57b9f-9639-4649-9fdf-dbe40488cef4": {"node_ids": ["e3492822-89bf-4a77-b630-45215ce5ffc9"], "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5c3bd42e-1782-48dc-bfdc-4461e3b40598": {"node_ids": ["097cc413-18ce-439e-b922-349816a04d79"], "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ce807151-0d4e-4cb8-86d7-08f3a3e7b0c3": {"node_ids": ["c8f63eec-2045-4c01-8baf-21e36d730e03"], "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e755cc50-9901-41fa-a80f-95494334eafe": {"node_ids": ["d17f2388-8383-49a7-88ff-62d7b549f98a"], "metadata": {"page_label": "1", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "087aebb7-6a2e-493f-9a86-ce575b6b737b": {"node_ids": ["bef9793a-4f1c-464a-88f0-300768dbf448"], "metadata": {"page_label": "2", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "da077f6d-b8f8-42bd-9ed6-c37e94039ba2": {"node_ids": ["73ceb925-430a-46f5-9c56-1272ff2b7fc7"], "metadata": {"page_label": "3", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "88bba8e0-2098-4fd2-ae9b-a9cdfce61d74": {"node_ids": ["a9ef5490-1d86-4400-a616-cac24c028ce5"], "metadata": {"page_label": "4", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9a3918fb-2cf0-4901-ba2f-f7b11b786adc": {"node_ids": ["566e4973-3065-48f0-8e9a-d0d8268d9f09"], "metadata": {"page_label": "5", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "c7f19ad4-2798-449d-bdd8-e90a482ab9f2": {"node_ids": ["b790211d-be39-46be-980e-8df01a7bab88"], "metadata": {"page_label": "1", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a3a9ce48-8f54-4b3d-a9bf-5e26eb48180c": {"node_ids": ["abecc0fe-2854-4adf-886b-8123406905a8"], "metadata": {"page_label": "2", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "26ea889f-c0fa-424c-a4a3-8fb39077c343": {"node_ids": ["51ccbe3f-e951-4656-98bc-32f2ff4e2244"], "metadata": {"page_label": "3", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d1d3bafa-ab04-40d5-8ac3-d702bef7bdda": {"node_ids": ["1155be01-db07-4092-bd01-67e19d8fa5e1"], "metadata": {"page_label": "4", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "c05b2743-2e85-4acb-b3b3-adb631555891": {"node_ids": ["d8f9555d-835f-48fd-bfe1-2a37f63a10d1"], "metadata": {"page_label": "5", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "ec1b0510-86ee-4db5-a649-480e878c2e0c": {"node_ids": ["b82bb8ba-552e-49b9-8fd9-1360e921eb6b"], "metadata": {"page_label": "6", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "f400668c-a343-4849-8bd6-062d9075b33a": {"node_ids": ["1fc955f4-0cc6-401d-ad11-3e30d6a1c106"], "metadata": {"page_label": "7", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "8db8aaed-4725-4d72-bdbe-72dfebedf491": {"node_ids": ["ce6c8101-ac6b-4132-b977-12f26f098add"], "metadata": {"page_label": "8", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "4283b19e-2f2e-4c6e-807f-9da1f02ff454": {"node_ids": ["8a08ee30-6d3e-45f7-9f66-c9f2ed8cbc6c"], "metadata": {"page_label": "1", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "8d59d9fc-c228-4217-8fb4-c6bf9c02f75d": {"node_ids": ["ff6d5d31-bb15-4965-b3f4-4196f2bf9fcb"], "metadata": {"page_label": "2", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "61b0b5a8-9296-4111-8b8f-cccd597c6783": {"node_ids": ["8d9f30ff-c86f-4409-a6b1-47694be71ad7"], "metadata": {"page_label": "3", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "aed174a0-2145-4aa8-a32b-a45bf3ca6db7": {"node_ids": ["237f812e-bb7a-4c14-85b3-c4d054a42050"], "metadata": {"page_label": "4", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "3e6e8346-8fa3-4235-8f66-e39e6e700342": {"node_ids": ["b93725eb-3a36-4f28-ad57-1254ea5f01f7"], "metadata": {"page_label": "5", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "159c9955-997f-49fd-a897-ee483060ec0d": {"node_ids": ["bc51ae8b-ba3e-4c28-ba5b-8f700e784106"], "metadata": {"page_label": "6", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "72de9641-0ec0-4808-99e0-f1dc30fa8988": {"node_ids": ["49933ff1-2800-49e3-b424-9c68ff46ddf7"], "metadata": {"page_label": "7", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "7418a4c7-015b-43a0-8195-a050eb39e145": {"node_ids": ["dd12c0e9-8f90-4f3b-809f-059def9613c5"], "metadata": {"page_label": "8", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "a2dc3e9f-02cc-440f-944f-9ee75e604e4c": {"node_ids": ["4e884862-f960-4395-bbb9-381da168c9ac"], "metadata": {"page_label": "9", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "acf0ebeb-4d52-472d-8116-4415c717799e": {"node_ids": ["ec3e1bbf-82fc-43a1-a475-212e5e45ca3d"], "metadata": {"page_label": "10", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "20a6f038-d8b7-4fac-83a5-abe4f7953c26": {"node_ids": ["9efcdde3-705b-4ffb-8fbd-ab676a3fb9fc"], "metadata": {"page_label": "11", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "12368279-82e1-484a-bb5e-a393ce80685e": {"node_ids": ["032e0e30-04fe-40e7-982d-0d2558e6f68f"], "metadata": {"page_label": "12", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "ce76e55c-8707-402c-b12e-b25b3ac69ec1": {"node_ids": ["53d3eca0-b8ad-45c0-8c9c-46c2e5cd07c0"], "metadata": {"page_label": "13", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "f6b34358-d022-4964-bbc4-c8b363ea5566": {"node_ids": ["dc91e646-d20b-4a8a-84e5-4b752ef1370e"], "metadata": {"page_label": "14", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "b7ee196e-4825-47b7-86ab-f1cd2458bc38": {"node_ids": ["b1e0fb92-a205-4a2b-838f-99cc13673668"], "metadata": {"page_label": "15", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "76a6922c-1e7e-46b8-8268-c4120c968fbd": {"node_ids": ["945d7c62-1fbb-4915-9772-1fd4d24cd3c7"], "metadata": {"page_label": "16", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "fbd83137-5a94-4a0d-9359-f48b7f6fde97": {"node_ids": ["d8a60701-45f0-4069-bb0a-02ca037417e3"], "metadata": {"page_label": "17", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "809aaba4-ca85-4265-922d-c7c43cd7b1a5": {"node_ids": ["78dc722d-7a05-4b26-8c71-b6dd23d1c5db"], "metadata": {"page_label": "18", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "56736eec-a7fc-4372-a096-ed53d34931ca": {"node_ids": ["6793891e-4eaa-4d95-ad0f-7aa46a29237b"], "metadata": {"page_label": "19", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "aadd3556-7228-4474-a535-c9585bf41139": {"node_ids": ["2dc70f1b-47e3-4a18-b44e-ae8d6b1d7a68"], "metadata": {"page_label": "20", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "c553f92d-87fe-4ea3-93df-3115880e0004": {"node_ids": ["4184b122-0b0e-4d44-bb01-d9de993b1f22"], "metadata": {"page_label": "21", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "3f2bab81-52e0-4860-b36d-7ce79397fe7b": {"node_ids": ["32ec3d6f-5f5e-4723-84a4-55ddcfbe4b74"], "metadata": {"page_label": "22", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "bda6f45c-e94e-47f5-a903-ee718c5f4a75": {"node_ids": ["c18bcb34-212b-4520-aaac-d462dc6b028e"], "metadata": {"page_label": "23", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "06f5c8eb-f40a-47d9-95f3-b29591a3427d": {"node_ids": ["6b446a0d-83ac-4eef-aa9d-c5c79b3e23a1"], "metadata": {"page_label": "24", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "0753d905-06e6-45ea-8b3b-28c1f31d4084": {"node_ids": ["9db4ce1b-857b-4a9a-a47f-52e151173214"], "metadata": {"page_label": "25", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}}, "d110d178-f318-47aa-897a-8cbcec800c44": {"node_ids": ["2c9a96b5-5c39-4e0f-90c0-bf4b01a791b0"], "metadata": {"page_label": "1", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "b13a1bc7-9e76-4bf0-a71c-5d6fecbdaa19": {"node_ids": ["7fc24639-7716-4809-adc2-853d789e70b4"], "metadata": {"page_label": "2", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "4970837f-2b4a-47c9-a574-fe21682c72c3": {"node_ids": ["50295631-4d15-462d-a703-bb998728a95d"], "metadata": {"page_label": "3", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9c34af07-15e9-4b85-b9b5-3d4a9d84489b": {"node_ids": ["43e78bb6-3d29-4b13-90df-1753954d26ff"], "metadata": {"page_label": "4", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "aa829fa1-5f8f-4cfe-94db-a088bf4ded15": {"node_ids": ["6409099f-9df9-4218-acb2-f224ea1cb132"], "metadata": {"page_label": "5", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e7200749-09d9-4d46-9201-5d0e311c6d48": {"node_ids": ["d5a23ca4-20a0-4ce9-9e53-476f0842740d"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2eaef7d0-8701-4cc1-8bcd-b6457c73646d": {"node_ids": ["caf52b68-2af1-4db5-9c03-f50859e9d645"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "14ce2f8d-5ab2-45de-8b5d-80ebf630eaba": {"node_ids": ["282d7205-19e7-4f88-b91a-05af419daf9f"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "39c6ef33-a00b-4990-9048-2ea22137b452": {"node_ids": ["a04d9b75-d132-480b-a44f-a6ef23ac4519"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "22512278-ba40-49a1-b85c-020b0c9744af": {"node_ids": ["577cb5e7-f8b2-4eb0-93ae-8ebb32b062c2"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1ccd56ee-8649-441f-8b48-fd479dab1ee6": {"node_ids": ["1d3046aa-e613-4f2d-8b60-f45b334e3637"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "eafdddfd-dd49-45e1-8ea6-884c6f16c01c": {"node_ids": ["0a1585e5-c6e5-4599-a77f-16d68d4d4ea7"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "db74a6cf-b840-44f3-b97a-bd1ed4778d53": {"node_ids": ["455b2ed8-a34f-49fe-8904-3b6ad2c99cb1"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fbfb57ad-bad4-47ca-8bfa-42009c719b53": {"node_ids": ["8f755e8f-8768-4862-b85b-a6d4ae7c826f"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "86b1469b-4245-4e35-b172-ed2c025e4f80": {"node_ids": ["3a628c33-c4f1-4931-8c68-3d5cac67c761"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "127f6ac5-7ccd-4208-abb0-f6e35f319373": {"node_ids": ["3719fc24-b21f-48a9-b463-c21f057139da"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ff64cde5-7a26-423d-87b8-731f13911459": {"node_ids": ["73b2e247-1c6d-4438-9e73-305095cbc9c2"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6b062ff2-6f8a-4783-8bea-5cb7bf907695": {"node_ids": ["9cae4cb2-8591-4f6e-8f87-b04620095540"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f10555ea-f2ca-4033-a689-ca3064e72b7f": {"node_ids": ["aac8ac27-7eb9-4bf9-91ff-64bc3c970a78"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "45873611-d69e-416b-8d76-bfed3224375f": {"node_ids": ["4b7b0ff7-72b1-439f-9741-491778f00969"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a92c51ab-6a0b-457a-a607-4e277321fbb7": {"node_ids": ["a471d2ec-90ef-4fe8-aed5-d620ab5536cd"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7e396dda-ae99-478b-b56f-398c6015d8b6": {"node_ids": ["787fb206-2d29-495d-a8e4-619ee52bac5c"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a287c646-da16-4e18-92bb-e5d405390912": {"node_ids": ["0ca3bd3e-c962-45f8-b8dd-131208593103"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "67e2728a-301c-49bb-bcfd-bb393e169072": {"node_ids": ["f8885c3b-c38b-43b4-b9cc-5f37ecec22aa"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "46218433-8f9c-49b3-9ade-f2481def3bc2": {"node_ids": ["2dfbb8df-0bbd-4d7a-b33b-0c9ea14d7878"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b6486159-57be-4f78-a4be-4ee84842ec4c": {"node_ids": ["9ef88928-54a3-4a7a-9fc5-b2df1d087333"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "532b2b80-a6db-4598-8437-6f73335a6b8c": {"node_ids": ["8b0e5706-a8c2-4dea-a593-f3f372821d44"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4f432587-e5c7-4211-8ed6-107d4b6fb5f7": {"node_ids": ["44e97dca-8355-4750-86b1-195ec07280c7"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "9163c70f-6eb8-40b6-aa02-ac57150481c5": {"node_ids": ["422a3765-19a4-427a-a0ed-7218c4236f11"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "634ba83c-dbb2-4cd6-a280-df054a683368": {"node_ids": ["71cf237a-a657-43e8-91ad-da3318c44a3d"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "dd9fe500-4a85-498b-85f2-8998b35f3589": {"node_ids": ["85a6faa5-c4cc-4591-8f4b-2bbf6a9021d2"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6313c142-3e89-4d79-b913-2740d027fc0e": {"node_ids": ["db5a7ade-5d4a-4274-b0f0-37c4e77c7d27"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "780c43dc-f6da-4749-b190-59ed1515bb60": {"node_ids": ["70a6b9e8-09ed-4912-ba30-ca43933d1d2f"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fbfbc59e-abf0-464f-88b8-de293663e901": {"node_ids": ["4edc183e-ea15-4725-93b2-43689346ac16"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ddef1c5c-6821-4a1e-ac60-a5c2f1d93f9c": {"node_ids": ["87441287-cc7e-4805-be19-d168d57c7bf2"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ab22cba4-0ad8-47d0-ae4b-a81422a929a9": {"node_ids": ["9957bdf3-19d0-4a15-92e2-90e0096d66b1"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "9622de88-c64a-43c6-915e-404801680968": {"node_ids": ["cff59e4b-6a1c-4734-b601-c969c107992e"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "76d5c11f-a6ce-4067-8808-b9cf5e88d51c": {"node_ids": ["cce6c5d2-55aa-4bf7-9892-8081b4d2226a"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7d3d6551-37ed-4a50-be24-011b2e3f3f8c": {"node_ids": ["a88d3be4-c41f-424a-8db3-984e24faf445"], "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "517bcb20-f696-4623-b6fa-5f1875ec567c": {"node_ids": ["be1d0077-0e99-4b8c-96de-9c102c0af62a"], "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "45d9b0b7-8c3c-4bdc-afb5-632472e45a86": {"node_ids": ["d3a22d70-fa11-4e79-95e0-1e654f75f320"], "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1224b0ce-153d-4f4e-91e3-51f0e9d0713e": {"node_ids": ["a74e41b8-b0c8-419a-8a4b-6affcce27e0e"], "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b8ec38de-7d99-44cf-8637-f10e2aa9a772": {"node_ids": ["c51029f0-b39f-4555-a0ad-a73132aad1fc"], "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "185e3d38-7b27-4699-8b18-77c98823dfb0": {"node_ids": ["5680ddd0-b1bf-4666-b053-5716b4bb1557"], "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0955e7e9-abe1-4bf6-ae03-32dd1bcd8cf3": {"node_ids": ["ddc8a407-a6c5-43e6-bce4-2d24c22e6a2d"], "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "831024d1-4a33-4db4-9016-e4437e168de0": {"node_ids": ["190b5a33-3fb1-41dd-ba61-d7542ac54667"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "00305476-ec19-4b0f-891f-7028c86085e1": {"node_ids": ["316b7161-1333-4733-960e-95861af883eb"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "cd265cd1-2de8-48ea-9390-0a0da20d79f3": {"node_ids": ["758a4fa0-bd0c-49dd-bd0a-d2564e52fbfc"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d16fa667-2395-42a8-9999-ee54a875498b": {"node_ids": ["0c0d5e57-07b0-4b77-ba09-6d7ef90bc168"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b3aac804-5d83-4e56-9dcf-7830f900d2a2": {"node_ids": ["fd429f0b-104b-49f9-94c4-528a8e229466"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "85996195-4451-4481-87c5-15a0344c1c4f": {"node_ids": ["dff63ce1-46ba-4ed5-b1b4-a9494402c1ba"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "eca115bd-e70c-4644-a047-a6b572f3eb27": {"node_ids": ["23c064d8-fa60-4112-83a8-e26d4963fca2"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1a27d792-971b-42e4-ab9c-77aa8622ccfd": {"node_ids": ["95e47df7-93de-4b4e-9760-3c704143e90e"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "aab3f3ef-1b66-4c08-bff8-9281ceb8fabb": {"node_ids": ["68375b45-472f-4713-a902-01017d5f5f95"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "209ff594-cd76-4d6a-a474-e6c5ca3f66a4": {"node_ids": ["12c1dc91-d343-4957-8053-9eb78049df6c"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "eee01fb1-9d98-40ca-a229-b002b580a654": {"node_ids": ["49585e31-0f37-4d00-8822-a0e02255766c"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d33aaaaf-a977-45e7-93d5-403392a161b2": {"node_ids": ["80b03e9b-7e02-4ba6-af9d-9095bd43634b"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "342175d8-7352-4558-a7da-ba8119f039c6": {"node_ids": ["d46752c8-637c-4da5-988f-363c0a976153"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "86bf8fbd-e83f-44aa-a6d3-e92bd7c2bcc9": {"node_ids": ["887c5f6c-3a55-449f-80f2-ac7d1cf77eec"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f6f8e34b-cf6c-4b81-8fb1-de0580d12b09": {"node_ids": ["efa33040-ed9d-4a5b-b04f-a8dbc60aa6a0"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "226c00e9-dd60-4029-aa7d-d45ba037393e": {"node_ids": ["5da3a3ab-6843-46fc-ab49-4bcab7edfc63"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7914044d-3701-432d-8974-8197ae920aa7": {"node_ids": ["ff651fd2-7b37-46ef-818c-09a6da7b425e"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "135c72ee-2eca-43c3-8c00-ae7bcdd9e054": {"node_ids": ["259ee884-6c67-41f6-a542-1355d473763d"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "215780d1-0f9a-4c2b-af2a-431ac9a664d4": {"node_ids": ["7f0bf086-20c0-47c2-9bd9-602912309814"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "14a871c2-74a6-4279-ba95-4888eca8eeec": {"node_ids": ["5396e500-5cea-4d5b-857a-2bda52168c38"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1343e464-da6c-45d5-9e4b-03233c1b88f0": {"node_ids": ["61e6ce59-0a8b-4dca-bbaf-08551a16c4eb"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "65208085-8825-4e5b-93ef-0915552d4690": {"node_ids": ["d495af59-ed43-46b1-9bf1-618a9a1aa0b3"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "491bc843-c5c8-4423-ab35-fca1402da76b": {"node_ids": ["79697b04-cb73-4fc2-9a1d-8be98180cb81"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f83657a8-bb42-4167-9333-26f66f97993c": {"node_ids": ["99c3df76-23cb-47b8-8ab5-ba93afdc864d"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6e76ddf0-e0df-416a-a9ed-c0558206fb0f": {"node_ids": ["3656ddd4-04f8-4d25-947b-da36f6309053"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7cca0d9e-fe23-448d-a45a-3bc5ef4d930b": {"node_ids": ["aba38c45-bef0-4776-bbf1-77abb345141e"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0efbf156-ce25-4c55-9279-eec607938da4": {"node_ids": ["654cdd30-25bb-4494-b4db-a71fccd6eb2f"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ab0e4797-4799-4068-a0b5-16ab616b3986": {"node_ids": ["ba211267-f480-4e16-b0dd-e5114c0e4e16"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c7057c92-1223-42f9-927b-6d09db9ef721": {"node_ids": ["0274ca8e-3305-4e30-b0eb-6cb8ec8fdb4d"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e873e8e3-a68d-42fb-8164-8f6d95c3b127": {"node_ids": ["fc25de07-e1de-4774-8ab1-25bbc3ef2ccb"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "065bf037-9027-430f-a9d9-92eda7b151df": {"node_ids": ["53b2dd4e-28ef-4d83-8ce4-f30cb6f019f4"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4ee78bd1-9a10-4933-9165-151c43b8b17d": {"node_ids": ["20fa555c-99ae-44ca-aaae-53a2883c1e0a"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "daf867d4-50e8-48ff-a818-68da3d56d737": {"node_ids": ["509ff02e-8c13-403a-95d9-bb1601b438b5"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fad2672f-2b02-42df-958b-3b98a5666f42": {"node_ids": ["e04ac274-e9da-40c8-9179-a3289ab1e178"], "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ab35d8e4-b3e5-4691-800a-6f1d31557157": {"node_ids": ["3798746a-9cea-4535-8681-a1d155b59bb2"], "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4041aac0-2e26-4958-8ee7-1e3be16a4012": {"node_ids": ["b3df07bc-d75d-4ec0-8fa0-43916e09ea34"], "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "834123cf-8d46-44ef-947c-cc4b7a268648": {"node_ids": ["95365b44-abc0-4e80-b9b2-cf5061a8fdeb"], "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7d54eacf-d81d-4385-b6b7-f542806b8436": {"node_ids": ["8dc5e1a3-81c8-47ac-9b4b-aa5333b65d14"], "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0f257d89-1e1e-4fc5-ac06-c78e6249b7e3": {"node_ids": ["1f4f59af-cd15-4e28-ab33-93e687a90490"], "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "64cc7ec8-8a58-41de-8e4f-0463aecc72d8": {"node_ids": ["7260b2b2-50fd-4a44-ba23-20a526422ca5"], "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fced2618-309b-4742-9d50-9dc21f0dbc86": {"node_ids": ["036ac395-44aa-474a-8da5-8e1715b9b20a"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b085ffe8-a60d-4a74-9dce-674bc277f553": {"node_ids": ["3c77d6b3-93af-4a2d-a921-1ce277b1074d"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "489ee0a7-917a-4e7d-9e54-9fc94aa242f4": {"node_ids": ["9f5a9510-3717-4690-acad-83abb818e3f0"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ad256861-1c4f-443a-a70d-7ffe9918e566": {"node_ids": ["8667cfb2-de71-4b7f-8842-86fedc308afa"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "520f6701-e446-41a7-8e4a-0ba859cc0495": {"node_ids": ["6ba57811-6e39-40e0-a958-10a5660b3fbd"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d7a7b22a-5bd6-4e84-b208-6aab95fcc0ba": {"node_ids": ["e59647ae-d1ee-4af1-af1c-4b84ca8a2f62"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "e00bd6d6-6384-4b8b-8491-fa0c9c77e050": {"node_ids": ["3b47e972-4f01-4727-bd5d-ecdb08e4e218"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a28a05e1-8ddb-4262-9fcf-0fc848ae6a9c": {"node_ids": ["b113fee8-d3c2-4b35-b227-51d6e761bc68"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "88df271f-5aa7-42e5-b82c-eae93c85c72d": {"node_ids": ["dd1943ed-f512-469e-83ce-4a2f7ab48399"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "99b3a58e-e54c-4548-9513-4447f8be9774": {"node_ids": ["5ee7256d-0232-47fc-9007-ed8b4191bf21"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6cf16c6c-7d61-426f-b52e-beb10c309803": {"node_ids": ["d5fe996e-cf3a-4acd-91b6-ecbde90ed62e"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d8e97a19-e80d-442f-91e6-e32183103632": {"node_ids": ["f12f2f0e-adb0-4b30-bb24-3f19e4143104"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "06b555ed-b93a-4090-be4e-49c5d71ea8e6": {"node_ids": ["9943d33c-bda1-464e-b84a-d1017dcca544"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f6976a57-2b39-4b4d-aec9-72e33c83ded1": {"node_ids": ["0f519762-2aaf-48a8-8f77-372b2b20b720"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a73f0daa-8f0d-4e6a-b1dd-e76734a65943": {"node_ids": ["0d8b71d3-e7cc-46fd-99c0-944c652f8017"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0eb67cd7-4b25-4e7f-a301-8eb4b5df6bee": {"node_ids": ["6a097882-4567-4aea-a439-e8058332203a"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a5f7cc74-1803-4d60-935d-18a04b83332b": {"node_ids": ["417d2290-24ff-4740-89b7-d2005b7fbfd1"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "acf97632-7b83-4aec-969a-c1f09181c4d8": {"node_ids": ["081a4652-13f3-4659-b418-7eef19e938d4"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "611ca87b-85fc-40bf-917e-9df9c1345b1b": {"node_ids": ["157f82f0-c1df-4ad7-86c0-5cf65d7faaa4"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "20d1d36a-368c-4240-9f2d-780982ad5f09": {"node_ids": ["f8d80d54-992b-4b0b-8ce1-32236f3acbde"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fc9f91d7-74e3-407d-9c57-9ec8c692096a": {"node_ids": ["a2040771-5514-4601-b275-8537afffb876"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "04687d34-e892-498f-a57f-b43481fc8d8b": {"node_ids": ["8c403238-792c-4f56-b35e-dc244a81d4b7"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8dc902f2-8a9f-4161-8a40-75963af57c58": {"node_ids": ["18453e4a-85fc-4408-bccd-8b6e034b1056"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "788c8bbe-6075-4ed3-bdd2-9654859a8429": {"node_ids": ["08f6346e-6f17-4df5-8634-7718c165c1be"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "149d1f4f-a226-4cd4-ba9e-a92af7715943": {"node_ids": ["ae21ef62-62e7-45aa-ba3b-77b6bcda9bcc"], "metadata": {"page_label": "1", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ee50cf97-6783-41ff-96e1-e4d607522031": {"node_ids": ["bb5a7c5d-168d-4bd2-9344-71eae39d1006"], "metadata": {"page_label": "2", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "214b5c3b-2295-4336-a95b-6b1f921bb154": {"node_ids": ["e7768acf-76f3-4656-98f1-86862f72eb70"], "metadata": {"page_label": "3", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ba72f706-fc7c-4719-a686-d0ae2d39307e": {"node_ids": ["309cfea3-9514-41fb-bb52-3cf5c4629d0a"], "metadata": {"page_label": "4", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "fb8de058-3412-4319-83ab-5d7c5e5def01": {"node_ids": ["b6970859-a592-456e-a87a-1a4b9df159a0"], "metadata": {"page_label": "5", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "cbc097ec-7a34-4658-aee0-8e469eb60c41": {"node_ids": ["0f84b520-caad-48cf-81ea-cf1934f2d633"], "metadata": {"page_label": "6", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "5fcb0fd7-d6f0-4bee-a2eb-7099b8b3eec7": {"node_ids": ["1fe388db-cdc6-4b41-a010-8952948c5164"], "metadata": {"page_label": "7", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "85065a7f-2d74-4477-99cc-98369b66ff24": {"node_ids": ["eb21d063-47d4-4887-9e6f-10e331867c93"], "metadata": {"page_label": "8", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "862a578f-5af8-4cca-a8bc-5a97584c5261": {"node_ids": ["7f353fd8-77d8-451f-9cfa-7806b421c70f"], "metadata": {"page_label": "9", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "bd23c079-66de-4f41-bf1d-5cba101cb359": {"node_ids": ["7d829aac-3f25-49b6-84a0-e80c23094161"], "metadata": {"page_label": "10", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "723196a1-6d57-4a4d-bfd9-e08eca827c91": {"node_ids": ["a80623b9-2aa4-44a1-806a-19b92e29a379"], "metadata": {"page_label": "11", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a7f773ba-d8b1-4e3d-b401-a47dd0de8fe0": {"node_ids": ["41f1e71f-4209-4623-b0d9-103f47179a3f"], "metadata": {"page_label": "12", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "71996915-4f9c-4f46-a4a8-d67d6cec7e5d": {"node_ids": ["57edf931-3518-42f4-a77c-24a154b1b2fc"], "metadata": {"page_label": "13", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "05379038-70f9-4974-993a-8e6caff3caac": {"node_ids": ["6e7ed586-1fdc-4b3d-a645-5292cb1a036b"], "metadata": {"page_label": "14", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "2804aa45-c887-47cb-ab32-1044aea66c06": {"node_ids": ["c0bf32ea-a5b9-4b25-9c0d-443932a3b375"], "metadata": {"page_label": "15", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a94ba949-63a1-4e20-9d69-a3bce6e0c064": {"node_ids": ["4c183789-4a2d-4c9f-8113-4db15dc022bb"], "metadata": {"page_label": "16", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "818214f2-3822-46d7-9011-003c5e5635f6": {"node_ids": ["3aaab1db-2726-4c74-bba8-f15a591ca39b"], "metadata": {"page_label": "17", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "68854cb3-92e0-458d-a6c7-344fd7dc8e97": {"node_ids": ["621b5467-f279-4398-aeea-f28bee4cb050"], "metadata": {"page_label": "18", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "0901d0af-95bf-4019-9f80-b5abca807dd1": {"node_ids": ["b049f9c0-0562-4f22-8c35-db3b2246c6b6"], "metadata": {"page_label": "19", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1dcd0925-a7e7-4b95-97e6-e92314e3728d": {"node_ids": ["b98fc14d-15c8-4a1c-87a8-e7eaa4bd8aca"], "metadata": {"page_label": "20", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e4117045-3279-4229-bccb-1e02875f3276": {"node_ids": ["151962e3-139c-4ea2-bd46-f6894653b20a"], "metadata": {"page_label": "21", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "982a857d-36b1-49c1-8ece-a2aef40732ab": {"node_ids": ["23511452-7617-4c3b-93db-e966a145519c"], "metadata": {"page_label": "1", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "f19a80f2-a2f1-4789-8a21-e4ef93a59eee": {"node_ids": ["12b0b879-4b72-4f08-85e7-8a8352465a2b"], "metadata": {"page_label": "2", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "3dba81c0-a0be-4d2e-abbd-25127fdfc352": {"node_ids": ["9ab710e9-8938-4d9a-ab59-7f3f5017db0d", "15f38e44-0b79-41c4-9780-7b0b6c65baee"], "metadata": {"page_label": "3", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "26c0bd2b-1781-404c-b287-62db8e2d23a9": {"node_ids": ["0ed260ac-2b54-4e67-8bc1-e9ed143e5bce", "12ce2863-5b0c-4701-8c60-d057871daaac"], "metadata": {"page_label": "4", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "284cf760-4bdf-455d-aa72-903b8db3bf29": {"node_ids": ["38c00f90-961d-45d0-969c-cb21d0481571", "26083959-d7ae-4666-bbcd-b8d9aad94665"], "metadata": {"page_label": "5", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a0a42cf7-8b25-4868-a925-416bcf8af861": {"node_ids": ["8db90326-4024-46d8-a05f-ae1c5fe72c09", "2c52cffb-5f45-488a-b1cd-b8d639be05c1"], "metadata": {"page_label": "6", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "08ed8400-b7ed-4749-8a30-1c773bfe0799": {"node_ids": ["7e6178cf-c511-4590-bc50-5f46ed171ba3", "501021ea-7c78-4161-8fb6-dfe543b51cfd"], "metadata": {"page_label": "7", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "4daf9919-9b3d-4b31-8ae6-cf03fb9e589c": {"node_ids": ["9f33a625-5888-4b8e-b0cf-222113f3d3d0", "bf914f6c-b5c0-4493-b1a2-b3aba2fd1250"], "metadata": {"page_label": "8", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "573c0141-ee9f-49cc-8bd2-2244b0e6dd0d": {"node_ids": ["d13cdfc0-48a8-4589-84a5-0fd105ca30f1", "2e459ade-d51a-4765-bf4b-c6e8b7ea7224"], "metadata": {"page_label": "9", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "f1f39c62-b863-4eb5-8042-d419a48e1f0a": {"node_ids": ["f141ab8e-842c-4eef-99a1-b03b108f2f4d", "b6c18bde-0eed-4f3f-84b9-00f91ae3c343"], "metadata": {"page_label": "10", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e0beedcd-80ce-4e77-92d5-b71264f6d247": {"node_ids": ["9a99af8c-ea56-48f8-84ae-8cbe7625947e", "12e6b9d1-afd7-4ee2-86e4-43bff9795e10"], "metadata": {"page_label": "11", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d9ddbeb7-f230-47f2-9b2c-9179aa99334f": {"node_ids": ["b2bd4ef0-a330-41ad-a89a-0a56c4d150bb", "84413f9b-500f-499f-9567-0fe1a92facbb"], "metadata": {"page_label": "12", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "bf394c11-7479-45f9-a388-b846e3fcc275": {"node_ids": ["eb72e045-5626-4bb3-9a28-cd06767f800a", "b19d1606-74d9-4a14-9783-84ea603aedc2"], "metadata": {"page_label": "13", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a3125ead-2dd3-45e3-8047-b448d6e98518": {"node_ids": ["e40d2b55-a491-4754-ab65-328ae17061fc", "6a1ee02d-de72-4006-bf92-98bc7933e3d8"], "metadata": {"page_label": "14", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d365ad41-6055-4d61-8a92-c51920a2725f": {"node_ids": ["a3f9feaa-3e9b-4334-8f32-2b7b63b47f06", "8622d672-dabe-4281-bc56-613fb70e091e"], "metadata": {"page_label": "15", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d2622d24-c23e-4050-826d-51857533a44d": {"node_ids": ["cbbf1009-aeb3-472b-83c4-de6b9c0047b6", "266ae132-2515-4d10-a902-d88adbd97ac4"], "metadata": {"page_label": "16", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "66904acf-e0dd-4c49-8215-90ebe929a1e2": {"node_ids": ["e11c42c1-990f-452f-b0c4-e667be069124", "0ef6a263-7213-4a5e-9173-052b1cc7f876"], "metadata": {"page_label": "17", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "74fbdd83-4dc9-40ec-8828-8250958c5c34": {"node_ids": ["239dee1e-f5c5-4355-bb37-fd6dee421632", "08c9c875-2a59-4a9e-9296-0ba034da725f"], "metadata": {"page_label": "18", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "0b8bc016-7c81-408b-9b8b-89874bdfe4a0": {"node_ids": ["b5643b5a-e96b-4ccf-959d-b14ecd9a8ff9", "4b061cb5-3509-4d5e-a776-d31ecc85ce63"], "metadata": {"page_label": "19", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d352c53c-49ee-45b5-9099-c74a45f43c6f": {"node_ids": ["8a71fcad-f7f7-4eed-9ba8-a32585a4ed34", "72b44a8b-e31a-4ac0-b80e-a445cdc8da61"], "metadata": {"page_label": "20", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9ad0675e-bc03-4434-ba7b-d00fddd4c481": {"node_ids": ["b02cae29-a8a7-4bd8-9573-a5edb6b10237", "5be0bdae-6269-4f7a-91b6-544c674d06a5"], "metadata": {"page_label": "21", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "39cd96c6-a841-46ce-8193-e96cc2ca4efd": {"node_ids": ["0e162f62-d213-4bdb-a47a-13ff92f32681", "a65b088b-11b6-4084-acbb-a73f0f6d7771"], "metadata": {"page_label": "22", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "fd50bb87-340e-4e9b-9a42-6c59da352db4": {"node_ids": ["591feef2-b131-46c9-8f81-98057cc3e758", "fca32444-05a2-4968-abf2-8f4217df724a"], "metadata": {"page_label": "23", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a20a6210-768f-473f-a131-4e7d8b2b2350": {"node_ids": ["e4987eef-86bb-4039-9770-1d64490f9f2d", "119c5f46-dc5c-4016-b41a-ae7ec421b171"], "metadata": {"page_label": "24", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "53003719-6816-431d-b0c7-3774ba157daa": {"node_ids": ["d348c420-32ce-4c80-a8d6-d70b3e199e81", "183954f4-14fc-4484-9cce-8beb0bbb674c"], "metadata": {"page_label": "25", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "ef546d1f-4ec6-4b29-a0cb-b31bf6e952a0": {"node_ids": ["73eb8ea4-a5c5-41ed-90fc-e5414ce3677c", "88471547-ad2f-499b-9145-431e05c62854"], "metadata": {"page_label": "26", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "0111f62a-511a-4498-a062-387979342cbb": {"node_ids": ["c6ee1ab5-90ce-483d-93ef-cf3526690de3", "23130aaa-eac3-4961-ab84-ad054bf47790"], "metadata": {"page_label": "27", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a3a7d606-5d4d-4f6f-8715-60a724c6202d": {"node_ids": ["9d6a9e84-404e-474e-b519-d9ba23874531", "feb40e9e-dd75-4156-be03-bc71cd6a4281"], "metadata": {"page_label": "28", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9a726dd0-5b0e-46e6-8a84-b0715a85d642": {"node_ids": ["2b74ca4b-23a2-442d-bbd2-0b7c4e0ebd16", "62e75e87-7e06-48d9-b1c8-a4853e678eaa"], "metadata": {"page_label": "29", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "77e35c5a-3f7e-4f2f-bcf3-90692a34e66f": {"node_ids": ["d8b5b27a-d6fc-4cb6-9d88-a4595aa233da", "e1a1eaff-5b20-4136-b308-fe6e9d169a0f"], "metadata": {"page_label": "30", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "f5fbb428-c853-4216-b2c4-ef572d7d93aa": {"node_ids": ["8c20e165-612e-4962-9a74-de5ff7cd907b", "89a2bc2f-c935-44fd-b55e-1d05b21a61f5"], "metadata": {"page_label": "31", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "9683ca93-2a7e-43b8-b0cc-75c4bd6bfdd7": {"node_ids": ["758267ce-f3b8-4f8b-af1d-187ada01b5fa", "0ed8efbf-f5d2-435c-a346-618d87b4ddf2"], "metadata": {"page_label": "32", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "be3361cd-0339-4a3d-90c3-e29fe9db77db": {"node_ids": ["b43fde75-2689-4c56-8c4b-8756cb6f0c4c", "f0b3a50d-0fcc-4723-a5fd-b65b74f8866a"], "metadata": {"page_label": "33", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e29d8999-ac63-4e75-b1f6-bd32afc7242a": {"node_ids": ["9375a539-f114-4e2b-b00e-aa23c476375f", "8cfde54d-e51f-4021-b602-df048c0aab06"], "metadata": {"page_label": "34", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "476570b8-858d-4f6d-b722-8f75bf01969b": {"node_ids": ["963566cd-94f0-4c0f-8886-dbed6f3d5f6d", "7f27083f-e48c-412b-98ea-32af72b2e135"], "metadata": {"page_label": "35", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "b5a256dc-fc33-4c5d-b1db-bd17c24d2c86": {"node_ids": ["2ee65ee1-560f-40b7-9cd2-eddb615ff994", "9bd9548f-ee43-4a48-81b1-2ca532ac7465"], "metadata": {"page_label": "36", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "940b90d1-a675-4fb7-a956-85d6f152bd8a": {"node_ids": ["f0045335-116c-47bb-8651-0831c19f3f7c", "99b75cfb-2ccf-40ae-872e-077d704e528f"], "metadata": {"page_label": "37", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "70427c2f-f214-48fb-a23d-d83d808ad2f9": {"node_ids": ["519d8e25-0ae7-4de6-bae5-317a5b9943a5"], "metadata": {"page_label": "38", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "907ae918-e073-47e8-9082-3638db3d3a0d": {"node_ids": ["8da30a1f-0d1a-4bb7-b96d-bc7cb096fbf5", "1983c374-9f16-40fb-b4b5-ed7ef4f054e7"], "metadata": {"page_label": "39", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "cd58141c-d018-4832-ba41-3ccd657898d6": {"node_ids": ["53cf77f0-02a9-4e58-857f-c4ab0983ddef", "bb34e419-8bb3-4e65-a203-fa9d88d26411"], "metadata": {"page_label": "40", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e2e42737-61c2-4f7b-9b79-c99063f24d02": {"node_ids": ["a95b4a21-5f03-4092-8bab-1dfd5e676c82", "83c00977-04aa-4b9b-a892-6d1008408031"], "metadata": {"page_label": "41", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "6d97610e-c050-4c02-bde3-4b2a77a9717e": {"node_ids": ["419fe496-4bfe-4117-8161-25160354d3f1"], "metadata": {"page_label": "42", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a1eaa447-e80a-4478-8d93-b1594ad738ca": {"node_ids": ["7c7e199d-39d2-4a92-aeaa-66376695ece4"], "metadata": {"page_label": "43", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "bd26837d-e065-43c3-8312-71a2f4e099ee": {"node_ids": ["e4b2f66f-0b0f-4c55-97f8-2cf352d44673", "e74c0cd0-3a50-404d-88f6-377807489501"], "metadata": {"page_label": "44", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e3623d38-9c97-4b87-af05-33b368532532": {"node_ids": ["231f9cef-1465-4760-be63-21ff97535ba7", "cb8dc595-1a51-4517-945b-4e07cbeaa0b5"], "metadata": {"page_label": "45", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "65f3a743-6fd1-4b98-a433-687f3bfef5e3": {"node_ids": ["79dcb170-7155-4c82-9b45-82a0ef33a4d1", "04075d2b-4539-496d-bf7b-ed1664afc516"], "metadata": {"page_label": "46", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "5dd8906b-114f-47f2-9d7b-4d6b04c8b2c8": {"node_ids": ["6ccd16c0-23da-422f-8e93-900f3b1236ec", "859bbc99-0979-4419-9ad6-17eeadd1b1fd"], "metadata": {"page_label": "47", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "64b499cc-e23e-48d9-9996-c680d100b443": {"node_ids": ["f3240c3d-4082-4e0f-8eae-81a30525b7d6", "53dae983-7707-4b49-9d5f-a7f72c93354f"], "metadata": {"page_label": "48", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "e774652c-d6b3-4577-b008-78af708410c8": {"node_ids": ["f2a40c68-2dba-46d8-aa4b-ccf6b217ebea"], "metadata": {"page_label": "49", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "8dc3503f-bc16-40fc-8fd6-d9815403e825": {"node_ids": ["fb55d7d3-7e47-4955-8bef-02b1e9efb22c"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c2ff82cb-db1f-43f3-9069-101ba452acf8": {"node_ids": ["af086be1-8f95-4074-9777-556fd66105fb"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8c4ba443-5ef0-49dc-bb85-b681987cebcd": {"node_ids": ["6c879875-d657-4696-8f47-89c1ce4bf788"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7c7a826b-070c-4487-909e-3b7661f6a0ab": {"node_ids": ["3a78332d-48f1-4752-9b31-86a1671404d2"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "371326dc-76a1-4f29-89ed-436bfcab68d5": {"node_ids": ["7a8b6d32-1c91-4ff0-b391-3306bfa8e61e"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c31c80e8-9dcf-479a-a2bc-937d4320c8be": {"node_ids": ["613dfcac-2952-4633-9208-f11652fef2b9"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2a72fa73-55c0-41fb-8647-0b54bb979632": {"node_ids": ["a09cbcd1-23af-4464-b651-7b76e6ac4b8f"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "91f5c48a-5d41-4358-834c-aee95dc5256f": {"node_ids": ["022a47aa-7bca-4369-9d90-a2401f9b487e"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "609fdf1f-ebf3-4ae2-9b28-385dcc89d0ac": {"node_ids": ["c95f001a-6d09-4b47-aa3a-690c1f2a6d27"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fd2e645b-154e-481e-b51e-6a7a3ae4f43e": {"node_ids": ["676c6aaa-aacc-490e-82da-d93dcba3c044"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "879bdff6-50eb-4bc9-9dae-2fe020c48b99": {"node_ids": ["fccbd19d-49b4-42a5-b6b2-cf9c6aa6c766"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "73ae3a4d-4759-465d-a9b3-dccfcaf5c76a": {"node_ids": ["f7e1dec2-dc2c-4324-b0af-1e9bb7c8314e"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "01ac6409-89b9-49c4-94d4-670ca45174a7": {"node_ids": ["fcd28dbb-4292-44e9-9552-59a61cec9d44"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "86b61bc3-6df7-4ab6-830b-da3be4a7eb3a": {"node_ids": ["198eee22-33fe-4f4b-9b4d-052896f65eaf"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "51fdacc8-db9f-4806-8af2-8e6876f89c23": {"node_ids": ["ca2cfc43-ac6d-4159-b4af-b36e46d9d601"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d44aa4a8-9134-4117-ac0e-4e5b7367c669": {"node_ids": ["d9d6877d-09fe-461b-8595-2046ea08e280"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "99cbef10-0b31-4787-a409-41de49ea4efe": {"node_ids": ["f6ec8511-4b2b-4fba-abf7-b17e09519e84"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b1004fb7-e9e2-4fbb-8f0e-6b94bc90b9a1": {"node_ids": ["a833b40b-f2bc-4dcc-a254-d5d6d1e7752a"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6601544b-3c97-4f9a-b39c-a8d6e0ae42f4": {"node_ids": ["afeb115b-8513-4c93-9fa2-9d894cd507b3"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6da75947-3a71-4567-be7b-fc4fa8df14c3": {"node_ids": ["0c41fcc1-e13c-4572-bb62-6d88ad44f484"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "583d99fe-5ca3-4c16-8a54-0765c3c0059d": {"node_ids": ["0fb89d92-8410-478c-b250-1e2c1bb03279"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "68a2b666-7456-4fc4-b149-3f83550daf2e": {"node_ids": ["014f73bd-c09d-4373-aabf-97308d1dd6c9"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "663baeca-ef35-4a6a-afd2-770b0cc00376": {"node_ids": ["70b1d5e9-15f5-4f5d-b1e3-7ac986b9743b"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a902ac31-6c69-4614-b3ce-60dcb3b1f029": {"node_ids": ["88730b32-3d0f-4520-92b5-288a2f8a005f"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "1bc25192-dc17-458d-9417-1ec449c831f9": {"node_ids": ["276807aa-bde9-4cef-a1ec-9323526798e0"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2dbefa73-2d8f-44c5-b295-5e9faa659280": {"node_ids": ["2aebe4f3-8339-42a8-9015-28298f093f63"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "04901ae7-7d57-458d-a651-0f73b59e1edd": {"node_ids": ["ca19fae9-304e-497b-83df-cdeeb0f7389d"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a95a4a8a-4bed-4723-890e-921854239de1": {"node_ids": ["17ea5270-01fd-4fac-b3c3-92a7d81f5ca0"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "42e69954-cd60-4470-b106-eb0231f7dab4": {"node_ids": ["06c4bbfb-d09a-4e5c-a12a-4e050b7e992c"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "54d6aeef-0e54-46e0-8352-e5fe4396eed8": {"node_ids": ["64ff9e05-ea43-4ca0-bdc2-e4b50942ac21"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "351b857c-742d-4171-912c-3be5e07a45a4": {"node_ids": ["25bc8450-dfc8-4ef2-b5a9-6bb9ae25e4b8"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "75eb3979-503b-473d-bac6-d791fe611ba9": {"node_ids": ["d958c815-8fa5-4299-aa1b-6263e0627dfc"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2bf41c79-6b48-411f-bd83-5c36578b6c3e": {"node_ids": ["3496985a-770e-4967-a19e-ed749ae5067e"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "71adb986-19c3-4f6d-be24-5157b2edf32f": {"node_ids": ["99c6b77b-2871-41a1-b655-2c9946063d3a"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "bfd119a0-3cdf-4edf-9eb9-44354191b8c6": {"node_ids": ["940ee8b1-4115-4c45-8126-0dc1a964620f"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "9eeb98f5-9b60-41ae-ab5c-08e573d8f08f": {"node_ids": ["888ba6cb-fdd1-4003-94bf-55f7a4e57d22"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "100ee067-250d-4841-8ff4-81d4617bd7dc": {"node_ids": ["6481781f-e85d-4be4-bb07-02c2871a5212"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2b8e2567-96f7-4ac3-b2f0-f1c738cf0689": {"node_ids": ["a4027350-09bd-4869-b8a1-b3c6e65b05a4"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ea039349-4568-4011-afac-d17effa1fa4e": {"node_ids": ["568b6337-dbb5-4173-a206-b62a9e9923d7"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "36f87263-43a7-4959-b600-3f4b0a373aa4": {"node_ids": ["d1db94ae-09b9-4f0d-98d7-709e34ddf671"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7e8064aa-12a4-4ea6-9a5c-8bbfa76ae5fc": {"node_ids": ["7e4be65f-5f10-46c1-936b-ada262bfb319"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c61c23ce-174e-4455-b20d-647216b844f1": {"node_ids": ["6acf741f-f7c8-4429-bb6c-eb403309f712"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "9309149d-36d4-4913-8ffa-00859e72bc08": {"node_ids": ["59c1fcc4-2130-403c-b473-929f92cf8655"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "efa0b9da-c4ce-4a0a-ad59-f04caf613e49": {"node_ids": ["c4aa049f-c8dd-48e7-8f40-b62ea408e02a"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "57e11679-7cf3-4b56-87ad-2ea176e085a8": {"node_ids": ["3bf09bba-6265-4b6c-a8d8-53089a01c0e1"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5486596f-3b83-41a2-ae9e-e619309267f6": {"node_ids": ["1a8b7543-2a07-4e93-ab6c-8def4c9d337b"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "527bc9a8-8089-418e-b3af-02ec2ba564a8": {"node_ids": ["5f40206c-8983-4814-82cf-a30ed1653005"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3430381a-36ed-4af0-8fb0-a69a4cad2f71": {"node_ids": ["caf8534f-2e36-4733-a6b6-c6f4a1bcdab4"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f03af23a-3f04-4a6a-b4d9-a76be3c94341": {"node_ids": ["0391c5de-e02e-4609-a7fd-362a8cc8b0ad"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "14c3f17a-e698-497c-b210-d886695b3e33": {"node_ids": ["112fee93-8b43-40dc-9d9f-1fba687316e0"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7a26cacb-98c4-4afd-9ff7-c6b5bb355452": {"node_ids": ["c709bd80-c1ed-4321-baa7-f8bddbca255e"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6c107940-dacd-478d-8ae7-3892d98b363e": {"node_ids": ["99902a08-880d-4582-8980-4f6aa34b1e0c"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "eaab5184-f4ae-427d-8c7a-bd578f3af84b": {"node_ids": ["629c5fe5-5a85-43d7-b22b-d2dd5193878d"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "34959cd4-0ed0-4ee7-92e8-1653709d40af": {"node_ids": ["34a88588-d004-400a-a20a-4230cfdc80dc"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f06d6ee1-15d6-4ba9-b4b8-3960c8331ad5": {"node_ids": ["f4f56b94-beb8-47d3-bbc8-76d58f0e9424"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "846f85c0-a3ab-44c6-8651-ec2674c95203": {"node_ids": ["5980591c-465f-4380-98c6-225cfce4d86f"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "460ad6f2-d7d4-41b1-9312-bce853313261": {"node_ids": ["98cd23cc-29fb-4c3e-9299-2350faf76146"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c0c3926f-926a-46c2-a857-201fdf3c1f9f": {"node_ids": ["247d3c20-f815-459b-8a4b-14715c1b4470"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "7b43be43-b163-4afb-ba8b-cb154b77f18b": {"node_ids": ["449de4f4-2838-4f8a-91e3-163d2791a443"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3869ed8a-0d65-41fd-b12e-718c213a3e1a": {"node_ids": ["272f9941-967e-4d26-a364-1a2f71fb5a05"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0b77da18-c592-462b-8e3a-7802ba789789": {"node_ids": ["d375ecdf-4391-4be8-bf11-79f10a808817"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d82ba1f6-00cd-45d0-8a23-1cdd514f4b76": {"node_ids": ["8b0e4b39-4c2d-4fda-b623-5cc79a00972c"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6815a8e3-8990-457d-acf1-a5b071d52279": {"node_ids": ["10f146a9-826f-48c7-ab97-a565123ec889"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a8537d82-ae43-4753-8f05-7314cb8f3060": {"node_ids": ["62676acf-ebaa-47d6-b59f-b23dd33e400a"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "403826af-9923-4fd1-9d07-298826214112": {"node_ids": ["389c4d42-8c56-425c-8ae9-e96af5f4e6e0"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8e017da7-b7f5-4496-85cb-c70927883978": {"node_ids": ["b96a31e6-1a19-4256-89a7-8e12605d1388"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8f04b3f1-ca9c-4e37-97ee-2678664b6e1b": {"node_ids": ["df02182f-0d74-4136-8849-31e4754b848d"], "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "fb037b14-42ca-4bf5-ae98-5b15aeca279e": {"node_ids": ["1277c920-ab5d-4832-afee-d31ed879ed35"], "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "398d11ac-139c-4898-9376-ea587b1b6beb": {"node_ids": ["dc29e746-5e1c-471d-9b55-a32747d22d0a"], "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "59f79ea5-8fe5-440d-a9f2-f393ed099c4b": {"node_ids": ["80400e38-6628-4a48-8c22-3c9491197dae"], "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "32d9bec3-a82c-4aa6-a914-0c020e67d597": {"node_ids": ["6852eb9b-b1a5-4a2a-931f-68f8ffe71fc2"], "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "993f9eaf-5d26-40b7-999c-36cb69d1f049": {"node_ids": ["5d715aea-69d5-4153-bcee-46633bda9915"], "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "74590093-b80c-4e63-93ca-81e46206bc93": {"node_ids": ["a700c3e7-8f79-4357-98e0-c651a7b25654"], "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "32bd21fe-629f-4daf-8fc3-4afe0509f881": {"node_ids": ["14de216d-9a24-4f4f-a8ee-c7344cedf8b8"], "metadata": {"page_label": "41", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "a6b6e7e4-2be4-435c-92a3-ac9923b57f38": {"node_ids": ["5a66d0b4-866e-4cb2-a97f-ad12e1d3b659"], "metadata": {"page_label": "42", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8cac21f2-b00b-4fb8-9797-92b9c7486b42": {"node_ids": ["59998dfa-6729-40ea-8031-96606fa0a10b"], "metadata": {"page_label": "43", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "440199b7-30fe-42c3-8ed4-693cc1b609d8": {"node_ids": ["ae65cc8e-42a8-496c-b7a9-5025f1030f8d"], "metadata": {"page_label": "1", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "03413021-6a62-4d62-ad9a-74c484ed44c3": {"node_ids": ["49765951-acc9-477a-b10f-70669d5354de"], "metadata": {"page_label": "2", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "237d9e10-aa76-4d47-b8a2-06e3039bb4fd": {"node_ids": ["a1cae6a9-1e2c-4e79-8b27-20e83a69aabe"], "metadata": {"page_label": "3", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "67b33e00-b8f0-4442-aefe-86b978bd0ab2": {"node_ids": ["bafac879-31e7-448e-ba13-45e1d170418b"], "metadata": {"page_label": "4", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "c39d4052-86dd-4298-8a29-cb9c1f2853b7": {"node_ids": ["9446492b-847e-44b4-a080-3ee05cf2a5fe"], "metadata": {"page_label": "5", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "586e5be1-7c2b-4905-96d6-8c67c6a6a396": {"node_ids": ["44380a57-8e3d-48e3-81db-fd8c7f9f3223"], "metadata": {"page_label": "1", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "f111f750-d3d4-41a8-a70e-7f3e770dd6bb": {"node_ids": ["d9add244-bb2b-4ada-8452-4e2a7c312cbd"], "metadata": {"page_label": "1", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "4379d747-adde-4c8a-833c-070d43a8ab68": {"node_ids": ["50f48c12-6b8d-4fdd-b9fd-a96562492262"], "metadata": {"page_label": "2", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a1933975-2a74-431b-84d2-b719aae7e0b6": {"node_ids": ["53e4ef57-0940-4da9-99e1-806ecbf78a14", "74355f3f-5536-4b10-bb35-f242b07c02b4"], "metadata": {"page_label": "3", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "bc20d038-a3df-4cb3-aa08-da60a686530c": {"node_ids": ["9a01e6d3-02b6-482e-a5f9-4c12ae55abe2", "09076d6f-deac-44ff-9043-856b05200c01"], "metadata": {"page_label": "4", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "1ba022d9-1910-4d58-9292-c6e2e286afdd": {"node_ids": ["92e29ca5-c238-4379-87ff-12df46df8ce5", "05287217-7012-4de0-8d93-1e34c9f5c9ca"], "metadata": {"page_label": "5", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "8b24b627-730b-4727-a207-173406e8f2c8": {"node_ids": ["4089cd26-b144-4b66-a2ed-eeb2afaf6176"], "metadata": {"page_label": "6", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "c062a14f-0d45-47f7-bf33-37df509f0c36": {"node_ids": ["ccfa3c8b-bc4e-4a77-889f-46045a0d871c"], "metadata": {"page_label": "7", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "6d23082c-9e48-4378-a24b-3cbe39a15041": {"node_ids": ["21eac55a-578a-430a-90da-231187312fd1", "d2ef04de-98cf-4aa5-9d99-7204b009cee9"], "metadata": {"page_label": "8", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "88614a32-8184-4f48-ae11-180764152229": {"node_ids": ["9102560e-e5d8-463e-bfc0-b7c96d12f652"], "metadata": {"page_label": "9", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "2a91da54-381f-4894-97ea-b458c5c36b1a": {"node_ids": ["8d71cfd9-fd97-4903-9348-1a10504cfd3a"], "metadata": {"page_label": "1", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a7b92871-3627-4688-a750-8fe0e24d44ee": {"node_ids": ["cbd168f6-c9a3-4b8d-9da2-db955f0eaac2", "5eb32720-b4e4-4506-9086-ae96314faeda"], "metadata": {"page_label": "2", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a8ba3f7f-97c8-4106-93d2-62463652285c": {"node_ids": ["e6219b3f-a39d-47ec-b656-d0595c64f767", "28f28f8f-159d-4d75-b827-f3e408c73fc6"], "metadata": {"page_label": "3", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "612a845b-fabc-4238-a395-b86c20516992": {"node_ids": ["fdd1e672-d277-408d-ad45-52719f5e0e7e", "89d00011-1f90-4292-ba4d-4b034f1720e5"], "metadata": {"page_label": "4", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "a72b1dc2-a328-4e4d-8e83-aaaf6818bffb": {"node_ids": ["7235da4c-0272-4eb0-b465-882be9aa2d95", "cf1a041a-56c2-40b8-a0db-bdcce0f4dffe"], "metadata": {"page_label": "5", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "5d4a065e-9ec3-45d4-b3e2-f46de9b1a88a": {"node_ids": ["80ce4ca9-4976-4b8a-9d25-70cfe6782251", "ae9dc2cd-63a4-4d92-994d-3d1970ff66a7"], "metadata": {"page_label": "6", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "64c9a836-d307-4a8e-b39e-abff1cbb375f": {"node_ids": ["b93b00b6-60e3-436e-9037-93b8c6e35b2d", "48a1ecb3-61c7-4ff3-bdcf-597f22fb5269"], "metadata": {"page_label": "7", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "91282546-0a72-489f-929d-ef4b3e54c8e5": {"node_ids": ["8dcdfa34-0e0b-43a2-9ef8-d96e2d71c76b", "2853e472-4f83-47d0-ab61-1ca309b85fdb"], "metadata": {"page_label": "8", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "7e30af77-048b-47dc-8fd4-4b116faef929": {"node_ids": ["2ebc6a39-2e9e-48e1-8959-b337fe52a2e1", "ca89f4fb-fdab-4e55-9ef2-ae0095e2f9ec"], "metadata": {"page_label": "9", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "65ff6d4c-ae78-4d60-85f2-a8eab0f0e59d": {"node_ids": ["a6fefe35-e676-424b-94a5-f9ed90fa6796", "0b4f0b27-d1bb-4e38-a9f7-64612f9633ed"], "metadata": {"page_label": "10", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "6666ba29-e20d-4d51-b14f-73047570a688": {"node_ids": ["6581fa2a-6f22-4d14-807d-1dc3c9d57e71", "93560818-1063-4e5b-8b0e-f667556824e2"], "metadata": {"page_label": "11", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "fbda4f36-9d86-4062-aab4-abe740974342": {"node_ids": ["1df335ee-2e38-4cc2-b24c-fd5e85e40239"], "metadata": {"page_label": "12", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "c37d8547-0ab5-469e-866c-6ad8057e0898": {"node_ids": ["eb5329f3-90b8-4b67-9b0d-8def02abefa5", "28235376-907d-4b85-b81d-7ba0e02ac834"], "metadata": {"page_label": "13", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "6fb240f5-7892-4b55-9df8-456b9801ff7e": {"node_ids": ["cfbdf1b5-84b2-45b7-8da1-9d0efc632dec", "fb676fd8-57a5-4775-9061-b2079a236b4b"], "metadata": {"page_label": "14", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "ba1e4248-a20c-49bf-a576-c8c147c4732c": {"node_ids": ["e0f64ecc-2c14-47a0-8418-957d7b99d112", "eac149cc-44ae-400f-8f4b-9a95e55c82d3"], "metadata": {"page_label": "15", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "4ac8f14d-284c-4f4c-8116-623e35e3f7d7": {"node_ids": ["9462e99f-c40a-454c-9614-b4e4b78afe01", "3c55ed81-1068-43a6-9cf2-b6ca6af99898"], "metadata": {"page_label": "16", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}}, "d619d37b-3ff8-4576-b98d-34b8fad836ed": {"node_ids": ["fc05915c-a5fd-4871-9177-12e5b9d7b0c4"], "metadata": {"page_label": "1", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "908b1f16-9bb4-411a-8b35-bbb8f930f879": {"node_ids": ["53bd0c2d-7eff-4804-b9b1-616fef25d0ce"], "metadata": {"page_label": "2", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "546fc9dc-0fde-40e0-9537-e6e5c31186b9": {"node_ids": ["6becf26b-b6f7-4bfb-8c61-c08500562432"], "metadata": {"page_label": "3", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "92b5cc25-c214-4dba-840d-9bfa04bee385": {"node_ids": ["c17a83f5-8b5f-43db-94c5-099f8aaf63ed"], "metadata": {"page_label": "4", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "723fe5f1-6e82-4424-aabd-ab97dcce7259": {"node_ids": ["2593845d-7c2f-48ad-9f45-ad0d4fcb277d"], "metadata": {"page_label": "5", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a13c7993-86be-4186-b21a-97deee7ee609": {"node_ids": ["c18ca6fc-7443-44c1-b2c9-13aef0a690aa"], "metadata": {"page_label": "6", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "4f5483df-1bc0-4338-8cde-3de8dc159f9b": {"node_ids": ["2e30de15-dc86-493a-81b7-340599d7b088"], "metadata": {"page_label": "7", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "141dfcd5-8933-4feb-b622-355b63da0810": {"node_ids": ["9e9c63ef-59e2-4684-9f43-48ab4746dc48"], "metadata": {"page_label": "8", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e85ca7b8-fe4a-440d-96f5-ca5af399a6b1": {"node_ids": ["3b24befc-0707-4219-8426-e30cda005683"], "metadata": {"page_label": "9", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ad170605-dec1-4c83-9d0c-c751e58b9158": {"node_ids": ["21b4e300-d2a7-47fc-8233-f7cd96b1dfcf"], "metadata": {"page_label": "10", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "73a1ee6a-2dcc-4cfb-af8b-17ee100418d7": {"node_ids": ["2826eb87-207c-4a1d-8e61-786452fb6d21"], "metadata": {"page_label": "11", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a1962fc8-78b9-4736-a8a4-f59c49e7f757": {"node_ids": ["9c29754c-cd01-48d0-a3c7-d9ec63bd8c77"], "metadata": {"page_label": "12", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "9a7722aa-c8fa-4ae7-9550-68227431ec06": {"node_ids": ["90fd8e6a-2111-4c13-84a6-09d299c748a6"], "metadata": {"page_label": "13", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "2232f507-dcf6-4017-a5aa-9863696276cc": {"node_ids": ["b43ba541-3621-42c7-96cd-d5e881690a32"], "metadata": {"page_label": "14", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c23249d5-c658-4b77-9d21-d3d7c8db9f33": {"node_ids": ["3127be99-956b-43f7-bb0e-34e3def44d98"], "metadata": {"page_label": "15", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "aea0c9d6-50dc-4122-8873-e0243fa71fae": {"node_ids": ["455ccdf2-99da-4422-8501-1de120940f6f"], "metadata": {"page_label": "16", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a5ffe358-ca03-43c0-acd0-df2a4a15b5f1": {"node_ids": ["a2c6f61c-cc8b-4484-8141-5714a36593c1"], "metadata": {"page_label": "17", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "aa7a174a-06ed-4b20-9406-8102c1d2a3d0": {"node_ids": ["50ed9f08-abe0-4731-ac2e-fb433043e111"], "metadata": {"page_label": "18", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e3ba9682-4ab4-4bcb-a285-245b86c4b0f6": {"node_ids": ["e603f6cf-8f7f-492c-9825-9d4bb136de94"], "metadata": {"page_label": "19", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "17044cf1-3cba-4e64-924b-8c4f17dcdbbc": {"node_ids": ["e222bad8-4fca-446b-9348-d451c7b3cc64"], "metadata": {"page_label": "20", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "bd510fca-76da-4c61-99b6-6a6b73363bf2": {"node_ids": ["16f1082e-d988-43a1-8466-1dafc5d68c29"], "metadata": {"page_label": "21", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "d21c8b43-0495-4978-a29f-a19a668c96fe": {"node_ids": ["d69d90b2-c0b6-4c2f-9728-41acdc10cb4c"], "metadata": {"page_label": "22", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "68883579-d952-4bb6-940f-c560a7c79061": {"node_ids": ["da957fb6-6240-4544-909f-3b0d5bd3f416"], "metadata": {"page_label": "23", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "82a5de47-9dc8-4815-9e62-c350c7174de3": {"node_ids": ["c3fccf1c-f0da-49af-9565-f331772875d6"], "metadata": {"page_label": "24", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c4cdcfc1-5755-4ac5-afd3-351c31973a90": {"node_ids": ["9a75357b-2166-47a1-bbe4-9a66b634d79c"], "metadata": {"page_label": "25", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "79246a62-5b50-4804-a2a0-783f8f7adf07": {"node_ids": ["d4874a4c-103f-4408-8369-0c5c2ae2ae53"], "metadata": {"page_label": "26", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1f3099c8-70b3-4538-ba1e-1cc9fbedfdbe": {"node_ids": ["dc4f425e-34a5-4e97-bea7-a87379f84dc3"], "metadata": {"page_label": "27", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "d92d0d5a-c372-4dec-85cf-f91964c59b48": {"node_ids": ["b3d63e96-2d58-4751-a339-09fa28c4e63e"], "metadata": {"page_label": "28", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "8365841a-87fb-4f54-9bff-25f4934e2e0b": {"node_ids": ["1187add3-24ee-44d9-979d-75e9cf7e1c21"], "metadata": {"page_label": "29", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c35feddc-cc0c-46a6-9640-fa04d01d06a6": {"node_ids": ["bd8e2c4c-8ea7-401a-a725-5631809a01b4"], "metadata": {"page_label": "30", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "8dd08ac1-1070-4322-aaf3-51b9b13eb02f": {"node_ids": ["af022fe9-0ebc-45e7-9460-f148a41939ed"], "metadata": {"page_label": "31", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b358d1b1-fa5f-436e-ab1d-3857285aaeb2": {"node_ids": ["ebb7d8ba-57cf-4ec8-a0b9-52fa481f2947"], "metadata": {"page_label": "32", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "2473ae9e-88cb-4582-a2b2-b403365babcb": {"node_ids": ["5cca41cc-aa22-448d-9201-a3c2b08895d8"], "metadata": {"page_label": "33", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "edd30ff5-5008-4912-ab2b-a969b3763803": {"node_ids": ["ee0f90ed-af7d-424a-a754-862d39a2a532"], "metadata": {"page_label": "34", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "a064c6d7-b35d-4099-9187-688d7277681d": {"node_ids": ["2deb9f57-8b71-46db-96a0-8028214b2f42"], "metadata": {"page_label": "35", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c75a77bc-7097-4783-8364-d1fa0f983260": {"node_ids": ["1e74dd6f-2ace-49b8-a9bc-01272b514a2c"], "metadata": {"page_label": "36", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "454d7335-ea9a-4977-b716-d1f46b56cab1": {"node_ids": ["c535587b-27c1-447a-86c1-c69a443e422a"], "metadata": {"page_label": "37", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "6dfcbd71-532c-40be-8e24-7ec825b428bf": {"node_ids": ["45287d43-7877-4d0a-bdc6-f6c46fb1af21"], "metadata": {"page_label": "38", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "138b8875-b4a8-473b-8109-2f072a1975af": {"node_ids": ["318f174b-2b2d-4557-b711-67875c913166"], "metadata": {"page_label": "39", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "0187e278-65a4-4f29-aea9-aa74a58577a1": {"node_ids": ["869cb580-35c9-4c95-bf38-be22f21c7afb"], "metadata": {"page_label": "40", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "3b3daa7e-235e-4eb6-9e6a-a29121708ac3": {"node_ids": ["775b2667-f71a-4c26-8dc5-8591932367c5"], "metadata": {"page_label": "41", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "e65c58fc-469a-463c-b3b6-bdc6c9abe42c": {"node_ids": ["630ecad1-4ded-45de-adfd-aa3dfeaaae56"], "metadata": {"page_label": "42", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ef642fea-03cd-43c0-9e74-8e1c919f6dea": {"node_ids": ["cd15589c-d5eb-42e2-891e-d967d2b066e6"], "metadata": {"page_label": "43", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "ae721862-0ebf-4fe6-bd3e-b38e96e1887e": {"node_ids": ["e7afd809-5666-4e72-ad9e-2dc3150d23b0"], "metadata": {"page_label": "44", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "055bbde9-af1a-4447-8b3e-f9a23337e3e8": {"node_ids": ["a80664c6-ebfe-4b14-84a0-8eb66d5c8c45"], "metadata": {"page_label": "45", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "fd9e85d0-0638-4016-85bc-781aaf299e61": {"node_ids": ["b43e4661-1f31-4327-9df2-92a3474d77fd"], "metadata": {"page_label": "46", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "34ffd4ea-e4b3-45ad-b9fd-0375d4965494": {"node_ids": ["be50ef6d-bd78-4ac5-bb78-6d1704d73646"], "metadata": {"page_label": "47", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "3c5dd1e1-59e7-4356-b077-4168a9cbf063": {"node_ids": ["6b50034d-57da-409a-8636-3110ff079d0b"], "metadata": {"page_label": "48", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "10cd83a7-0e3f-4c97-9df2-95ba80cc75aa": {"node_ids": ["eb60e00a-5baa-4c84-98e9-165200151741"], "metadata": {"page_label": "49", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "b9c79cf9-fdc0-48e5-8ffc-4c3f9573cfe4": {"node_ids": ["2e8495b1-6dcc-4db5-b24b-bef3b48a5e1c"], "metadata": {"page_label": "50", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "791c882b-7d60-435e-9516-19ef92408ac3": {"node_ids": ["55436eb4-d968-4007-8536-0f4ec072ac0d"], "metadata": {"page_label": "51", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "2cd817a6-4b76-4efd-b0ea-4f239c31929c": {"node_ids": ["22b3c4ad-cec5-4550-8815-ac37aedea246"], "metadata": {"page_label": "52", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "38e22a6b-20d5-4dff-92ef-487ce4aa504f": {"node_ids": ["be4671b1-3357-4846-8843-d8ebebfc1ad7"], "metadata": {"page_label": "53", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "70f38bac-f675-49e6-abfe-959aeef2d9df": {"node_ids": ["5f1f276f-be06-4632-8f23-e769d8ebf3ba"], "metadata": {"page_label": "54", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "165f5c1a-6c30-4164-91ea-2363ffc670ed": {"node_ids": ["8891ef0a-513b-4187-8a46-92b6bb9da132"], "metadata": {"page_label": "55", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "f5512f29-6383-4f09-96a1-483f4f4c8984": {"node_ids": ["0dd73715-e49b-4c4f-8966-b02921a820ba"], "metadata": {"page_label": "56", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "1f67bce7-25c5-4fd3-8afc-855a96fb397c": {"node_ids": ["147447f6-993c-40a8-8ecd-0db4ab4aff20"], "metadata": {"page_label": "57", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}}, "c3984c7e-fe57-4a4d-a681-a3c0c0330e9a": {"node_ids": ["b7689ed0-6158-4268-a602-8665510d12f2"], "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2ee6db9b-8731-41f0-9cd3-dd5124a9a6c8": {"node_ids": ["76e9969f-8136-401a-9ef5-af2f21264143"], "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b5ee88d0-aa46-45b2-9343-3401459a6a11": {"node_ids": ["c0b97ba8-391d-4f3c-9118-97894c63a1e8"], "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d066b393-bcf6-4afc-a495-bd7bdd2a60f4": {"node_ids": ["ba0709be-e72e-4f4b-822f-173a6544b468"], "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "402aa389-93ed-4859-b728-cca0b06c2e23": {"node_ids": ["9c926f93-9c8d-4619-8bdd-9a72fad56ba2"], "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "c695dd04-7924-43c2-8629-cef0bc2b5b6c": {"node_ids": ["e2e7a163-cddc-44ec-baef-4b9129405fcd"], "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "2a0e3e61-08e5-4c7f-864e-133a8c837076": {"node_ids": ["6cc5ec7b-25ea-4b83-8d96-d8a33ea22717"], "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3341bd3a-269a-45c0-b4e2-25c63536366f": {"node_ids": ["58973a7b-4e16-43f6-87b4-06d225ff99f1"], "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "af29ff82-0557-4dd8-873d-019d3176b8b4": {"node_ids": ["a6745567-4f47-4526-81ad-1320e35b927d"], "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "849b24af-1f5d-4e6f-9d14-d2088d8f64c3": {"node_ids": ["ea418d6b-1722-48b8-a063-aacb2ccb0fbb"], "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8cea9426-2ea4-4553-bb70-ae788f4e6438": {"node_ids": ["ed4db473-8604-4cb2-a146-db94721096e1"], "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "debf1345-c768-4667-9aa5-41d6df9777b0": {"node_ids": ["ca5afbec-8a80-46ee-aad9-215281b903bf"], "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "3572ae19-ba2a-4522-a92b-001073f80a8e": {"node_ids": ["44fc8dfa-dc1e-43f2-bd55-933633b81971"], "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "57eeb6ae-3b7b-4387-afae-28978598034d": {"node_ids": ["5ad7a0ec-f1e4-445d-9b54-e34803834caf"], "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "845c37f0-1c96-4e7b-83fc-a508c5975806": {"node_ids": ["34d3b7f3-c50e-42da-b667-e7ae8797ba8e"], "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6f430967-d488-4621-95cd-3ec388606d51": {"node_ids": ["dce86f0d-2a97-4212-9d19-624885eb718e"], "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "082b5a6a-0e33-40d8-9d1f-48efc246067a": {"node_ids": ["0f6c88af-4262-4786-9ddc-908868397517"], "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "d09c9d25-f318-4967-ae59-5d111f594797": {"node_ids": ["ed02a7df-85ee-4f48-9683-2ae0f9f4a030"], "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "dcad46f6-b0e8-438f-b805-e42ea47fad96": {"node_ids": ["b5390953-4352-455d-b32b-bb85bea1e9df"], "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "6088de04-f16b-4222-bebd-35302ace5246": {"node_ids": ["d7f3792c-e598-4a91-b809-e199816ec83a"], "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4a8c3924-156b-4e2d-ab21-3e303e9f46d7": {"node_ids": ["401519fd-b985-4547-9063-7174d24b6844"], "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "289c2ef1-b25a-43b9-afed-8a5294e3e4b6": {"node_ids": ["2866b90f-bc65-4a2f-a11a-a5914f8f9fe5"], "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "80d9d0ed-12ab-4d47-a7d5-6bef7b6ecc9b": {"node_ids": ["0c5e44aa-c0c5-4531-afba-dc83567edcf4"], "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "b1aff601-c45b-4391-82d4-ff4e37b0d481": {"node_ids": ["a3352c8d-dae6-41b4-8a45-8e3a81a29d7f"], "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8e433381-e30f-466e-9510-10bf7a7c4ae1": {"node_ids": ["002bd2a1-8e8d-4c75-bda4-78eb57049346"], "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "bfb6d8ae-2fff-4c44-84c3-525d6b2e8f08": {"node_ids": ["9e23c077-db35-4fd7-a875-5dbf941e7521"], "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "5d772de0-2e48-413d-be80-79872aa1e894": {"node_ids": ["b4407c4c-72ae-4e82-91c5-4faa365a548e"], "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "53eef160-4db3-4a7a-a080-a5d081c8a53c": {"node_ids": ["2ec27a66-0574-4f58-9fd6-d9ac490b723d"], "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "ee0e1cac-460b-436d-bc12-f5b33afbae1c": {"node_ids": ["8366257f-8a91-44a2-8f2a-3903081b254d"], "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "0031bdef-6173-4c2e-bae6-b53c75aa2206": {"node_ids": ["6680f73a-7084-46af-a01c-3246db7bde3e"], "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "f5e41dab-a87f-4eff-bdb3-6e55463e0bc1": {"node_ids": ["6c4cf921-ec59-4587-983e-ffd583965cdb"], "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "4bd673ac-83c5-4433-a994-a20384e925db": {"node_ids": ["5d7d7ac1-0274-4480-9208-2cce9929d57f"], "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "eff56f13-4e45-4d67-b1ec-50e48eefd5a2": {"node_ids": ["e7151fcd-7a33-4e3b-89a8-ec1a54c10f23"], "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "249eebf2-056f-4eb2-8958-e97b1ae316e1": {"node_ids": ["a50ea658-c80e-4a49-aaf4-b9f2dc12fdfe"], "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "8f5a9d33-2104-4304-8a9c-2a543f06316f": {"node_ids": ["5dc03a9c-7891-4c82-8f80-a9ed76bdf824"], "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "85b24a1d-69d6-4cc2-9dc9-07942e75635e": {"node_ids": ["175caa80-83ae-443a-b2e9-c24a92d4a3f8"], "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "89401a55-9efe-4aed-a9d7-2dc4d641c742": {"node_ids": ["4e57fefe-2385-4fb7-8ab9-15c8342bd303"], "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "139cc217-6db4-41f6-9c4b-a39a37b7b869": {"node_ids": ["5458f767-713a-473b-99e6-43fd549f7275"], "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}, "bfc4c9c5-a0a8-4603-b344-b4d4863c2e0e": {"node_ids": ["ec91d6de-3bea-4c42-99ff-ebe5375ba932"], "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}}}, "docstore/data": {"44a4516f-48d8-42b6-bb6f-58a4abfdeb9d": {"__data__": {"id_": "44a4516f-48d8-42b6-bb6f-58a4abfdeb9d", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e06d7e7e-a58b-461c-9f03-8b7a580fc463", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "076466310f14ae7b9c22d778965d073a71d9e1909d3696d05f6df695c5a7b423", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 04\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79fd0146-12d1-4ff1-8076-8f75c79acb1d": {"__data__": {"id_": "79fd0146-12d1-4ff1-8076-8f75c79acb1d", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6422cd60-2321-4f9f-a31e-adf7b3c8e342", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "29d504f7f8309daf72ffcd5f87ef33a1e6f886955dd138322b94f5f2ee58f03d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions\n\n* A **regular expression** can be constructed using the following rules:\n 1. \\( a \\) is a regular expression for some \\( a \\) in the alphabet \\(\\Sigma\\),\n 2. \\(\\varepsilon\\) is a regular expression\n 3. \\(\\emptyset\\) is a regular expression\n 4. If \\( R_1 \\) and \\( R_2 \\) are regular expressions, \\( R_1 \\cup R_2 \\) is a regular expression\n 5. If \\( R_1 \\) and \\( R_2 \\) are regular expressions, \\( R_1 \\circ R_2 \\) or \\( R_1 R_2 \\) is a regular expression\n 6. If \\( R \\) is a regular expression, \\( R^* \\) is a regular expression\n\n* Note that to use rules 4, 5, or 6, you need to have regular expressions \\( R_1 \\), \\( R_2 \\), or \\( R \\) first which can only be constructed from rules 1, 2, or 3\n\n* This is a recursive definition\n - Once you get regular expressions, you can apply rules 4, 5, or 6 multiple times to obtain more and more regular expressions", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 887, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0aa9bd7a-3e07-47d1-a24c-ad2461cf4652": {"__data__": {"id_": "0aa9bd7a-3e07-47d1-a24c-ad2461cf4652", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ccea239e-3278-4217-bcc7-0073fb4c1414", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "8abbba596e938fef5bd984877e46ec246122c0d869ad8048f0c15654d0dfab56", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression Examples\n\n* Suppose $$\\Sigma = \\{0, 1\\}$$\n - From rule 1, we have:\n * `0` is a regular expression\n * `1` is a regular expression\n - From rule 2, we have:\n * $$\\varepsilon$$ is a regular expression\n - From rule 3, we have:\n * $$\\emptyset$$ is a regular expression\n* So far, we have four regular expressions, `0`, `1`, $$\\varepsilon$$, and $$\\emptyset$$\n - From rule 4, $$0 \\cup 1$$ is a regular expression\n - From rule 5, `11` is a regular expression\n - From rule 6, `0*` is a regular expression\n* We can keep building larger and larger regular expressions by applying rules 4, 5, and 6 multiple times", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 640, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "404efbc0-6dbc-487a-9427-d3e70df83c98": {"__data__": {"id_": "404efbc0-6dbc-487a-9427-d3e70df83c98", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "792f02b9-7eb7-471d-aaa6-f6169baedd5d", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "26e08ade6422621fff3c3db13a484a5ea286cfdc39a20c5c0be5ccf9c4d935d8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression Examples\n\n* Suppose $$\\Sigma = \\{0, 1\\}$$\n - From rule 1, 0 and 1 are regular expressions\n - From rule 4, $$0 \\cup 1$$ is a regular expression\n - From rule 6, $$(0 \\cup 1)^*$$ is a regular expression\n - From rule 5, 01 is a regular expression\n - From rule 5, 011 is a regular expression\n - From rule 5, $$(0 \\cup 1)^*011$$ is a regular expression\n - From rule 5, $$(0 \\cup 1)^*011(0 \\cup 1)^*$$ is a regular expression", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 447, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3f0421dc-ab65-4734-a71c-4dc7aa417ed4": {"__data__": {"id_": "3f0421dc-ab65-4734-a71c-4dc7aa417ed4", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2fc29119-41e0-4bbc-afb7-4ab7cf1e3246", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "f94ec1b1e1cf5dd2756901dcd9f7b632339070ff14fd2815af55bec48f98794b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions\n\n* In arithmetic, an arithmetic expression can be used to represent its object (number) \n - \\(5 + 12\\) is an arithmetic expression \n - \\(5 + 12\\) can be used to represent 17 \n - We usually write \\(5 + 12 = 17\\) \n\n* In theory of computation, a regular expression can be used to express a language \n - Let \\(\\Sigma = \\{0, 1\\}\\) \n - The regular expression \\(0 = \\{0\\}\\) \n - The regular expression \\(1 = \\{1\\}\\) \n - The regular expression \\(\\varepsilon = \\{\\varepsilon\\}\\) \n - The regular expression \\(\\emptyset = \\{\\}\\) \n - Suppose regular expressions \\(R_1 = A\\) and \\(R_2 = B\\) for languages \\(A\\) and \\(B\\), the regular expression \\(R_1 \\cup R_2 = A \\cup B\\) \n - Suppose regular expressions \\(R_1 = A\\) and \\(R_2 = B\\) for languages \\(A\\) and \\(B\\), the regular expression \\(R_1 R_2 = AB\\) \n - Suppose the regular expression \\(R = A\\) for a language \\(A\\), \\(R^* = A^*\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 916, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "811e87e4-fa91-4575-8784-703dbf9d7e71": {"__data__": {"id_": "811e87e4-fa91-4575-8784-703dbf9d7e71", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "09266a16-fa2a-4050-a53b-4a3b45e4ffe1", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "2412a99583c3976d403c29fa19d98a43a38a36efaa492bf9c7e008f940d97859", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (Other Notations)\n\n* $R^{+}$ is a shorthand notation for $RR^{*}$ for a regular expression $R$\n - All strings that are 1 or more concatenations of strings from $R$\n - Examples:\n * $1^{+} = 11^{*}$\n * $(0 \\cup 1)^{+} = (0 \\cup 1)(0 \\cup 1)^{*}$\n* $R^{k}$ is a shorthand notation for the concatenation of $k$ $R$\u2019s with each other\n - Examples:\n * $1^{5} = 11111$\n * $(0 \\cup 1)^{3} = (0 \\cup 1)(0 \\cup 1)(0 \\cup 1)$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9a2db097-d90e-43cf-abd6-c353f326e1b1": {"__data__": {"id_": "9a2db097-d90e-43cf-abd6-c353f326e1b1", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c9eacbf1-9acb-4280-baf9-e66191bd1537", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "14fcc4c14939fcca748602c5a155ba0b3d7064cce1a2c0037bd5b507ed14bd69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (By Examples)\n\n* A regular expression expresses a language:\n * \\(0 \\cup 1\\)\n * \\(0 \\cup 1 = \\{0\\} \\cup \\{1\\} = \\{0, 1\\}\\)\n * A language that consists of two strings, 0 and 1\n * \\(0^*\\)\n * \\(0^* = \\{0\\}^*\\)\n * Recall that \\(A^* = \\{x_1 x_2 \\ldots x_k \\mid k \\geq 0 \\text{ and each } x_i \\in A\\}\\)\n * \\(\\{0\\}^* = \\{\\varepsilon, 0, 00, 000, 0000, 00000, \\ldots\\}\\)\n * \\(0^*\\) expresses the language that consists of all strings that contain nothing but 0s including the empty string\n * \\((0 \\cup 1)0^*\\)\n * \\((0 \\cup 1)0^* = \\{0, 1\\} \\circ 0^* = \\{0, 1\\} \\circ \\{\\varepsilon, 0, 00, 000, \\ldots\\}\\)\n * Recall that \\(A \\circ B = \\{xy \\mid x \\in A \\text{ and } y \\in B\\}\\)\n * \\(\\{0, 1\\}0^* = \\{0, 1, 00, 10, 000, 100, 0000, 1000, \\ldots\\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 788, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "918db2c8-8ecd-4aa4-b8ea-cd5b2eade6c4": {"__data__": {"id_": "918db2c8-8ecd-4aa4-b8ea-cd5b2eade6c4", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "896d0f91-b641-4b85-92e0-2cbb50067abb", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e94016f79adfadc9323b79f142cd89cdc9641ac08ded3866ed5263807bbb8256", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (By Examples)\n\n* A regular expression expresses a language:\n * $ (0 \\cup 1)^* $\n * $ (0 \\cup 1)^* = \\{0,1\\}^* = \\{\\varepsilon, 0, 1, 00, 01, 10, 11, 000, 001, \\ldots \\} $\n * This is the set of all strings over 0 and 1\n * We generally use $\\Sigma^*$ instead of $ (0 \\cup 1)^* $\n* $0^* 1 0^*$\n * $0^* 1 0^* = \\{0\\}^* \\circ \\{1\\} \\circ \\{0\\}^*$\n * $\\{0\\}^*$ is a language consisting of all strings containing zero or more 0s ($\\{\\varepsilon, 0, 00, 000, \\ldots \\}$)\n * $0^* 1 0^* = \\{ w \\mid w \\text{ contains a single } 1 \\}$\n* $\\Sigma^* 1 \\Sigma^*$\n * $\\Sigma^* 1 \\Sigma^* = \\Sigma^* \\circ \\{1\\} \\circ \\Sigma^*$\n * $\\Sigma^*$ is the language consisting of all strings over $\\Sigma$\n * $\\Sigma^* 1 \\Sigma^* = \\{ w \\mid w \\text{ has at least one } 1 \\}$\n* $\\Sigma^* 001 \\Sigma^*$\n * $\\Sigma^* 001 \\Sigma^* = \\Sigma^* \\circ \\{001\\} \\circ \\Sigma^*$\n * $\\Sigma^* 001 \\Sigma^* = \\{ w \\mid w \\text{ contains the string } 001 \\text{ as a substring} \\}$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 984, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "316ddb63-1bd0-4ae5-a43b-a146fdae8048": {"__data__": {"id_": "316ddb63-1bd0-4ae5-a43b-a146fdae8048", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7fe48277-beda-4d44-8b8f-97dd5e58eba5", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "26c35128ef6962ea9c3e8434a574a7484f3af733767ff60a0a97cd2045aa860d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (By Examples)\n\n* A regular expression expresses a language:\n * $$1^*(01^+)^*$$\n * $$1^*(01^+)^* = \\{1\\}^* \\circ (01^+)^*$$\n * $$\\{1\\}^*$$ is a language consisting of all strings containing zero or more 1s \n $$(\\{\\varepsilon, 1, 11, 111, \\ldots\\})$$\n * $$01^+ = \\{0\\} \\circ \\{1\\}^+ = \\{0\\} \\circ (\\{1\\} \\circ \\{1\\}^*) = \\{01, 011, 0111, \\ldots\\}$$\n * $$(01^+)^* = \\{01, 011, 0111, \\ldots\\}^* = \\{\\varepsilon, 01, 0101, 01011, 01101, 011011, \\ldots\\}$$\n * $$1^*(01^+)^* = \\{w \\mid \\text{every } 0 \\text{ in } w \\text{ is followed by at least one } 1\\}$$\n\n* $$(\\Sigma \\Sigma)^*$$\n * $$\\Sigma \\Sigma = \\Sigma \\circ \\Sigma = \\{0,1\\} \\circ \\{0,1\\} = \\{00, 01, 10, 11\\}$$\n * $$(\\Sigma \\Sigma)^* = \\{00, 01, 10, 11\\}^*$$\n * $$(\\Sigma \\Sigma)^* = \\{w \\mid w \\text{ is a string of even length}\\}$$\n\n* $$(\\Sigma \\Sigma \\Sigma)^*$$\n * $$\\Sigma \\Sigma \\Sigma = \\{0,1\\} \\circ \\{0,1\\} \\circ \\{0,1\\} = \\{000, 001, 010, 011, 100, 101, 110, 111\\}$$\n * $$(\\Sigma \\Sigma \\Sigma)^* = \\{000, 001, 010, 011, 100, 101, 110, 111\\}^*$$\n * $$(\\Sigma \\Sigma \\Sigma)^* = \\{w \\mid \\text{the length of } w \\text{ is a multiple of } 3\\}$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1156, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "606690fa-f540-43bc-a6c5-9189b00cd867": {"__data__": {"id_": "606690fa-f540-43bc-a6c5-9189b00cd867", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "53dbe867-ff8e-4766-bec3-82ceb839b2ae", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "a66ed61138c2f87837e733ec2ee7948f33f55bde9b908fe138b93bf37668bccc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (By Examples)\n\n* A regular expression expresses a language:\n * \\(01 \\cup 10\\)\n * \\(01 \\cup 10 = (\\{0\\} \\circ \\{1\\}) \\cup (\\{1\\} \\circ \\{0\\}) = \\{01\\} \\cup \\{10\\} = \\{01, 10\\}\\)\n * \\(0\\Sigma^*0 \\cup 1\\Sigma^*1 \\cup 0 \\cup 1\\)\n * \\(0\\Sigma^*0 = \\{0\\} \\circ \\Sigma^* \\circ \\{0\\}\\) is a set of all strings that start and end with 0\n * \\(1\\Sigma^*1\\) is a set of all strings that start and end with 1\n * \\(0\\Sigma^*0 \\cup 1\\Sigma^*1 \\cup 0 \\cup 1 = \\{ w \\mid w \\text{ starts and ends with the same symbol} \\}\\)\n * \\((0 \\cup \\varepsilon)1^*\\)\n * \\(0 \\cup \\varepsilon = \\{0\\} \\cup \\{\\varepsilon\\} = \\{0, \\varepsilon\\}\\)\n * \\(1^* = \\{\\varepsilon, 1, 11, 111, \\ldots\\}\\)\n * \\((0 \\cup \\varepsilon)1^* = \\{0, \\varepsilon\\} \\circ \\{\\varepsilon, 1, 11, 111, \\ldots\\}\\)\n * \\((0 \\cup \\varepsilon)1^* = \\{\\varepsilon, 0, 01, 011, \\ldots, 1, 11, 111, \\ldots\\}\\)\n * \\((0 \\cup \\varepsilon)1^* = 01^* \\cup 1^*\\)\n * \\((0 \\cup \\varepsilon)(1 \\cup \\varepsilon) = \\{0, \\varepsilon\\} \\circ \\{1, \\varepsilon\\} = \\{\\varepsilon, 0, 1, 01\\}\\)\n * \\(1^*\\emptyset = \\{1\\}^* \\circ \\emptyset = \\emptyset\\)\n * \\(\\emptyset^* = \\{\\varepsilon\\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1164, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "747b4f88-e0a2-4b3d-83b1-a628af1df150": {"__data__": {"id_": "747b4f88-e0a2-4b3d-83b1-a628af1df150", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fba38f01-4c6f-44a2-980c-196e7ca81b26", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "0e932856d50b38c3c655c645f2f4a1f8be385712ba415496769640511623a352", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Operator Precedences and Identities\n\n* Operator Precedences:\n - `*` has the highest precedence.\n - `\u222a` has the lowest precedence.\n\n* Some properties:\n - $$R \\cup \\emptyset = R$$ \n Adding the empty language to any other language will not change it\n - $$R \\circ \\varepsilon = R$$ \n Joining the empty string to any string will not change it\n - $$R \\cup \\{\\varepsilon\\} \\neq R$$ \n If $$R = \\{0, 1\\}, R \\cup \\{\\varepsilon\\} = \\{0, 1, \\varepsilon\\} \\neq R$$\n - $$R \\circ \\emptyset \\neq R$$ \n If $$R = \\{0, 1\\}, R \\circ \\emptyset = \\{0, 1\\} \\circ \\emptyset$$ \n $$\\{0, 1\\} \\circ = \\{xy \\mid x \\in \\{0, 1\\} \\text{ and } y \\in \\emptyset\\} = \\emptyset$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "158d60a9-2cb1-4bb7-ad16-fe7edaf6a03c": {"__data__": {"id_": "158d60a9-2cb1-4bb7-ad16-fe7edaf6a03c", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "418558c8-88f2-45b7-9d76-49d3c67ea76d", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "c0b3e7609600c2eb0d6059dd3efffdd6d2cd5cb06c898cc496ea7a00266df302", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: Regular Expression\n\n* **Problem:** Write a program to evaluate a string representing a floating-point number\n * `72` \u219d true\n * `35.9` \u219d true\n * `20 67` \u219d false\n * `+7.` \u219d true\n * `71a3` \u219d false\n * `-.29` \u219d true\n\n* **Solution**\n * Create a DFA that recognize a set of all strings that are valid floating-point numbers and turn it into a program\n * It would be great if there is an easy way to do this\n * For now, can we create a regular expression that express the set of all valid floating-point representations?\n\n $$\n (+ \\cup - \\cup \\varepsilon)(D^{+} \\cup D^{+} . D^{*} \\cup D^{*} . D^{+})\n $$\n\n where \\( D = \\{0, 1, 2, \\ldots, 9\\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 663, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7aa6e472-c355-4fb6-857f-c2f67d407d01": {"__data__": {"id_": "7aa6e472-c355-4fb6-857f-c2f67d407d01", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c587750e-9ec3-48b3-b9f2-b450db98e029", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "1723e9cfef4509a164f4e712065e0f66b250d167d208254f3a803989f887bbee", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression and Finite Automata\n\n* Now we know that a regular expression can be used to express a language \n* **Question:** Is language expressed by a regular expression regular? \n - Let\u2019s try to prove that a regular expression expresses a regular language \n* Recall a regular expression: \n - A regular expression is defined **recursively** (those 6 rules) \n - So, we need to show that a regular expressions constructed from those rules expresses a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 483, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dbbe38c3-bf2e-4108-bf15-c347dee401c4": {"__data__": {"id_": "dbbe38c3-bf2e-4108-bf15-c347dee401c4", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e881be5a-63d4-4f1b-a997-10fac13decea", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "db3b2b0c02eebcd2c59b33cd1851af8b853f071d91181e02be027faacd678f27", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lemma 1.55\n\n* From rule 1: \\(a\\) for some \\(a\\) in the alphabet \\(\\Sigma\\) is a regular expression\n - We need to show that a language expressed by a regular expression generated from this rule is regular\n - Given a symbol \\(a \\in \\Sigma\\), according to this rule, \\(a\\) is a regular expression\n - \\(a\\) expresses the language \\(\\{a\\}\\)\n - Is \\(\\{a\\}\\) regular?\n - Can we construct a DFA that recognizes the language \\(\\{a\\}\\)?\n - This is an NFA that recognizes \\(\\{a\\}\\)\n\n \n\n\n \n \n\n\n \n\n \n\n\n \n
\\(a\\)
\\(q_1\\)\u2192\\(q_2\\)
\n\n* For every NFA, there is an equivalent DFA\n* Thus \\(\\{a\\}\\) is a regular language\n* Therefore, \\(a\\) expresses a regular language\n\n* A regular expression constructed by rule 1 expresses a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 840, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "408c6a88-fd3f-48c9-9bd4-a59b52643002": {"__data__": {"id_": "408c6a88-fd3f-48c9-9bd4-a59b52643002", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d50c5b18-20d1-4d72-9666-c534ccfba462", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "837c96d10ad30929fb231917a8a643dcb3df60e35eded73f1ada18fd36a7f617", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lamma 1.55\n\n* From rule 2: \\( \\varepsilon \\) is a regular expression\n - Again, we need to show that a language expressed by \\( \\varepsilon \\) is regular\n - Recall that \\( \\varepsilon \\) expresses the language \\(\\{\\varepsilon\\}\\)\n - Is \\(\\{\\varepsilon\\}\\) regular?\n - Can we construct a DFA that recognizes the language \\(\\{\\varepsilon\\}\\)?\n - This is an NFA that recognizes \\(\\{\\varepsilon\\}\\)\n\n \n\n\n \n \n\n \n
\n \n\n\n \n \n \n
q1
\n\n
\n\n - For every NFA, there is an equivalent DFA\n - Thus, \\(\\{\\varepsilon\\}\\) is a regular language\n - Therefore, \\( \\varepsilon \\) expresses a regular language\n\n* A regular expression constructed by rule 2 expresses a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 817, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "08e345af-cf1a-4376-bc95-e1ce041ffa59": {"__data__": {"id_": "08e345af-cf1a-4376-bc95-e1ce041ffa59", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0cba35c9-da6c-48dd-b73c-684131dea98e", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "7439491767f199acb00c7abf0a906477e71f492c8f91d3929da1081c0b79f1c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lamma 1.55\n\n* From rule 3: \u2205 is a regular expression\n - Again, we need to show that a language expressed by \u2205 is regular\n - Recall that \u2205 expresses the language $\\{\\}$\n - Is $\\{\\}$ regular?\n - Can we construct a DFA that recognizes the language $\\{\\}$?\n - This is an NFA that recognizes $\\{\\}$\n\n \n\n\n \n \n \n
q
\n\n - For every NFA, there is an equivalent DFA\n - Thus, \u2205 is a regular language\n - Therefore, \u2205 expresses a regular language\n\n* A regular expression constructed by rule 3 expresses a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 565, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8149ef63-c626-4ba9-8054-4a976acb6c70": {"__data__": {"id_": "8149ef63-c626-4ba9-8054-4a976acb6c70", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f77de622-da90-4b79-bc65-9e201d49e4c9", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "f656fd24e84579dcc7ce09bf9845f1e930cea6d2ef932c3326cce837ed4798ab", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lemma 1.55\n\n* Recall that you cannot use rules 4, 5, and 6 to create a new regular expressions unless you already have some regular expressions created by rules 1, 2, or 3\n* We already prove that each regular expression created by rules 1, 2, or 3 expresses a regular language\n* For rule 4:\n - \\( R_1 \\) and \\( R_2 \\) are regular expressions that express regular languages (from rules 1, 2, or 3)\n - Recall that \\( R_1 = A \\) and \\( R_2 = B \\) for some languages \\( A \\) and \\( B \\), \n \\( R_1 \\cup R_2 = A \\cup B \\)\n - We already prove that if \\( A \\) and \\( B \\) are regular languages, \\( A \\cup B \\) is regular (regular language is closed under union operation)\n - Thus, a regular expression obtain by rule 4 express a regular language\n* Same for rules 5 and 6\n - Regular language is closed under concatenation and star operations", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 844, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "20632824-8363-4f70-8edf-a3eee67a88df": {"__data__": {"id_": "20632824-8363-4f70-8edf-a3eee67a88df", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "863d7868-1ee3-4f05-9c72-7f1d46d6b063", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "2999436c4bcf44955e99217fddd17bf90195aee99a50a19363744fe3269636e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lemma 1.55\n\n> **Lemma 1.55** \n> If a language is described by a regular expression, then it is regular.\n\n* We just proved the above lemma \n* By proving the above lemma, it gives us a tool to construct an NFA that recognizes the language expressed by a regular expression \n - Based on how we prove that regular language is closed under union, concatenation, and star operations", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 383, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fab85794-b25e-42fd-80a1-12ff155a0e75": {"__data__": {"id_": "fab85794-b25e-42fd-80a1-12ff155a0e75", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1ebe5d60-f409-4869-abad-ae26365cdfbf", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "369dd1695cb6d11d3b94f7111ec7535d2696df75975a5b1898fc61f29c55a141", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions to NFA\n\n* Suppose we want to construct an NFA that recognizes the language expressed by the regular expression \n $$(ab \\cup a)^*$$ \n where \n $$\\Sigma = \\{a, b\\}$$\n\n* We need to apply those 6 rules to obtain the regular expression \n - This will be a guideline step-by-step to construct an NFA\n\n* Here are steps to construct the regular expression $$(ab \\cup a)^*$$ \n 1. \\(a\\) is a regular expression (rule 1) \n 2. \\(b\\) is a regular expression (rule 1) \n 3. \\(ab\\) is a regular expression (rule 5 with (1) and (2)) \n 4. \\(ab \\cup a\\) is a regular expression (rule 4 with (3) and (1)) \n 5. \\((ab \\cup a)^*\\) is a regular expression (rule 6 with (4))", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 688, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "37c9f66a-a80b-4682-bbd1-50387e9a6a77": {"__data__": {"id_": "37c9f66a-a80b-4682-bbd1-50387e9a6a77", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ae3d3124-9227-44ba-8f9b-cecee8cc8e90", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "50e76f2ddc7f14a111edc5a329ea189ded0d4e6b029556fa009622d6f6963cc6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n* a\n\n* b\n\n* ab\n\n* $$ ab \\cup a $$\n\n* $$ (ab \\cup a)^* $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 151, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "15e06973-1d82-438d-b49e-f9de36ee61e2": {"__data__": {"id_": "15e06973-1d82-438d-b49e-f9de36ee61e2", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c9158297-daf8-44a4-9e31-13e2b745892f", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "4559251253f675872405a6faef145a64e562960c298ef03b3a2902e6228014c5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \\((ab \\cup a)^*\\) to an NFA.\n\n----\n\n### Step 1: NFA for \\(a\\)\n\n- A start state with an arrow pointing to it.\n- A transition labeled \\(a\\) to a double circle (accepting state).\n\n```\n(start) --a--> (accept)\n```\n\n----\n\n### Step 2: NFA for \\(b\\)\n\n- A start state with an arrow pointing to it.\n- A transition labeled \\(b\\) to a double circle (accepting state).\n\n```\n(start) --b--> (accept)\n```\n\n----\n\n### Step 3: NFA for \\(ab\\)\n\n- A start state with an arrow pointing to it.\n- A transition labeled \\(a\\) to an intermediate state.\n- A transition labeled \\(b\\) from the intermediate state to a double circle (accepting state).\n\n```\n(start) --a--> (state) --b--> (accept)\n```\n\n----\n\n### Step 4: NFA for \\(ab \\cup a\\)\n\n- Two branches from a new start state:\n - One branch for \\(ab\\) as above.\n - One branch for \\(a\\) as above.\n- Both branches lead to a new accepting state.\n\n----\n\n### Step 5: NFA for \\((ab \\cup a)^*\\)\n\n- Add a new start/accepting state.\n- Add epsilon transitions from this new state to the start of the NFA for \\(ab \\cup a\\).\n- Add epsilon transitions from the accepting states of \\(ab \\cup a\\) back to the new start/accepting state.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1281, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5312e1a3-76ba-4036-b69c-bf96300845e6": {"__data__": {"id_": "5312e1a3-76ba-4036-b69c-bf96300845e6", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2e64b9d1-c1a2-41c4-9ceb-84f483cebdb0", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e4b45018a265af562ce0b8d84abf5743b069b74ba55dfd38ce57b6d35f7d0234", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n----\n\n* For symbol **a**:\n\n (Diagram of an NFA with two states, an initial state with an arrow pointing to it, and a transition labeled \"a\" to a double circled accepting state.)\n\n* For symbol **b**:\n\n (Diagram of an NFA with two states, an initial state with an arrow pointing to it, and a transition labeled \"b\" to a double circled accepting state.)\n\n* For **ab**:\n\n (No diagram shown in the image, but presumably a concatenation of the above two NFAs.)\n\n* For $$ ab \\cup a $$:\n\n (No diagram shown in the image, but presumably a union of the NFAs for \"ab\" and \"a\".)\n\n* For $$ (ab \\cup a)^* $$:\n\n (No diagram shown in the image, but presumably the Kleene star applied to the union NFA.)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 860, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e80be110-19c2-42ba-b0cc-a1b73b00b842": {"__data__": {"id_": "e80be110-19c2-42ba-b0cc-a1b73b00b842", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e6b87de4-a158-4cd9-9322-300f432d0fe8", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "3531e4f1260cbfea19ce42065e5f94d03a514088167a2eee7e793b12ca39a7c6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (ab \\cup a)^* $ to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (circle) \u2014a\u2192 (double circle)\n\n### NFA for `b`\n\n- Start state \u2192 (circle) \u2014b\u2192 (double circle)\n\n### NFA for `ab`\n\n- Start state \u2192 (circle) \u2014a\u2192 (circle) \u2014b\u2192 (double circle)\n\n----\n\n### NFA for $ ab \\cup a $\n\n(Missing diagram, presumably combining the above NFAs with epsilon transitions for union)\n\n----\n\n### NFA for $ (ab \\cup a)^* $\n\n(Missing diagram, presumably adding star operation with epsilon transitions looping back)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 626, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9c54f287-5e66-40e8-9659-53c0b2d97e5a": {"__data__": {"id_": "9c54f287-5e66-40e8-9659-53c0b2d97e5a", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ecfc2bb7-15c6-4952-a843-21830b4d4653", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "43b2182fdbe6c85c1f64ac6b8f4677ea6e9a366130c6d3a37ef4e7bf7855734e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \\((ab \\cup a)^*\\) to an NFA.\n\n* NFA for \\(a\\):\n\n (start) --a--> (accept)\n\n* NFA for \\(b\\):\n\n (start) --b--> (accept)\n\n* NFA for \\(ab\\):\n\n (start) --a--> (intermediate) --b--> (accept)\n\n* NFA for \\(ab \\cup a\\):\n\n (start) \n \u2199 \u2198 \n NFA for \\(ab\\) NFA for \\(a\\) \n (both leading to accept states)\n\n* NFA for \\((ab \\cup a)^*\\):\n\n (start) --\u03b5--> (NFA for \\(ab \\cup a\\)) --\u03b5--> (accept) \n with loops and \u03b5-transitions to allow repetition and empty string\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 604, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b7ae6035-c87a-4955-821f-dc4a5d75a757": {"__data__": {"id_": "b7ae6035-c87a-4955-821f-dc4a5d75a757", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "abd01412-a2a5-4888-ab54-d9db0e07d473", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "66f4f0fbf7374dbf1bd0cdc045af457b8e47a98039e3989f8d7c885ff1223fcc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (a) \u2192 Accept state\n\n### NFA for `b`\n\n- Start state \u2192 (b) \u2192 Accept state\n\n### NFA for `ab`\n\n- Start state \u2192 (a) \u2192 Accept state \u2192\u03b5\u2192 (next state) \u2192 (b) \u2192 Accept state\n\n----\n\n### NFA for $$ ab \\cup a $$\n\n*(Not fully drawn in the image, but implied to be a union of the above NFAs for `ab` and `a`)*\n\n----\n\n### NFA for $$ (ab \\cup a)^* $$\n\n*(Not fully drawn in the image, but implied to be the Kleene star applied to the union NFA)*\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 635, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14ec1988-cadc-4a9d-871e-e8ca9ef2a9c5": {"__data__": {"id_": "14ec1988-cadc-4a9d-871e-e8ca9ef2a9c5", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9c5efe40-56b8-488b-9dbc-d097c4258d68", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e7f5e586b548153eba3380e83129d8fbab61a096a6654030d553a9e84506e84e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \\((ab \\cup a)^*\\) to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (a) \u2192 Accept state\n\n### NFA for `b`\n\n- Start state \u2192 (b) \u2192 Accept state\n\n### NFA for `ab`\n\n- Start state \u2192 (a) \u2192 \u03b5-transition \u2192 (b) \u2192 Accept state\n\n----\n\n### NFA for \\(ab \\cup a\\)\n\n- This is the union of the two NFAs for `ab` and `a`.\n\n----\n\n### NFA for \\((ab \\cup a)^*\\)\n\n- This is the Kleene star applied to the union NFA above.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 536, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "282bccf3-bb38-419b-b50f-ee9038aa356a": {"__data__": {"id_": "282bccf3-bb38-419b-b50f-ee9038aa356a", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cc5aebbf-45ea-4b83-99f3-fff6be1134aa", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "6409f47f95dd6b604320468f640b9bf20b7b4956b56fd6de0ca78c0e803c1e80", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \\((ab \\cup a)^*\\) to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (circle) \u2014a\u2192 (double circle)\n\n### NFA for `b`\n\n- Start state \u2192 (circle) \u2014b\u2192 (double circle)\n\n### NFA for `ab`\n\n- Start state \u2192 (circle) \u2014a\u2192 (circle) \u2014\u03b5\u2192 (circle) \u2014b\u2192 (double circle)\n\n### NFA for \\(ab \\cup a\\)\n\n- Start state \u2192 (circle) \u2014a\u2192 (circle) \u2014\u03b5\u2192 (circle) \u2014b\u2192 (double circle)\n- Also includes the NFA for `a` as above (implied union)\n\n----\n\n### NFA for \\((ab \\cup a)^*\\)\n\n- (Not fully drawn in the image, but implied as the Kleene star applied to the union NFA above)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 677, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "51c8feb3-82b1-42fd-abb6-0ccc4087b037": {"__data__": {"id_": "51c8feb3-82b1-42fd-abb6-0ccc4087b037", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e2e91905-2d15-4b55-99df-347d83fca3c3", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e03467bb3fa646c63b0b5f450ffc428b6d0eb452ea63988a2d99102501bf418e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n\n \n\n \n \n\n \n\n\n \n \n\n \n \n \n \n
ExpressionNFA Diagram Description
a\n Start state → (a) → double circle (accepting state)\n
b\n Start state → (b) → double circle (accepting state)\n
ab\n Start state → (a) → (\u03b5) → (b) → double circle (accepting state)\n
ab \u222a a\n Start state → (a) → (\u03b5) → (b) → double circle (accepting state)\n \n Start state → (a) → double circle (accepting state)\n
$$ (ab \\cup a)^* $$\n (Diagram not fully shown, but implies the Kleene star applied to the union of \"ab\" and \"a\")\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "74e730ee-cd69-4dea-bca1-b54c34843a63": {"__data__": {"id_": "74e730ee-cd69-4dea-bca1-b54c34843a63", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fd7e1852-c001-4a86-9e09-d4121cee3ee4", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "c7ef1d384045c08c7197e27e469a00a06b45301b270ff62a6612b4038ba186df", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n\n \n\n \n \n\n \n\n\n \n \n \n
ExpressionNFA Diagram
a\n \u25cb --a--> \u25ce\n
b\n \u25cb --b--> \u25ce\n
ab\n \u25cb --a--> \u25cb --\u03b5--> \u25cb --b--> \u25ce\n
ab \u222a a\n \u25cb --\u03b5--> \u25cb --a--> \u25cb --\u03b5--> \u25cb --b--> \u25ce\n \n \u25cb --\u03b5--> \u25cb --a--> \u25ce\n
\n\n* The final NFA for $$ (ab \\cup a)^* $$ is constructed by applying the Kleene star to the above NFA.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu | Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 897, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4243b66a-f986-49a0-b011-80bc8d4afb8e": {"__data__": {"id_": "4243b66a-f986-49a0-b011-80bc8d4afb8e", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a94cf763-fe6d-4566-862a-410f8b003402", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "4a71079cd9afda96eb8d9dba2a9298b781ca167944ea25ac0f21007b933ca4d8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (ab \\cup a)^* $ to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (a) \u2192 Accept state\n\n### NFA for `b`\n\n- Start state \u2192 (b) \u2192 Accept state\n\n### NFA for `ab`\n\n- Start state \u2192 (a) \u2192 \u03b5 \u2192 (b) \u2192 Accept state\n\n### NFA for `ab \\cup a`\n\n- Start state\n - \u03b5 \u2192 (a) \u2192 \u03b5 \u2192 (b) \u2192 Accept state\n - \u03b5 \u2192 (a) \u2192 Accept state\n\n### NFA for $(ab \\cup a)^*$\n\n- Start state\n - \u03b5 \u2192 (a) \u2192 \u03b5 \u2192 (b) \u2192 Accept state\n - \u03b5 \u2192 (a) \u2192 Accept state\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "13b1e20f-33e4-412e-a321-883f3ce20ed3": {"__data__": {"id_": "13b1e20f-33e4-412e-a321-883f3ce20ed3", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "09b608c2-3577-4bab-bf3e-3a03bb544e46", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "35798eca427bb6dc8670b5bad0bdc48fa78c28979ad86f0566d1f92a58788a8d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (ab \\cup a)^* $ to an NFA.\n\n----\n\n### NFA for `a`\n- Start state \u2192 (a) \u2192 Accept state\n\n### NFA for `b`\n- Start state \u2192 (b) \u2192 Accept state\n\n### NFA for `ab`\n- Start state \u2192 (a) \u2192 \u03b5 \u2192 ( ) \u2192 (b) \u2192 Accept state\n\n### NFA for `ab \\cup a`\n- Start state \u2192 \u03b5 \u2192 (a) \u2192 \u03b5 \u2192 ( ) \u2192 (b) \u2192 Accept state\n- Start state \u2192 \u03b5 \u2192 (a) \u2192 Accept state\n\n### NFA for $(ab \\cup a)^*$\n- Start state (accepting) \u2192 \u03b5 \u2192 (start of `ab \\cup a` NFA)\n - \u03b5 \u2192 (a) \u2192 \u03b5 \u2192 ( ) \u2192 (b) \u2192 Accept state\n - \u03b5 \u2192 (a) \u2192 Accept state\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "907d84ae-2ee9-4d8d-8ee9-09be239c6cf1": {"__data__": {"id_": "907d84ae-2ee9-4d8d-8ee9-09be239c6cf1", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5a6a7bc1-484f-4e11-a4a0-107029a66dab", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "c7506400eaf108a0215fe1da67ff8dd455736132db472db07245db9944e325b1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n----\n\n- NFA for **a**:\n\n (start) --a--> (accept)\n\n- NFA for **b**:\n\n (start) --b--> (accept)\n\n- NFA for **ab**:\n\n (start) --a--> (state) --\u03b5--> (state) --b--> (accept)\n\n- NFA for **ab \u222a a**:\n\n (start) --\u03b5--> (NFA for ab) \n (start) --\u03b5--> (NFA for a)\n\n- NFA for **(ab \u222a a)\\***:\n\n (start, accept) --\u03b5--> (state) --\u03b5--> (NFA for ab) \n (state) --\u03b5--> (NFA for a) \n (NFA for ab) --\u03b5--> (state) \n (NFA for a) --\u03b5--> (state) \n (state) --\u03b5--> (start, accept)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 634, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5503f188-0cae-411d-9af9-847ab0174b2f": {"__data__": {"id_": "5503f188-0cae-411d-9af9-847ab0174b2f", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9ec3b70a-384a-4198-91a9-663c1bddfa62", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "9ac4d6122f7adc64de012f5014ffbddec1d6c878ccbb181c9a388b4ac5797a6e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions to NFA\n\n* Suppose we want to construct an NFA that recognizes the language expressed by the regular expression \n $$(a \\cup b)^* aba$$ \n where $$\\Sigma = \\{a, b\\}$$\n* Again, we need to apply those 6 rules to get a guideline\n* Here are steps to construct the regular expression $$(a \\cup b)^* aba$$\n 1. \\(a\\) is a regular expression (rule 1)\n 2. \\(b\\) is a regular expression (rule 1)\n 3. \\(a \\cup b\\) is a regular expression (rule 4 with (1) and (2))\n 4. \\((a \\cup b)^*\\) is a regular expression (rule 6 with (3))\n 5. \\(ab\\) is a regular expression (rule 5 with (1) and (2))\n 6. \\(aba\\) is a regular expression (rule 5 with (5) and (1))\n 7. \\((a \\cup b)^* aba\\) is a regular expression (rule 5 with (4) and (6))", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 744, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4d164f9c-d54b-483f-a407-f4fe77c1497e": {"__data__": {"id_": "4d164f9c-d54b-483f-a407-f4fe77c1497e", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8ae4db16-e834-4b63-aec6-9011df4709ee", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "6f58884d687eefc9ac06ed1eb0bdbcf476c41b5900ce9b113b9f96c4b3c08aac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n* a\n\n* b\n\n* $a \\cup b$\n\n* $(a \\cup b)^*$\n\n* $aba$\n\n* $(a \\cup b)^* aba$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5b151807-7f0f-4714-bcbc-2dddac11f51e": {"__data__": {"id_": "5b151807-7f0f-4714-bcbc-2dddac11f51e", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "663b1118-ae46-4bb4-b163-08946d6a6b1c", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "eb55ec986a7c2bed3aa5d198ca4f1df87fe9466a6ca90e17bf900468c2bd15c2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n* Diagram components shown in the image:\n\n - NFA for symbol `a`:\n \n (start) --a--> (accept)\n \n - NFA for symbol `b`:\n \n (start) --b--> (accept)\n \n - NFA for union $a \\cup b$:\n \n ```\n (start)\n | \\\n a b\n | \\\n (accept)\n ```\n \n - NFA for Kleene star $(a \\cup b)^*$:\n \n ```\n (start) --\u03b5--> (a \u222a b NFA) --\u03b5--> (accept)\n ^ |\n |--------------------------------|\n ```\n \n - NFA for concatenation $aba$:\n \n ```\n (start) --a--> --b--> --a--> (accept)\n ```\n \n - Final NFA for $(a \\cup b)^* aba$:\n \n ```\n (start) --(a \u222a b)^*--> --a--> --b--> --a--> (accept)\n ```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 839, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8cfb7d45-d5a3-4bd9-bdef-6a0dc01a716a": {"__data__": {"id_": "8cfb7d45-d5a3-4bd9-bdef-6a0dc01a716a", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e7a0c189-4d0a-4efc-b233-349b6ab3c921", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "961298b66681486f527a9c18c76ec72cb2b2f1d1f8b5ab9bb46c9749b74e5462", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n* NFA for symbol **a**:\n\n (start) --a--> (accept)\n\n* NFA for symbol **b**:\n\n (start) --b--> (accept)\n\n* NFA for $$ a \\cup b $$:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: a\n S0 --> S2: b\n S1 --> [*]\n S2 --> [*]\n```\n\n* NFA for $$ (a \\cup b)^* $$:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: a\n S0 --> S2: b\n S1 --> S0\n S2 --> S0\n S0 --> [*]\n```\n\n* NFA for $$ aba $$:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: a\n S1 --> S2: b\n S2 --> S3: a\n S3 --> [*]\n```\n\n* NFA for $$ (a \\cup b)^* aba $$:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: a\n S0 --> S2: b\n S1 --> S0\n S2 --> S0\n S0 --> S3: a\n S3 --> S4: b\n S4 --> S5: a\n S5 --> [*]\n```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 912, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e5cb788e-d634-4036-894b-bf41c5e5f0fb": {"__data__": {"id_": "e5cb788e-d634-4036-894b-bf41c5e5f0fb", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e49e07c8-fa6d-43d7-bfe5-5ba466d699af", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "7d8ea44f577c9f11374b45219d976f3c40e949b3cededae3e4e38be246f8c1a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n----\n\n### Step 1: NFA for individual symbols\n\n- For symbol `a`:\n\n ( ) \u2014a\u2192 (\u2299)\n\n- For symbol `b`:\n\n ( ) \u2014b\u2192 (\u2299)\n\n----\n\n### Step 2: NFA for union $a \\cup b$\n\n- Combine the above two NFAs for `a` and `b` into one NFA for $a \\cup b$:\n\n ( ) \u2014a\u2192 (\u2299) \n ( ) \u2014b\u2192 (\u2299)\n\n----\n\n### Step 3: NFA for Kleene star $(a \\cup b)^*$\n\n- Construct the NFA for $(a \\cup b)^*$ based on the union NFA.\n\n----\n\n### Step 4: NFA for concatenation $aba$\n\n- Construct the NFA for the sequence `aba`.\n\n----\n\n### Step 5: Final NFA for $(a \\cup b)^* aba$\n\n- Concatenate the NFA for $(a \\cup b)^*$ with the NFA for `aba`.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 760, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4365179e-5f3f-413c-8298-c317e4f6b258": {"__data__": {"id_": "4365179e-5f3f-413c-8298-c317e4f6b258", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6afb2918-29ff-45a0-a112-5c1e52ad55f8", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "3aa1e5f5827a0616458cb5588bbae4476a1f060b0aaa7efb8c2033df8a657d17", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n* Automata for single characters:\n\n - For **a**:\n\n \n\n\n \n \n\n\n\n \n
\u2192\u25cba\u25cb\u25cf
\n\n - For **b**:\n\n \n\n\n \n \n\n\n\n \n
\u2192\u25cbb\u25cb\u25cf
\n\n* Automata for union \\(a \\cup b\\):\n\n \n\n\n \n \n\n\n\n \n\n \n\n\n\n \n
\u2192\u25cba\u25cb\u25cf
\u2192\u25cbb\u25cb\u25cf
\n\n* Automata for \\((a \\cup b)^*\\)\n\n* Automata for **aba**\n\n* Automata for \\((a \\cup b)^* aba\\)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 735, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9c25c837-77f6-4484-ace7-83bcf13359b2": {"__data__": {"id_": "9c25c837-77f6-4484-ace7-83bcf13359b2", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7e2cd070-64de-47c6-9c59-08abdadc6e09", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "cc2015839963d9dfd66b3d41183dedc3c1e29491341e3e65925db646c6af6f75", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (circle) \u2014a\u2192 (double circle)\n\n### NFA for `b`\n\n- Start state \u2192 (circle) \u2014b\u2192 (double circle)\n\n### NFA for `a \\cup b`\n\n- Start state \u2192 (circle) \u2014\u03b5\u2192 (circle) \u2014a\u2192 (double circle)\n- Start state \u2192 (circle) \u2014\u03b5\u2192 (circle) \u2014b\u2192 (double circle)\n\n----\n\n### NFA for $(a \\cup b)^*$\n\n*(Diagram not fully shown, but implies Kleene star construction on the union NFA)*\n\n----\n\n### NFA for `aba`\n\n*(Diagram not shown, but implies concatenation of a, b, a transitions)*\n\n----\n\n### NFA for $(a \\cup b)^* aba$\n\n*(Final NFA combining the Kleene star of union with the concatenation aba)*\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 772, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3a5e9ce1-f4bf-4d32-b294-55e1ca70dcea": {"__data__": {"id_": "3a5e9ce1-f4bf-4d32-b294-55e1ca70dcea", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "466e5638-cb89-40c1-aae6-8b70d4e32850", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "1c7bb284ef4a077b5c95f83743c7bde02ae8b4fe6480a1de9486cf7e63ebdc08", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n- (start) \u2192 (state) \u2014a\u2192 (accepting state)\n\n### NFA for symbol `b`\n\n- (start) \u2192 (state) \u2014b\u2192 (accepting state)\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n- (start) \u2014\u03b5\u2192 (state) \u2014a\u2192 (accepting state)\n- (start) \u2014\u03b5\u2192 (state) \u2014b\u2192 (accepting state)\n\n----\n\n### NFA for Kleene star \\((a \\cup b)^*\\)\n\n- (start) \u2014\u03b5\u2192 (state) \u2014a\u2192 (accepting state)\n- (start) \u2014\u03b5\u2192 (state) \u2014b\u2192 (accepting state)\n- (accepting states) have \u03b5-transitions back to (start) to allow repetition\n\n----\n\n### NFA for concatenation `aba`\n\n- (start) \u2014a\u2192 (state) \u2014b\u2192 (state) \u2014a\u2192 (accepting state)\n\n----\n\n### NFA for full expression \\((a \\cup b)^* aba\\)\n\n- Combine the NFA for \\((a \\cup b)^*\\) followed by the NFA for `aba` in sequence.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 885, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fe1eca56-8850-4f09-bd4b-025ccd7d7e7a": {"__data__": {"id_": "fe1eca56-8850-4f09-bd4b-025ccd7d7e7a", "embedding": null, "metadata": {"page_number": 41, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "92e08c50-d71b-465b-b044-385d76199562", "node_type": "4", "metadata": {"page_number": 41, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "234c1e08cd0ad19a810f1d9cced7efe385ad0f54b35b39c99f60c9be3fb68e99", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n- Start state \u2192 (on input `a`) \u2192 Accept state\n\n### NFA for symbol `b`\n\n- Start state \u2192 (on input `b`) \u2192 Accept state\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n- Start state \u2192 (\u03b5) \u2192 state for `a` \u2192 Accept state\n- Start state \u2192 (\u03b5) \u2192 state for `b` \u2192 Accept state\n\n----\n\n### NFA for Kleene star \\((a \\cup b)^*\\)\n\n- Start state (also accept state) \u2192 (\u03b5) \u2192 union NFA start state\n- Union NFA start state \u2192 (\u03b5) \u2192 state for `a` \u2192 Accept state\n- Union NFA start state \u2192 (\u03b5) \u2192 state for `b` \u2192 Accept state\n- Accept states of `a` and `b` \u2192 (\u03b5) \u2192 union NFA start state (loop back)\n\n----\n\n### NFA for concatenation `aba`\n\n- Start state \u2192 (on input `a`) \u2192 state \u2192 (on input `b`) \u2192 state \u2192 (on input `a`) \u2192 Accept state\n\n----\n\n### Final NFA for \\((a \\cup b)^* aba\\)\n\n- Concatenate the NFA for \\((a \\cup b)^*\\) with the NFA for `aba` in sequence.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1029, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4f59d11a-e974-40bc-b0ce-92426e2931a5": {"__data__": {"id_": "4f59d11a-e974-40bc-b0ce-92426e2931a5", "embedding": null, "metadata": {"page_number": 42, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d9a6cdc6-aa63-4e03-bfac-55f337cc53bd", "node_type": "4", "metadata": {"page_number": 42, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "d063b691f292623050766ccba7eda1c0b0e0a3648604e0a1c9aa08fdf571d28c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n(o) --a--> ((o))\n\n----\n\n### NFA for symbol `b`\n\n(o) --b--> ((o))\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n(o) --\u03b5--> (o) --a--> ((o))", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 259, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "83c7e97e-5bf0-4fc1-89db-e9b58f9f631f": {"__data__": {"id_": "83c7e97e-5bf0-4fc1-89db-e9b58f9f631f", "embedding": null, "metadata": {"page_number": 43, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "02ceb922-196e-4b77-bd0c-ddc4fdff10f4", "node_type": "4", "metadata": {"page_number": 43, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "a25a2bacfe76a32e4db0b5a6b56d194ad81bfd61d76c9cd21ef465c3d51a8243", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\nThe construction is shown step-by-step:\n\n- NFA for symbol `a`:\n\n (start) --a--> (accept)\n\n- NFA for symbol `b`:\n\n (start) --b--> (accept)\n\n- NFA for union \\(a \\cup b\\):\n\n (start) --\u03b5--> (state) --a--> (accept) \n (start) --\u03b5--> (state) --b--> (accept)\n\n- NFA for Kleene star \\((a \\cup b)^*\\):\n\n (start, accept) --\u03b5--> (state) --a--> (accept) \n (start) --\u03b5--> (state) --b--> (accept) \n (accept) --\u03b5--> (start) \n (start) --\u03b5--> (accept)\n\n- NFA for concatenation `aba`:\n\n (start) --a--> (state) --\u03b5--> (state) --b--> (state) --\u03b5--> (state) --a--> (accept)\n\n- Final NFA for \\((a \\cup b)^* aba\\):\n\n Concatenate the NFA for \\((a \\cup b)^*\\) with the NFA for `aba`.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 843, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3e5c864f-81ad-4b67-86b0-bbf441b39054": {"__data__": {"id_": "3e5c864f-81ad-4b67-86b0-bbf441b39054", "embedding": null, "metadata": {"page_number": 44, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f1c8d298-ef17-431f-8f56-2836c26e0fe9", "node_type": "4", "metadata": {"page_number": 44, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e60c4bf352e94568c1a854b44dbde447b07d33c0563f3c4686e54adaddb99abb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n- Start state \u2192 (on input `a`) \u2192 Accept state\n\n### NFA for symbol `b`\n\n- Start state \u2192 (on input `b`) \u2192 Accept state\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n- Start state \u2192 (\u03b5) \u2192 state for `a` \u2192 Accept state\n- Start state \u2192 (\u03b5) \u2192 state for `b` \u2192 Accept state\n\n----\n\n### NFA for Kleene star \\((a \\cup b)^*\\)\n\n- Start state (also accept state)\n- \u03b5-transition to union NFA start state\n- From union NFA accept states, \u03b5-transition back to union NFA start state and to the overall accept state\n\n----\n\n### NFA for concatenation `aba`\n\n- Start state \u2192 (on `a`) \u2192 state \u2192 (\u03b5) \u2192 state \u2192 (on `b`) \u2192 state \u2192 (\u03b5) \u2192 state \u2192 (on `a`) \u2192 Accept state\n\n----\n\n### Final NFA for \\((a \\cup b)^* aba\\)\n\n- Start state (also accept state)\n- \u03b5-transition to Kleene star NFA start state\n- From Kleene star NFA accept states, \u03b5-transition back to Kleene star NFA start state and to the concatenation NFA start state for `aba`\n- Concatenation NFA for `aba` as above\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1139, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bc9e6995-a6b4-4297-b953-826146df086b": {"__data__": {"id_": "bc9e6995-a6b4-4297-b953-826146df086b", "embedding": null, "metadata": {"page_number": 45, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d5680555-aadb-4a8e-848f-561df3f363dd", "node_type": "4", "metadata": {"page_number": 45, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "f0e1ffc5f1e0376ee800472f5b12d85fe6c4b98f6a0f0f9bca6947d45e5af392", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n----\n\n### NFA for symbol `a`\n- (start) --a--> (accept)\n\n### NFA for symbol `b`\n- (start) --b--> (accept)\n\n### NFA for union $a \\cup b$\n- (start) --\u03b5--> (state1) --a--> (accept)\n- (start) --\u03b5--> (state2) --b--> (accept)\n\n### NFA for Kleene star $(a \\cup b)^*$\n- (start, accept) --\u03b5--> (state)\n- (state) --\u03b5--> (state1) --a--> (accept1)\n- (state) --\u03b5--> (state2) --b--> (accept2)\n- (accept1) --\u03b5--> (state)\n- (accept2) --\u03b5--> (state)\n\n### NFA for concatenation `aba`\n- (start) --a--> (state1) --\u03b5--> (state2) --b--> (state3) --\u03b5--> (state4) --a--> (accept)\n\n### NFA for full expression $(a \\cup b)^* aba$\n- (start, accept) --\u03b5--> (state)\n- (state) --\u03b5--> (state1) --a--> (accept1)\n- (state) --\u03b5--> (state2) --b--> (accept2)\n- (accept1) --\u03b5--> (state)\n- (accept2) --\u03b5--> (state)\n- (accept) --a--> (state1) --\u03b5--> (state2) --b--> (state3) --\u03b5--> (state4) --a--> (accept)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1036, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4bb432bb-0036-4fb8-b191-a93268da5a7b": {"__data__": {"id_": "4bb432bb-0036-4fb8-b191-a93268da5a7b", "embedding": null, "metadata": {"page_number": 46, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ec1bb5c9-11a4-4c14-a876-01b8e1173080", "node_type": "4", "metadata": {"page_number": 46, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "14f3d5f87ee1a4999931b85ea0ee177702b38976f30061acac6b0c7ea0d92198", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \n $$(a \\cup b)^* aba$$ \n to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n- Start state \u2192 (on input `a`) \u2192 Accept state\n\n### NFA for symbol `b`\n\n- Start state \u2192 (on input `b`) \u2192 Accept state\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n- Start state \u2192 (\u03b5) \u2192 state with transition `a` \u2192 accept state \n- Start state \u2192 (\u03b5) \u2192 state with transition `b` \u2192 accept state\n\n----\n\n### NFA for Kleene star \\((a \\cup b)^*\\)\n\n- Start state (also accept state) \u2192 (\u03b5) \u2192 state with two \u03b5-transitions: \n - one to NFA for `a` \n - one to NFA for `b` \n- Both `a` and `b` states transition to their respective accept states \n- Accept states have \u03b5-transitions back to the start of the union NFA and to the overall accept state\n\n----\n\n### NFA for concatenation `aba`\n\n- Start state \u2192 (on `a`) \u2192 state \u2192 (\u03b5) \u2192 state \u2192 (on `b`) \u2192 state \u2192 (\u03b5) \u2192 state \u2192 (on `a`) \u2192 accept state\n\n----\n\n### Final NFA for \\((a \\cup b)^* aba\\)\n\n- Start state (also accept state) \u2192 (\u03b5) \u2192 NFA for \\((a \\cup b)^*\\) \n- NFA for \\((a \\cup b)^*\\) has \u03b5-transitions to NFA for `a` and `b` as above \n- From the accept state of \\((a \\cup b)^*\\), \u03b5-transition to the start of NFA for `aba` \n- NFA for `aba` as described above \n- Accept state at the end of `aba`\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "27c87490-8903-4584-91e9-0b20309c8153": {"__data__": {"id_": "27c87490-8903-4584-91e9-0b20309c8153", "embedding": null, "metadata": {"page_number": 47, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "14924ae2-a3e0-4214-aff8-6d7ca98b05ec", "node_type": "4", "metadata": {"page_number": 47, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "ee471815c0b8a4dfb6cad914370d66117222541a1e5c97ff7bbd9d94214d2b50", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \n $$(a \\cup b)^* aba$$ \n to an NFA.\n\n----\n\n- NFA for symbol **a**:\n\n (start) --a--> (accept)\n\n- NFA for symbol **b**:\n\n (start) --b--> (accept)\n\n----\n\n- NFA for union **a \u222a b**:\n\n (start) --\u03b5--> (state) --a--> (accept) \n (start) --\u03b5--> (state) --b--> (accept)\n\n----\n\n- NFA for Kleene star **(a \u222a b)\\***:\n\n (start, accept) --\u03b5--> (state) \n (state) --\u03b5--> (state) --a--> (accept) \n (state) --\u03b5--> (state) --b--> (accept) \n (accept) --\u03b5--> (start, accept)\n\n----\n\n- NFA for concatenation **aba**:\n\n (start) --a--> (state) --\u03b5--> (state) --b--> (state) --\u03b5--> (state) --a--> (accept)\n\n----\n\n- NFA for full expression **(a \u222a b)^* aba**:\n\n (start) --\u03b5--> (state) \n (state) --\u03b5--> (state) --a--> (accept) \n (state) --\u03b5--> (state) --b--> (accept) \n (accept) --\u03b5--> (state) --a--> (state) --\u03b5--> (state) --b--> (state) --\u03b5--> (state) --a--> (accept)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1000, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "480243ec-e1e0-4398-9e00-d017797b6b28": {"__data__": {"id_": "480243ec-e1e0-4398-9e00-d017797b6b28", "embedding": null, "metadata": {"page_number": 48, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "52baa816-2fe8-40e5-8a39-b5f4cf652398", "node_type": "4", "metadata": {"page_number": 48, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "691ce43542a2c24e930b62724d8cecf26f9321b59e7737fabadfda145cdc9d6c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Useful Tool\n\n* Recall that the set of all valid floating-point representation is expressed by a regular expression\n\n$$\n(+ \\cup - \\cup \\varepsilon)(D^{+} \\cup D^{+}.D^{*} \\cup D^{*}.D^{+})\n$$\n\nwhere \n* \\( D = \\{0, 1, 2, 3, 4, 5, 6, 7, 8, 9\\} \\)\n\n* Now, we can easily convert the above regular expression into an NFA, construct an equivalent DFA, and turn the DFA into a program \n - This process is done by computer \n - Often used in compiler", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4c5fd6e1-d7da-4f95-8906-68dbe58cab01": {"__data__": {"id_": "4c5fd6e1-d7da-4f95-8906-68dbe58cab01", "embedding": null, "metadata": {"page_number": 49, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "18804887-8c4a-4b35-ab3b-a9dfd1dc5514", "node_type": "4", "metadata": {"page_number": 49, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "6c7176dda93216a6415d57df0cbcbe0e6a1b997710052a084341b6a826e5a549", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Conclusion\n\n* A regular expression expresses a regular language \n* We have a tool to convert a regular expression into an equivalent NFA \n* What is next? \n - We still do not know whether every regular language can be expressed by a regular expression", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 257, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2600ac1f-ffb8-4399-a063-6f84fe276171": {"__data__": {"id_": "2600ac1f-ffb8-4399-a063-6f84fe276171", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b1386fb6-85ad-4fab-93b0-ed37d18f9451", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "6fee2cf05a776496b13c8b3ed159c37a793a362471ab244e4e804791ca7a6206", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L14 Dynamic Modeling\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 157, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b6c4ed74-24a8-46b8-ad0a-14801321d1ab": {"__data__": {"id_": "b6c4ed74-24a8-46b8-ad0a-14801321d1ab", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ce49c018-3db7-4d65-9830-422c565a4817", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "ffeab17bfd67aec32881b660864fbbf87f92764877cd09bf4b7d33d858ddaead", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6e08f00b-6b41-4dff-acfb-6ffb4b3ae436": {"__data__": {"id_": "6e08f00b-6b41-4dff-acfb-6ffb4b3ae436", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "00161289-efef-4d60-b690-5ff8816fae25", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "9732273dfeb3edccb4ee4e1ce2ebcd215314f87964c01e15bd187cf6a0b49c28", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You can model an UML activity diagram \n* You can model an UML state chart diagram \n* You understand the purpose of a UML communication diagram", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 165, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "56400739-3c26-44c0-8bd2-7142c261ba75": {"__data__": {"id_": "56400739-3c26-44c0-8bd2-7142c261ba75", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "88d5f645-9e47-4148-84c0-be27114c5d59", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "bedfefed02abe8c17c4e423d6369f8d116539cc1ea0906eb74630138242c7e1e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Battery\n\n* Design Goal 1: Battery Capacity (Range) \n - Maximize the battery capacity to provide an extended driving range for electric vehicles, allowing users to travel longer distances on a single charge.\n\n* Design Goal 2: Battery Weight and Size (Efficiency) \n - Minimize the weight and size of the battery pack to improve vehicle efficiency and reduce energy consumption.\n\n* Design Goal 3: Battery Lifespan (Longevity) \n - Design the battery to have a long lifespan, reducing the frequency and cost of battery replacements for EV owners.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2db5d772-2787-4f10-bc00-566545abef0a": {"__data__": {"id_": "2db5d772-2787-4f10-bc00-566545abef0a", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7c78a765-cdcf-45c9-b74d-4cf52f493248", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "a84c0952d17a090760b49a34e99d0f15c2cf8bb1f5add7dc54754efcbda20352", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] SIMCity\n\n* DG Usability: After completing a 10-minute tutorial, \u2265 80% of users can independently navigate the main menu and recall the core functions of the system.\n* DG2 Reliability: The system ensures end-to-end data integrity by synchronizing verified sinkhole status changes across all clients within 5 minutes.\n* NFRs\n - NFR1 Usability (Learnability): The system should provide a 10min tutorial to help users understand its core features (\u2026).\n - NFR2 Usability (Navigation): Users should be able to access the menu within two steps.\n - NFR3 Usability (Accessibility): The system should support text-to-speech for improved accessibility.\n - NFR4 Robustness: The system should handle increased traffic (+ 60%) during rush hours, with higher loads in winter than in summer (+ 70%).\n - NFR5 Performance: The map should reflect new and updated reports within five minutes.\n - NFR6 Reliability: The sinkhole status should be updated within five minutes after verifying a sinkhole and after removing a sinkhole.\n - NFR7 Portability: The system should be available as a mobile app.\n - NFR8 Availability: The system should require and verify Internet connectivity for (\u2026) functionality.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1203, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "879b5a55-51d6-4e52-9fd5-f0886a7c0dff": {"__data__": {"id_": "879b5a55-51d6-4e52-9fd5-f0886a7c0dff", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "377e8077-b608-4dcb-a58e-d01210294205", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "3a3a37c3719553f8f8064ef752ab0a10f64b21154f9dda0500fc6fb8edbf9779", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System design concepts \u2014 Overview\n\n[x] Design goals \n\u2192 Control flow \n* Subsystem decomposition \n* HW/SW mapping \n* Data management \n* Access control \n* Boundary conditions", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 180, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0911a226-1745-42da-8b71-ecd4c5a79d47": {"__data__": {"id_": "0911a226-1745-42da-8b71-ecd4c5a79d47", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "90127588-2851-43ad-bfdc-7b4ee5ff6f31", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "3eb82c627805228cfed6a3eeb1f55597dc10c820f06d200c5b61a9bf4a7956fe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Please complete the \n## **Midterm Survey** \nThank you!\n\nCS 1530 - SOFTWARE ENGINEERING - 1000 - Lecture \nStudents \nhttps://go.blueja.io/XXDCWA7Ltkii1npCrtobcA\n\n[The image shows a QR code next to the text above.]\n\nUniversity of Pittsburgh (logo)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 251, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80b44619-c59c-4c0f-88b6-c3cfb1b041ea": {"__data__": {"id_": "80b44619-c59c-4c0f-88b6-c3cfb1b041ea", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f888be40-ef31-4678-ada5-3f4e9ba312d4", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "17fcb4b87efa1671a1c8cc7153a273a85d73da3e7ceca1e6ee36473862810511", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* **Dynamic modeling**\n - Overview\n - Modeling workflows (UML Activity Diagram)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 101, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6695fdc7-383b-4e6a-816c-46ff4b5b994d": {"__data__": {"id_": "6695fdc7-383b-4e6a-816c-46ff4b5b994d", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4a480917-fbdc-4394-b2f9-c10c69209118", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "8fad5cf96a7d0614fa4040b5ec724138f91662a269f1a0c612c0b433d9c7dd2d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Dynamic modeling\n\n* Describes the **dynamic behavior** of parts (components) of the system\n* Typically, we focus on **interesting behavior**\n - e.g., specific workflows involving the user/system with many actions\n* Dynamic model can be described in many ways\n - An entity\u2019s state\n - An entity\u2019s internal behavior / behavior with the system / behavior with other entities", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 376, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0a59c23a-2c1b-4806-835d-3a530b468048": {"__data__": {"id_": "0a59c23a-2c1b-4806-835d-3a530b468048", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f4d4f92b-2a1d-4201-bfb2-eb009729cf89", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "de4197e5df4d7c5c830b8e232c61892a55526ea8a3fd59fde6d15fb5b17cdc26", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Dynamic modeling tools\n\n* **Activity Diagram** \n - Purpose: Represent workflows within use cases \n - Usage: Visualize complex user interactions with multiple actions/decision points\n\n* **State Chart Diagram** \n - Purpose: Model the dynamic states and transitions of a single entity or object \n - Usage: Effective for illustrating how an object changes states in response to events\n\n* **Communication Diagrams** \n - Purpose: Illustrate the interactions and messages exchanged among multiple entities \n - Usage: Useful for modeling collaboration and communication patterns in a system\n\n* **Sequence Diagrams** \n - Purpose: Visualize the interactions between objects in a system over time \n - Usage: Show message sequence exchanged between objects to perform a specific function", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 794, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6eeb919d-3ee1-4967-98c1-ed8556a4d76e": {"__data__": {"id_": "6eeb919d-3ee1-4967-98c1-ed8556a4d76e", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "425d87cc-2396-4503-8651-83b94db81b45", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "40a6c1909cfcd6365c1af43901b8f1d1bff53665b97011a9627acbaadb0e8a59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML activity diagrams\n\n* Organize and represent the flow of activities and actions, grouping them by the interacting system or actor\n* Help to more easily understand complex workflows\n* Show the order of execution, enabling modeling of both simple and complex behaviors", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 272, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ba2c4128-8dd1-4854-9011-e157887e0a9c": {"__data__": {"id_": "ba2c4128-8dd1-4854-9011-e157887e0a9c", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4c48cbe9-d0ee-4a2a-85e8-51433af36bc5", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "d13e97d778df5117faaaca2e636bc929d41a779fafcdde2919784fba920756c4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML activity diagrams\n\n* Consist of nodes and edges\n* **Nodes** describe activities and objects\n - Control nodes\n - Executable nodes\n - Object nodes (an object, e.g., a document, a SLF)\n* An **edge** is a directed connection between nodes\n\n----\n\n### Diagram (University of Pittsburgh)\n\n- **Start node** \n (black filled circle)\n\n- **Action node** \n Rectangle with rounded corners labeled: \n `View Calendar`\n\n- **Object node** \n Rectangle labeled: \n `Calendar`\n\n- Rectangle with rounded corners labeled: \n `View available appointments`\n\n- Rectangle with stacked rectangles labeled: \n **Available appointments** \n (Multiple objects)\n\n- **Edge** \n Directed arrows connecting the nodes in the order shown above\n\n- **End node** \n (black filled circle with surrounding ring)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 793, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "542af333-5cc0-46a8-a2e2-a4ce683caff8": {"__data__": {"id_": "542af333-5cc0-46a8-a2e2-a4ce683caff8", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3a9f053a-b3ea-4cbb-8c2a-527a9290fff6", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "355836ac4d48d59370e34485410bfdebbf328df1a348a340b2f2d5aaba0f288f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML activity diagram syntax\n\n* **Start or initial node** \n \u25cf (solid black circle)\n\n* **End or final node** \n \u25ef (black circle with white center)\n\n* **Action node** \n Describes an action \n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \n \u2502 Action node \u2502 \n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n* **Object node** \n Describes an object \n (often hints at data) \n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \n \u2502 Object node \u2502 \n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n* **Control flow:** action A is followed by action B \n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2192 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \n \u2502 Action node A \u2502 \u2502 Action node B \u2502 \n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n----\n\n## Decision node \n**Decide on the control flow** \n- Diamond shape \n- Example: \n ```\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2192 \u25c7 \u2500\u2500\u25ba\u2502 Action node\u2502\n \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2502\n \u2514\u2500[true condition]\n ```\n\n## Merge node \n**If the different control flows merge again** \n- Diamond shape with multiple incoming arrows and one outgoing arrow\n\n## Fork node \n**Concurrent actions (order is not important)** \n- Thick vertical bar splitting into multiple parallel flows \n- Example: \n ```\n \u2503\n \u2503 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2503 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2503 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2503 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n ```\n\n## Join node \n**Indicates the end of the concurrent actions** \n- Thick vertical bar joining multiple parallel flows into one\n\n----\n\n### Diagram example combining decision and merge nodes:\n\n```\n\u2192 \u25c7 \u2500\u2500[true condition]\u2500\u25ba \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2500\u2500\u25ba \u25c7 \u2500\u25ba\n \u2502 \u2502 Action node \u2502\n \u2514\u2500[false condition]\u2500\u25ba \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 Action node \u2502\n```\n\n### Diagram example combining fork and join nodes:\n\n```\n\u2192 \u2503 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2500\u2500\u25ba \u2503 \u2500\u25ba\n \u2503 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2500\u2500\u25ba \u2503 \u2500\u25ba\n```\n\n----\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L14 Dynamic Modeling \nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1731, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b0f2ba1f-464d-4bea-b877-0c15413e1ff0": {"__data__": {"id_": "b0f2ba1f-464d-4bea-b877-0c15413e1ff0", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "162622bb-e6e3-4ea2-a206-05017df4dccf", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "68a491638195f12d2e95d57f766cb2758635f061fe1191885850cd90f26d1b68", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Activity diagrams can use **swimlanes**\n\n* Purpose: **Group actions** by viewpoint/role to indicate **responsibilities within a process or workflow**\n* A swimlane within an activity diagram represents a **boundary**\n - Helps in separating responsibilities and interactions\n* Swimlanes combine the system's high-level logic with responsibilities and interactions\n\n\n \n \n\n \n
PatientThe Patient\u2019s (actor) actions
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14ce5567-2462-4a6b-9ed2-6550067a22b0": {"__data__": {"id_": "14ce5567-2462-4a6b-9ed2-6550067a22b0", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7ea18c94-16a4-433b-b258-afafb3325928", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "d45ab8e8b340625ae20c22b29cfe60aceb89e135cc7f44b7546a151a3d08ce8f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Swimlanes\n\n> \"Depth\" of the model depends on the context!\n\n----\n\n\n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n
PatConnect
System\u2019s responsibilityPatient
Actor\u2019s responsibility\n
\n
\n Check for next available date\n
\n
\n
\n Possible Appointment\n
\n
\n
\n [reject appointment]\n
\n
\n
\n
\n
\n Select new appointment\n
\n
\n
\n [select appointment]\n
\n
\n
\n Confirm appointment\n
\n
\n
\n Appointment\n
\n
\n
\n\n----\n\n> **Swimlane:** Describe the activities from one actor\u2019s or system\u2019s point of view", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1670, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "91803b6d-c0fb-421b-b469-46557b520786": {"__data__": {"id_": "91803b6d-c0fb-421b-b469-46557b520786", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "28116bfc-9dbd-4646-b790-3515969c56fa", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "c1101dae229600b849cbebab4fc66e514e5dabef247741d5fd540e4316a06fc4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Dynamic model - activity diagram\n\n> **Activity**\n\n\u25cf (Initial node / start) \n\u2192 Receive feedback \n\u2192 Occupant feedback \n\u2192 Sense thermal environment \n\u2192 Thermal environment sensation \n\u2192 Update occupant model \n\u2192 Updated occupant model \n\u2192 (Decision node) \n\u2003\u2003- [occupant feedback != comfortable] \u2192 Change thermal actuator state \n\u2003\u2003\u2003\u2003\u2192 (Merge node) \n\u2003\u2003\u2003\u2003\u2003\u2003\u2192 (Final node / end) \n\u2003\u2003- [occupant feedback == comfortable] \u2192 (Merge node) \n\u2003\u2003\u2003\u2003\u2192 (Final node / end) \n\n> **Initial node / start** \n> **Condition** \n> **Decision node** \n> **Object node** \n> **Merge node** \n> **Final node / end**\n\nUniversity of Pittsburgh \n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L14 Dynamic Modeling", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 700, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cb9e4f26-8949-4aae-b263-31624afd9754": {"__data__": {"id_": "cb9e4f26-8949-4aae-b263-31624afd9754", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5b79bcd2-ef15-4a11-94f8-d60efa66e83f", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "f1ee1573cbb6569fcd9958ba42a42f804c4c0cddad9e562e496f9322f08750ab", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to model an activity diagram\n\n* Activity diagrams serve to illustrate various workflows, such as:\n - User-specific workflows\n - System workflows\n - Logical workflows\n - \u2026\n* These workflows are frequently derived from:\n - The flow of events within use cases\n - Associations found in the analysis object model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 320, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8469eb3d-384c-4412-9763-6ae57f3911c9": {"__data__": {"id_": "8469eb3d-384c-4412-9763-6ae57f3911c9", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3e0e87d6-522a-46c4-93a6-541a6d01ffae", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "753390fb0be38f433bd8f93beb711095ded0dfae31e19470f413f299529eb6cb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Login Activity\n\n```mermaid\nflowchart TD\n Start(( ))\n Start --> A[Enter username]\n A --> B[Enter password]\n B --> C[Submit login details]\n C --> D[User Login]\n D --> E{Login details match user record?}\n E -- yes --> F[Approved Login]\n F --> End(( ))\n E -- no --> G{Try again?}\n G -- yes --> A\n G -- no --> End(( ))\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 365, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b06faa2f-2108-4bea-b2a9-48a9f2d5b42e": {"__data__": {"id_": "b06faa2f-2108-4bea-b2a9-48a9f2d5b42e", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "620974e6-9c9c-45be-b6c5-5db4d79733ef", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "70028510582b21d844ae8213bc89cf26d3611d56dc0a8a03eb4ee9a1573a08b4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Login Activity\n\n```mermaid\nflowchart TD\n Start(( ))\n A[Enter username]\n B[Enter password]\n C[Submit login details]\n D{Login details valid?}\n E[Valid Login Details]\n F[Send 2FA notification]\n G[2FA Notification]\n H{Login approved?}\n I{Try again?}\n J[Approved Login]\n End(( ))\n\n Start --> A --> B --> C --> D\n D -- no --> A\n D -- yes --> E --> F --> G --> H\n H -- no --> I\n H -- yes --> J --> End\n I -- no --> End\n I -- yes --> A\n F --> E\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 513, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "786a6ff9-7b09-4514-b924-b95874f53c2b": {"__data__": {"id_": "786a6ff9-7b09-4514-b924-b95874f53c2b", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "77a9814c-c35e-452d-974b-e5515c763f50", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "f7dc581419842caf724e7a694edefe6276c151c3e72d3c5dc5823e36838bd5a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Login Activity (2FA)\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
Authentication-DeviceUser
\u25cf
Enter username
Enter password
Submit login details
Login Details
\n \n\n\n \n \n\n \n
yesno
\n\n Login details valid?\n
Request authentication code
Generate authentication code
Authentication CodeEnter authentication code
User Authentication Code
\n \n\n\n \n \n\n \n
yesno
\n\n Login valid?\n
Approved Login
\n \n\n\n \n \n \n\n \n \n
no
yes
\n\n Try again?\n
\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L14 Dynamic Modeling", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1389, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4a0d0678-7365-41bc-97cf-bef5e5d5bf42": {"__data__": {"id_": "4a0d0678-7365-41bc-97cf-bef5e5d5bf42", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4d1f5928-bda4-4c0b-984f-f109d0da0903", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "c7cae95ccf74ede004df06b3bbea805dfe5934a77a6a59d566693d0ea49a0f36", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L14 \u2014 In-class: Activity diagram \u23f3 20 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nModel a UML activity diagram to describe an **interesting**, non-trivial workflow, e.g.:\n\n* The enduser\u2019s workflow to submit a report\n* The city official\u2019s workflow to confirm a report\n* \u2026 (pick your own workflow!)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 271, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf7bdd8d-f1a4-4747-b68a-d8ea0a6a3155": {"__data__": {"id_": "bf7bdd8d-f1a4-4747-b68a-d8ea0a6a3155", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "00794d28-190b-4000-a8db-e4576a615c22", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "e96fd4b308ac10b43f1506c7c96d36732a73268be108308c31b2ccb69cdd6dce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "01fe24b7-4d1d-476a-bae6-b47510460ece": {"__data__": {"id_": "01fe24b7-4d1d-476a-bae6-b47510460ece", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8217f657-4b06-4560-9387-9a9ea32eb7f6", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "0fb4f06299c012231661ec1d5159ba7c35cd4496dccd80ffccea60d79ff52323", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L14 Dynamic Modeling\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 77, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "96071e48-6285-4eca-b7b7-6200394b6670": {"__data__": {"id_": "96071e48-6285-4eca-b7b7-6200394b6670", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1201afc4-3036-4df6-bf35-e670a682b8f1", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "f22915a71411ecb40ad50e82ffee7b440ffb2e9e70f46adf5ceb14d55901e4f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine 02\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 71, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a03c8cf9-47a9-4aaf-89c0-51176e780611": {"__data__": {"id_": "a03c8cf9-47a9-4aaf-89c0-51176e780611", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d60d05cf-c748-4bb6-853f-888add44bd73", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "5c0a7539395a10c7d7beb6fe0c98f08cbdd7d1c7d093a287e1afe1ab6dcb8f81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine Example\n\n* Design a Turing machine that recognizes the language \\( B \\) where \n $$\n B = \\{ w \\# w \\mid w \\in \\Sigma^* \\}\n $$\n\n* On input string \\( w \\):\n 1. Zig-zag across the tape to corresponding positions on either side of the \\# symbol to check whether those positions contain the same symbol. If they do not, or if no \\# is found, *reject*. Cross off symbols as they are checked to keep track of which symbols correspond.\n 2. When all symbols to the left of the \\# have been crossed off, check for any remaining symbols to the right of the \\#. If any symbols remain, *reject*; otherwise, *accept*.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 626, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "63bfe296-32d0-47b9-ae54-06b9084a44fb": {"__data__": {"id_": "63bfe296-32d0-47b9-ae54-06b9084a44fb", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "53ec7105-a5c5-497c-9bdf-510a748c9911", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "4d0f923147637515724486f6114dbe2314bd363c645c0d6495079bfeb95f1526", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n* A Turing machine that decides \n $$\n B = \\{ w \\# w \\mid w \\in \\Sigma^* \\}.\n $$\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q2: 0 \u2192 x, R\n q1 --> q3: 1 \u2192 x, R\n q1 --> q8: # \u2192 R\n\n q2 --> q2: 0,1 \u2192 R\n q2 --> q4: # \u2192 R\n\n q4 --> q4: x \u2192 R\n q4 --> q6: 0 \u2192 x, L\n\n q3 --> q3: 0,1 \u2192 R\n q3 --> q5: # \u2192 R\n\n q5 --> q5: x \u2192 R\n q5 --> q6: 1 \u2192 x, L\n\n q6 --> q6: 0,1,x \u2192 L\n q6 --> q7: # \u2192 L\n\n q7 --> q7: 0,1 \u2192 L\n q7 --> q2: x \u2192 R\n\n q8 --> q8: x \u2192 R\n q8 --> qaccept: \u2423 \u2192 R\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 549, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b72e02b-b704-4510-8b8f-c3fcfa00ddd2": {"__data__": {"id_": "3b72e02b-b704-4510-8b8f-c3fcfa00ddd2", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b1fc1513-a205-4f29-9d32-a431aa6be6b7", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "7729c1e027cd51f26ecb28a1b58fdf60920e3c9c80b008d6f0473de1edb38c4a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n* \\( \\Sigma = \\{0, 1, \\#\\} \\)\n* \\( \\Gamma = \\{0, 1, \\#, x, \\sqcup\\} \\)\n* \\( 1 \\to x, R \\) \n - Read 1, write x, and move the tape head to the right direction\n* \\( \\# \\to R \\) \n - A shorthand notation for \\( \\# \\to \\#, R \\) \n - Read \\(\\#\\), write \\(\\#\\), and move the tape head to the right direction\n* \\( 0, 1 \\to L \\) \n - A shorthand notation representing two transitions: \n - \\( 0 \\to L \\) which is \\( 0 \\to 0, L \\) \n - \\( 1 \\to L \\) which is \\( 1 \\to 1, L \\)\n* \\( q_{\\text{reject}} \\) is **omitted** \n - All missing exiting arrows go to \\( q_{\\text{reject}} \\) \n - Assume that it moves the tape head to the right direction before entering \\( q_{\\text{reject}} \\) without writing a symbol (writing the same symbol it read)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 772, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "22cc71d0-97d4-48f4-a111-423f3628af9b": {"__data__": {"id_": "22cc71d0-97d4-48f4-a111-423f3628af9b", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fc9653a0-fb91-484c-8945-f46af6b63c09", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "25c8060b926d3533aaef7265ceae1c4e936b60b53cef952cd1f59acffdfa1c3f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n## Computing `01#01`\n\n```mermaid\nstateDiagram-v2\n [*] --> q_1\n q_1 --> q_2: 0 \u2192 x, R\n q_1 --> q_3: 1 \u2192 x, R\n q_1 --> q_8: # \u2192 R\n\n q_2 --> q_2: 0, 1 \u2192 R\n q_2 --> q_4: # \u2192 R\n\n q_4 --> q_4: x \u2192 R\n q_4 --> q_6: 0 \u2192 x, L\n\n q_6 --> q_6: 0, 1, x \u2192 L\n q_6 --> q_7: # \u2192 L\n\n q_7 --> q_7: 0, 1 \u2192 L\n q_7 --> q_1: x \u2192 R\n\n q_3 --> q_3: 0, 1 \u2192 R\n q_3 --> q_5: # \u2192 R\n\n q_5 --> q_5: x \u2192 R\n q_5 --> q_6: 1 \u2192 x, L\n\n q_8 --> q_accept: \u2294 \u2192 R\n q_8 --> q_8: x \u2192 R\n```\n\n### Computation trace for input `01#01`\n\n```\nq_1 01#01\nx q_2 1#01\nx 1 q_2 #01\nx 1 # q_4 01\nx 1 q_6 # x 1\nx q_7 1 # x 1\nq_7 x 1 # x 1\nx q_1 1 # x 1\nx x q_3 # x 1\nx x # q_5 x 1\nx x # x q_5 1\nx x # q_6 x x\nx x q_6 # x x\nx q_7 x # x x\nx x q_1 # x x\nx x # q_8 x x\nx x # x q_8 x\nx x # x x q_8 \u2294\nx x # x x \u2294 q_accept\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 842, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5bb19f60-a4b3-45a3-9bf0-f2ae85b2ae72": {"__data__": {"id_": "5bb19f60-a4b3-45a3-9bf0-f2ae85b2ae72", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b9053f8d-0a5a-4446-9739-ab5072c96ad0", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "e0bfa06f27ab3504b87dabc5277edb908cf02bf87a2214ec1bad81c098055174", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n## Computing `01#10`\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q2: 0 \u2192 x, R\n q1 --> q3: 1 \u2192 x, R\n q1 --> q8: # \u2192 R\n q2 --> q2: 0,1 \u2192 R\n q2 --> q4: # \u2192 R\n q4 --> q4: x \u2192 R\n q4 --> q6: 0 \u2192 x, L\n q3 --> q3: 0,1 \u2192 R\n q3 --> q5: # \u2192 R\n q5 --> q5: x \u2192 R\n q5 --> q6: 1 \u2192 x, L\n q6 --> q6: 0,1,x \u2192 L\n q6 --> q7: # \u2192 L\n q7 --> q7: 0,1 \u2192 L\n q7 --> q1: x \u2192 R\n q8 --> q8: x \u2192 R\n q8 --> qaccept: \u2423 \u2192 R\n```\n\n### Computation trace for input `01#10`:\n\n- \\( q_1 01\\#10 \\)\n- \\( x q_2 1\\#10 \\)\n- \\( x 1 q_2 \\#10 \\)\n- \\( x 1 \\# q_4 10 \\)\n- \\( x 1 \\# 1 q_{reject} 0 \\)\n\n----\n\nThumrongsak Kosiyatrakul `tkosiyat@cs.pitt.edu` \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 710, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6eb26b5b-09e5-4998-b563-d12ea60b6cc3": {"__data__": {"id_": "6eb26b5b-09e5-4998-b563-d12ea60b6cc3", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "56e57d9d-6b90-4e60-bc1b-cc1c605370c9", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "c242b486713aaa5ccec6c194995df820535e4c4e604f40724abb31e2ede2cbc9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n## Computing 01 (no \\# symbol)\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q2: 0 \u2192 x, R\n q1 --> q3: 1 \u2192 x, R\n q1 --> q8: # \u2192 R\n\n q2 --> q2: 0,1 \u2192 R\n q2 --> q4: # \u2192 R\n\n q4 --> q4: x \u2192 R\n q4 --> q6: 0 \u2192 x, L\n\n q3 --> q3: 0,1 \u2192 R\n q3 --> q5: # \u2192 R\n\n q5 --> q5: x \u2192 R\n q5 --> q6: 1 \u2192 x, L\n\n q6 --> q6: 0,1,x \u2192 L\n q6 --> q7: # \u2192 L\n\n q7 --> q7: 0,1 \u2192 L\n q7 --> q1: x \u2192 R\n\n q8 --> q8: x \u2192 R\n q8 --> qaccept: \u2423 \u2192 R\n```\n\n### Tape configurations during computation of input `01`:\n\n- \\( q_1 0 1 \\)\n- \\( x q_2 1 \\)\n- \\( x 1 q_2 \\sqcup \\)\n- \\( x 1 \\sqcup q_{reject} \\)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 715, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6f3c6cb6-f870-4130-aaa4-3a9c69532492": {"__data__": {"id_": "6f3c6cb6-f870-4130-aaa4-3a9c69532492", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "53fbc237-cfad-41fa-a81e-e4391be04eda", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "6599c114ea96aaa1f558ae56385a8921df3087a22d627d529a346657ae426694", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine Example\n\n* Design a Turing machine that recognizes the language \\( A \\) where \n $$\n A = \\{0^{2^n} \\mid n \\geq 0\\}\n $$\n\n* On input string \\( w \\): \n 1. Sweep left to right across the tape, crossing off every other 0 \n 2. If in stage 1 the tape contained a single 0, *accept* \n 3. If in stage 1 the tape contained more than a single 0 and the number of 0s was odd, *reject* \n 4. Return the head to the left-hand end of the tape \n 5. Go to stage 1", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 476, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "135c0270-a941-4e15-b615-704cc24a99d7": {"__data__": {"id_": "135c0270-a941-4e15-b615-704cc24a99d7", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "67846276-9d0f-4984-9f17-6c94abea1215", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "ca11fa1ee9035bdec449d8ba2feac1627787a9406f7dbe6d1f42eba120e71d41", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Moving the Tape Head Back\n\n* Suppose we want to move the tape head back to the left most end of the tape\n - Need a state to do that\n\n ```\n 0, 1, x \\to L\n ```\n\n - This will result in an infinite loop\n\n* Recall that if the tape head is at the left-most square and the transition is \\( L \\), it will stay at the same place\n - There is no signal telling a TM that its tape head is currently at the left-most square\n\n* The trick is to mark the left-most symbol (depending on \\(\\Gamma\\))\n - Turn 0 or 1 to \\(\\sqcup\\)\n - Turn 0 to \\(\\dot{0}\\) or \\(x\\)\n - Turn 1 to \\(\\dot{1}\\) or \\(\\sqcup\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 600, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4e6aec91-1f7d-4a50-8394-a523bc2154d0": {"__data__": {"id_": "4e6aec91-1f7d-4a50-8394-a523bc2154d0", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7aa7e20e-6184-49b8-babd-79f086856f9a", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "8dcf1557ae0d54431aff4bb0e6b3c276c50aaa4128a7f2edbde2c8017365c11f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_2 \\)\n\n* A Turing machine that decides \n $$\n A = \\{0^{2^n} \\mid n \\geq 0\\}.\n $$\n\n```mermaid\nstateDiagram-v2\n [*] --> q_1\n q_1 --> q_2: 0 \u2192 \u2423, R\n q_1 --> q_{reject}: \u2423 \u2192 R, x \u2192 R\n q_2 --> q_5: \u2423 \u2192 L, \u2423 \u2192 R\n q_2 --> q_3: 0 \u2192 x, R\n q_2 --> q_{accept}: \u2423 \u2192 R\n q_3 --> q_4: 0 \u2192 x, R\n q_3 --> q_3: x \u2192 R\n q_3 --> q_2: \u2423 \u2192 L\n q_4 --> q_3: 0 \u2192 R\n q_4 --> q_4: x \u2192 R\n q_4 --> q_{reject}: \u2423 \u2192 R\n q_5 --> q_5: 0 \u2192 L, x \u2192 L\n q_5 --> q_2: \u2423 \u2192 R\n```\n\n- States:\n - \\(q_1\\) is the start state.\n - \\(q_{reject}\\) is the reject state.\n - \\(q_{accept}\\) is the accept state.\n- Transitions:\n - From \\(q_1\\):\n - On reading `0`, write blank (\u2423), move right, go to \\(q_2\\).\n - On reading blank (\u2423) or `x`, move right, go to \\(q_{reject}\\).\n - From \\(q_2\\):\n - On reading blank (\u2423), move right, go to \\(q_{accept}\\).\n - On reading `0`, write `x`, move right, go to \\(q_3\\).\n - On reading blank (\u2423), move left, go to \\(q_5\\).\n - From \\(q_3\\):\n - On reading `0`, write `x`, move right, go to \\(q_4\\).\n - On reading `x`, move right, stay in \\(q_3\\).\n - On reading blank (\u2423), move left, go to \\(q_2\\).\n - From \\(q_4\\):\n - On reading `0`, move right, go to \\(q_3\\).\n - On reading `x`, move right, stay in \\(q_4\\).\n - On reading blank (\u2423), move right, go to \\(q_{reject}\\).\n - From \\(q_5\\):\n - On reading `0` or `x`, move left, stay in \\(q_5\\).\n - On reading blank (\u2423), move right, go to \\(q_2\\).\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b52e53d7-6073-4744-a0b8-6ded95795e70": {"__data__": {"id_": "b52e53d7-6073-4744-a0b8-6ded95795e70", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "651ef24f-fe22-4ef5-acfa-f7bdb8341b3d", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "b5e8886c72d4944447a58816edcaa179c9de3edf4f75ae9301b26e9554cd3080", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_2 \\)\n\n## Computing 0000\n\nMermaid diagram representing the Turing machine states and transitions:\n\n```mermaid\nstateDiagram-v2\n [*] --> q_1\n q_1 --> q_reject: \u2423 \u2192 R, x \u2192 R\n q_1 --> q_2: 0 \u2192 \u2423, R\n q_2 --> q_accept: \u2423 \u2192 R\n q_2 --> q_2: x \u2192 R\n q_2 --> q_5: 0 \u2192 x, R\n q_3 --> q_3: 0 \u2192 R\n q_3 --> q_4: 0 \u2192 x, R\n q_3 --> q_5: x \u2192 R\n q_4 --> q_4: x \u2192 R\n q_4 --> q_3: 0 \u2192 R\n q_4 --> q_reject: \u2423 \u2192 R\n q_5 --> q_5: 0 \u2192 L, x \u2192 L\n q_5 --> q_2: \u2423 \u2192 R\n q_5 --> q_3: \u2423 \u2192 L\n```\n\n### State transitions and tape configurations during computation of input `0000`:\n\n```\nq_1 0000\n\u2423 q_2 000\n\u2423 x q_3 00\n\u2423 x 0 q_4 0\n\u2423 x 0 x q_3 \u2423\n\u2423 x 0 q_5 x\n\u2423 x q_5 0 x\nq_5 \u2423 x 0 x\n\u2423 q_2 x 0 x\n\u2423 x q_2 0 x\n\u2423 x x q_3 x\n\u2423 x x x q_3 \u2423\n\u2423 x x q_5 x\n\u2423 x q_5 x x\n\u2423 q_5 x x x\nq_5 \u2423 x x x\n\u2423 q_2 x x x\n\u2423 x q_2 x x\n\u2423 x x q_2 x\n\u2423 x x x q_2 \u2423\n\u2423 x x x \u2423 q_accept\n```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 951, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "381f303a-acbb-4544-ab90-dd4f3a4663a8": {"__data__": {"id_": "381f303a-acbb-4544-ab90-dd4f3a4663a8", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "70a96e39-d6f9-4fa3-a802-95cd305f4ff1", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "5dac4826e5bca226750489621d7749eddcb88ab096808b0634b9dc10ffc9da75", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_2 \\)\n\n## Computing 000\n\n```mermaid\nstateDiagram-v2\n [*] --> q_1\n q_1 --> q_{reject} : \\sqcup \\to R, x \\to R\n q_1 --> q_2 : 0 \\to \\sqcup, R\n\n q_2 --> q_{accept} : \\sqcup \\to R\n q_2 --> q_5 : x \\to R\n q_2 --> q_2 : x \\to R\n\n q_5 --> q_5 : 0 \\to L, x \\to L\n q_5 --> q_2 : \\sqcup \\to R\n q_5 --> q_3 : \\sqcup \\to L\n\n q_3 --> q_4 : 0 \\to R\n q_3 --> q_3 : x \\to R\n q_3 --> q_5 : \\sqcup \\to L\n\n q_4 --> q_4 : x \\to R\n q_4 --> q_3 : 0 \\to x, R\n q_4 --> q_{reject} : \\sqcup \\to R\n```\n\n### Computation steps (partial):\n\n- \\( q_1 000 \\)\n- \\( \\sqcup q_2 00 \\)\n- \\( \\sqcup x q_3 0 \\)\n- \\( \\sqcup x 0 q_4 \\sqcup \\)\n- \\( \\sqcup x 0 \\sqcup q_{reject} \\)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 777, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e89873b8-26a2-43bf-a108-34c00eeea315": {"__data__": {"id_": "e89873b8-26a2-43bf-a108-34c00eeea315", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f497ee38-6c98-4e34-b262-3c9489a5a5e4", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "245ddc3a4a27ae395285996799a9b54464607b379796ed7303038f10f3a0b8d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing a TM\n\n* Designing a TM in a form of a state diagram is hard\n - Need to keep in mind out the content of the tape\n - Need to worry about moving tape head\n* But for a simple problem, it is not that bad\n* Let\u2019s create a TM that shift all symbols on the tape to the right by one square by inserting the blank symbol at the left-most square and move the tape head back to the left-most square\n - Let $$ \\Sigma = \\{0,1\\} $$ and $$ \\Gamma = \\{0,1,\\sqcup\\} $$\n - Here are some input/output (on the tape)\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
InputOutput
01101\u242301101
0\u24230
111\u2423111
\u03b5\u03b5
\n\n* Note that this TM always accepts all strings over $$ \\Sigma $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 890, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d6215dcd-ad20-4e6b-b5c9-f96eca613e6c": {"__data__": {"id_": "d6215dcd-ad20-4e6b-b5c9-f96eca613e6c", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7c49de1e-9f22-47ad-926e-cc265a113ecc", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "e6249cb0c7ed3468f681784ff6c426c0574f06b83a35a81080607caf2befd608", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing a TM\n\n* Solution\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q1: 0 \u2192 \u2423, R\n q0 --> q2: 1 \u2192 \u2423, R\n q0 --> qaccept: \u2423 \u2192 L\n q1 --> q1: 0 \u2192 R\n q1 --> q2: 1 \u2192 0, R\n q2 --> q2: 1 \u2192 R\n q2 --> q1: 0 \u2192 1, R\n q1 --> q3: \u2423 \u2192 0, L\n q2 --> q3: \u2423 \u2192 1, L\n q3 --> q3: 0, 1 \u2192 L\n q3 --> qaccept: \u2423 \u2192 L\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 338, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "087227f5-a237-4266-bb56-0f25d2cc9018": {"__data__": {"id_": "087227f5-a237-4266-bb56-0f25d2cc9018", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a23060d3-7fc0-44c1-935f-bf717ab30ed6", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "a08f286b0773f5d109e3db630ffb427a60545f09f4a765e42020ed69e585d90c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 01\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 72, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "40b64948-51ce-44b7-8876-7b44d5152ffd": {"__data__": {"id_": "40b64948-51ce-44b7-8876-7b44d5152ffd", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e72add08-a51c-4cc5-9399-9ce9efdd9b78", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "a79dc509484f525c53fb8a4a2725b8fa13ed6ffedd4d7b7ecaa0f9bf513e68be", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata\n\n* Suppose you are asked to write a software to control an automatic door as shown below:\n\n```\n \u25cf\n +---------+ +---------+\n | front | | rear |\n | pad | | pad |\n +---------+ +---------+\n door\n```\n\n* Assume we have the following methods:\n - `getFrontPad()`: returns true if there is a person standing on the front pad. Otherwise, it returns false.\n - `getRearPad()`: returns true if there is a person standing on the rear pad. Otherwise, it returns false.\n - `openDoor()`: when called it will open the door.\n - `closeDoor()`: when called it will close the door.\n\n* How the write the program in Java?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 670, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ebed8870-e638-4290-bdef-302394fb5c98": {"__data__": {"id_": "ebed8870-e638-4290-bdef-302394fb5c98", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a9ba1f44-d982-4669-9fca-ce7b7000beb3", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "cf7fd3b198b69643d0b457211ebe406f0e6b01cbe678dfab6fada2513e6393c6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata\n\n* Program to control the automatic door:\n\n```java\npublic class DoorController {\n public static void main(String[] args) {\n boolean isDoorOpen = false;\n\n while(true) {\n if(getFrontPad() && !getRearPad() && !isDoorOpen) {\n openDoor();\n isDoorOpen = true;\n }\n if(!getFrontPad() && !getRearPad() && isDoorOpen) {\n closeDoor();\n isDoorOpen = false;\n }\n }\n }\n}\n```\n\n* The variable `isDoorOpen` of type boolean is used to record the status of the door (1 bit of memory is required).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 626, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0aaccdbd-bb70-4c75-8044-6a4835b7d237": {"__data__": {"id_": "0aaccdbd-bb70-4c75-8044-6a4835b7d237", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aa136feb-6535-4523-88bd-e76550c00f9e", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "962562e9802ab9642dd6c1ded1da128abcd2a8a7e81305d41d3f0604fb87310f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata\n\n* `getFrontPad()` and `getRearPad()` together acts as external input to the program:\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
getFrontPad()getRearPad()Input
truetrueBoth
truefalseFront
falsetrueRear
falsefalseNeither
\n\n* We can define the behavior of our program based on its input as well as the status of the door whether it is current open or close", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 659, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "27f5085f-cb67-4f53-9d85-82e0b952990e": {"__data__": {"id_": "27f5085f-cb67-4f53-9d85-82e0b952990e", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "75886ffe-9a16-4591-b4f7-5452f85b58df", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "63bc6f8c1259341e5679b7e765db93f665b9a993c84bb9151428606f9754c7f0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Representations\n\n* The program can be represented in two standard ways \n * State Diagram:\n\n Rear Rear\n\n Both Closed Open Both\n\n Front\n\n Neither\n\n Neither Front\n\n * State Transition Table:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n \n\n \n\n\n\n\n \n \n
NeitherFrontRearBoth
ClosedClosedOpenClosedClosed
OpenClosedOpenOpenOpen
\n\n* But how to represent these in a mathematical way?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 843, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2a0a2b3c-b914-416f-88e0-92c83b08be43": {"__data__": {"id_": "2a0a2b3c-b914-416f-88e0-92c83b08be43", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4f6d7880-bd44-4a73-ab9b-daeb57812aa1", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "9d04fef5852b323ffcc70b2186cff1f6cebfd56e545ebd0044a1b5215cadb8ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite State Machine\n\n* Consider the following finite state machine \\( M_1 \\):\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q1: 1\n q1 --> q2: 0\n q2 --> q1: 0,1\n state q1 {\n <>\n }\n```\n\n* Machine \\( M_1 \\) consists of:\n - Three **states**: \\( q_0 \\), \\( q_1 \\), and \\( q_2 \\)\n - The **start state** \\( q_0 \\) (arrow pointing to it from nowhere)\n - An **accept state** \\( q_1 \\) (double circle)\n * All single circle states are called non-accept state\n - Arrows represent **transition functions**\n - The label 0, 1 represents two transitions\n\n```mermaid\nstateDiagram-v2\n q1 --> q2: 0\n q2 --> q1: 1\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 687, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7dc7abe3-3450-456f-a4a0-75a585904414": {"__data__": {"id_": "7dc7abe3-3450-456f-a4a0-75a585904414", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "21809133-b190-4792-8c9f-632c9340f90c", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "d6cc70a455fa54ccc00f57b0aed20f419fc800d751397a0b057e10d2f4952faa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite State Machine\n\n* Consider the following finite state machine \\( M_1 \\):\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0: 0/0, 1/1\n q1: 0/0, 1/1\n q2: 0/0, 1/1\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q1: 1\n q1 --> q2: 0\n q2 --> q1: 0,1\n state q1 <>\n```\n\n* When an input string is given to this machine, it returns either **accept** or **reject**.\n\n * `1101`: accept \n $$\n q_0 \\xrightarrow{1} q_1 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2 \\xrightarrow{1} q_1 \\quad \\text{(an accept state)}\n $$\n\n * `0010`: reject \n $$\n q_0 \\xrightarrow{0} q_0 \\xrightarrow{0} q_0 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2 \\quad \\text{(a non-accept state)}\n $$\n\n * `0100`: accept \n $$\n q_0 \\xrightarrow{0} q_0 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2 \\xrightarrow{0} q_1 \\quad \\text{(an accept state)}\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 834, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2a0452cd-194c-4dfd-9357-1e56b85665f9": {"__data__": {"id_": "2a0452cd-194c-4dfd-9357-1e56b85665f9", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ffd3a7d7-069c-4ecf-a4b8-dbe55bb64b01", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "636503e106a205dd0b718407deb2b634fb98d1dfaacfd1ac9ec0c41867935479", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite State Machine\n\n* Consider the following finite state machine \\( M_1 \\):\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0: \\(q_0\\)\n q1: \\(q_1\\)\n q2: \\(q_2\\)\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q1: 1\n q1 --> q2: 0\n q2 --> q1: 0,1\n```\n\n* Can we define the set of inputs that is accepted by the above machine?\n - \\( M_1 \\) accepts any strings that end with a 1\n - \\( M_1 \\) also accepts a string that ends with a 0 but it needs to have even number of 0s after the last 1\n\n* The set of all strings accepted by this machine is\n\n $$\n \\{ x \\mid x \\text{ ends with a } 1 \\text{ and } x \\text{ is a string that ends with an even number of 0s following the last } 1 \\}\n $$\n\n* The above set is called the **language** of the machine \\( M_1 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 767, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5180a6c2-bc69-4b09-941b-42b8267d0bf3": {"__data__": {"id_": "5180a6c2-bc69-4b09-941b-42b8267d0bf3", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "abfe0c50-9e30-4175-b51d-5f07b502f632", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "d19dc9f2fda933982741926d84b257e6f443189762202b440af373a70c29d56f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite-State Automaton\n\n* A finite state machine \\( M \\) can be defined as five tuple\n\n$$\nM = (Q, \\Sigma, \\delta, q_0, F)\n$$\n\n* \\( Q \\) is a non-empty finite set of states \n - \\( M \\) must have at least one state \n* \\( \\Sigma \\) is an alphabet (a finite set of symbols) \n* \\( \\delta : Q \\times \\Sigma \\to Q \\) is the transition functions \n - We generally use a table to represent \\( \\delta \\) \n* \\( q_0 \\in Q \\) is the starting state \n - A finite automata can only have **exactly one** start state \n* \\( F \\subseteq Q \\) is the set of accept states \n - \\( F \\) can be \\(\\emptyset\\) \\(\\Rightarrow\\) \\( M \\) can have no accept state (rejects all strings) \n - \\(|F|\\) can be more than 1 \\(\\Rightarrow\\) \\( M \\) has more than one accept states", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 756, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e0a3b9aa-176a-449d-b2bc-6b96007f9cae": {"__data__": {"id_": "e0a3b9aa-176a-449d-b2bc-6b96007f9cae", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "43fac8c0-4b29-4cef-a6ac-7d1f35fce8c8", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "87240bd0566810f4dc2c5ef2580d3bd4f40773cfbeefbb28dd1c2f9bee741d97", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: Machine \\( M_1 \\)\n\n```\n 0 1\n\n q_0 1 q_1 0 q_2\n 0, 1\n```\n\n* \\( M_1 = (Q, \\Sigma, \\delta, q_0, F) \\)\n * \\( Q = \\{ q_0, q_1, q_2 \\} \\)\n * \\( \\Sigma = \\{0, 1\\} \\)\n * \\( \\delta \\) can be defined using the table below:\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
\\(\\delta\\)01
\\(q_0\\)\\(q_0\\)\\(q_1\\)
\\(q_1\\)\\(q_2\\)\\(q_1\\)
\\(q_2\\)\\(q_1\\)\\(q_1\\)
\n\n* \\( q_0 \\) is the start state\n* \\( F = \\{ q_1 \\} \\)\n\n* The state diagram and its formal definition are equivalent", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 828, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "26ba0906-e8cf-4cf8-abea-c7b2050930b7": {"__data__": {"id_": "26ba0906-e8cf-4cf8-abea-c7b2050930b7", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4fb978c0-d241-4981-aec2-ca2db0fcaeaf", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "247267b6bf5f7f70f7621c4724b7608fa849193df89c0ca86c4d5354e5c183a5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formal Definition of Machine \\( M_1 \\)\n\n* \\( M_1 = (\\{q_0, q_1, q_2\\}, \\{0,1\\}, \\delta, q_0, \\{q_1\\}) \\) where \\(\\delta\\) is as follows:\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\\(\\delta\\)01
\\(q_0\\)\\(q_0\\)\\(q_1\\)
\\(q_1\\)\\(q_2\\)\\(q_1\\)
\\(q_2\\)\\(q_1\\)\\(q_1\\)
\n\n* The above formal definition allows use to precisely answer questions about \\( M_1 \\):\n\n - Is 0101 a valid input for this machine?\n - Yes. \\(0 \\in \\{0,1\\}\\) and \\(1 \\in \\{0,1\\}\\).\n - Is 01a0 a valid input for this machine?\n - No. \\(a \\notin \\{0,1\\}\\).\n - Is input 010 accepted by this machine?\n - No. \\(q_0 \\xrightarrow{0} q_0 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2\\) and \\(q_2 \\notin \\{q_1\\}\\).\n - Is input 101 accepted by this machine?\n - Yes. \\(q_0 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2 \\xrightarrow{1} q_1\\) and \\(q_1 \\in \\{q_1\\}\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 988, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce3f448c-0cae-491b-8a24-64fd97bae219": {"__data__": {"id_": "ce3f448c-0cae-491b-8a24-64fd97bae219", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "29578f41-64e3-48e5-9024-8a54483e265b", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "04af448cb3c58cce22d9538e4ca661de610bd9c965677a7a8acdc29c82a9ad7d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Language Recognized\n\n* A string \\( w = w_1 w_2 \\ldots w_n \\) is **accepted** by \\( M \\) if and only if after processing each symbol \\( w_i \\) of \\( w \\), where \\( 1 \\leq i \\leq n \\), \\( M \\) finds itself in an accept state (a state belonging to \\( F \\)). Otherwise, we say \\( w \\) is rejected by \\( M \\).\n\n* If \\( A \\) is the set of **all strings** accepted by \\( M \\), we say \\( A \\) is the **language of finite-state machine** \\( M \\), denoted by\n\n$$\nL(M) = A\n$$\n\nWe say that \\( M \\) **recognizes** \\( A \\).\n\n* A machine may accept several strings but it always recognizes only one language.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 596, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b98e5633-abfb-40e3-9cc7-f0c28f3fb9a4": {"__data__": {"id_": "b98e5633-abfb-40e3-9cc7-f0c28f3fb9a4", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4c979f28-6faf-45d1-bd31-3366faa35b11", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "909f794864631ad28069a12d92ff4a7be2c07a7e4f29c649f75b2393be6735fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\nThe diagram shows a finite automaton with two states:\n\n- States: \\( q_1 \\) and \\( q_2 \\)\n- Alphabet: \\( \\{0, 1\\} \\)\n- Transitions:\n - From \\( q_1 \\):\n - On input 0, stay in \\( q_1 \\)\n - On input 1, go to \\( q_2 \\)\n - From \\( q_2 \\):\n - On input 0, go to \\( q_1 \\)\n - On input 1, stay in \\( q_2 \\)\n- Start state: \\( q_1 \\)\n- Accept state: \\( q_2 \\)\n\n$$\nM_2 = (Q, \\Sigma, \\delta, \\text{start state}, F)\n$$\n\nWhat is the formal definition of the above machine and the language that it recognises?\n\n* \\( Q = \\{ q_1, q_2 \\} \\)\n* \\( \\Sigma = \\{ 0, 1 \\} \\)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\\(\\delta\\)01
\\(q_1\\)\\(q_1\\)\\(q_2\\)
\\(q_2\\)\\(q_1\\)\\(q_2\\)
\n\n* The start state is \\( q_1 \\)\n* \\( F = \\{ q_2 \\} \\)\n* \\( L(M_2) = \\{ w \\mid w \\text{ ends in a } 1 \\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 910, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d6be9560-b049-4c4d-8633-4e4388933db8": {"__data__": {"id_": "d6be9560-b049-4c4d-8633-4e4388933db8", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e1cb3f9a-e7de-47fa-afb6-e01d58ccd4b9", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "14dd6b4258b705a3d02ba854c31ee9b91ade4bc84c67a2de6e3e5e98f9410d02", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n$$\nM_3 = (Q, \\Sigma, \\delta, \\text{start state}, F)\n$$\n\nWhat is the formal definition of the above machine and the language that it recognises?\n\n* \\( Q = \\{ q_1, q_2 \\} \\)\n* \\( \\Sigma = \\{ 0, 1 \\} \\)\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n \n
\\(\\delta\\)01
\\(q_1\\)\\(q_1\\)\\(q_2\\)
\\(q_2\\)\\(q_1\\)\\(q_2\\)
\n\n* Start state is \\(q_1\\)\n* \\( F = \\{ q_1 \\} \\)\n* \\( L(M_3) = \\{ w \\mid w \\text{ is the empty string } \\varepsilon \\text{ or ends in a } 0 \\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 643, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4d404ef2-14e2-4016-9160-ae1b12f2e9a9": {"__data__": {"id_": "4d404ef2-14e2-4016-9160-ae1b12f2e9a9", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c5266d44-a3d6-42cf-82dd-0836f0f7105e", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "a58ccc59ad7ed66edad3ce057ab0bdecd3344a4cde8557a8f0fa29a605d05022", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n$$Q = \\{s, q_1, q_2, r_1, r_2\\}$$ \n$$\\Sigma = \\{a, b\\}$$ \n**Transition Functions:**\n\n\n\n \n \n \n \n \n\n\n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n
\u03b4ab
sq_1r_1
q_1q_1q_2
q_2q_1q_2
r_1r_2r_1
r_2r_2r_1
\n\n$$M_4 = (Q, \\Sigma, \\delta, \\text{start state}, F)$$\n\n* Start state is \\(s\\) \n* \\(F = \\{q_1, r_1\\}\\) \n* \\(L(M_2) = \\{ w \\mid w \\text{ starts and ends with the same symbol} \\}\\)\n\nWhat is the formal definition of the above machine and the language that it recognises?\n\n[The diagram shows a finite automaton with states \\(s, q_1, q_2, r_1, r_2\\). The start state is \\(s\\). The accepting states are \\(q_1\\) and \\(r_1\\). Transitions are labeled with input symbols \\(a\\) and \\(b\\) as follows:\n\n- From \\(s\\):\n - on \\(a\\) to \\(q_1\\)\n - on \\(b\\) to \\(r_1\\)\n- From \\(q_1\\):\n - on \\(a\\) loops to itself\n - on \\(b\\) to \\(q_2\\)\n- From \\(q_2\\):\n - on \\(a\\) to \\(q_1\\)\n - on \\(b\\) loops to itself\n- From \\(r_1\\):\n - on \\(a\\) to \\(r_2\\)\n - on \\(b\\) loops to itself\n- From \\(r_2\\):\n - on \\(a\\) loops to itself\n - on \\(b\\) to \\(r_1\\)]\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 01", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1393, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "97ad144d-dd6f-4975-8f99-e204ddd97cd6": {"__data__": {"id_": "97ad144d-dd6f-4975-8f99-e204ddd97cd6", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "67766adf-526c-473f-b29d-bc8b38fa515a", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "ba2d6a0d5113648c76a8aa3113168f8980791941f1bcc5868d6af154b44041f5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n$$\nM_5 = (Q, \\Sigma, \\delta, \\text{start state}, F)\n$$\n\nWhat is the formal definition of the above machine and the language that it recognises?\n\n----\n\n### Formal definition:\n\n* \\( Q = \\{ q_0, q_1, q_2 \\} \\)\n* \\( \\Sigma = \\{ 0, 1, 2, \\langle \\text{RESET} \\rangle \\} \\)\n* Transition Functions:\n\n\n\n \n \n \n \n \n \n \n\n\n \n \n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n\n
\\(\\delta\\)012<RESET>
\\(q_0\\)\\(q_0\\)\\(q_1\\)\\(q_2\\)\\(q_0\\)
\\(q_1\\)\\(q_1\\)\\(q_2\\)\\(q_0\\)\\(q_0\\)
\\(q_2\\)\\(q_2\\)\\(q_0\\)\\(q_1\\)\\(q_0\\)
\n\n* Start state is \\( q_0 \\)\n* \\( F = \\{ q_0 \\} \\)\n* Language recognized by \\( M_2 \\):\n\n$$\nL(M_2) = \\{ w \\mid w \\text{ is the empty string } \\varepsilon \\text{ or ends with } \\langle \\text{RESET} \\rangle \\text{ or sum of input is multiple of 3 after the last } \\langle \\text{RESET} \\rangle \\}\n$$\n\n----\n\n### State diagram description (from image):\n\n- States: \\( q_0, q_1, q_2 \\)\n- Arrows labeled with input symbols 0, 1, 2, and showing transitions between states.\n- Self-loops on states for certain inputs.\n- transitions from \\( q_1 \\) and \\( q_2 \\) back to \\( q_0 \\).\n- Start state \\( q_0 \\) is double circled indicating it is also the accepting state.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 01", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1516, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e0f220a3-71cb-437c-ba0c-a174b3668b84": {"__data__": {"id_": "e0f220a3-71cb-437c-ba0c-a174b3668b84", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1239ecc3-4088-499b-a4be-e881a437770f", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "f89033abfd9abfc1f2d8d28469f954c85d24878e42677b46003cfdec2638c664", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing a Finite-State Machine\n\n* A computation model simulates a set of algorithms \n* Designing a finite-state machine is the same as writing a program \n - Use states to capture state-of-minds \n * I just see a 1 \n * I just see two consecutive 0s \n * I already saw 00 or 11 \n* Do not force yourself to use the least number of states \n - Nobody asks you to write a shortest possible program \n - Unless you are asked to do so", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "40cbf2fd-29e2-4ff0-b6dd-07c0060d9ea4": {"__data__": {"id_": "40cbf2fd-29e2-4ff0-b6dd-07c0060d9ea4", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d7cbe54f-6253-4253-a605-c578eceabd98", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "00b110c9342217e686824bc2b679637ff557dffbe9d5496c098d71da66c24c00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Finite Automata\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0,1\\}\\). Create a machine such that its language is the set of all strings that contain either 11 or 00 as a substring.\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q1: 1\n q0 --> q2: 0\n q1 --> q3: 1\n q1 --> q2: 0\n q2 --> q3: 0\n q2 --> q1: 1\n q3 --> q3: 0,1\n note right of q3\n (accepting state)\n end note\n```\n\n* Common mistakes:\n * \\(\\delta(q_1, 0) = q_0\\)\n * \\(\\delta(q_2, 1) = q_0\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 494, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7b5ebe00-44fb-4f5b-9a01-66cf702fc1c2": {"__data__": {"id_": "7b5ebe00-44fb-4f5b-9a01-66cf702fc1c2", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1915f845-6e52-49d1-97d2-b62d0c552310", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "598f0794110564d8b0b40b1fabc7c9963dc58067443e93975913f4e4b9e0e64c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Finite Automata\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0,1\\}\\). Create a machine such that its language is the set of all strings that contain 011 as a substring.\n\n```mermaid\nstateDiagram-v2\n [*] --> qs\n qs --> qs: 1\n qs --> q0: 0\n q0 --> q0: 0\n q0 --> q01: 1\n q01 --> q0: 0\n q01 --> q011: 1\n q011 --> q011: 0\n q011 --> q011: 1\n```\n\n* Common mistakes:\n - \\(\\delta(q_0, 0) = q_s\\)\n - \\(\\delta(q_{01}, 0) = q_s\\)\n\n* **Hint:** Name of a state can be used to indicate a state-of-mind\n - \\(q_{01}\\) means \u201cI just see a 0 immediately followed by a 1\u201d", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 590, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bd0e6f61-5219-4b4f-8892-27bab60550eb": {"__data__": {"id_": "bd0e6f61-5219-4b4f-8892-27bab60550eb", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aeb70f03-ef30-43cb-8d7b-034826b0320f", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "039ba7aa5d20247c37f5788c5b84f0a8175a56b29cf81db48a24ac5acd1e1193", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Finite Automata\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0,1\\}\\). Create a machine such that its language is the set of all strings that ends with 0110.\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q1: 0\n q1 --> q1: 0\n q1 --> q2: 1\n q2 --> q1: 0\n q2 --> q3: 1\n q3 --> q4: 0\n q4 --> q1: 0\n q4 --> q2: 1\n```\n\n* Common mistakes:\n * \\(\\delta(q_2, 0) = q_0\\)\n * \\(\\delta(q_4, 0) = q_0\\)\n * \\(\\delta(q_4, 1) = q_0\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 456, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d2838f67-36f4-4831-a014-b857337be30b": {"__data__": {"id_": "d2838f67-36f4-4831-a014-b857337be30b", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "33bff7e8-f3c8-46ae-aca6-500cc2e861c0", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "44a77232a58a1c16eebe1329b975dca8eacbcda30afaec732dfe03d76e28b151", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 02\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 72, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ed39f245-795a-4ec8-9158-da35347232c5": {"__data__": {"id_": "ed39f245-795a-4ec8-9158-da35347232c5", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "33537690-b4d2-446c-b019-e412a21967ad", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "840076912dcf93a2d873fc396b6fcc8f3ac4fb704948d493a9e77a111ddbcf87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata\n\n* The computational model called finite automata can be used to simulate a set of **simple** algorithms\n - Check whether a string starts with 010\n - Check whether a string ends with 111\n - Check whether a string contains 0101 as a substring\n - Check whether a string contains substrings 000 and 111 where 000 comes before 111\n\n* It is a powerful tool in compiler\n - Accept or reject your source code based on a programming syntax\n - Example: the `for` statement:\n * starts with `for`\n * followed by `(`\n * followed by assignment statement(s)\n * followed by `;`\n * followed by conditional statement(s)\n * followed by `;`\n * followed by assignment statement(s)\n * followed by `)`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 727, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e0f219a-fbfc-4c6f-a38e-19e2889727c7": {"__data__": {"id_": "2e0f219a-fbfc-4c6f-a38e-19e2889727c7", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "268a753e-cd35-48fb-87f4-2e85619cdbfe", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "9b96cc32b444a7667e5e381b3ded8cafcc11b15ff2d02d275a073c559f0c43de", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formal Definition of Computation\n\n* Let \\( M = (Q, \\Sigma, \\delta, q_0, F) \\) be a finite automaton and let \n \\( w = w_1 w_2 \\ldots w_n \\) be a string where each \\( w_i \\) is a member of the alphabet \\( \\Sigma \\). \n * \\( M \\) accepts \\( w \\) if a sequence of states \\( r_0, r_1, \\ldots, r_n \\) in \\( Q \\) exists with three conditions: \n 1. \\( r_0 = q_0 \\) \n 2. \\( \\delta(r_i, w_{i+1}) = r_{i+1} \\), where \\( i = 0, \\ldots, n-1 \\) \n 3. \\( r_n \\in F \\) \n\n* Think in terms of processing the input string \\( w \\):\n\n$$\nr_0 \\xrightarrow{w_1} r_1 \\xrightarrow{w_2} r_2 \\xrightarrow{w_3} r_3 \\xrightarrow{w_4} r_4 \\xrightarrow{w_5} \\ldots \\xrightarrow{w_{n-1}} r_{n-1} \\xrightarrow{w_n} r_n\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 705, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "54893ab6-15da-47c9-9580-cd8a73e0b774": {"__data__": {"id_": "54893ab6-15da-47c9-9580-cd8a73e0b774", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "be119211-3583-4fc9-aa84-6f25bbe0590b", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "cf6491dd96e7dbd33f536c4bebe10d2a0d64f165683524fcf4fc823ecea87d69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Languages\n\n* A language \\( L \\) over an alphabet \\(\\Sigma\\) is said to be a **regular language** if some finite-state automaton recognizes it.\n* Consider the following machine \\( M \\):\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0: q0\n q1: q1\n q0 --> q0: 0\n q1 --> q1: 0\n q0 --> q1: 1\n q1 --> q0: 1\n state q1 {\n <>\n }\n```\n\n* What is the language of this machine?\n * \\( L(M) = \\{ w \\mid w \\text{ contains an odd number of 1s} \\} \\)\n* \"The set of all strings consisting of an odd number of 1s\" is a **regular language**\n* \\( L(M) \\) is a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 602, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9354e623-9464-430a-85c1-ed1a0a685825": {"__data__": {"id_": "9354e623-9464-430a-85c1-ed1a0a685825", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b47aa7d7-b12d-4c11-8bee-de58e5f3cf99", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "546f4746c096a6a662aa9c906e3c008dabc920d03b0fd5ef7b9d0f96b95f2df5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Languages\n\n* Why regular language is important in our discussion?\n * **Definition**: A language is regular if some finite-state machines recognize it.\n * If we can prove that a language is **regular**\n - We must be able to construct a finite-state machine to recognize it\n - It maybe hard to build but I know that it exists\n * If we can prove that a language is **not regular**\n - We cannot construct a finite-state machine to recognize it\n* This is an example of a limitation of this computational model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 527, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1d42ac74-e520-4691-8b0c-98c26f6390bf": {"__data__": {"id_": "1d42ac74-e520-4691-8b0c-98c26f6390bf", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "da03ca81-8f56-44a7-ad5a-4b3bc91da4ba", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "12a47552f187dbb0504e90b3631288b4c9249be834bcd68d06a5f156e53fcc7d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem and Language\n\n* In theory of computation, a problem is represented as a language \n - A problem of determining whether a string contains 011 as a substring \n\n $$\n L(M) = \\{ x \\mid x \\text{ contains } 011 \\text{ as a substring} \\}\n $$\n\n* We already see a Deterministic Finite Automaton (DFA) \\( M \\) that accepts all strings that contain 011 as a substring and reject those that do not contain 011 as a substring \n* It means this problem is **solvable** by the algorithm captured by the previous DFA \n* In case of algorithm in a form of DFA (not all algorithms) \n - if \\( L(M) \\) is regular, the problem represented by \\( L(M) \\) is solvable \n - if \\( L(M) \\) is not regular, no DFA exists, the problem represented by \\( L(M) \\) is unsolvable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "08d1d904-bd85-476c-ba49-7549b52c143f": {"__data__": {"id_": "08d1d904-bd85-476c-ba49-7549b52c143f", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3416562b-b5c6-4c1f-a58c-645041792890", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "6ec0bffd7c05d0c5c287795f4100a2dbcd04230f7ab4817e0bf6b565f28f3c74", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problems and Languages\n\n* Solvable problems that we see so far\n * The problem of determining whether a string ends with a 1\n\n $$\n \\{ x \\mid x \\text{ ends with a } 1 \\}\n $$\n\n * The problem of determining whether a string is an empty string or ends in a 0\n\n $$\n \\{ x \\mid x \\text{ is an empty string or ends in a } 0 \\}\n $$\n\n * The problem of determining whether a string starts and ends with the same symbol\n\n $$\n \\{ x \\mid x \\text{ starts and ends with the same symbol} \\}\n $$\n\n * The problem of determining whether a string contains either 11 or 00 as a substring\n\n $$\n \\{ x \\mid x \\text{ contains either } 11 \\text{ or } 00 \\text{ as a substring} \\}\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 674, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a355cba3-44bc-4b3a-83cc-7e65eb817512": {"__data__": {"id_": "a355cba3-44bc-4b3a-83cc-7e65eb817512", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0e1c4cce-b403-4faa-a41d-13d9dee922d5", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "45255ea7181f88747297783f83d06cbbdb5b48e8087a47a44ace4a618d34c8d2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problems and Languages\n\n* Solvable problems that we see so far (continue) \n * The problem of determining whether a string contains 011 as a substring \n $$\\{ x \\mid x \\text{ contains } 011 \\text{ as a substring} \\}$$ \n * The problem of determining whether a string ends with 0110 \n $$\\{ x \\mid x \\text{ ends with } 0110 \\}$$ \n * The problem of determining whether a string contains an odd number of 1s \n $$\\{ x \\mid x \\text{ contains an odd number of } 1s \\}$$ \n\n* Each of the above languages is regular since we can construct a DFA that recognizes it. \n * But if a language is very complicate, it will be difficult to construct a DFA that recognizes it \n\n* We need tools to help us to determine whether a language is regular or not", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 756, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf5ff473-f3bd-45ec-9e7a-0eeca807cf7e": {"__data__": {"id_": "bf5ff473-f3bd-45ec-9e7a-0eeca807cf7e", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2ee7c1f1-08ad-466c-a7a8-5a529b8e6ee6", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "eed3aca9e1d09dd4bff19ed7481b31b1b0d11690313d6a06447c32183f7d5e81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Regular Operations\n\n* In arithmetic:\n - Objects are numbers\n - Tools are operations for manipulating numbers (e.g., \\(+\\) and \\(\\times\\))\n * \\(1 + 1\\) gives you a new number which is 2\n\n* In the theory of computation,\n - Objects are languages (sets of strings)\n - Tools are operations for manipulating languages\n\n> **Definition 1.23** \n> Let \\(A\\) and \\(B\\) be languages. We define the regular operations as follows: \n> * **Union:** \n> \\[\n> A \\cup B = \\{ x \\mid x \\in A \\text{ or } x \\in B \\}\n> \\]\n> * **Concatenation:** \n> \\[\n> A \\circ B = \\{ xy \\mid x \\in A \\text{ and } y \\in B \\}\n> \\]\n> * **Star:** \n> \\[\n> A^* = \\{ x_1 x_2 \\ldots x_k \\mid k \\geq 0 \\text{ and each } x_i \\in A \\}\n> \\]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 707, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8cd5aa21-0241-4f9f-b8ca-cc2f8ef438f8": {"__data__": {"id_": "8cd5aa21-0241-4f9f-b8ca-cc2f8ef438f8", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "49118fc0-c987-4507-addb-73640285d570", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "8bb7fc808ff1f21a8a023e6134075c71b28551efea0cef8d12e2807a1ce87b65", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Examples (Union)\n\n* Let \\(\\Sigma = \\{0, 1\\}\\)\n* Consider the following languages \\(A\\) and \\(B\\)\n - \\(A = \\{00, 11\\}\\)\n - \\(B = \\{010, 101\\}\\)\n* The union operation is identical to the set\u2019s union operation:\n\n$$\nA \\cup B = \\{ x \\mid x \\in A \\text{ or } x \\in B \\}\n$$\n\n* From the above definition:\n\n$$\nA \\cup B = \\{00, 11, 010, 101\\}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 340, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "69dae294-3216-4119-a10a-c7bb69dd35f1": {"__data__": {"id_": "69dae294-3216-4119-a10a-c7bb69dd35f1", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "02d0ce3f-56e9-4966-bc7b-fd1d2589d295", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "585cd94647e5923d3fbaef12cb48caadf263269d3ac2358205df462094b96906", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Examples (Concatenation)\n\n* Let \\(\\Sigma = \\{0, 1\\}\\)\n* Consider the following languages \\(A\\) and \\(B\\)\n - \\(A = \\{00, 11\\}\\)\n - \\(B = \\{010, 101\\}\\)\n* The definition of concatenation is defined as\n\n$$\nA \\circ B = \\{ xy \\mid x \\in A \\text{ and } y \\in B \\}\n$$\n\n* From the above definition:\n\n$$\nA \\circ B = \\{00010, 00101, 11010, 11101\\}\n$$\n\n* For simplicity, sometimes we write \\(AB\\) instead of \\(A \\circ B\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 415, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "90d939d0-f4a0-41b4-a27a-4c47a0f636ef": {"__data__": {"id_": "90d939d0-f4a0-41b4-a27a-4c47a0f636ef", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "275bed04-9789-4330-92b4-64cc8e7d3a29", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "002a8050657c749a47eb3af9d63813fc80020f2f6456a7a19548044c7a85408d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Examples (Star)\n\n* Let \\(\\Sigma = \\{0, 1\\}\\)\n* Consider the following language \\(A\\)\n - \\(A = \\{00, 11\\}\\)\n* The definition of star is defined as\n\n$$\nA^* = \\{x_1 x_2 \\ldots x_k \\mid k \\geq 0 \\text{ and } x_i \\in A \\}\n$$\n\n* If \\(k = 0\\), the above definition becomes\n\n$$\n\\{ \\mid 0 \\geq 0 \\} = \\{\\varepsilon\\}\n$$\n\n* If \\(k = 1\\), the above definition becomes\n\n$$\n\\{ x_1 \\mid 1 \\geq 0 \\text{ and } x_i \\in A \\} = \\{00, 11\\}\n$$\n\n* If \\(k = 2\\), the above definition becomes\n\n$$\n\\{ x_1 x_2 \\mid 2 \\geq 0 \\text{ and } x_i \\in A \\} = \\{0000, 0011, 1100, 1111\\}\n$$\n\n* If \\(k = 3\\), the above definition becomes\n\n$$\n\\{ x_1 x_2 x_3 \\mid 3 \\geq 0 \\text{ and } x_i \\in A \\} = \\{000000, 000011, \\ldots, 111111\\}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 705, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "18f7c5e8-a326-43fa-9320-7f64b85b3a91": {"__data__": {"id_": "18f7c5e8-a326-43fa-9320-7f64b85b3a91", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b9b439b9-66bc-47ad-b55c-efeb8d18490c", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "bf82ee5bd6b8e6e71b2595157fff32de71d9090a3beeaf4ed827ccde0afcc38c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Examples (Star)\n\n* Let \\(\\Sigma = \\{0, 1\\}\\)\n* Suppose \\(A = \\{00, 11\\}\\), what is \\(A^*\\)?\n\n $$\n A^* = \\{\\varepsilon, 00, 11, 0000, 0011, 1100, 1111, 000000, \\ldots \\}\n $$\n\n* Suppose \\(A = \\{011\\}\\), what is \\(A^*\\)?\n\n $$\n A^* = \\{\\varepsilon, 011, 011011, 011011011, 011011011011, \\ldots \\}\n $$\n\n* Suppose \\(A = \\{0, 1\\}\\), what is \\(A^*\\)?\n\n $$\n A^* = \\{\\varepsilon, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, \\ldots \\}\n $$\n\n This is the set of all strings over \\(\\{0, 1\\}\\)\n\n* Suppose \\(A = \\emptyset\\), what is \\(A^*\\)?\n\n $$\n A^* = \\{\\varepsilon\\}\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 576, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6e93af0b-1548-4d2a-ab0d-1543a6e22af9": {"__data__": {"id_": "6e93af0b-1548-4d2a-ab0d-1543a6e22af9", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f0703d5c-6799-4917-90a1-103fad71995c", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "5d10d6d53637d169226f18761040ba49fee382cd5c41fe103559b06ec60db00b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Definition of Closed Under Operations\n\n* Let \\( A \\) be a set of objects (a collection of object) \n* We say that \\( A \\) is closed under operation \\(\\triangle\\) if for any \\( x \\in A \\) and \\( y \\in A \\), \\( x \\triangle y \\) is also in \\( A \\). \n* Example: Let \\(\\mathbb{N}\\) be the set of natural number \n - \\(\\mathbb{N}\\) is closed under addition \n * For any two natural numbers \\( x \\) and \\( y \\), \\( x + y \\) is a natural number \n - \\(\\mathbb{N}\\) is closed under multiplication \n * For any two natural numbers \\( x \\) and \\( y \\), \\( x \\times y \\) is a natural number \n - \\(\\mathbb{N}\\) is **not** closed under subtraction \n * \\( 5 - 7 \\) is not a natural number", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 691, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e8013bd5-990e-4d6c-af0b-41662875b89e": {"__data__": {"id_": "e8013bd5-990e-4d6c-af0b-41662875b89e", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fb90d954-52f2-440d-bf2a-3d472c8126b5", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "07dd99af9f00630532e63bb72cfd3cb70e44640cdf7d0c22cb7d5ecd4afdfe3b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Definition of Closed Under Operations\n\n* Let \\(\\mathbb{L}\\) be the set of all **regular languages**\n - This is a set of sets\n* Recall that we have three operations, union, concatenation, and star\n* Is \\(\\mathbb{L}\\) closed under **union** operation?\n - For any regular languages \\(A\\) and \\(B\\), is \\(A \\cup B\\) a regular language?\n* Is \\(\\mathbb{L}\\) closed under **concatenation** operation?\n - For any regular languages \\(A\\) and \\(B\\), is \\(A \\circ B\\) a regular language?\n* Is \\(\\mathbb{L}\\) closed under **star** operation?\n - For any regular language \\(A\\), is \\(A^*\\) a regular language?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 602, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2335c1bd-979a-4955-a866-19da3c341988": {"__data__": {"id_": "2335c1bd-979a-4955-a866-19da3c341988", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "42522ea5-c891-4f9c-b164-fd0c950ddac0", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "f617e6a3c1b13a435eb229c3380f99507af4130c75b5f426b95ee85617b54997", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \\( \\mathcal{L} \\) is regular under union operation\n\n* Let \\( A \\) be a set of strings over \\(\\{0,1\\}\\) that contain a **00** as a substring \n* Is \\( A \\) a regular language? \n* Can you construct a DFA that recognizes the language \\( A \\)? \n* One of the machines that recognizes \\( A \\) can be as follows:\n\n```mermaid\nstateDiagram-v2\n [*] --> q_a\n q_a: qa\n q_b: qb\n q_c: qc (accepting)\n q_a --> q_a: 1\n q_a --> q_b: 0\n q_b --> q_a: 1\n q_b --> q_c: 0\n q_c --> q_c: 0,1\n```\n\n* Because there exists a DFA that recognizes \\( A \\), \\( A \\) is a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 588, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ae3dbe2a-c5e2-4c6d-b147-a384b340e9e8": {"__data__": {"id_": "ae3dbe2a-c5e2-4c6d-b147-a384b340e9e8", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e27e0b80-9c95-4db7-a28f-d1bad7cf1e4a", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "b7abd3ceea753cb1994f24ff45caca3c06168d7f999b79c29dbf0dd21cd5ed18", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* Let \\( B \\) be a set of strings over \\(\\{0, 1\\}\\) that end with a 1 \n* Is \\( B \\) a regular language? \n* Can you construct a DFA that recognizes the language \\( B \\)? \n* One of the machines that recognizes \\( B \\) can be as follows:\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q0: 0\n q1 --> q1: 1\n state q1 {\n <>\n }\n```\n\n* Because there exists a DFA that recognizes \\( B \\), \\( B \\) is a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 519, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "10ad9e4e-1e48-4b92-b804-d134f671fc21": {"__data__": {"id_": "10ad9e4e-1e48-4b92-b804-d134f671fc21", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "02dedd44-c93f-451f-90c8-c93c4619bcee", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "d85c393142d728202bbea539da4a9656156f3b2f76bc04c5fb1fb64d35a42a72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* We have \\( A = \\{ x \\mid x \\text{ contains } 00 \\text{ as a substring} \\} \\) is regular \n* We have \\( B = \\{ x \\mid x \\text{ ends with a } 1 \\} \\) is regular \n* How about \\( A \\cup B \\)? \n \\[\n A \\cup B = \\{ x \\mid x \\text{ contains } 00 \\text{ as a substring or } x \\text{ ends with a } 1 \\}\n \\] \n* It is quite straightforward to construct a machine that recognizes \\( A \\cup B \\) (try to build one yourself)\n\nMermaid diagram representing the finite automaton:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: 1\n S0 --> S2: 0\n S1 --> S1: 1\n S1 --> S2: 0\n S2 --> S3: 0\n S2 --> S0: 1\n S3 --> S3: 0,1\n state S1 {\n <>\n }\n state S3 {\n <>\n }\n```\n\n* This does not prove that if \\( A \\) and \\( B \\) are regular, \\( A \\cup B \\) is regular \n - This is just one example out of infinite many instances of regular languages", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 928, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64c67597-ebd6-494d-8dc9-4b3ac4a18833": {"__data__": {"id_": "64c67597-ebd6-494d-8dc9-4b3ac4a18833", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2004be53-d697-4701-b9e9-4e860e877b1b", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "e11ce36a8a44d06d4ec9be762ae424356c73e01da85432b8e3eb12465cf60544", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* We need to show that for any two regular languages \\( A \\) and \\( B \\), \n \\( A \\cup B \\) is regular \n* Given a regular language \\( A \\) over a \\(\\Sigma\\), what do we know about the language \\( A \\)? \n - There exists a DFA \\( M_A \\) that recognizes \\( A \\) \\((L(M_A) = A)\\) \n - \\( M_A = (Q_A, \\Sigma, \\delta_A, q_A, F_A) \\) for some \\( Q_A, \\delta_A, q_A, \\) and \\( F_A \\) \n* Similarly, given a regular language \\( B \\) over a \\(\\Sigma\\): \n - There exists a DFA \\( M_B \\) that recognizes \\( B \\) \\((L(M_B) = B)\\) \n - \\( M_B = (Q_B, \\Sigma, \\delta_B, q_B, F_B) \\) for some \\( Q_B, \\delta_B, q_B, \\) and \\( F_B \\) \n* To show that \\( A \\cup B \\) is regular for any regular languages \\( A \\) and \\( B \\), we need to construct a DFA that recognizes \\( A \\cup B \\) from \\( M_A \\) and \\( M_B \\) \n - To understand the process, we are going to work on a specific example", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 916, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "874c2b98-79a1-48a7-bcea-cde96aa66863": {"__data__": {"id_": "874c2b98-79a1-48a7-bcea-cde96aa66863", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "90e56275-c3e3-40a1-9482-8550ba5323f0", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "028ae8a4cac2a20539e368c16c999a93469de3c197c435ded161512ddafdd3f0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \\( L \\) is regular under union operation\n\n* Recall the previous two regular languages and its DFAs where \n \\[\n \\Sigma = \\{0, 1\\}\n \\]\n\n* \\( A = \\{ x \\mid x \\text{ contains } 00 \\text{ as a substring} \\} \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> q_a\n q_a --> q_a: 1\n q_a --> q_b: 0\n q_b --> q_c: 0\n q_b --> q_a: 1\n q_c --> q_c: 0,1\n state q_c {\n <>\n }\n```\n\n\\[\nM_A = (Q_A, \\Sigma, \\delta_A, q_A, F_A) \\quad \\text{and} \\quad L(M_A) = A\n\\]\n\n* \\( B = \\{ x \\mid x \\text{ ends with a } 1 \\} \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> q_0\n q_0 --> q_0: 0\n q_0 --> q_1: 1\n q_1 --> q_0: 0\n q_1 --> q_1: 1\n state q_1 {\n <>\n }\n```\n\n\\[\nM_B = (Q_B, \\Sigma, \\delta_B, q_B, F_B) \\quad \\text{and} \\quad L(M_B) = B\n\\]\n\n* Given a string \\( w \\) and these two DFAs, how to check whether \n \\( w \\in A \\cup B \\)?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 862, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "62f33d6a-d279-4ba8-98cc-89a9c3fd415f": {"__data__": {"id_": "62f33d6a-d279-4ba8-98cc-89a9c3fd415f", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e1692368-fbc4-4cce-8e92-31446be6d163", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "44ee3adc2702ebcd6bf40899cad9b7be852ed7b3da02dc8300cc62ba1f768c8e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* Recall that \\( A = L(M_A) \\) and \\( B = L(M_B) \\) \n - Thus, \\( A \\cup B = L(M_A) \\cup L(M_B) \\)\n\n* \\( w \\in A \\cup B \\) \n iff \\( w \\in A \\) or \\( w \\in B \\) \n iff \\( w \\in L(M_A) \\) or \\( w \\in L(M_B) \\) \n iff \\( M_A \\) accepts \\( w \\) or \\( w \\in L(M_B) \\) \n iff \\( M_A \\) accepts \\( w \\) or \\( M_B \\) accepts \\( w \\)\n\n* In other words, \n $$\n w \\in A \\cup B \\text{ if and only if } M_A \\text{ accepts } w \\text{ or } M_B \\text{ accepts } w\n $$\n\n* To check whether \\( w \\in A \\cup B \\): \n - Run both \\( M_A \\) and \\( M_B \\) on input \\( w \\) \n - If one of them or both accepts \\( w \\), then \\( w \\in A \\cup B \\) \n - If both reject \\( w \\), then \\( w \\notin A \\cup B \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 728, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f0095c55-0c0d-430f-8445-dcfe95b820b9": {"__data__": {"id_": "f0095c55-0c0d-430f-8445-dcfe95b820b9", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f5d499ab-869a-40d6-94ae-93acf0a76d5f", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "4fd0b3635e772156121868d75985336c698c11c545a5e92355a2bc6a1e8028f6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* We can run both machines simultaneously\n\n Diagram of two automata:\n\n - First automaton:\n \n States: \n - \\( q_a \\) (initial) \n - \\( q_b \\) \n - \\( q_c \\) (accepting) \n \n Transitions: \n - \\( q_a \\xrightarrow{0} q_b \\) \n - \\( q_b \\xrightarrow{0} q_c \\) \n - \\( q_a \\xrightarrow{1} q_a \\) (loop) \n - \\( q_b \\xrightarrow{1} q_a \\) \n - \\( q_c \\xrightarrow{0,1} q_c \\) (loop) \n\n - Second automaton:\n \n States: \n - \\( q_0 \\) (initial) \n - \\( q_1 \\) (accepting) \n \n Transitions: \n - \\( q_0 \\xrightarrow{0} q_0 \\) (loop) \n - \\( q_0 \\xrightarrow{1} q_1 \\) \n - \\( q_1 \\xrightarrow{0} q_0 \\) \n - \\( q_1 \\xrightarrow{1} q_1 \\) (loop) \n\n* Let state \\((p, q)\\) represent the situation where \n - The current state of \\( M_A \\) is \\( p \\) \n - The current state of \\( M_B \\) is \\( q \\) \n\n* With the new notion of states, we have the combined automaton:\n\n States and transitions:\n\n - \\((q_a, q_0)\\) (initial) \n - \\(\\xrightarrow{0} (q_b, q_0)\\) \n - \\(\\xrightarrow{1} (q_a, q_1)\\) \n\n - \\((q_b, q_0)\\) \n - \\(\\xrightarrow{0} (q_c, q_0)\\) \n - \\(\\xrightarrow{1} (q_a, q_1)\\) \n\n - \\((q_c, q_0)\\) (accepting) \n - \\(\\xrightarrow{0} (q_c, q_0)\\) (loop) \n - \\(\\xrightarrow{1} (q_c, q_1)\\) \n\n - \\((q_a, q_1)\\) (accepting) \n - \\(\\xrightarrow{0} (q_b, q_1)\\) \n - \\(\\xrightarrow{1} (q_a, q_1)\\) (loop) \n\n - \\((q_b, q_1)\\) (accepting) \n - \\(\\xrightarrow{0} (q_c, q_1)\\) \n - \\(\\xrightarrow{1} (q_a, q_1)\\) \n\n - \\((q_c, q_1)\\) (accepting) \n - \\(\\xrightarrow{0} (q_c, q_1)\\) (loop) \n - \\(\\xrightarrow{1} (q_c, q_1)\\) (loop) \n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1746, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "12441627-7081-4502-aa8c-a48eb0f873c3": {"__data__": {"id_": "12441627-7081-4502-aa8c-a48eb0f873c3", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "66271a71-762d-41d1-a48a-b64ecccc8575", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "6a9fe84d5c7549189b80a2941dc5d6938863a4d60e203c95f1637bd32f90ec1b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* Let \\( M_A \\) recognizes \\( A \\), where \\( M_A = (Q_A, \\Sigma, \\delta_A, q_A, F_A) \\) \n* Let \\( M_B \\) recognizes \\( B \\), where \\( M_B = (Q_B, \\Sigma, \\delta_B, q_B, F_B) \\) \n* Machine \\( M = (Q, \\Sigma, \\delta, q_0, F) \\) that recognizes \\( A \\cup B \\) can be constructed as follows: \n 1. \\( Q = \\{(r_1, r_2) \\mid r_1 \\in Q_A \\text{ and } r_2 \\in Q_B \\} \\) \n 2. For each \\((r_1, r_2) \\in Q\\) and \\(a \\in \\Sigma\\) \n $$\n \\delta((r_1, r_2), a) = (\\delta_A(r_1, a), \\delta_B(r_2, a))\n $$ \n 3. \\( q_0 = (q_A, q_B) \\) \n 4. \\( F = \\{(r_1, r_2) \\mid r_1 \\in F_A \\text{ or } r_2 \\in F_B \\} \\) \n\n* To recognize \\( A \\cap B \\), simply change the set of accept states to \n$$\nF = \\{(r_1, r_2) \\mid r_1 \\in F_A \\text{ and } r_2 \\in F_B \\}\n$$\n\n* If \\( A \\) and \\( B \\) are regular languages, \\( A \\cup B \\) is regular", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 861, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b281dca1-cd39-4065-a83b-8a211768ca28": {"__data__": {"id_": "b281dca1-cd39-4065-a83b-8a211768ca28", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bb822432-da73-4cb8-aa49-791fdade5749", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "5dd972e802556fab0775f26360267cc53a05b2c2222006c2fb084cb5cc5758aa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Conclusions\n\n* A language is regular if it is recognized by some finite-state machines \n - If you can prove that a language is regular: \n * there exists a finite-state machine that recognizes it \n - If you can prove that a language is **not** regular: \n * there is no finite-state machine that recognizes it \n* In formally, we show that if \\( A \\) and \\( B \\) are regular languages, \n \\( A \\cup B \\) is a regular language \n* To prove the closure of concatenation and star operators, we need a sightly different computational model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 549, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "32028989-b629-4e4e-ab5c-c5551c1ac592": {"__data__": {"id_": "32028989-b629-4e4e-ab5c-c5551c1ac592", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f5741d7c-21a6-41f5-9738-575ca347de0c", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "2ee956496f717e8e2b7440f1efb581fbc75d219f574d239ec543b9b13cd3a2c5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L13 Intro to System Design\n\nCS 1530 Software Engineering \nNadine von Frankenberg \n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 165, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e49ddd5d-01f3-48f1-9ac6-c9dc783179a3": {"__data__": {"id_": "e49ddd5d-01f3-48f1-9ac6-c9dc783179a3", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c7de38fd-d9aa-4c33-88ec-a44be9ff7b9d", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "e3aa022a4aa5ac4c39b3b978b39521cacde57835cbc7994f32e5fe17c5f613fe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4dc4830f-ff65-450e-b281-feb4d5e76249": {"__data__": {"id_": "4dc4830f-ff65-450e-b281-feb4d5e76249", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fcd0446e-c5a4-4381-9364-3d1156892065", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "24ee041541c5c61d1338f30bfda13897bf542e2135f6c2e5230048e118f7e04e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* Understand the purpose of system design \n* You can formulate design goals \n* You understand the purpose of modeling a workflow", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 149, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b1e59573-5fad-48ae-9ddd-3c070c6f789a": {"__data__": {"id_": "b1e59573-5fad-48ae-9ddd-3c070c6f789a", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d859ca18-b279-4b2c-9da1-f2f307c69980", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "1b3fd721fcf6c0f698a078f96547b34a19fbd316a1d496ef6503efbca16080d4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Recap: Analysis\n - Analysis object model\n - Modeling access\n* System design overview\n* Design goals\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 149, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1c277a74-fc74-4126-bf3b-05ba93e183fc": {"__data__": {"id_": "1c277a74-fc74-4126-bf3b-05ba93e183fc", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "68f97990-1b07-476b-b1aa-dcde472bf156", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "b596d601e15e3b601806544930b2ba95534d1ce3feb3913d8d5422cfdd90a839", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I12 Pizza ordering system \ud83d\udc40 Review\n\n**Problem statement \u2014 Design a pizza ordering system**\n\n> \u201cStudents can order pizzas with varying sizes and choose from various toppings. After selecting their pizzas, they confirm the delivery type (pickup or dorm delivery) and pay. Once an order is placed, the pizza baker receives it and confirms the order. Students can then check the expected time until the pizza is ready (for pickup) or until delivery. In addition to regular pizzas (Margherita, Pepperoni, Mushroom), the pizza baker can also prepare two special types of pizzas: Hawaiian or Yinzer.\"\n\n**Your task:** Model this system using a UML class diagram.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 657, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "473e6e07-1bb8-4d52-bb09-3f90a64fdfd5": {"__data__": {"id_": "473e6e07-1bb8-4d52-bb09-3f90a64fdfd5", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8715f287-f413-404e-89b7-7d16ac6ff86f", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "4e40f6490850e2b5b60844285f64c643e8b95f01b8f1c16908db4d0a5395671a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Pizza ordering system\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n \n\n \n\n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n\n \n\n \n\n\n\n\n\n \n\n \n\n\n\n\n\n \n \n
BakerPizzaTopping
nameanchovyLoversizename
makePizza()priceamount
bake()isVegetarian()
StudentcalculateExpectedTime()
nameisHungryorder()
isVegetarian
eat()
\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
HawaiianPizzaYinzerPizza
addExtraPineapple()addExtraFries()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1257, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0b025cc9-77e7-44f5-9cd3-de54d0a6aad4": {"__data__": {"id_": "0b025cc9-77e7-44f5-9cd3-de54d0a6aad4", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ff6839ec-42bd-4037-96c8-bafd3557384e", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "2d66c7e680afd3f57b4bdac9eecb29012951c3de66cb12fa128091d2d0ba5f58", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Pizza ordering system\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n\n \n\n \n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
BakerOrderPizza
name*totalPrice\n \n\n\n \n \n\n\n\n\n\n\n\n \n
name
description
size
toppings[]: Topping
isVegetarian()
addTopping()
removeTopping()
\n\n
anchovyLoverdeliveryType
makePizza()
Student*complete()
namecalculateExpectedTime()
emailcreate()
address
notify()
\n\n\n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
Payment
methodHawaiianPizzaYinzerPizza
amountaddExtraPineapple()addExtraFries()
status
processPayment()
\n\n* Relationships and multiplicities:\n - Baker to Order: *\n - Student to Order: *\n - Order to Pizza: 1..10\n - Student to Payment (paymentMethods): 0..3", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1784, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1118c353-18fb-483a-8671-6a195dfa9e0f": {"__data__": {"id_": "1118c353-18fb-483a-8671-6a195dfa9e0f", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "826ce114-e57e-492d-9d36-db999b785c38", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "e7bedc25f36d8613bb4d46e56bc7a6f3f80e383a4cd461856b42eac7d49eaee2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying access\n\n\n \n \n \n \n \n \n \n \n\n \n \n
InvestmentManager
nameaddress
\n\n> Owner and InvestmentManager can view the balance. Owner can withdraw money.\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
OwnerBankAccount
namewithdraw() >number
addressbalance
creditScoreviewBalance()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1022f269-ec9e-43d7-9430-c959108fbf5b": {"__data__": {"id_": "1022f269-ec9e-43d7-9430-c959108fbf5b", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "34562b9e-41b0-4c55-b91c-a8e68e78c5de", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "cd33f2968b18302f6e7ea6ceb03a3272467d50c9b2d2d26dc92a4c665532cc1d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying access - Detailed\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
OwnerInvestmentManager
BankAccountviewBalance()
withdraw()
viewBalance()
\n\n> Access matrix\n\n----\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
InvestmentManager
name
address
\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n \n
OwnerBankAccount
name
address
creditScore
number
balance
viewBalance()
withdraw(): Money
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 876, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64a55c16-2ca8-46f2-9df6-f0446a1f8a4d": {"__data__": {"id_": "64a55c16-2ca8-46f2-9df6-f0446a1f8a4d", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "652b823a-51d6-4dd5-8a32-a9439ec86d14", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "deab65b02a737161b573f80796191716b8c6fc2440a19a9c8924675247377d72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Access Matrix\n\n* Access control: Defines access permissions for entities and objects \n* Permissions: Provides detailed, fine-grained access control \n* Security: Forms the basis for system security analysis and policies \n* The rows of the matrix represents the actors of the system \n* The column represent classes whose access we want to control \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OwnerInvestmentManager\n
\n An entry in the access matrix represents an **access right** \n Lists the operations that can be executed by the actor on instances of the class\n
\n
BankAccount\n viewBalance()
\n withdraw()\n
viewBalance()
SupportDeskcontact()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 866, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ec1ea724-9db0-4b4c-bc81-3033ca2aa3a9": {"__data__": {"id_": "ec1ea724-9db0-4b4c-bc81-3033ca2aa3a9", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5c97d1bd-fb04-4323-85fc-1cb5de8a908e", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "61c25cabda3f2b7e78f5d7b41016e68ae0b9c1571d42c8be6ecb2a456cceb8b9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Recap: Analysis\n* System design overview\n* Design goals", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 77, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "16ccf850-39d9-468a-a6c7-e101b61a4fa7": {"__data__": {"id_": "16ccf850-39d9-468a-a6c7-e101b61a4fa7", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f2b5f1a1-6867-41fc-8227-8ec99b6cea22", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "9cec7b62cb943fa693965166fde883dd465cd8262b77d5bb7a5f0062eab8a356", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing software systems\n\n> *There are two ways of constructing a software design.* \n> *One way is to make it so simple* \n> *that there are obviously no deficiencies.* \n> *And the other way is to make it so complicated* \n> *that there are no obvious deficiencies.* \n> \u2014 C.A.R. Hoare", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0511dd64-02e5-435d-8358-a45954132916": {"__data__": {"id_": "0511dd64-02e5-435d-8358-a45954132916", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "177e0539-83a6-4ee6-b85b-8120da8f2bcd", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "2cb6eb21a63d0fa9603ccc61ea36dc1bab62afdb394ab5e46cd511da6c566239", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing software systems\n\n* Design is a dynamic and creative problem-solving activity\n* It is difficult - there is no concrete recipe or one-size-fits-all approach\n* It requires adaptability and tailoring to the specific context\n* The quality of a system's design and its designer directly impacts the system's performance, longevity, and overall success", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 359, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4eb73dd6-245f-4699-be61-33c5dcad8f6d": {"__data__": {"id_": "4eb73dd6-245f-4699-be61-33c5dcad8f6d", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5d4ffcbd-0aa5-4ecc-8f27-26f90df73d2d", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "cc87d8939e06b517c72245cda9dfb4bc0b5d5fe84edf730eb8e258da2c99e449", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System Design\n\n* For each feature, there are many variants to accomplish the desired behavior\n - What are the differences between the variants?\n - Which variant should we choose?\n\n**Example** \nFR11 Search for Product: The consumer can search for a product.\n\n> Which one to pick?\n\nSimple Search\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003Search Engine \n\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003(e.g., ElasticSearch)\n\n**It depends!** on the goals \non the context", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 437, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "be86bcee-6fd6-45f8-a723-7136f6d86f33": {"__data__": {"id_": "be86bcee-6fd6-45f8-a723-7136f6d86f33", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "14b3ded6-2db4-4f6a-8be6-d6092bcfce2a", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "308f0c3cc5807a9ef89af7b435a20ffd452f9a57773ed67bb1301f9ba6160c91", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to implement a system?\n\n* System design bridges the gap between requirements analysis and implementation\n* Goal: Allocate the requirements to hardware and software components\n - It helps to translate abstract ideas into concrete, organized systems\n* Comprises three main steps:\n 1. Choose a **high-level strategy for solving-problem**\n 2. Decide how to **organize the system** into subsystems\n 3. **Map subsystems to** HW and SW **components**\n - Decide on the \"tech stack\"\n - Decide on \"build or buy\"\n - \u2026\n\n----\n\n**Diagram:**\n\nProblem", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 558, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d5bdcc19-7352-42fe-bb3f-6515f67612f8": {"__data__": {"id_": "d5bdcc19-7352-42fe-bb3f-6515f67612f8", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d224812f-ed2c-48b6-8b0d-4b85b6056a6d", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "e34e2bb2863000d0f683e839d62036aa2a0341344eb9e611f44cfa9a2b445176", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Software Systems\n\n* Object-Oriented Requirements **Analysis**\n - Understand the problem\n - Identify the key concepts and their relationships\n - Build a (visual) vocabulary\n - Create an application domain model (conceptual model) ![Analysis Object Model]\n\n* Object-Oriented **Design**\n - Assign responsibilities (attributes, methods)\n - Explore behavior with interaction diagrams\n - Explore design alternatives\n\n* **Implementation**\n - Map designs to code, implementing classes and methods", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 509, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "13ab6c13-c02c-4a99-9110-5dfafca14a4b": {"__data__": {"id_": "13ab6c13-c02c-4a99-9110-5dfafca14a4b", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "65ffad4d-a233-48b3-a13e-ecf477ded187", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "79c778afc6dec75d40cb69ff02c10e6ec2880fb0cec8a0f82188b72845cad9ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Important system design principles\n\n1. **Separation of concerns** \n * Divide the system into separate aspects or concerns \n * Helps to keep the system organized\n\n2. **Abstraction** hides complex implementation details, simplified interfaces\n\n3. **Modularity** promotes code reusability and simplifies maintenance\n\n4. **Encapsulation** restricts direct access to data (data integrity) \n * Makes changes to the implementation easier without affecting other parts of the system\n\n5. **Consistency** promotes readability, maintainability, integrity\n\n6. **Simplicity** reduces complexity", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 593, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "251c8e79-c925-4387-9cad-7462c94f0383": {"__data__": {"id_": "251c8e79-c925-4387-9cad-7462c94f0383", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "19341d89-e6ff-4743-940c-b22f9a3293e5", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "05eca7e35569e929614a597ee1043f34831b085b9967c8f8163076bdbce379e7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System design concepts \u2014 Overview\n\n* Design goals \n* Control flow \n* Subsystem decomposition \n* HW/SW mapping \n* Data management \n* Access control \n* Boundary conditions", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 178, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "878b61fa-d1d7-4c4e-936c-ec9995cc92d7": {"__data__": {"id_": "878b61fa-d1d7-4c4e-936c-ec9995cc92d7", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e8c640c8-7e65-4cca-9734-1bd2a956f7e7", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "9a79dd4b16340a7830099dee6d6693e5d23e8933cc4c571818b1f999086e1145", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Recap: Analysis\n* System design\n* Design goals\n - Types\n - Trade-offs", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 93, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6ba10e8-ee3c-4199-98f2-a3406d8f17a6": {"__data__": {"id_": "a6ba10e8-ee3c-4199-98f2-a3406d8f17a6", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e614d752-bcf5-49a5-9fc9-7883c532d2d9", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "9d1b2e574a13148b300d9b5af6a0634b4ad1013c2f3a082a9be5bd953d52fbad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# So far \u2026\n\n* Identified requirements\n* Analysis object model (domain model)\n\n* Now, define the concrete messages and behavior of/between objects\n* How?\n - How should concepts be implemented by classes? \n - How should the objects interact exactly? Time-frame?\n\n> This is a critical, important, and non-trivial task!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 319, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0b8b459-ef0b-4173-b93d-cfa855c0d6e9": {"__data__": {"id_": "c0b8b459-ef0b-4173-b93d-cfa855c0d6e9", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dc2a682f-573e-40c2-9bcf-343269d2a6dc", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "712994a3ad6a0a1242651c166d96d7a958db06a458b3a1051e9a8581c7275063", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Goal of Software (Software Quality)\n\n* Functional correctness\n* Robustness\n* Flexibility\n* Reusability\n* Efficiency\n* Scalability\n* Security", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 143, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9d03caec-492b-42c8-a666-597aed8a1ff6": {"__data__": {"id_": "9d03caec-492b-42c8-a666-597aed8a1ff6", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "94174a27-1550-49dd-bc2e-f888f9496523", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "a66c311348c35c885fce6e003efc556cf8426c2557295551ec2dccaee18157a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing for change\n\n* *\u2026 accept the fact of change as a way of life, rather than an untoward and annoying exception* \n \u2013 Brooks, 1974\n* *Software that does not change becomes useless over time* \n \u2013 Belady and Lehman\n\n* The biggest cost is typically not building the system but evolving the system! \n - Reducing the cost of change is important when designing software systems\n\n\n \n \n\n\n\n\n \n\n \n \n
implementation & maintenance by single personcomprehensible by a single personcomplex system
Design for division of labor
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 679, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "024d6068-4e46-43d9-8a3b-7c1598e98d50": {"__data__": {"id_": "024d6068-4e46-43d9-8a3b-7c1598e98d50", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6db89246-18d0-47d7-85af-16b2dc31cd15", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "018c3f40cf83fb1495d598bc78c4762ac780bcd432696f93f25ac2c1b16ac807", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Design goals\n\nDesign goals identify and describe the **qualities the system should focus on**\n\n* Often phrased as statements a team makes about the quality of experience they would like a system to attain\n* Design goals can be **inferred from the non-functional requirements** or from the application domain\n - Design goals are often generalized non-functional requirements\n - Active Elicitation: Some design goals must be actively elicited through conversations with clients or stakeholders; metrics, design methodologies, and implementation goals are valuable sources", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 574, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6c5e7bcc-e38e-47c6-b36b-cbb890ca402f": {"__data__": {"id_": "6c5e7bcc-e38e-47c6-b36b-cbb890ca402f", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d84d45e6-be5a-42db-a647-b6cc84755468", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "4504dc772b48f8ba8004994fc569a7db0d9ce65bdcf8e78106ab0d0f78df7029", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Design goals (cont.)\n\n* Typically non-prescriptive and more abstract\n* Focus on the concerns of designers, architects, and developers\n* Often a prioritization of non-functional requirements: **trade-offs** guide the development\n* Design goals describe the overarching objectives for the system's architecture and design", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 322, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ebed2dc9-9faf-4ec0-97b7-917c0f01cfda": {"__data__": {"id_": "ebed2dc9-9faf-4ec0-97b7-917c0f01cfda", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5eb418ed-3041-4ad6-8bd9-b8129cae2861", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "8ac0ed3169f2b35bcfd29d6407bcf27fbb098d03ccfa64a763d175c5cb8acc33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of design goals \u2014 Customer\n\n* Cost\n - **Development cost** \u2014 Cost of developing the (initial) system\n - **Deployment cost** \u2014 Cost of installing the system and training the users\n - **Upgrade cost** \u2014 Expenses associated with data migration and backward compatibility requirements\n - **Maintenance cost** \u2014 Resources needed to handle future bug fixes and enhancements to the system\n - **Administration cost** \u2014 Cost required for administering and managing the system", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 480, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6f40f275-021e-4f4a-a7ef-8c12671097f0": {"__data__": {"id_": "6f40f275-021e-4f4a-a7ef-8c12671097f0", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d01b286d-3cce-46f2-a9ae-f0708d27e75d", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "5c9e4c3ca41cdedeeb5b579f3c885461b3cd6d43f70619a1addb5659d27e7c2d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of design goals \u2014 Customer\n\n* Maintenance\n - **Extensibility** \u2014 How easy is it to add functionality or new classes to the system?\n - **Modifiability** \u2014 How easy is it to change the functionality of the system?\n - **Adaptability** \u2014 How easy is it to port the system to different application domains?\n - **Portability** \u2014 How easy is it to port the system to different platforms?\n - **Readability** \u2014 How easy is it to understand the system from reading the code?\n - **Traceability of requirements** \u2014 How easy is it to map the code to specific requirements?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 574, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e445d215-3d9f-4f88-8b66-b54af187dbfb": {"__data__": {"id_": "e445d215-3d9f-4f88-8b66-b54af187dbfb", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bf16fd0c-21c0-41d5-93fe-5b78e601078a", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "f8e27d73f9c3be1898f7ce222b5126cbd11a6adda96c8ccae9e29ca4d7200892", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of design goals \u2014 End-user\n\n* **Utility** \u2014 How well does the system support user tasks and goals? \n* **Usability** \u2014 How easy is it for the user to interact with the system? \n* **Cost** \u2014 How much does it cost to use the system? (free vs one-time payment vs future costs)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 283, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "86d1181b-979c-456a-ad72-4c6db3942256": {"__data__": {"id_": "86d1181b-979c-456a-ad72-4c6db3942256", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a37f829a-0fd3-494b-b314-c279ba3c2d65", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "bfa34e30b870043f94ee68c68ce55dc01cadc558afd1277d3813c5370414437c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of design goals \u2014 Developer\n\n* Performance \n - **Response time** \u2014 How quickly does the system respond after receiving a user requests? \n - **Throughput** \u2014 How many tasks can the system accomplish within a fixed time frame? \n - **Memory** \u2014 How much space is necessary for the system to operate efficiently? \n\n* Dependability \n - **Robustness** \u2014 Ability to handle invalid user input \n - **Reliability** \u2014 Difference between specified and actual behavior \n - **Availability** \u2014 Percentage of time the system is available for normal tasks without downtime \n - **Fault tolerance** \u2014 Ability to continue operating in the presence of errors or failures \n - **Security** \u2014 Ability to protect against malicious attacks, unauthorized access, data breaches \n - **Safety** \u2014 System's ability to prevent endangering human lives, even in the presence of errors and failures", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 891, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e06064ef-047e-4e1e-bf8e-47ed84133f39": {"__data__": {"id_": "e06064ef-047e-4e1e-bf8e-47ed84133f39", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b9d7d631-e605-4c87-91b3-8f92585b11f5", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "7ee17a241574c5ad349236dc30377d528f726a06f5d8719e0063df6b90f6c59d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Design goals interests overlap University of\n (Example) Pittsburgh\n\n Portability\n Portability\n Customer Developer\n\n Reliability\n Reliability\n Reliability\n\n Usability Consistency\n Usability Consistency\n\n End-user\n\n\u00a9 2025 Nadine von Frankenberg CS 1530 - L13 Intro to System Design 29", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "62861af4-7d71-4d9a-9a3b-a03f2506e9ae": {"__data__": {"id_": "62861af4-7d71-4d9a-9a3b-a03f2506e9ae", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1d8e5a67-9ec0-4f33-afd8-5a97a8e192c9", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "55a88f98a58c5822106a49c22a77681431af887dfebda5f99960129ab3d05abe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements vs design goals\n\n**Requirements** define **what the software system must do** \n* \"What does the system need to accomplish in terms of functionality, features, and constraints?\" \n* Typically detailed and specific, providing clear instructions on how the system should behave \n* Focus on addressing the needs and expectations of stakeholders, including end-users, clients, and regulators \n* Early stage definition (requirements elicitation, analysis) \n\n**Design goals** identify and describe the **qualities the system should focus on** \n* What should be prioritized? \n* What is the overarching goal of the entire system?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 642, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7b42f4d8-434d-4f8f-a038-86e5566150d0": {"__data__": {"id_": "7b42f4d8-434d-4f8f-a038-86e5566150d0", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bb591a49-da5c-4f82-9898-0d2a0d9ae501", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "25fc0ecc774db5e1a2ae575bd1c7a561daeb415d840f9ddcadd2a0c832469889", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example]\n\n* Functional Requirements *simplified\n - **FR1 Access Lab Result:** Patients should be able to securely access their lab test results.\n - **FR2 Book Appointment:** Patients should be able to book an appointment with their healthcare provider.\n - **FR3 Authenticate:** Patients and doctors must authenticate themselves to protect patient data.\n\n* Non-functional Requirements *simplified\n - **NFR 1 Security:** Ensure patient data privacy and compliance with healthcare data regulations (HIPAA).\n - **NFR 2 Usability:** Design an intuitive and user-friendly interface for patients of all technical skill levels, so that they can navigate it without needing a manual.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 683, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b894284-4fab-4e8e-bb3d-3b9d35e1b2b0": {"__data__": {"id_": "3b894284-4fab-4e8e-bb3d-3b9d35e1b2b0", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d4f282e5-53b9-4e70-9933-c9dbe963e10b", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "147e4a46d341a0409745f570cc6708d6fac0af9888eea485fe2c1d9507603d58", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example]\n\n## Design Goals\n\n* **DG1 Usability and User Experience:** Ensure the app is easy to navigate, with a clean and intuitive user interface to provide a positive user experience for patients, reducing the learning curve and frustration.\n* **DG2 Security and Privacy:** Implement robust security measures to protect patient data to maintain patient trust and comply with healthcare data privacy regulations.\n* **DG3 Scalability:** Design a scalable architecture to handle increased user loads to accommodate the number of patients using the system without performance degradation.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 589, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9c693b31-9619-4fe7-aefd-3fdf2228f520": {"__data__": {"id_": "9c693b31-9619-4fe7-aefd-3fdf2228f520", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d25d7bf1-7339-488a-8b46-bb0749a5166f", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "7f1bf49f5e9db23a4a225afd10023cedd2d7bb821b22c43cc8124e5ecbbafb8d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Software Systems\n\n* Object-Oriented Requirements **Analysis**\n - Understand the problem\n - Identify the key concepts and their relationships\n - Build a (visual) vocabulary\n - Create an application domain model (conceptual model)\n\n* Object-Oriented **Design**\n - Assign responsibilities (attributes, methods)\n - Explore behavior with interaction diagrams\n - Explore design alternatives\n\n* **Implementation**\n - Map designs to code, implementing classes and methods", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 484, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0ec1376-4987-438a-a9a4-177dad514475": {"__data__": {"id_": "c0ec1376-4987-438a-a9a4-177dad514475", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "58e2f8d2-0842-4902-8e5a-b73208e12a9e", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "28d95d76f2c2e5fcf95c781fccc28c45035f839875b7f8df939b74e6c0fd7ea6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Design vs Architecture\n\n**Architecture questions** \n* How does the user choose to view a map? \n* How should the user\u2019s location data be protected? \n* What other functionalities are connected to viewing a map? \n* What are the interfaces between objects? \n\n**Design questions** \n* How do I include the Google Maps API? \n* How does the device\u2019s built-in encryption work? \n* What threads exist and how do they coordinate? \n* What are the interfaces between subsystems and third-party systems? \n\n> **Architecture** defines what the system\u2019s major components are and how they interact. \n> **Design** defines how each component is implemented and behaves internally.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 673, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc8e23af-ecc1-41b4-adad-ef806f7725d3": {"__data__": {"id_": "dc8e23af-ecc1-41b4-adad-ef806f7725d3", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8ac57253-6f5f-4cfa-a9ec-2ea74903388e", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "b6a154d84fa90f26325e672f3890d2ad369fa392fb558f0a81fa63a0a5d0cb51", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying design goals\n\n* **Analyze requirements** \u2014 identify implicit design goals within these requirements \n* **Stakeholder input** \u2014 insights and expectations regarding system quality and performance \n* **Benchmark existing systems** \u2014 industry standards and best practices \n* **Risk assessment** \u2014 potential risks and challenges associated with the project", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 369, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cadb9337-db01-4690-859d-636e48de1412": {"__data__": {"id_": "cadb9337-db01-4690-859d-636e48de1412", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "57a131dd-3f13-475a-9428-926232d89fb6", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "99319ce6d5c51a91fb8dc5dc14dbbbc393de9fd6079df5ce99c2c2f8420ea282", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying design goals (cont.)\n\n* **Technical feasibility** \u2014 design goals need to align with the chosen technology stack and infrastructure\n* Prioritize and refine design goals based on their importance to stakeholders: specific, measurable, achievable, relevant, and time-bound (**SMART**)\n* **Iterate and collaborate**\n - Involve **cross-functional teams** in goal derivation and validation\n - **Iterate on design goals** as the project progresses and new insights emerge", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 481, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "56c22d83-d5bf-4bae-a42b-88e30e05a718": {"__data__": {"id_": "56c22d83-d5bf-4bae-a42b-88e30e05a718", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dd01422e-34d1-47ca-a0f3-c80b3ff6d0fe", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "952f05a63a7a385cd47f6b74946d58383d7f84639d6a5fd75123d0564fe0269d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# SMART\n\n* Specific \n* Measurable \n* Achievable \n* Relevant \n* Time-bound", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 78, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d849bfcb-e3c9-4ea3-9353-5bcee8f6ee11": {"__data__": {"id_": "d849bfcb-e3c9-4ea3-9353-5bcee8f6ee11", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6a6baab4-2547-4cbe-b1fe-465c0d949762", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "704e3c0df134e822d4504fc391fe090806f74bbf27fdab01a840e3ee6759213b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Design goal trade-offs\n\n* Design goals are often conflicting\n* Typical trade-offs\n - Functionality vs. usability\n - Cost vs. robustness\n - Efficiency vs. portability\n - Rapid development vs. functionality\n - Cost vs. reusability\n - Backward compatibility vs. readability", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 279, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f148cc4e-f8d4-466e-823d-fa133585c6fd": {"__data__": {"id_": "f148cc4e-f8d4-466e-823d-fa133585c6fd", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2bae00d6-f4c5-4561-84c3-5307560822fd", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "cf272c733dc4fc341e6958e4819c6a43514ba3d3d7a9b4f2ea99c2fe6675cf5c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Battery\n\n* Design Goal 1: Battery Capacity (Range) \n - Maximize the battery capacity to provide an extended driving range for electric vehicles, allowing users to travel longer distances on a single charge.\n\n* Design Goal 2: Battery Weight and Size (Efficiency) \n - Minimize the weight and size of the battery pack to improve vehicle efficiency and reduce energy consumption.\n\n* Design Goal 3: Battery Lifespan (Longevity) \n - Design the battery to have a long lifespan, reducing the frequency and cost of battery replacements for EV owners.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3ac097ec-9d99-44ff-b398-253cd94d58ae": {"__data__": {"id_": "3ac097ec-9d99-44ff-b398-253cd94d58ae", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0ab8f1e7-1fb0-4774-9f93-2894a8287369", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "83686128cec12613b31f9e96b5028e0393b0e94413a93a45f5332287cb40c601", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] SIMCity\n\n* DG Usability: Any user (regardless of skill level) can navigate through the system and recall the main features (...) of the system after following a tutorial.\n* DG2 Reliability: The system should ensure data integrity by accurately reflecting sinkhole status updates in a timely manner.\n* NFRs\n - NFR1 Usability (Learnability): The system should provide a 10min tutorial to help users understand its core features (...).\n - NFR2 Usability (Navigation): Users should be able to access the menu within two steps.\n - NFR3 Usability (Accessibility): The system should support text-to-speech for improved accessibility.\n - NFR4 Robustness: The system should handle increased traffic (+ 60%) during rush hours, with higher loads in winter than in summer (+ 70%).\n - NFR5 Performance: The map should reflect new and updated reports within five minutes.\n - NFR6 Reliability: The sinkhole status should be updated within five minutes after verifying a sinkhole and after removing a sinkhole.\n - NFR7 Portability: The system should be available as a mobile app.\n - NFR8 Availability: The system should require and verify Internet connectivity for (\u2026) functionality.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1188, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53f6fb90-0138-4383-9dc5-2fe86404337e": {"__data__": {"id_": "53f6fb90-0138-4383-9dc5-2fe86404337e", "embedding": null, "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f839c0d4-a929-4b35-93db-418d7729f6bf", "node_type": "4", "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "90c5a1eb9a1444f475e3c68369ec2fcefc59b77b0618fdfa179bfbce32ddcd76", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Take Away: Designing good systems is hard!\n\n* Typically, systems are divided into smaller, manageable pieces to deal with complexity\n* Design goals guide decisions made by developers\n* Design goals encompass the entire system to be able to realize the different parts independently\n* Trade-offs between design goals need to be addressed\n - E.g., \"a user can navigate to every functionality using at most 2 clicks from the home page\" vs. \"a user must be able to use the system without needing a manual\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 505, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "85f80be4-2340-4355-a9ea-39edaf419b00": {"__data__": {"id_": "85f80be4-2340-4355-a9ea-39edaf419b00", "embedding": null, "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "010435cb-5b2e-4b28-b5e8-54c284e1a5e3", "node_type": "4", "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "00a478db4aae89eb67ce9b00b5c1448252f7c8468d0dad945b1806fedabbe84d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8b484003-2a3b-4c7f-9e7d-8ff656f5d12f": {"__data__": {"id_": "8b484003-2a3b-4c7f-9e7d-8ff656f5d12f", "embedding": null, "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "80490ea4-ef44-4b7a-bf3f-5dbb4800cd23", "node_type": "4", "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "889c8027d810280755b1018bad4429cd465dcc7d2b711b1ac255f88e7bfbbb68", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L13 Intro to System Design\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu\n\nFall 2025", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 174, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "517dd0e2-62dd-43eb-9626-26fd6ebff32e": {"__data__": {"id_": "517dd0e2-62dd-43eb-9626-26fd6ebff32e", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e6f6b118-d604-46b6-bb81-dd86f1c4adb2", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "5d60459967b6dff2301904b9289d0d521a3bf79ff165b68decc552dad476ac3e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine 04\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 69, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "18d0ebe2-2ed2-4c55-9156-c7725997e9bd": {"__data__": {"id_": "18d0ebe2-2ed2-4c55-9156-c7725997e9bd", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3a11fae2-a59c-4767-9fa0-186aee0f6b3f", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "ca14130c6d08fc47158e52d3ebe762fd60c5c2eba3d56a5163f14281c5e0c24d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Recognizable and Decidable\n\n* Given a language \\( R \\), if some Turing machines accept every string \\( s \\in R \\) and **does not accept** (either reject or loop indefinitely) every string \\( s \\notin R \\), we say that **\u201c\\( R \\) is recognizable\u201d**\n - Note that these machines must accept on all input \\( s \\in R \\)\n - However, if \\( s \\notin R \\), these machines either reject or loop infinitely\n\n* Given a language \\( D \\), if some Turing machine accept every string \\( s \\in D \\) and rejects every string \\( s \\notin D \\), we say that **\u201c\\( D \\) is decidable\u201d**\n - Note that these Turing machines must be deciders\n - These machines either accept or reject on all input strings\n - These machines will not loop indefinitely on any strings\n - If \\( D \\) is decidable, \\( D \\) is also recognizable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 806, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ff45e917-6a6f-4e6c-9984-56af5f016d18": {"__data__": {"id_": "ff45e917-6a6f-4e6c-9984-56af5f016d18", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8606e7a6-1ab0-405e-8b62-e0fc6586d593", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "d1f8808ce30a794f979d5059ae550be6584adb26996d0710d59375e1098de0dd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Decidable Language\n\n* Following languages are examples of decidable languages:\n * $$ A = \\{0^{2n} \\mid n \\geq 0\\} $$\n * $$ B = \\{w \\# w \\mid w \\in \\Sigma^* \\} $$\n* We already demonstrated that there exists Turing machines (deciders) that decide above languages\n* There are some languages that are recognizable but not decidable\n * Suppose $$ R $$ is recognizable but not decidable\n * There are TMs that **accept** all strings in $$ R $$ and **does not accept** all strings not in $$ R $$\n * No TM can **accept** all strings in $$ R $$ and **reject** all strings not in $$ R $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 588, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aab1507b-06bc-4478-bf03-7caa448ebf84": {"__data__": {"id_": "aab1507b-06bc-4478-bf03-7caa448ebf84", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "76196a68-7981-4c7d-945c-a04499e66762", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "e1ba2a40783fff2f56293eec8cf477c0e7d04c6c05a6cb3dc6d670f829f565d4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Consider a polynomial: \n $$6x^3 y z^2 + 3 x y^2 - x^3 - 10$$\n\n * A **root** of a polynomial is an assignment to its variables which results in that value of polynomial is 0 \n * A polynomial has an integral root if all variables are assigned integer values \n * The above polynomial has an integral root \\(x = 5\\), \\(y = 3\\), and \\(z = 0\\)\n\n* Given a polynomial **with an integral root**, can you find out its root? \n - Yes, brute force\n\n* Given a polynomial, can you find out whether it has an integral root? \n - Not always \n - Hilbert\u2019s tenth problem stated that there is no algorithm that tests whether a polynomial has an integral root.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 678, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "66fac2da-c6fb-4393-b8ad-f46a29563380": {"__data__": {"id_": "66fac2da-c6fb-4393-b8ad-f46a29563380", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d02f9b46-091b-4c7b-aae2-fd39ccae1af6", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "8436cfa258c631b9a7d331688cf145d1495c76f6707889470556fe1fc28e6e40", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Let $\\langle x \\rangle$ be a string representation of the object $x$\n* Let $D$ be the set of all string representations of polynomials that have integral root\n* Formally\n\n$$\nD = \\{\\langle p \\rangle \\mid p \\text{ is a polynomial with an integral root}\\}\n$$\n\n* Given $\\langle p \\rangle$ (a string representation of a polynomial $p$), if a Turing machine can **decide** whether\n - $\\langle p \\rangle \\in D$ (polynomial $p$ has an integral root) or\n - $\\langle p \\rangle \\notin D$ (polynomial $p$ does not have an integral root)\n\n then $D$ is decidable\n\n* Hilbert\u2019s tenth problem simply stated that $D$ is **not** decidable.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 650, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b321d392-42e9-44a5-a351-9d695a62bd1e": {"__data__": {"id_": "b321d392-42e9-44a5-a351-9d695a62bd1e", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2f203be7-76b2-46a3-8f4e-3444a0b499a2", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "3d047dddcbe3e7773c1f0dbdb1491ee8517970a686251469d6143c4eac15a5ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Consider polynomials with one variable (e.g., \\(2x^2 + x - 7\\))\n* Let \n $$D_1 = \\{\\langle p \\rangle \\mid \\langle p \\rangle \\text{ is a polynomial over } x \\text{ with an integral root}\\}$$\n* Is \\(D_1\\) recognizable? \n - Yes, if there exists a Turing machine that accepts every \\(\\langle p \\rangle \\in D_1\\) and does not accept every \\(\\langle p \\rangle \\notin D_1\\)\n* Example: \\(M_1\\) that recognizes \\(D_1\\) using a brute force algorithm in high-level definition \n \\(M_1 =\\) \"On input \\(\\langle p \\rangle\\) where \\(p\\) is a polynomial over the variable \\(x\\): \n 1. Evaluate \\(p\\) with \\(x\\) set successively to the value 0, 1, -1, 2, -2, 3, -3, \\ldots\\). If at any point the polynomial evaluates to 0, *accept*\"\n* Note that \\(M_1\\) accepts all \\(\\langle p \\rangle \\in D_1\\) and loops indefinitely on all \\(\\langle p \\rangle \\notin D_1\\)\n* Therefore, \\(D_1\\) is recognizable.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 910, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "559f7ea0-9b39-422c-8dfd-e8b4ee970962": {"__data__": {"id_": "559f7ea0-9b39-422c-8dfd-e8b4ee970962", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "daed4d87-e851-41f4-98a6-f0653081d48b", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "340021a9c4a0823bc705c20567ab851865ae0012ce8aec5b08ec8e564abe65f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Consider polynomials with one variable (e.g., \\(2x^2 + x - 7\\))\n* Let \n $$D_1 = \\{\\langle p \\rangle \\mid \\langle p \\rangle \\text{ is a polynomial over } x \\text{ with an integral root}\\}$$\n* Is \\(D_1\\) decidable? \n - Yes, if there exists a Turing machine that accepts every \\(\\langle p \\rangle \\in D_1\\) and rejects every \\(\\langle p \\rangle \\notin D_1\\)\n* Luckily there is an upper/lower bound of the value of \\(x\\) that a machine needs to test: \n $$\n \\pm k \\frac{c_{\\max}}{c_1}\n $$\n where \\(k\\) is the number of terms in the polynomial, \\(c_{\\max}\\) is the coefficient with the largest absolute value, and \\(c_1\\) is the coefficient of the highest order term\n* Change \\(M_1\\) such that it rejects after testing value goes out-of-bound\n* Therefore, \\(D_1\\) is decidable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 806, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2d8abc21-9c87-4ca7-bea9-1a92153d3060": {"__data__": {"id_": "2d8abc21-9c87-4ca7-bea9-1a92153d3060", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "665a0a77-502b-4c27-9467-9d5874b27483", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "1bdfdc123ed6cb88910fba6de621d1fb063c799910df5819531e3e8b6d4f42ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Let \\( D \\) be the set of all polynomials that have integral root \n $$\n D = \\{\\langle p \\rangle \\mid \\langle p \\rangle \\text{ is a polynomial with an integral root}\\}\n $$\n* We can create a machine that tries all possible assignment values starting from 0s \n - For example, in case of two variables \\( x \\) and \\( y \\), try the following values \\([x, y]\\): \n \\[\n [0,0], [0,1], [1,0], [1,1], [0,-1], [-1,0], [-1,-1], [0,2], \\ldots\n \\]\n - If a polynomial \\( p \\) has an integral root, eventually it will be evaluated to 0\n* Therefore, \\( D \\) is recognizable\n* Unfortunately, there is no bound that we can check and machine may loop infinitely \n - If the polynomial \\( p \\) does not have an integral root, we will keep trying new values of \\([x,y]\\) forever (loop indefinitely)\n* \\( D \\) is not decidable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 847, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5c9d901b-9fa1-48e1-b569-6b714e9545cd": {"__data__": {"id_": "5c9d901b-9fa1-48e1-b569-6b714e9545cd", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ecc51507-0ff9-4e49-a19f-5af643f641ac", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "d2678ff6150e18b2081db607a73c348a520d3c8bc36d428b96d73b3b6bc2427d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Describing Turing Machines\n\n* A description of a Turing machine can be huge even for a very simple algorithm\n* Example, compare two strings $$\\{ w \\# w \\mid w \\in \\{0,1\\}^* \\}$$\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q2: 0 \u2192 R\n q1 --> q3: 1 \u2192 x, R\n q1 --> q8: # \u2192 R\n\n q2 --> q2: 0,1 \u2192 R\n q2 --> q4: # \u2192 R\n\n q4 --> q4: x \u2192 R\n q4 --> q6: 0 \u2192 x, L\n\n q3 --> q3: 0,1 \u2192 R\n q3 --> q5: # \u2192 R\n\n q5 --> q5: x \u2192 R\n q5 --> q6: 1 \u2192 x, L\n\n q6 --> q6: 0,1,x \u2192 L\n q6 --> q7: # \u2192 L\n\n q7 --> q7: 0,1 \u2192 L\n q7 --> q2: x \u2192 R\n\n q8 --> q8: x \u2192 R\n q8 --> qaccept: \u2294 \u2192 R\n```\n\n* The above state diagram represents the **formal description** in a form of state diagram of a Turing machine", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 727, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ab1f283c-43ec-40bc-ad7c-d82404678886": {"__data__": {"id_": "ab1f283c-43ec-40bc-ad7c-d82404678886", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "636b8d85-8dcc-48f6-acbe-d300c630e506", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "6f5dcfb32b38e4d86a81328d305d7098116e9e22817510ecbdee3987c41c8a1e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Describing Turing Machines\n\n* An **implementation description** of the previous Turing machine that decides \n $$\\{ w \\# w \\mid w \\in \\{0,1\\}^* \\}$$ \n is shown below\n* On input string *w*:\n 1. Zig-zag across the tape to corresponding positions on either side of the `#` symbol to check whether those positions contain the same symbol. If they do not, or if no `#` is found, *reject*. Cross off symbols as they are checked to keep track of which symbols correspond.\n 2. When all symbols to the left of the `#` have been crossed off, check for any remaining symbols to the right of the `#`. If any symbols remain, *reject*; otherwise, *accept*.\n* Note that the above description describes the way the Turing machine moves its head and store data (cross off symbols)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 769, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4dde2cd1-a05d-445d-9aa7-d4354549166d": {"__data__": {"id_": "4dde2cd1-a05d-445d-9aa7-d4354549166d", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ab0fbfe6-9386-4a48-90e1-730abead36de", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "f234fd7e61fe9586682fbf9103b2dd4b2fbfd916450f74dfdf8c1d4123a4e40c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Describing Turing Machines\n\n* An **high-level description** of the previous Turing machine that decides \n $$\\{ w \\# w \\mid w \\in \\{0,1\\}^* \\}$$ \n is shown below:\n\n $$\n M = \\text{\u201cOn input } s \\text{ where } s = x \\# y \\text{ for some string } x \\text{ and } y:\n $$\n\n 1. Compare whether the string \\( x \\) is identical to the string \\( y \\). \n 2. If they are identical, *accept*; otherwise, *reject*.\u201d\n\n* Note that the **where** clause behaves like a filter \n - Any string that does not satisfy the **where** clause will be rejected immediately\n\n* What a TM can do? \n - From the Church-Turing thesis, if there is an algorithm to do something, a TM can do the same thing \n - Examples: \n - Compare two strings \n - Check whether the length of a string is a power of 2 \n - Addition, subtraction, multiplication, division, modulo \n - Any algorithms discussed in Chapter 1", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 898, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "56d2de3b-929d-478b-a3e7-59240cf8a2c2": {"__data__": {"id_": "56d2de3b-929d-478b-a3e7-59240cf8a2c2", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "33c4be35-9853-4469-8d78-c9ab83e01723", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "275d9d6838b6cb6157d692621f1db778d2d06be248a1f5de6a5ebea52ada1c61", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Describing Turing Machines\n\n* High-level description of a Turing machine is suitable for describing universal Turing machine\n* Consider the following language:\n\n$$\nA = \\{ x_1 \\# x_2 \\# \\ldots \\# x_n \\mid x_i = x_j \\text{ for every } i \\text{ and } j \\}\n$$\n\n* The following machine \\( M' \\) decides \\( A \\) using TM \\( M \\) as a subroutine:\n\n> \\( M' = \\) \"On input \\( s \\) where \\( s = x_1 \\# x_2 \\# \\ldots \\# x_n \\):\n> 1. For every \\( i \\) where \\( 1 \\leq i \\leq n - 1 \\):\n> 2. \\quad Run \\( M \\) on input \\( x_i \\# x_{i+1} \\).\n> 3. \\quad If \\( M \\) rejects, reject.\n> 4. Accept\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 581, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "03050609-6a20-4dde-881e-6297414e5970": {"__data__": {"id_": "03050609-6a20-4dde-881e-6297414e5970", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "78bdb8dd-4de2-43a5-b2a3-d860c7695619", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "dae6a8aaaff4cf118b3c09d7d573fa6800289666a8c09d3af65b8c638133fccb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Conclusions\n\n* Algorithm and Turing Machine are consider equivalent \n - Anything that an algorithm can do, there exists a TM that can do the same thing \n * Simply convert the algorithm to TM \n - Anything that a Turing machine can do, there exists an algorithm that can do the same thing \n * Simply convert the TM to algorithm \n* Because of this, if there is a problem that a TM cannot solve, no algorithm can solve the same thing", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 445, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4e1937f5-e3ab-4d63-93e4-fd0b94677198": {"__data__": {"id_": "4e1937f5-e3ab-4d63-93e4-fd0b94677198", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f744805b-9538-4ab1-a894-c961027efb75", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "4ca7f21cbe2ab0e6486ba4b78a02020cceb6972f1b4a42bc4771a6bbf3ed4125", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L03 Scrum\n\nCS 1530 Software Engineering \nFall 2025 \n\nNadine von Frankenberg \n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 161, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2699b800-cda3-489c-a834-9a8efd56d419": {"__data__": {"id_": "2699b800-cda3-489c-a834-9a8efd56d419", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ce9169a6-62a6-4cec-94d0-508cac215a6b", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "0c82830c01be222809c244532be3d97e8e27deb8a7eb74a538aeb3fb22796d7b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - [http://scrum.org/])(http://scrum.org/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1384, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d0d1fb4-423d-49c4-835d-91c15be1a38b": {"__data__": {"id_": "5d0d1fb4-423d-49c4-835d-91c15be1a38b", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "78548f55-5957-4fe2-83aa-ec57754083a8", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "eae1f3db76d3557fe0f1c37af333886a452a1c27c202b87fbac479a5c54bbf74", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have a better overview of the software development lifecycle\n* You understand the roles, artifacts, events, and meetings of Scrum", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 154, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "15f4e7e6-1912-4d52-a2a4-375c25cdf137": {"__data__": {"id_": "15f4e7e6-1912-4d52-a2a4-375c25cdf137", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5771ff67-72bf-4251-930b-833d1764632b", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "af3766270ba9d6782044f9d549033cd83df10da5ee508b040f972a50ea6239b4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Software lifecycle overview\n* Scrum", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 57, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "72b44502-e75f-4b73-ab8b-07667bcfd5a5": {"__data__": {"id_": "72b44502-e75f-4b73-ab8b-07667bcfd5a5", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bca8fedc-c8f0-422d-a4b8-65ae810bce59", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "706e22cff5681d668e891de7c5b3bf0e6b04fdfea450234bf2a262fe57d51105", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] SDLC\n\n* A **software (development) life cycle (SDLC)** describes the **process of how software is developed**\n - **Set of activities** and their relationships to each other to support the development of a software system\n - Activities include, e.g., requirements elicitation, requirements analysis, system design, implementation, testing & validation, configuration management, delivery, maintenance\n* Defining a SDLC is necessary:\n - Establish a shared understanding (communication)\n - Creates a plan (releases / delivery)\n - Incorporate all aspects (testing, documentation, maintenance)\n - \u2026\n\n> There will be a more detailed lecture on software lifecycle models!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 681, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b1b920ab-3a0b-462a-9076-88709bc3b42b": {"__data__": {"id_": "b1b920ab-3a0b-462a-9076-88709bc3b42b", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f4bd7278-bc46-4029-a1f9-914ffd8a4b2f", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "2b9f69b335d093595821d03b009e66ea1fe4faeee130e6387c050615d4de0810", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Overview of the SDLC\n\n**Planning** \nWhat is the system\u2019s purpose? Who is the enduser? What is the scope?\n\n\u2192\n\n**Requirements Engineering** \nWhat is the problem?\n\n\u2192\n\n**System Design** \nWhat is the solution?\n\n\u2193\n\n**Object Design** \nWhat is the best approach to implement the solution?\n\n\u2193\n\n**Testing & Validation** \nIs the problem solved?\n\n\u2192\n\n**Deployment** \nHow do we deliver the system to the enduser?\n\n\u2192\n\n**Maintenance** \nHow will are updates and bugs fixed in the future?\n\n\u2192\n\nBack to **Planning**\n\n----\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "61d06b67-33f4-4d8c-a89d-34ee655714ab": {"__data__": {"id_": "61d06b67-33f4-4d8c-a89d-34ee655714ab", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "02c96afc-6870-4d9f-90f4-a3ae2e6820cc", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "f83d4c206b443dbad8c36cbccb45a7366e5a74a1642e204bd7e5fc99333d9a5d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Software lifecycle overview\n* Scrum", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 57, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d3bfdd2b-27c9-4125-b1c7-6213fcb87e2d": {"__data__": {"id_": "d3bfdd2b-27c9-4125-b1c7-6213fcb87e2d", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a373aa68-e184-4dab-85df-867937dcdb98", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "a5079defc305a95f8ac53c829e4d275a1cd95b0ba9d235dd3de9f46945c82a6f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# History of agile models \u2014 Scrum\n\n* In 1986, Takeuchi and Nonaka published *\"The New New Product Development Game\"* in the *Harvard Business Review*\n* Equates creative processes (e.g., Honda, 3M, HP, ..) to the sport of rugby\n* Describes a scalable, flexible, cross-functional, self-organized team-based approach to product development\n\n> \"shift from a linear to an integrated approach encourages trial and error and challenges the status quo\"\n\n### EXHIBIT 1 \nSequential (A) vs. overlapping (B and C) phases of development\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n \n
Phase123456
Type APhase\u25a0\u25a0\u25a0\u25a0\u25a0\u25a0
Type BPhase\u25e0\u25e0\u25e0\u25e0\u25e0\u25e0
Type CPhase\u25e0\u25e0\u25e0\u25e0\u25e0\u25e0
\n\n[Source: https://hbr.org/1986/01/the-new-new-product-development-game]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1391, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d4a85794-44ea-46dd-aee5-0382241a20ac": {"__data__": {"id_": "d4a85794-44ea-46dd-aee5-0382241a20ac", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "319afecd-f575-4d19-8c70-94ef80042c83", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "61d358b3637f64739fd9afe18a1b9010fdbf16687b78079e4b86ff809bf9c767", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "History of agile models \u2014 Scrum University of\n Pittsburgh\n \u2022 In 1986, Takeuchi and Nonaka published \"The New New Product Development\n Game\" in the Harvard Business Review\n \u2022 1987 \"SCRUM development process\"\n \u2022 1995 Jeff Sutherland and Ken Schwaber\n analyzed common software development processes\n \u2022 \"The Scrum development process\" at OOPSLA\n \u2022 \"Systems development [\u2026] is an unpredictable and\n complicated process that can only roughly be described\n as an overall progression\" Jeff Sutherland Ken Schwaber\n \u2022 2001 The Agile Manifesto\n \u2022 2002 Scrum Alliance (Mike Cohn, Esther Derby, Ken Schwaber)\n\n\u00a9 2025 Nadine von Frankenberg CS 1530 - L03 Scrum & intro to abstraction 9", "mimetype": "text/plain", "start_char_idx": 2, "end_char_idx": 845, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "394f9e67-46a2-406c-a455-accb5443e4b5": {"__data__": {"id_": "394f9e67-46a2-406c-a455-accb5443e4b5", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1b085ac9-c481-4f39-bb59-45942753f3d1", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "5562aacd976f9c5e096d77e75f9b0a1f02bfb9c863cd0ce8d980585937b2726c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Scrum\n\n* Framework for developing and sustaining complex products \n* Scrum defines roles, events, artifacts, and the rules that bind them together \n* \"The Scrum Guide\" written by Ken Schwaber and Jeff Sutherland \n - First version in 2010, latest updated version 2020 \n\n[Rugby] **Scrum** is a **way to restart the game after an interruption:** Players pack closely together with their heads down to gain possession of the ball \n\u2192 Requires coordination, joint effort, strategic planning", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 493, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "44459b47-9047-4395-853a-6e36b2b1e41b": {"__data__": {"id_": "44459b47-9047-4395-853a-6e36b2b1e41b", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3f412286-2258-4001-a60d-c422d6a67fcd", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "4e6bd2cab7ac5480d43c223d473e1fc34f9b287c0ce1d5bf66a85623f504608f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Overview: Scrum as an agile model\n\n* Short, iterative cycles (**Sprints**), typically 2-4 weeks long \n* Emphasizes collaboration, functioning software, and flexibility to changing requirements \n* Roles: **Scrum Master, Product Owner, Development Team** \n* Promotes transparency, inspection, and adaptation throughout the process", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 334, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "55909789-5a47-427a-999c-93cdc3b2b209": {"__data__": {"id_": "55909789-5a47-427a-999c-93cdc3b2b209", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f7d6531d-80dc-46c7-8574-0931175abba8", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "98b1014fd7fe02e3ac946172f07c80c4d5a773141723b7ff4b543588419406c3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Scrum\n\n\n \n \n \n \n \n\n \n \n \n \n\n \n \n
Product BacklogSprint BacklogPotentially Shippable Product Increment
\n
\n
\n
\n
\n
Box
\n
\n
\n Daily Scrum Meeting
\n 24 Hours\n
\n
\n 2-4 Weeks\n
\n
\n\n[The diagram shows the Scrum process flow starting from Product Backlog, moving to Sprint Backlog, then through Daily Scrum Meetings (every 24 hours), and finally resulting in a Potentially Shippable Product Increment after 2-4 weeks.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1064, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ad11277-0150-498a-bd2f-ceba9d200658": {"__data__": {"id_": "9ad11277-0150-498a-bd2f-ceba9d200658", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "233401e6-f50b-47ac-a580-ec26f54046c1", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "9cb8627cc647e6f7296d058707110ebd4da9a7b0edf910ca8cfb9ba25604920d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Scrum Team - Roles\n\n## Scrum Team\n\n### Scrum Master \n\ud83d\udc51 \n- Responsible for the process \n- Removes impediments \n- Ensures Scrum is followed \n\n### Product Owner \n\ud83d\udccb \n- Accountable for managing the product backlog \n\n### Developers \n\ud83e\uddd1\ud83d\udcbb\ud83d\udc69\ud83d\udcbb\ud83d\udc68\ud83d\udcbb \n- Create the sprint backlog \n- Adhere to the definition of done \n- Adapt their plan each day toward the sprint goal \n\n----\n\n### Customer \n\ud83d\udcac \n\n----\n\n### Other Scrum teams \nScrum team: \n- Scrum Master \ud83d\udc51 \n- Product Owner \ud83d\udccb \n- Developers \ud83e\uddd1\ud83d\udcbb\ud83d\udc69\ud83d\udcbb\ud83d\udc68\ud83d\udcbb \n\n----\n\n*University of Pittsburgh*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "07981ea9-a543-4553-ad56-832cdbcc5071": {"__data__": {"id_": "07981ea9-a543-4553-ad56-832cdbcc5071", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b72b3a82-e2da-481a-869c-45dab9c4acf2", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "3e65c09ad89893ad8171be3f856ae42ec07532821634198dd2f0dae39efecd74", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Scrum Team\n\n* Consists of \n - One Scrum Master \n - One Product Owner \n - Developers \n* No sub-teams or hierarchies \n* Scrum Teams are cross-functional \n* Max. 10 team members \n* Accountable for creating a valuable Increment each Sprint", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 252, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fdea6b30-d46b-4b51-9f21-09c7f4b5d78f": {"__data__": {"id_": "fdea6b30-d46b-4b51-9f21-09c7f4b5d78f", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c289301e-a55b-477f-808c-d2e7a332b617", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "627b3c8285481741d6d5b9fec548c5bc2d70a94870c1f08bcc22b1346dcfd779", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Scrum Team - **Product Owner**\n\n* \"Owns\" the product \n* Accountable for maximizing the product\u2019s value \n* Tasks \n - Manages the Product Backlog \n - Develops and communicates the product goal \n - Creates and communicates Product Backlog Items \n - Orders Product Backlog Items \n - Ensures that the Product Backlog is transparent and understood \n* Can represent the needs of stakeholders in the Product Backlog", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 427, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eb5c20d5-e5ee-4c2b-a06e-350899557cc7": {"__data__": {"id_": "eb5c20d5-e5ee-4c2b-a06e-350899557cc7", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fe91f5e5-47d9-4946-8247-4381d7af140f", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "5621f96148468ae63e31bc3adc877fc737e77d8d85c29160c6530e20b956ec76", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud83d\udc51 The Scrum Team - **Scrum Master**\n\n* Accountable for establishing Scrum \n* Serves the Scrum Team \n - Coaches team members \n - Removes impediments \n - Ensures that all Scrum events take place \n* Serves the Product Owner \n - Define Product Goal, Product Backlog definition \n - Establish empirical product planning \n - Facilitate stakeholder collaboration as needed", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 381, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93ba9d86-f512-409b-aa4f-97ea0841f726": {"__data__": {"id_": "93ba9d86-f512-409b-aa4f-97ea0841f726", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1bd6ad7c-57a5-47e3-848c-5eff3697a2dd", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "504fb184c82b70686720fd200caa9376e470f16e3029047f0f096198f9c3946b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Scrum Team - **Developers**\n\n* Committed to creating any aspect of a usable increment each Sprint \n* Skills often vary by domain \n* Developers are accountable for \n - Creating the Sprint Backlog \n - Adhere to a Definition of Done \n - Adapt their plan daily towards the Sprint Goal", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 295, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "66367a1a-ef01-402d-aca3-aa13825f4ebb": {"__data__": {"id_": "66367a1a-ef01-402d-aca3-aa13825f4ebb", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ab69c291-5e76-470c-ae69-41db01d955a9", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "6616116c75a10dd6005bb14762bb2c904d32e034929352cc186b198e21b76f19", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Artifacts in Scrum represent work or value\n\n* Designed to maximize transparency of key information\n* **Product backlog**: list of requirements for the whole product\n* **Sprint backlog**: list of requirements to be completed in one iteration (sprint)\n* **Increment**: sum of all completed work in a Sprint, \n usable, \"potentially shippable\" piece of the product, \n must meet the DoD, \n each increment builds on the previous one \n release is optional\n\n----\n\n### Diagram of Scrum Artifacts and Flow\n\n```mermaid\nflowchart LR\n A[Product Backlog] --> B[Sprint Backlog]\n B --> C[Potentially Shippable Product Increment]\n C --> D[Daily Scrum Meeting]\n D --> B\n style A stroke:#ff007f,stroke-width:3px\n style B stroke:#ff007f,stroke-width:3px\n style C stroke:#ff007f,stroke-width:3px\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 810, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4da3fd16-b28b-4468-a2b5-6bad720fb220": {"__data__": {"id_": "4da3fd16-b28b-4468-a2b5-6bad720fb220", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6de3ff5c-dedd-43b3-8993-8f911cad9136", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "005057c8082876fa818f418177a92c18abf4cc7841bca544368e6f0dcc3ffc95", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements in Scrum\n\n* All **requirements** are collected in the product backlog\n* The product owner elicits requirements from external stakeholders & prioritizes them\n* Typical requirements in Scrum\n - \"Technical\"/functional requirements\n - User stories\n - Scenarios\n - Use cases\n\n> More on requirements next lecture", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 326, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8a8e9d24-b160-4885-8ce0-ddb32f41cffb": {"__data__": {"id_": "8a8e9d24-b160-4885-8ce0-ddb32f41cffb", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "36fece7e-765a-40e7-afc6-a0c271429538", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "0ffcd61ae46b27d7514d1bd44f5efdcef6b377105f22dbc0c05b176772a8c120", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** User Story in Scrum\n\n* Sentence that describes what the user can do \n* Often written on a \"card\" \n* Users describe roles of the system \n* Defines a structure and simplifies the prioritization process \n* Facilitates categorization according to user roles \n\nAs ****, \nI can/want/need **** \nso that ****\n\n> \"I\"-perspective: developer can self-identify with the given user role\n\n> **[Example]** \n> As a student, I want to sign up for a course so that I can access course materials and participate in lectures.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 551, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e533577-1f58-4510-a775-1a3d3aab5f54": {"__data__": {"id_": "8e533577-1f58-4510-a775-1a3d3aab5f54", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "51620b85-d294-4618-bc89-3360b5d96844", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "bba52d77acda465db7b4a8854ca9f853fb6813e0850a99a953e71ded7eb2ebdb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Product backlog\n\n* Ordered list of requirements (what is needed to improve the _whole_ product) \n - E.g., Epics, User Stories, Scenarios\n* _\"Single source of work undertaken by the Scrum Team\"_\n* **Product Backlog refinement** is the process of reviewing, updating, and prioritizing items in the product backlog \n - Goal: Ensure clarity, relevance, and value \n - Involves breaking down larger tasks, estimating efforts, and reordering items to align with the project's evolving goals and requirements\n* Commits to the **product goal** \n - The product goal is the long-term objective for the product, provides a target for the Scrum team to work towards", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 663, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "acfd7d91-933f-4983-8f9a-6125b45c8bbf": {"__data__": {"id_": "acfd7d91-933f-4983-8f9a-6125b45c8bbf", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bfed46f7-e04f-4383-b56c-5bbc6b261074", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "ecaf5051904f07313096c31ea85efd9903593393cf50d902738915754b67d2b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Product Backlog\n\n* User account creation: As a player, I want to create a personal account, so I can save my progress and scores.\n* Quiz category selection: As a player, I want to select a quiz category before I start the quiz, so I can choose a topic that interest me.\n* Difficulty levels: As a player, I want to choose different difficulty levels, so I can challenge myself appropriately.\n* Answering Questions: As a player, I want to answer multiple-choice questions, so I can engage with the quiz format that is familiar and straightforward.\n* Time-Limited questions: As a player, I want each question to be time-limited (max. 1min per question), so that the game is more challenging and fair.\n* Score tracking: As a player, I want the game to track my scores, so I can see how well I am doing.\n* Leaderboard Functionality: As a player, I want to view a leaderboard, so I can compare my scores with other players.\n* Accessibility: As a player with visual impairments, I need accessibility features (text-to-speech), so I can fully participate in the quizzes.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1077, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "051652dc-47a0-4ce0-83b9-8b57321a1fd7": {"__data__": {"id_": "051652dc-47a0-4ce0-83b9-8b57321a1fd7", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0cd0464b-2426-4762-a58f-49c3a35215e1", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "8524b17e2ba019f9d2c884a2a0c16742dc0f2d92eb6893b8280e469f71b98890", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Two main **events** & five **meeting types** in Scrum\n\n----\n\n| Product Backlog | Sprint Backlog | Potentially Shippable Product Increment |\n|-----------------|----------------|-----------------------------------------|\n| ![stack of blue blocks] | ![stack of blue blocks] | ![box] |\n\n----\n\n### Project **kickoff**\n\n### Sprint **planning**\n\n### Sprint **review**\n\n### Sprint **retrospective**\n\n----\n\n### Events:\n\n- **Sprint** (2-4 weeks)\n- **Daily Scrum** (24 hours)\n\n----\n\n*University of Pittsburgh*\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 577, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0bc19176-b3c5-4d76-9931-28e2c5824b65": {"__data__": {"id_": "0bc19176-b3c5-4d76-9931-28e2c5824b65", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "931792e3-1793-4ba4-9d25-a5928d5be837", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "f071fd23b664df9d7106601f1959407903987691da075ec381e75a6e73083707", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Main events in Scrum\n\n* **Project kickoff:** Define the product backlog\n* **Sprint** _\"turns ideas into value\"_\n - Fixed length of **one month or less** to create consistency\n - A new sprint starts immediately after concluding the previous sprint\n - A sprint commits to the **sprint goal**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 295, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "562fb4f1-b811-4904-b989-38b54fe38cb0": {"__data__": {"id_": "562fb4f1-b811-4904-b989-38b54fe38cb0", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a4bd9921-3209-4389-a9a9-965f4f880848", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "1d0b2af7ad295a1f49f1523edfcb23f6b5f0647e5e52696d9ee7b13fe6e1e3b8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Sprint\n\n* The development team \n - Realizes the items in the sprint backlog \n - Uses, e.g., a task board to visualize the status of these items \n* The Scrum Master visualizes the progress\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n \n \n
ItemsTodoIn progressIn reviewDone
User Story 1TaskTaskTaskTask
TaskTaskTaskTask
User Story 2TaskTaskTaskTask
Task
User Story 3TaskTask
TaskTask
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1033, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "56d09198-2b4a-40b9-8132-d7972e4e39b5": {"__data__": {"id_": "56d09198-2b4a-40b9-8132-d7972e4e39b5", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9af38552-175d-47f3-a805-7633c6cf22d8", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "354c89752189dc502ca640cec2b074643940e050ff742568ddbdf620ac0272e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# During a Sprint \u2026\n\n* Start of the Sprint: Sprint Planning meeting [max. 8h] \n - Create Sprint Backlog\n* Every day: Daily Scrum [max. 15min] \n - Share status, impediments and promises\n* End of each Sprint: Sprint Review [max. 4h] \n - Review the realized Sprint Backlog Items with Product Owner\n* After the Sprint: Sprint Retrospective [max. 3h] \n - Inspect the previous sprint \n - Create a plan for improvement (individuals, interactions, processes, tools, DoD) that will set the basis for the next Sprint", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 517, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c61cf55d-77fc-43ca-b28f-3bde05f6eb13": {"__data__": {"id_": "c61cf55d-77fc-43ca-b28f-3bde05f6eb13", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e74a7022-c0cd-4f44-9372-e7f14ab9b4ef", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "e84cba168abc2c4eb676bda8b0be9bf24962500c4d3e39ab98423d1e3f872c08", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Sprint Planning\n\n* Initiates the Sprint \n* Entire Scrum Team \n* Addresses three questions: \n - Why is this Sprint valuable? \n - What can be Done this Sprint? \n - How will the chosen work get done? \n* Often includes activities to estimate the size of a Backlog Item \n - E.g., Story points \n - T-Shirt Sizes", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 321, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5a338ade-d4f6-4e45-bc97-eae2f3119da0": {"__data__": {"id_": "5a338ade-d4f6-4e45-bc97-eae2f3119da0", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ad3f9dde-9beb-4e79-bbed-9df2a49c3517", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "ee5699c0ee6df8ea9464357835928b83d35db06549267ac6fb9930588d54c323", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Definition of Done (DoD)\n\n* Formal description of the state of the Increment\n* Describes when the Increment is \"done\" (meets quality requirements)\n* Whenever a Product Backlog Item meets the DoD, a new Increment is created\n* Creates a shared understanding of what work needs to be completed\n* An Increment cannot be released if the DoD is not met\n* The Scrum Team follows one DoD\n\n> If multiple scrum teams work together, they share a DoD", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 441, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "54cd775e-692f-4c7f-95ec-6d4e8b504067": {"__data__": {"id_": "54cd775e-692f-4c7f-95ec-6d4e8b504067", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "82927522-c49d-4a56-b7fa-5c7e73f63991", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "56cfe9ad283b2312032bbbf3d644276bbc84e56d461e3152445e0bc3de7d5c00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Sprint\n\n* During the Sprint:\n - No changes are made that would endanger the Sprint Goal\n - Maintain quality\n - Refine the Product Backlog as needed\n - Scope may be clarified and renegotiated with the Product Owner, based on insights\n* A Sprint may be cancelled if the Sprint Goal is no longer relevant\n - The Product Owner has the sole authority to cancel a Sprint\n\n```mermaid\nflowchart LR\n A[Product Backlog] --> B[Sprint Backlog]\n B --> C[Daily Scrum Meeting]\n C --> B\n B --> D[Potentially Shippable Product Increment]\n\n subgraph Sprint\n direction TB\n B\n C\n end\n\n click C \"24 Hours\"\n click Sprint \"2-4 Weeks\"\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ba628075-6751-4052-8b1a-73c6489d90f8": {"__data__": {"id_": "ba628075-6751-4052-8b1a-73c6489d90f8", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dce37b19-836a-4c32-ac38-be196aca2032", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "cea21c7402f712e3b9dd8a473ece94cfb0a60b12b75a6ebcfc943797b91493d9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Daily Scrum\n\n* Time-boxed event for 15 min \n* Attended by the Developer Team \n* Developer Team sets structure and techniques \n* Typically conducted as a \"standup\", early in the day \n - Status: \"What did I do since the last meeting?\" \n - Impediments: \"Any issues/blockers?\" \n - Promises: \"What do I promise to resolve today?\" \n\n[The image shows a group of people standing in an office space, presumably conducting a daily scrum meeting.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 449, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6f27d851-b93d-4854-9b50-608647b18752": {"__data__": {"id_": "6f27d851-b93d-4854-9b50-608647b18752", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ebd8a5ff-9822-4ebb-b087-f770afb0fac4", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "d04963c0625cda2a6b5a023f5212dc8370e90be869dbb19be3200f50535f293c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Summary: Scrum is an agile framework\n\n* Should be adapted to fit to the project / work culture / team\n* A **Scrum Team** works towards creating product increments\n* Adapts well to **change**\n\n[The image shows a social media post by Dzmitry Liaudanski, Senior .Net Black Ops Developer at Zettabox, with the caption: \"Make your daily stand up meeting shorter :)\" The image depicts a group of people doing planks in a circle in an office setting. Below the post are options: Like \u00b7 Comment \u00b7 Share \u00b7 5216 likes \u00b7 405 comments]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 526, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "38576720-f7de-46e7-8d6f-3b32821b6452": {"__data__": {"id_": "38576720-f7de-46e7-8d6f-3b32821b6452", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a3a56610-650b-47be-9ff1-dbaf14af3873", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "ff3b5dda320e3f69036fe10900276bc036002e4182585993fa44e796c17ce1d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Optional Readings\n\n* Ken Schwaber & Jeff Sutherland, The Scrum Guide, 2020 \n* Takeuchi & Nonaka, *The New New Product Development Game*, _Harvard Business Review_, 1986 \n* Scrum at scale, [https://www.scrumatscale.com/])(https://www.scrumatscale.com/) \n* Scrum product backlog \n - [https://www.scrum.org/resources/what-is-a-product-backlog])(https://www.scrum.org/resources/what-is-a-product-backlog)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 408, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "42e1512a-3c57-4c17-a462-3a8e95a3f4e3": {"__data__": {"id_": "42e1512a-3c57-4c17-a462-3a8e95a3f4e3", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c5f7eca6-1fd2-4df4-b35e-274d93e653b8", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "c388990a2a85c56b78d6b5fcb8277d511063a0a1b84e6c53599c9df74945e788", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b4f099e-c867-4e60-aa97-28895a0b89c0": {"__data__": {"id_": "3b4f099e-c867-4e60-aa97-28895a0b89c0", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "21a904c2-1e46-453b-b879-d25ada42b096", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "230b0d7fb60ca313b32cf43b4f383dbfb0d8893736d9000f018f4a1307a19e7c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L03 Scrum\n\n**CS 1530 Software Engineering**\n\nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 160, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b79dec40-0d50-4804-b873-aea79f5a7261": {"__data__": {"id_": "b79dec40-0d50-4804-b873-aea79f5a7261", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "028e5875-bc18-4263-8cdb-ae58b3482c2d", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "f2ef6cfafb674b5859f55be45053c8db86d7adbd2c379cb0feb890270c6434ad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine 01\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 71, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4c68e75b-b5bb-427f-a2d3-b625bc1118b2": {"__data__": {"id_": "4c68e75b-b5bb-427f-a2d3-b625bc1118b2", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a0321963-8ff2-4ab5-8fde-6e17f4525236", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "d9c92e5301397113e857fce75913f2060a745d75d2754f225c32fe374c8f04fa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Human Computer\n\n* Imagine a human computer working with a pencil and paper:\n - The only things written on the paper are symbols from some fixed finite alphabet\n - Each step taken by the computer depends only on the symbol he/she is currently examining and on his \u201cstate of mind\u201d at the time\n - His state of mind may change as a result of his examining different symbols, only a finite number of distinct states of mind are possible\n* This sounds like a finite-state machine that has its input string written on the paper\n* Primitive Steps of Human Computation:\n - Examining an individual symbol on the paper\n - Erasing a symbol or replacing it by another\n - Transferring attention from one symbol to another nearby symbol", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 730, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "03c8e27d-d856-4990-a6b6-276f4a095684": {"__data__": {"id_": "03c8e27d-d856-4990-a6b6-276f4a095684", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2dd8238f-b5c9-44cc-83ae-7c10f4f43b3f", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "e79ad957e239a2e46aeb41dd08b4da184b4e614e50c435a6fa811a3f02b36400", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machines\n\n* You can think of a **Turing machine** a finite state machine with unlimited amount of memory\n\n\n \n \n \n\n \n\n\n\n\n\n\n\n\n\n \n\n \n \n
Control
011010010\u22ef\u22ef\u22ef
Tape
\n\n* A Turing machine has the following:\n - A control (state diagram/transition functions)\n - An infinite long tape\n - A tape head that can move around on the tape\n * A TM can read input symbols from its tape\n * A TM can write output symbols to its tape", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 669, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4c00521c-6644-4cb4-b861-a82415284568": {"__data__": {"id_": "4c00521c-6644-4cb4-b861-a82415284568", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "636fdb76-0a49-4e1a-9423-0b0c8eb670de", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "1ddff7de84c616278900fdbd7cecbe47ab4b3d2d11bb052ff7f5d9b6304248cd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machines\n\n* At first, tape contains the input string followed by infinite blank (\u2423) symbols\n * Example: Input: `101`\n\n \n\n\n \n \n \n
101\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u22ef
\n\n * Example: Input: `011010010`\n\n \n\n\n \n \n \n
011010010\u2423\u2423\u22ef
\n\n * Example: Input: `\u03b5`\n\n \n\n\n \n \n \n
\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u22ef
\n\n* The machine can store information by writing symbols onto the tape\n* The output of a machine is either *accept* or *reject*\n * Output symbols/strings can also be on the tape\n* **A Turing machine may run forever**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 962, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5af2408d-91dc-454d-b1c7-6be79e171657": {"__data__": {"id_": "5af2408d-91dc-454d-b1c7-6be79e171657", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b82ac977-b61f-48dd-9704-799fd90d58c3", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "1bd07573fec529db600fd4dc5c79116ccf215e6ccff87d9ea897fe99aaefbb4a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine\n\n```\nControl\n```\n\n| a | b | a | b | \u2423 | \u2423 | \u2423 | ... |\n\n1. A Turing machine can read a symbol from the tape under the tape head \n2. A Turing machine can write a symbol to the tape under the tape head \n3. The tape head can move to the left and to the right one square at a time \n4. The tape is infinite \n5. The special states for rejecting and accepting take effect immediately ($q_{reject}$ and $q_{accept}$) \n * Unlike DFA that needs to process the last input symbol before accepting or rejecting an input string", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "da9aa4c3-be4e-40f1-8ac0-2849f6615b27": {"__data__": {"id_": "da9aa4c3-be4e-40f1-8ac0-2849f6615b27", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "531afd3a-2533-4db9-9fb7-3b101ce460ed", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "d8816e5fc05fc6469ef2121deb23ed09df8be533b86233b9c948ea737a22c599", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let $$ \\Sigma = \\{0, 1, \\#\\} $$\n* Consider the language $$ B = \\{ w \\# w \\mid w \\in \\{0,1\\}^* \\} $$\n - Example of strings in $$ B $$ are\n * 01101#01101\n * #\n * 01#01\n* This language is not regular\n - Need an infinite states to remember all symbols in $$ w $$\n - We can use the Pumping lemma to prove that it is not regular\n* If the number of # symbol in a string is not exactly 1, the string is not in the language $$ B $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79833edd-7f38-4578-871a-ec5c2977af40": {"__data__": {"id_": "79833edd-7f38-4578-871a-ec5c2977af40", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c178e692-3bc8-45cf-b811-ae4b941afedf", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "fc0d148df8878f1828cd8f79ac269230bfdfe9f268dca4915f93d1079ae3fb55", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let $$\\Sigma = \\{0, 1, \\#\\}$$ and $$B = \\{ w \\# w \\mid w \\in \\{0,1\\}^* \\}$$\n* Imaging what would you do if I give you a very long piece of paper and it contains a string of the form $$x \\# y$$ where $$x, y \\in \\{0,1\\}^*$$ and they are so long that you cannot remember all its symbols\n* One way is to go back and forth across the \\# and compare symbols at the same position one symbol at a time\n* You may need to cross off those that have been compared\n\n```\n0110110101011010111010100101011001100101010#0110110101011010111010100101011001100101010\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 562, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23a868d5-94ea-4364-b2e2-dad0e0ffd90e": {"__data__": {"id_": "23a868d5-94ea-4364-b2e2-dad0e0ffd90e", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "de92c691-5b1f-4be9-b182-ae35ad06a0af", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "12bbdb4b38cc94862a3eae0cd3a2d280a928bdc8a88d2298d57aa6d4d9a2e1d1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formal Definition of a Turing Machine\n\nA **Turing machine** is a 7-tuple, \n$$(Q, \\Sigma, \\Gamma, \\delta, q_0, q_{accept}, q_{reject}),$$ \nwhere \\(Q, \\Sigma, \\Gamma\\) are all finite sets and\n\n1. \\(Q\\) is a set of states, \n2. \\(\\Sigma\\) is the input alphabet not containing the **blank symbol** \\(\\sqcup\\), \n3. \\(\\Gamma\\) is the tape alphabet, where \\(\\sqcup \\in \\Gamma\\) and \\(\\Sigma \\subseteq \\Gamma\\), \n4. \\(\\delta : Q \\times \\Gamma \\to Q \\times \\Gamma \\times \\{L, R\\}\\) is the transition function, \n5. \\(q_0 \\in Q\\) is the start state, \n6. \\(q_{accept} \\in Q\\) is the accept state, and \n7. \\(q_{reject} \\in Q\\) is the reject state.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 644, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b6b55b96-a7b8-4112-9e40-424c224e9543": {"__data__": {"id_": "b6b55b96-a7b8-4112-9e40-424c224e9543", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "07528021-ec45-453b-a31c-64b1153a5c7e", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "20d5b903657fd5f044af8ab63b88b9f57c7d0c816dee5bdf2a4b5e0c5374893a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Transition Function of a Turing Machine\n\n* The transition function of a TM is defined as:\n\n$$\n\\delta : Q \\times \\Gamma \\to Q \\times \\Gamma \\times \\{L, R\\}\n$$\n\n* An assignment \\(\\delta(q, a) = (r, b, L)\\) means if the machine is at state \\(q\\) and the tape head is over a square containing \\(a\\), the machine writes symbol \\(b\\) (replacing \\(a\\)), changes its state to \\(r\\), and moves the tape head to the left one square.\n - This transition can be represented in a state diagram as shown below:\n\n```mermaid\nstateDiagram-v2\n [*] --> q\n q --> r: a \u2192 b, L\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 567, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e936f96b-a97c-4a9a-b258-880ab4a9ce69": {"__data__": {"id_": "e936f96b-a97c-4a9a-b258-880ab4a9ce69", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2db1ef4f-ce24-45a1-ae1d-dcb103d839b2", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "1d07685be58e534a127f548eff85a631e0369b9596e53fbf1d41b454d3e32ecf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Computation of a Turing Machine\n\n* The input string \\( w = w_1 w_2 \\ldots w_n \\in \\Sigma^* \\) is on the leftmost \\( n \\) square of the tape and the rest are filled with blank symbols\n* The tape head starts at the leftmost square of the tape\n* The machine processes input according to its transition function\n* If the tape head is at the leftmost square and the transition function indicates \\( L \\), the tape head stays at the same place\n* The machine continues until it enter the \\( q_{accept} \\) or \\( q_{reject} \\) state\n* **The machine may run forever**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa9a01ca-8177-42df-861c-6eab9431dc4a": {"__data__": {"id_": "fa9a01ca-8177-42df-861c-6eab9431dc4a", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "67967a6b-5d6a-4cbb-82a6-3b0d00479d89", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "7ab0071036d998c37d366c75ca527694e6c42e5193ff08dab35b275726ba4f50", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Tracing a Turing Machine\n\n* To trace whether a DFA accept or reject a string is easy \n* To trace whether an NFA accept or reject a string is harder \n - An NFA can split into multiple copies \n - Each copy has its own current state \n - We use a computational tree to keep track of all copies \n* To trace whether a TM accept or reject a string is even harder \n - We need to keep track or the current state (similar to DFA or NFA) \n - We also need to keep track of the content of the tape \n - The content of the tape is changed over time (TM can write onto the tape) \n - We also need to keep track of the location of its tape head \n - Need to know the symbol under the tape head \n - The tape head needs to move to either left or right direction at every step", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 783, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8f734291-67c8-454e-a6b7-842d005e4f81": {"__data__": {"id_": "8f734291-67c8-454e-a6b7-842d005e4f81", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "73469d13-ed85-4f0b-b88e-785dccd018c1", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "b5224b79f545e690de6ea3c26acbe3f703d0431e30ba7487b11dd5d6c3361092", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration\n\n* When a machine process an alphabet, three things change:\n - the state of the machine,\n - the content of the tape, and\n - the location of the tape head\n* The above three items can be represented by a configuration\n* A **configuration** is in the form of \\( u \\; q \\; v \\)\n - \\( u \\) and \\( v \\) are strings that can be empty\n - \\( q \\) is a state that represents the current state of TM\n - The content of the tape is the string \\( uv \\)\n - The tape head is on the first alphabet of the string \\( v \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 526, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "10c63e07-62db-42d1-9277-ab5fe72f4d92": {"__data__": {"id_": "10c63e07-62db-42d1-9277-ab5fe72f4d92", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9d23310a-def1-4b7a-8114-8751cd93b046", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "02c40a00985576c71d4cb9d8a3718219348ad925117fafeeb73f096e58894f7a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration (Examples)\n\n* Example: The configuration `1011q_7 01111` corresponds to a machine as shown below:\n\n q\u2087\n\n \n\n\n \n \n\n\n\n\n\n\n\n\n\n\n \n
101101111\u2294\u22ef
\n\n* Example: The configuration `q_3 101101111` corresponds to a machine as shown below:\n\n q\u2083\n\n \n\n\n \n \n\n\n\n\n\n\n\n\n\n\n \n
101101111\u2294\u22ef
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7c77766-e764-441a-bfd8-7cde60d718bb": {"__data__": {"id_": "e7c77766-e764-441a-bfd8-7cde60d718bb", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8a816488-4bd1-430d-9407-e4d437b06582", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "c973575f817b161756a57869aadb60d9a9228c765bacf4b4fd32adf77777dd88", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration (Examples)\n\n* Example: The configuration `10110111q_8 1` corresponds to a machine as shown below:\n\n\n \n \n \n \n\n \n\n\n\n\n\n\n\n\n\n\n\n \n
q8
101101111\u2294\u22ef
\n\n* Example: The configuration `101101111q_4` corresponds to a machine as shown below:\n\n\n \n \n \n \n\n \n\n\n\n\n\n\n\n\n\n\n\n \n
q4
101101111\u2294\u22ef
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 670, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f1fe9bc4-d170-44d5-b12d-b28d06924c5d": {"__data__": {"id_": "f1fe9bc4-d170-44d5-b12d-b28d06924c5d", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "31ef71f7-b42d-4df0-921c-fe65f7d441d1", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "9f20749c9678eb898d26686baed5235e4d05d3d66ad093cb7591be1168d18bb4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration\n\n* We say that the configuration \\( C_1 \\) **yields** configuration \\( C_2 \\) if the machine can **legally** go from \\( C_1 \\) to \\( C_2 \\) in one step\n* For example, suppose a TM has the following transition function: \n $$\n \\delta(q_i, 0) = (q_j, 1, L)\n $$\n* Consider the configuration `010010q_i0101` \n - For the above configuration, \\( u = 010010 \\), \\( q = q_i \\), and \\( v = 0101 \\) \n - The current state is \\( q_i \\) \n - The content of the tape is `0100100101` \n - The tape head is on top of the symbol 0 (the first symbol of \\( v \\)) \n* According to the above transition function, the next configuration would be \n `01001q_j01101`\n* We say that the `010010q_i0101` yields `01001q_j01101`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 732, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e8f88aac-40a7-4e32-b8b5-6eca80c43ef6": {"__data__": {"id_": "e8f88aac-40a7-4e32-b8b5-6eca80c43ef6", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bb034993-4e86-428a-9636-2c111a10847d", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "91f13ee3a54e329ae96a3a31baf2859aec74c603ff987d77f004ec52eb919e05", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration\n\nFormally: \n* Let \\(a, b, c \\in \\Gamma\\) and \\(u, v \\in \\Gamma^*\\) \n - \\(a, b,\\) and \\(c\\) are symbols \n - \\(u\\) and \\(v\\) are strings over \\(\\Gamma\\) \n - By concatenating the symbol \\(a\\) to the end of the string \\(u\\), we get the string \\(ua\\) \n\n* We say that \n $$\n ua \\ q_i \\ bv \\quad \\text{yields} \\quad u \\ q_j \\ acv\n $$\n if \n $$\n \\delta(q_i, b) = (q_j, c, L)\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 402, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4f68964d-745b-496b-8ba9-5d2a55f86b2c": {"__data__": {"id_": "4f68964d-745b-496b-8ba9-5d2a55f86b2c", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2e94eac8-3942-47d0-8582-eddd303b488d", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "272b4b6ed4de25ac24950aa0720d7f8dcd52ff1689a6ec3c9faf14c204f77f18", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Starting Configuration\n\n* Given a string $$w = w_0 w_1 w_2 \\ldots w_n$$\n* Suppose the start state of a TM $$M$$ is $$q_0$$\n* When $$M$$ is about to process the string $$w$$:\n\n \n\n\n \n \n \n \n \n \n\n \n \n \n\n \n
$$q_0$$$$w_0$$$$w_1$$$$w_2$$\u22ef$$w_n$$\\(\\sqcup\\)\\(\\sqcup\\)\u22ef
\n\n* The starting configuration of $$M$$ on input $$w$$ is $$q_0 w$$\n* Example: The starting configuration of $$M$$ on input 01101 will be $$q_0 01101$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 965, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "05757e2a-afc0-4c3b-ab26-5d72f8442d0c": {"__data__": {"id_": "05757e2a-afc0-4c3b-ab26-5d72f8442d0c", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d7460287-2399-4db1-b08a-297053c179fe", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "c33fc31dc0aa8cb1687f70314fd06cc0702fe5ce7a9cda8b477fc508242b53cf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration\n\n* If the state in a configuration is \\( q_{accept} \\), the configuration is called **accepting configuration**\n - \\( 0101 q_{accept} 101 \\)\n - \\( q_{accept} 1111 \\)\n\n* Similarly, if the state in a configuration is \\( q_{reject} \\), it is called **rejecting configuration**\n - \\( q_{reject} 010100 \\)\n - \\( 011 q_{reject} 01 \\)\n\n* Once a machine yields either the accepting or rejecting configuration, the machine will not yield any other configuration (**halting configuration**).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 502, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8f46aa61-3cd9-423d-870a-ee0049ba506d": {"__data__": {"id_": "8f46aa61-3cd9-423d-870a-ee0049ba506d", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5d358f44-9364-4eba-9b06-2ffbdb4db936", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "f67a16f5215479e505dcddeab94544cb2c7b654ac8bbe138712576d848b659bb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Language of a TM\n\n* A machine \\( M \\) accepts a string \\( w \\) if the sequence of configuration \\( C_1, C_2, \\ldots C_k \\) exists, where \n - 1. \\( C_1 \\) is the starting configuration of \\( M \\) on input \\( w \\), \n - 2. each \\( C_i \\) yields \\( C_j \\), and \n - 3. \\( C_k \\) is an accepting configuration \n\n* The set of all strings \\( A \\) accepted by \\( M \\) is **the language of** \\( M \\) \n - \\( M \\) recognizes \\( A \\) or \n - \\( L(M) = A \\) \n\n* **Note:** If \\( L(M) = A \\), it does **not** mean that \\( M \\) rejects all strings that are not in the language \\( A \\) \n - Given a string \\( s \\notin A \\), \\( M \\) may loop indefinitely on input \\( s \\) \n - Unlike a DFA \\( D \\), if \\( L(D) = B \\), \\( D \\) rejects all strings not in the language \\( D \\) \n - DFA \\( D \\) cannot loop indefinitely on any string", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 829, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "13dc0332-446c-454a-8d66-7c8f2940ef6a": {"__data__": {"id_": "13dc0332-446c-454a-8d66-7c8f2940ef6a", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2974e4fc-aa26-4792-a3c0-634dbaee5c8b", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "96611b201d27581a13fc44213cdd507f78e12db36b54ef3b82596a5f90fec02c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Language of a TM\n\n* A language \\( B \\) is called **Turing-recognizable** if some Turing machine recognize it \n - Sometimes we call \\( B \\) is recognizable \n* Given a string \\( w \\) and a TM \\( M \\) there are three possibilities: \n 1. \\( M \\) accepts \\( w \\) \n 2. \\( M \\) rejects \\( w \\) \n 3. \\( M \\) loops indefinitely on input \\( w \\) \n* Turing machines that never loop indefinitely are called **deciders** \n - These type of TMs will always halt on all inputs \n* A decider that recognizes a language is said to **decide** that language \n* A language is called **Turing-decidable** if some Turing machines decide it \n* Suppose TM \\( M \\) is a decider and \\( L(M) = C \\), we say that \n - \\( M \\) decides \\( C \\) \n - \\( C \\) is decidable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 757, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4e1ff16f-88dd-4732-bcfb-b4e24a668348": {"__data__": {"id_": "4e1ff16f-88dd-4732-bcfb-b4e24a668348", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c718d7dc-0091-418c-ba49-268c0e532bc9", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "643509a2c88eecb76a44b3eecc04d34c3d7177d38a4905e50d5d7b47961fda51", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L09 Scenarios & Use Cases\n\nCS 1530 Software Engineering \nNadine von Frankenberg \n\nFall 2025 \n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 177, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a3c57bf1-7a1e-4b4f-a295-20d652be88ee": {"__data__": {"id_": "a3c57bf1-7a1e-4b4f-a295-20d652be88ee", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "efbc3004-ecb9-4354-bcdd-749a3d8cf57e", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "5bd883d0b7d9cc41f851aa4e559aa881e166fa0f96e97b11b654ab3db87d5efd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2f8c9461-f4c1-4bc4-b086-b52837e9dde5": {"__data__": {"id_": "2f8c9461-f4c1-4bc4-b086-b52837e9dde5", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "776c473c-2b18-47aa-8353-f9750d03e31a", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "a98fc66f9ece9a745b579af63796b6b373a8cca079e15f579d79fb85d7e425f6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You understand the different means of representing requirements \n - Scenarios \n - Use case \n* You can model a use case diagram", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dbadd120-e10b-4298-9306-83ac98642d4e": {"__data__": {"id_": "dbadd120-e10b-4298-9306-83ac98642d4e", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "87df2992-a843-4dec-a768-3b5e0d3e0257", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "ec86a0c88e0abaef88ff3c6851ee5ec966657759ad55cc9d400474ead4ffe022", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Scenarios\n* Use cases\n* User stories", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 58, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dac7922d-aba1-4ff2-942a-05dc43b1ba99": {"__data__": {"id_": "dac7922d-aba1-4ff2-942a-05dc43b1ba99", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "90b55eb8-e599-47f4-b7f7-f63a12a7a2ea", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "2a0f92b753a38b0fb508157e7f7d1ea2ea010f8971a84220c45a69e107af4af1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# So far \u2026\n\n* We have defined functional, non-functional requirements, and constraints\n* They form the foundation of the system we want to build\n\n**Problem** \nHow do we ensure every stakeholder understands the system?\n\nHow can we validate the requirements with stakeholders?\n\n> -> We need techniques that make requirements concrete and communicable!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 351, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "adc8666e-fad8-425a-83c6-5461da464bd0": {"__data__": {"id_": "adc8666e-fad8-425a-83c6-5461da464bd0", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "57cfb6a9-1246-4ea0-b824-e43d77405411", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "2fe1a397ba8a2e1525cf5fa9bb333b4d6d01e4796ec5b1c63e621147a6137f6b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Common techniques\n\n* **Interviews** \n - Structured vs. unstructured, open-ended questions\n* **Surveys**/questionnaires (useful for large groups)\n* **Workshops**/brainstorming\n* **Observation** (shadowing users, contextual inquiry)\n* **Document Analysis:** Legacy system specs, regulations\n* **Prototyping** \u2013 Low-fidelity mockups to elicit feedback\n* **Use Case / Scenario Writing:** Stories of user interaction\n* **User Stories** (agile format)\n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 454, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0e1cff9e-34f9-465c-84da-7bfdf53811ef": {"__data__": {"id_": "0e1cff9e-34f9-465c-84da-7bfdf53811ef", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9da8e4e2-0e74-4996-8e3d-ee3c184080d5", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "b697a55997e60e10b0b091e0135f78c9d5a8e6085086392c20fd2ce69156115b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Validation techniques align requirements with user needs\n\n* **Scenarios:** A concrete story of a user interacting with the system \n* **Use Cases:** A structured description involving generic end-users (actors) and the system, abstraction that covers all possible instances \n* **User Stories:** A short statement of the need from the end-user\u2019s perspective, making it easier to understand and prioritize \n\n> These techniques help validate requirements with stakeholders and identify missing FRs, NFRs, or constraints.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 522, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f7a2b0f2-081b-4af5-a504-c22b7219a113": {"__data__": {"id_": "f7a2b0f2-081b-4af5-a504-c22b7219a113", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3fb6a6d7-8047-4129-9f16-c234707eed4f", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f08dad8486aa31f758038abd49c242e7adb6573bf9cb958776f77ef8dca24554", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying scenarios\n\n* Informal **short** descriptions of specific user interactions in **natural language**\n* They provide a **narrative** of how the system should function through a **sequence of events, actions, or steps**\n - Used for exploring detailed interactions and edge cases\n* Basis for test cases & validation \n - Best case scenario \n - Worst case scenario \n - Average case scenario \n\n> Describe a flow of events with multiple potential outcomes", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 469, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca4f43e5-6590-41c1-95a6-d781981cb427": {"__data__": {"id_": "ca4f43e5-6590-41c1-95a6-d781981cb427", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c17cf19a-c752-4743-81ba-ab582098c608", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "8c9def720637ce57753928867004eae33a47bda83f75ac42545971643ad46e5e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example]\n\n**FR3 View Sinkhole:** Residents and city officials should be able to view reported sinkholes on a map.\n\n*Jamie opens the SiMCity app on their phone while walking home. \nThey see visual markers for sinkholes on a street map. \nWhen they select a sinkhole marker, the app shows the sinkhole\u2019s location, date reported, and verification & repair status.*\n\n> Yes, I want to see a detailed status! \n> Residents should not see unverified reports.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 456, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8dd957f7-830a-4d9a-b399-52f58d480773": {"__data__": {"id_": "8dd957f7-830a-4d9a-b399-52f58d480773", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4d1f38c9-90c6-456f-bad8-0d543be10876", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "d42b7c4cbd6a363972ba74fe6c8fb4d54e9f76fdc02da317c7c944459ca8bdbc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Scenarios have a concrete story-line\n\n* Scenarios enhance requirements elicitation by providing a tool that is understandable to stakeholders\n* Concrete, user-centered descriptions of system features used by actors (end-users), often involving informal descriptions\n - Textual representation of how the system is used **written from the** (end)**user\u2019s perspective**\n - Scenarios can incorporate visual elements: e.g., videos, pictures, or storyboards\n - Scenarios can encompass contextual details, e.g., the (physical) environment, social situations, \u2026\n* In **scenario-based design**, scenarios serve as the foundation for designing the hypothetical interaction of end-users with a system", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 695, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8394def2-28e7-466d-9aac-fa6ae3d81566": {"__data__": {"id_": "8394def2-28e7-466d-9aac-fa6ae3d81566", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7f31de39-1a67-4001-bf9c-d25ed478162a", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "76055093c16bea5bcc05714436620ca924627cf18184e241805bb32523db0f93", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] As-is scenario\n\n## FR4 Reorder Supplies: The system allows users to reorder supplies.\n\n### STORYBOARD\n\n* WE NEED MORE POST-ITS\n* MAKES NOTE OF SUPPLIES NEEDED ON CLIPBOARD\n* PHYSICAL INVENTORY\n\n### PERSONA:\n* CORPORATE BUYER, JAMES\n\n### SCENARIO:\n* REPLENISH OFFICE SUPPLIES\n\n----\n\n| ![Storyboard panel 1: Person holding clipboard saying \"WE NEED MORE POST-ITS\" in front of shelves] | ![Storyboard panel 2: Computer screen on desk labeled \"JAMES'S DESK\" with a note \"SUPPLY LIST\"] | ![Storyboard panel 3: Computer screen showing \"SUCCESS!\"] |\n|---|---|---|\n\n* SELECTS ITEMS FROM FAVORITES LIST \n* USES DESKTOP & SUPPLY LIST AS TOOL \n\n* RECEIVES SHIPMENT WINDOW W/ ORDER SUBMISSION \n* SETS PLAN FOR RESTOCK \n\nhttps://www.nngroup.com/articles/storyboards-visualize-ideas/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 786, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8618a457-caf5-47f8-bc2e-8b6962354f18": {"__data__": {"id_": "8618a457-caf5-47f8-bc2e-8b6962354f18", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0030bf3b-db5b-4058-9373-d719107e4a1e", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "44f968449b06521eaab30015ee8dfe64e3ba9e52d53345070aa2e0d061bd4dde", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example] From Storyboards to Code**\n\n| Scenario | Storyboard |\n|----------------------------------|--------------------------------|\n| **Event 1** | **Frame 1** |\n| *Worker* activates the *emergency transmitter.* | [Sketch of a hand pressing a button labeled \"activate emergency off\"] |\n| **Event 2** | **Frame 2** |\n| *Rescuer* gets a call on his *Phone.* He answers the call. | [Sketch of a phone screen showing an incoming call] |\n| **Event n** | **Frame n** |\n| *Rescuer* captures *emergency drone* on the field. | [Sketch of a drone being captured] |\n\n----\n\nLukas Alperowitz, Constantin Scheuermann, and Nadine von Frankenberg. \"From Storyboards to Code: Visual Product Backlogs in Agile Project Courses.\" SEUH. 2017.\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1017, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "43d95cf6-b1f8-4dfb-a56d-ad100076aa3b": {"__data__": {"id_": "43d95cf6-b1f8-4dfb-a56d-ad100076aa3b", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "688dcb2c-bea4-44b7-8d74-4b05fc49dd55", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "ea0323716111a382c07b3df3d7887dff44397ce677b83733f447b78feac8e479", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Scenarios\n\n* A scenario is a textual description that should include:\n - The **name** of the scenario\n - The **user** (\"instantiated\" main actor of the scenario)\n - The **purpose** of the scenario\n - **Steps** of the scenario\n - *Optional:* Assumptions about, e.g., equipment/software", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d7653125-7280-42e6-901b-cde7d067128b": {"__data__": {"id_": "d7653125-7280-42e6-901b-cde7d067128b", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "01758b2e-50b8-4ece-a556-02d4caaed0c6", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "5b4fd3ead34ccf0dc546107775c2eb9f05c7192391e7ed046e037151c69baa38", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to write a scenario?\n\n**User** \n**Personas** \nDefine the target user\n\n**Name & Purpose** \n**Goal** \nDefine the goal\n\n**Steps** \n**Paths** \nDefine the task(s), possible paths, and problems\n\n[The page includes three icons above each section: \n- User: A circle with diverse illustrated people inside. \n- Name & Purpose: A circle with a checklist icon inside. \n- Steps: A circle with a flowchart icon inside.]\n\nIcons source\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f94b4de4-a4fb-4936-a34f-90b403228a94": {"__data__": {"id_": "f94b4de4-a4fb-4936-a34f-90b403228a94", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ff6a04ac-047e-4fa0-9042-7c43009a93ad", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "5f3d1e97880f3ecb293d3f10d2feb8b1612893cf5a6818da4405626936317c5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to write a scenario?\n\n* Format can be **informal** or **formalized**\n* The rest is up to the author!\n * E.g., include different formatting to highlight situations or context\n * Names and details should _(somewhat)_ resonate with the audience\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n \n
Informal scenarioFormal scenario
Scenario nameScenario name
\n Scenario description
\n (natural language text)\n
Participating actors
\n Flow of events:
\n 1. Scenario description in bullet points
\n 2. Typically each point describes one step (i.e., event)\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 873, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "692bcea9-4254-474c-94c0-4bff1269fc61": {"__data__": {"id_": "692bcea9-4254-474c-94c0-4bff1269fc61", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fbb126ec-4aaf-417d-bd62-c98629920739", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "56ac5198da343587fa5f4d5caf1e90398f9e906a8b2921565ebd2293f932ca5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Visionary Scenario\n\n## Pizza Cravings: Ordering a Pizza\n\nOn a Wednesday night, Sarah, a CS senior at Pitt, is fully immersed in her study session for 1530. Around 10pm, she suddenly craves a pizza. She opens the pizza ordering app \"CrustRight\", logs in with her Pitt student ID, and selects to have her order delivered.\n\nAfter ordering a small Supreme pizza with extra cheese and a surprise soda, she selects her dorm room as delivery address and pays using her student meal plan.\n\nShe receives a confirmation and an info that her order will be delivered in 15 \u2014 20 minutes.\n\nShe waits patiently. 16 minutes later, she receives a message that her pizza is outside. She buzzes the delivery person in and receives her order at her doorstep. She enjoys her late-night meal, reenergizing her study session.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 815, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5103e669-870f-422c-839e-cd1ebfd28525": {"__data__": {"id_": "5103e669-870f-422c-839e-cd1ebfd28525", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "889ad586-729b-4006-af89-d3dbc943ed0f", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "7f739b6f656f6ceb2cf11005df774cf0ec3f9a1477f717a0eb26e80d5979bfa6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] As-is scenario\n\n> \ud83d\udea8 **[Notation alert]** \n> An instantiated actor is denoted as \n> **Concrete Name : ActorType** \n> (both `:` and _underlining_ the actor indicate that we are dealing with an instance)\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
ScenarioDepositing money
Participating actorsRobin: BankClient
Flow of events\n 1. Robin celebrated their birthday last Wednesday and received birthday money ($300) from their relatives and wants to deposit it to their bank account.
\n 2. Robin visits a bank branch of their bank \"HelloSavings\", a 5 minute walk from their apartment.
\n 3. They queue up at the teller's counter, behind 10 other customers and wait patiently.
\n 4. Finally, when it\u2019s Robin\u2019s turn to talk to an agent, they need to provide physical identification. Robin uses their driver\u2019s license and the agent confirms their identity.
\n 5. Robin hands over the $300. The agent counts it, confirms the amount, and uses the bank\u2019s internal system to schedule the move to Robin\u2019s account.
\n 6. Robin receives a printed receipt for the transaction.
\n 7. Two weeks later, Robin receives their bank statement by mail and checks their balance to confirm that the birthday money transaction has made its wait to their account.\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1481, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b0d34335-09a9-458a-a361-4427cea1e486": {"__data__": {"id_": "b0d34335-09a9-458a-a361-4427cea1e486", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fbaedddd-79ce-4928-8c01-39baa059cb13", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "417194ff370644b1403321162598e7497b75114995c953f75c14713efcf6465b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Visionary scenario\n\n\n \n \n \n \n\n \n \n \n\n \n \n \n
ScenarioDepositing money
Participating actorsRobin: BankClient
Flow of events\n 1. Robin celebrated their birthday last Wednesday and received birthday money ($300) from their relatives and wants to deposit it to their bank account.
\n 2. Robin opens the \"Coinnect\" app.
\n 3. The \"Coinnect\" app shows a welcome message and asks Robin to log in.
\n 4. Robin logs in with a biometric login.
\n 5. The \"Coinnect\" app shows an overview of Robin\u2019s favorite banks.
\n 6. Robin selects to file a deposit at a physical location with \"HelloSavings\" bank.
\n 7. The \"Coinnect\" app shows all physical locations of Robin\u2019s bank within a 5 mile radius and the current wait times.
\n 8. Robin\u2019s closest bank location (a 5 minute walk away) shows a current wait time of 32 minutes.
\n 9. Robin selects to virtually stand in line.
\n 10. Robin receives a notification 8 minutes before it is their turn in line.
\n 11. Robin leaves their apartment and walks over to the physical location of the \"HelloSavings\" bank.
\n 12. When Robin arrives, the \"Coinnect\" app registers their arrival and confirms their spot in the current queue.
\n 13. Robin receives a number, which the bank teller calls out when it is their turn 2 minutes later.\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1506, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "323acb72-7aed-4c69-b3c6-ac3b34cba582": {"__data__": {"id_": "323acb72-7aed-4c69-b3c6-ac3b34cba582", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ec21280e-7d21-41cb-b5bb-f4cf36cb22ec", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "cb8317b00629520700ae83579078c8fe3d7af833c21b14d45dceb5d7e61b6608", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of scenarios\n\n* **As-is:** Describes the current situation, often focusing on an existing system\n* **Visionary:** Envisions the desired future state, outlining system goals\n* **Demo:** Showcases system functionality to stakeholders\n* **Test:** Specifies steps for quality assurance and validation\n* **Evaluation:** Assesses system effectiveness against criteria\n* **Training:** Guides users in effective system use\n\n\n \n \n \n\n \n \n\n \n \n\n \n \n
Greenfield
&
Re-engineering Projects
Demos
Demos
&
Acceptance Tests
Post delivery
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 681, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4db24cba-5f30-4ab3-86fb-578fc4b809c4": {"__data__": {"id_": "4db24cba-5f30-4ab3-86fb-578fc4b809c4", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6a47b973-52a1-4b78-b3e8-ff953f489119", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "b5cb62d2587d2bce962fad916626863940fadf6bd4f901709f3052440290bca4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Deriving scenarios\n\n* **Client conciseness:** Customers may not provide extensive details for non-existent systems \n* **Domain expertise:** Customers understand the problem domain, not the solution domain \n* **Avoid assumptions:** What is obvious to you may not be apparent to the customer \n* **Dialectic engagement:** Engage in dialogue to help clients formulate scenarios \n* **Dynamic requirements:** Requirements often evolve during scenario formulation \n* **Observation:** For existing systems, insist on task observation, interface engineering, or re-engineering \n* **(End-)user engagement:** Speak to (end-)users for valuable insights", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 649, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93f7415a-356f-4c18-b4a8-d6389ce30b1d": {"__data__": {"id_": "93f7415a-356f-4c18-b4a8-d6389ce30b1d", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ff0339ca-286f-4a9d-82f7-c47792fbf62c", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "44f233ed3d2553e111d0eb135868a6293440a348bca882f0a9f54207b21450e4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to write a scenario? (cont.)\n\n* **Starting point:** Begin with the problem statement (if available) \n* Answer the following **questions:** \n - Which actors are involved? \n - What are the core functions that the system must perform? (From the actor\u2019s perspective) \n - What information can the actors access, generate, store, modify, delete, or introduce into the system? \n - Which external changes does the actor need to inform the system about? How often? When? \n - What events should trigger notifications to the actor using the system? \n* Decide on names, contextual circumstances if needed, etc. \n - **Know your audience** \u2014 familiarity with a situation may be relevant", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 693, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "88b3991f-da6e-4e56-87f5-451ae9af8424": {"__data__": {"id_": "88b3991f-da6e-4e56-87f5-451ae9af8424", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4a0b7b56-7b0e-4bdc-abbc-eebb14a0ca75", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "12c02d612d0d36462095e2e4153d94751e4fbb8c4dd584a2b59a7b1e36ec416a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Scenarios\n* Use cases\n* User stories", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 58, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d1f511b2-7489-4f75-977a-5795cae771e3": {"__data__": {"id_": "d1f511b2-7489-4f75-977a-5795cae771e3", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b53aafcd-ee6f-409c-8581-fec15b4a55a1", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f725bb18f323c586f2d032058253e151f2d396b425848a3a379a82e490a5bfae", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Deriving functionality\n\n* Scenarios focus on actor identification & the application domain \n - Shortcoming: static, does not adapt to different processes that need to be supported by a (new) feature \n* Next step: **Based on the scenario(s),** identify functionality where an actor interacts with the system \u2192 **use cases** \n - Describe the different ways how a user can interact with the system \n - Are there any conditions tied to a functionality? \n - Any specific qualities that need to be considered?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 515, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "152a654e-06c8-4a2b-8d09-1cb30fe3309e": {"__data__": {"id_": "152a654e-06c8-4a2b-8d09-1cb30fe3309e", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5dc10584-eec8-4de1-9275-ad1e2ae6e431", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "2588df804622789f62723817ff662bfd01b050e64a4adf04562886430cf6e74b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Use cases\n\nGoal: Define system functions through a series of events, producing observable outcomes for actors\n\n* Use cases are descriptions of interactions between a system and actors (= its users or other systems)\n* Actors initiate use cases to access system functionality\n\n```\n Administrator Occupant\n Resident\n\nAdministrator GIS SiMCity\n Occupant Geminio\n\nSimCity interacts with\nan actor (GIS)\n\nGeminio Sensor\n CityOfficial\n\nUML actor notation:\nTwo actors interact with the system\n\nDeveloper Sensor\n```\n\n[University of Pittsburgh logo]\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 774, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf5f9498-0cca-421d-9e3f-f82a04207e49": {"__data__": {"id_": "bf5f9498-0cca-421d-9e3f-f82a04207e49", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "672de12f-2ec7-4a58-9f37-a258e7ae85d2", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "cb77f4609dd2367a5610fb41f06ef7f61eb26636b99f268c775ec1d952e8a280", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Use cases\n\n* Use cases describe the **system\u2019s behavior** from the **actor\u2019s point of view**\n* Typically, functional requirements should be phrased in a way that their respective short title can be directly derived into a use case\n * Example: \n **FR1 View Hazardous Area:** Pittsburgh\u2019s residents can view hazardous areas where sinkholes are likely to occur.\n\n* Use case - UML representation:\n\n```mermaid\n%% UML Use Case Diagram\nactor Resident\nusecase \"View\\nHazardous Area\" as UC1\nResident --> UC1\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 510, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14f5c552-802d-429c-8f49-0aeebbcaf3a7": {"__data__": {"id_": "14f5c552-802d-429c-8f49-0aeebbcaf3a7", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f1f92b47-4413-4f49-b916-cb98809531c0", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "faea5ef9a061602f11daf80bf0e7369fb27fd0b3fd8860b5c5ec7ebb4bd1322b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Use cases - textual description\n\n* If a use cases has a flow of events that is non-trivial, a textual description helps to identify and document these events\n* Use cases are typically written from the **point of view of the user**\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
Use case nameTrack location of SLFs
Participating actorsCitizens of Pittsburgh (enduser)
Flow of events\n 1. The citizen select a specific area or region on the map where they suspect or want to track Spotted Lantern Flies (SLFs).
\n 2. The system shows the location of spotted lantern flies in the selected area\n
\n\n> An event can also link to another use case. E.g., \n> 3. The system initiates use case \"View location\"\n\n> System steps (i.e., events that the system initiates) should be highlighted.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 997, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f34d38dd-fdfd-4fd9-ba6f-016993c2048a": {"__data__": {"id_": "f34d38dd-fdfd-4fd9-ba6f-016993c2048a", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0f386667-5cff-4b58-b914-2f74fabe2441", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "5bc892f9a71202b5ee67c9d7ea3cce4d56e44a8d87c4eac14083ca9c60ad1c05", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formalized use case template\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Use case templateDescription
Use case name\nThe name of the use case should indicate what the user is trying to accomplish
\n(See short title of FRs)\n
Participating actorsActors should be named with noun phrases (e.g, CityOfficial)
Flow of events\nThe boundary of the system should be made clear.
\nActor-initiated steps and system-initiated steps should be distinguished
\nUse case steps in the flow of events should be phrased in the active voice\n
Entry conditionConditions that need to be satisfied before the use case is initiated
Exit conditionConditions satisfied after the completion of the use case
Quality requirementsRequirements that are not (directly) related to the functionality of the system
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1020, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3a69c807-0a54-4def-a8e0-4f99d9b441fa": {"__data__": {"id_": "3a69c807-0a54-4def-a8e0-4f99d9b441fa", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d7280c29-b6ad-41cd-9208-94d6691bec18", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f9cb547f782162a77eddc1cc0e0ddf3630f0b33997e40895fa7868035b25e475", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Textual Use Case\n\n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
Use case nameCall for help
Participating actorsResident, PublicSafety
Flow of events\n 1. The Resident sees a sinkhole
\n 2. The Resident opens the SiMCity system.
\n 3. The Resident navigates to the sinkhole help overview
\n 4. The System displays available help options.
\n 5a. The Resident selects to call for help.
\n 6a. The System dials PublicSafety
\n Alternative path:
\n 5b. The Resident does not have cell phone reception, \"No cell phone reception\" extension use case is initiated
\n 4a. The System shows alternatives to calling for help\n
Entry conditionResident has access to SiMCity system
Exit conditionPublicSafety has been called
Quality requirements\n Displayed help options are relevant for resident\u2019s area
\n It should take at most 3 clicks to call PublicSafety\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1263, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5db1e728-b007-487a-a732-3f49814eebc6": {"__data__": {"id_": "5db1e728-b007-487a-a732-3f49814eebc6", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2caaec2a-322a-4442-9c62-78ac5612d765", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "7d5dd0778ad1f435ef8dc16a85bc59c35ad50c055562bf38afcc26744f6101c3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML Use Case Elements\n\n- **Actor** \n - Interacts with the system \n - The actor **initiates** the use case\n\n- **Use Case** \n - Can be derived from the FRs (short title)\n\n- **System boundary** \n - Defines the scope of the system \n - Separates the system from external actors \n - Clarifies the boundaries within which use cases operate\n\n```\n+-------------------------------------------------------+\n| |\n| System name |\n| |\n| Use Case |\n| |\n| |\n+-------------------------------------------------------+\n```\n\nActor \u2192 Use Case (arrow indicating initiation)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 868, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e6bbb69a-6c5b-4771-8710-f73ee02e2a23": {"__data__": {"id_": "e6bbb69a-6c5b-4771-8710-f73ee02e2a23", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1d660d84-22f1-4371-b24d-85b784bbb36c", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f06d68e5b0efcc9a5749a08e825519567bfcb8fedabd94378a081ee13680fb9e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] UML Use Case Model\n\n**System name** \nSiMCity\n\n**System boundary**\n\n**Actor** \nResident\n\n**Use cases** \n* View Hazardous Area \n* Call for Help \n - <> Dial First Responder Number \n - <> No Phone Service\n\n**Relationships** \n* Resident \"initiates\" View Hazardous Area \n* Resident \"initiates\" Call for Help \n* Call for Help <> Dial First Responder Number \n* Call for Help <> No Phone Service\n\n----\n\nUniversity of Pittsburgh \n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 579, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fc672d91-48ea-402d-a69a-c0b87ecbf10c": {"__data__": {"id_": "fc672d91-48ea-402d-a69a-c0b87ecbf10c", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d7f0be94-137e-4112-a261-9f8507bd790b", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "778ee128c1a08732287400d5bef81f398c67ee42ece86929d9958dee58df54eb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML use case elements \u2014 <>\n\n\n \n \n\n\n \n
Use Case
Order Pizza
\u00abincludes\u00bbUse Case
Select Topping
\n\n* Goal: Reduce complexity by identifying commonalities in different use cases\n - Incorporates one use case (the included use case) within another (the including use case)\n - Ensures that the included use case is always part of the main functionality of the including use case\n - Enhances modularity and reusability by breaking down complex use cases into simpler, reusable components", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f695016-2c03-4d27-9dac-2a86ab41123d": {"__data__": {"id_": "5f695016-2c03-4d27-9dac-2a86ab41123d", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "68c92e9e-2494-4d0d-9384-8fe4c432d4a7", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "6d4f6218bdb8b93025be2d6a17311d7bd8e43d6e68671173aa882b72473066d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML use case elements \u2014 <>\n\n\n \n \n\n\n \n
\n \n\n\n \n \n \n
View Map
\n\n
\u00abextends\u00bb\n \n\n\n \n \n \n
Not connected to the internet
\n\n
\n\n* Goal: Reduce complexity by extending use cases with optional and conditional behavior that occurs within a use case \n* Allows for the inclusion of additional functionality, often triggered by **exceptional** or **rare scenarios** \n* Enhances flexibility and adaptability in system behavior without cluttering the primary use case with exceptional paths", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 677, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4a25c285-c1ee-4bd1-a708-111be55fb824": {"__data__": {"id_": "4a25c285-c1ee-4bd1-a708-111be55fb824", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c7f0756b-4cdb-4f2f-a4b7-b4abf7281db1", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "c25409fd5056bf5c427d409e0098fa8e0f9257a0595bca1cdd09b7b0c576b853", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** UML Use Case Model\n\n**CourseEnrollment**\n\n- **Student** (actor)\n\n- Use cases inside CourseEnrollment system boundary:\n - **Enroll in course**\n - <> Course is full\n - <> Course not available\n - <> Search for course\n - **Search for course**\n - <> Enter search filter\n\n**Relationships:**\n\n- Student \u2192 Enroll in course (direct association)\n- Student \u2192 Search for course (direct association)\n- Enroll in course <> Search for course (dashed arrow with <>)\n- Enroll in course <> Course is full (dashed arrow with <>)\n- Enroll in course <> Course not available (dashed arrow with <>)\n- Search for course <> Enter search filter (dashed arrow with <>)\n\n----\n\nUniversity of Pittsburgh logo in top right corner.\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 939, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "392d409c-7e05-46cd-89c4-cdc868cb3672": {"__data__": {"id_": "392d409c-7e05-46cd-89c4-cdc868cb3672", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d71f7ef8-7f3f-4d3b-a80c-2b6fc5142f38", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "50cbe7eac9529988f1d61a09d3529bf424c915a61870d9df95c54c0d79cd227b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] UML Use Case Model\n\nSearch for course <> Enter search filter\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
Use case nameSearch for course
Participating actorsStudent
Actor-step
Flow of events\n 1. The student selects to search for a course.
\n 2. The system shows a list of courses. System-step
\n 3. The student enters a filter to search for a course.
\n The use case 'Enter search filter' is invoked.
\n 4. The system displays a list of courses that match the student\u2019s filter.\n
Entry conditionThe student is logged in.
Exit conditionA list of courses that match the search filter is produced.
Quality requirementsIt should take the student at most three clicks to search for a course (NFR5)
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1142, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ef2d2129-d0d0-427b-8b34-21701e4fbcee": {"__data__": {"id_": "ef2d2129-d0d0-427b-8b34-21701e4fbcee", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2aee9b13-97e7-4c9e-b861-db680b45a462", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f8a935dfbd56acec4a99e7f418f0646f07ad776b4c1ac9f9c49e6d77f0491ae8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I09 \u2014 Use case model \u23f3 10 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nBased on your functional requirements, model a use case diagram\n\n----\n\n**continued L10!**\n\n----\n\nUse a modeling tool, e.g., \n**[Commercial]** OmniGraffle, Lucidchart, Visual Paradigm, gleek.io \n**[Free/open-source]** draw.io, Gliffy, StarUML, PlantUML", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ebf1440b-ff15-4178-b2ba-5665c029ecc6": {"__data__": {"id_": "ebf1440b-ff15-4178-b2ba-5665c029ecc6", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "499b5452-7778-4177-937f-e34ad66ac19c", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "08365159e961f3ee3f98e64bd0d2a9c8523313439f01617b45f1d4044ea75eea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L09 Scenarios & Use Cases\n\nCS 1530 Software Engineering \nNadine von Frankenberg \n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu \n\nFall 2025", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 177, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c87d2585-cb98-4028-9a0d-d8fe9bb6f029": {"__data__": {"id_": "c87d2585-cb98-4028-9a0d-d8fe9bb6f029", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f890d30b-4495-4093-b798-8e8648293dd4", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "a030c26c72018275b75cb9257cd666e1718affcb9c9742f1bd0a3f670604081e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 07\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c23dafb1-27d9-479c-8aa6-994cc3287e32": {"__data__": {"id_": "c23dafb1-27d9-479c-8aa6-994cc3287e32", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "86610747-b21d-4b54-9e63-bcb1620938d2", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "8b79c4b2451c6b60abd1c67ec24b2160c1a3273b76f5ea7d39227e2a665a84a5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that \\( C = \\{ w \\mid w \\text{ has an equal number of 0s and 1s} \\} \\) is not regular.\n\n* Assume that \\( C \\) is regular \n* Since \\( C \\) is regular, the Pumping lemma says that for any string \\( s \\in C \\) of length at least \\( p \\), \\( s \\) can be divided into \n \\( s = xyz \\) satisfying the following conditions: \n 1. \\( xy^i z \\in C \\) for any \\( i \\geq 0 \\) \n 2. \\( |y| > 0 \\) \n 3. \\( |xy| \\leq p \\) \n* Let \\( s = (01)^p \\) \n - \\( s \\in C \\) \u2014 good \n - \\( |s| = 2p \\geq p \\) \u2014 good", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 519, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cdd7fb14-0087-4b1b-b69b-e9f2c1521a80": {"__data__": {"id_": "cdd7fb14-0087-4b1b-b69b-e9f2c1521a80", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "19271a26-4e3f-4d73-8254-4ccd2404a2c5", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "162b73c9b9b78d6e5841cf8f8793ad16a5c300dfc4d6c5b323b0a9bd41abe1a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that \\( C = \\{ w \\mid w \\text{ has an equal number of 0s and 1s} \\} \\) is not regular.\n\n* \\( s = (01)^p \\)\n* Let \\( x = \\varepsilon \\), \\( y = 01 \\), and \\( z = (01)^{p-1} \\) and check all three conditions:\n 1. \\( \\varepsilon (01)^i (01)^{p-1} \\in C \\) for any \\( i \\geq 0 \\) \n - Every time you insert a \\( y \\), you add equal number of 0 and 1\n 2. \\( |01| = 2 > 0 \\)\n 3. \\( |\\varepsilon 01| = 2 \\leq p \\)\n\n* All three conditions can be true (no contradiction)\n* **Important**: No contradiction means nothing \n - You also cannot conclude that \\( C \\) is regular\n* But if we pick \\( s = 0^p 1^p \\), we will get a contradiction \n - Same kind of proof as in previous example but focus on the number of 0s and 1s (no pattern)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 752, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6bc45aae-cf30-4a63-8d64-ff0071847e36": {"__data__": {"id_": "6bc45aae-cf30-4a63-8d64-ff0071847e36", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e863e51f-03de-4693-be1a-e1427d95dbae", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "6654a1279bdfcd12a5620948d15ed3511a95ae3b0c4a6b74e086a71b2c260095", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Show that \\( C = \\{ w \\mid w \\text{ has an equal number of 0s and 1s} \\} \\) is not regular\n\nAssume that \\( C \\) is regular. Since \\( C \\) is regular, the Pumping lemma says that for any string \\( s \\in C \\) of length at least \\( p \\), \\( s \\) can be divided into \\( s = xyz \\) satisfying the following conditions:\n\n1. \\( xy^i z \\in C \\) for any \\( i \\geq 0 \\) \n2. \\( |y| > 0 \\) \n3. \\( |xy| \\leq p \\) \n\nLet \\( s = 0^p 1^p \\). Since \\( s \\) starts with \\( p \\) 0s, to satisfy the third condition, \\( x \\) and \\( y \\) are strings that contain nothing but 0s. In other words, \\( x = 0^j \\) for any \\( j \\geq 0 \\), and \\( y = 0^k \\) for any \\( k > 0 \\). Note that \\( k \\) must be greater than 0 because \\( |y| = |0^k| = k \\), and the condition 2 says that \\( |y| > 0 \\). Since \\( x = 0^j \\) and \\( y = 0^k \\), \\( z = 0^{p-(j+k)} 1^p \\). Let \\( i = 2 \\). We have\n\n$$\n\\begin{aligned}\nxy^i z &= xy^2 z \\\\\n &= x y y z \\\\\n &= 0^j 0^k 0^k 0^{p-(j+k)} 1^p \\\\\n &= 0^{p+k} 1^p\n\\end{aligned}\n$$\n\nFor the string \\( 0^{p+k} 1^p \\) to be in \\( C \\), the number of 0s must be equal to the number of 1s. In other words, \\( p + k \\) must be equal to \\( p \\). This requires \\( k \\) to be 0. But since \\( k \\) must be greater than 0, \\( xy^2 z \\notin C \\) \u2014 contradiction. Therefore, \\( C \\) is not regular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1308, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fb1ec487-0fdd-4a4c-a2e7-9e01d8c8b1ef": {"__data__": {"id_": "fb1ec487-0fdd-4a4c-a2e7-9e01d8c8b1ef", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e327193d-0c0d-47cb-886f-0aa5b2de44ba", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "05651f98c77b67e5edf73277fa3b0212340698cad4974d29a4d5445864a5d726", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that $$D = \\{ w \\mid w \\text{ has more number of 0s than number of 1s} \\}$$ is not regular.\n\n* As usual, assume that \\(D\\) is regular and followed by the statement from the Pumping lemma\n* If you pick \\( s = 0^{2p}1^p \\), you will not get a contradiction\n - \\( x = 0^j \\) for any \\( j \\geq 0 \\)\n - \\( y = 0^k \\) for any \\( k > 0 \\)\n - \\( z = 0^{2p-(j+k)}1^p \\)\n* For \\( i \\geq 2 \\) in \\( xy^iz \\), you add more 0s which makes the result string still have more 0s than 1s\n* For \\( i = 0 \\)\n - \\( xy^0z = xz = 0^j 0^{2p-(j+k)} 1^p = 0^{2p-k} 1^p \\)\n - If \\( k \\) is 1, \\( 2p - 1 > p \\) (the number of 0s is greater than the number of 1s) \u2014 no contradiction\n - If \\( k \\) is \\( p - 1 \\), \\( 2p - (p - 1) = p + 1 > p \\) \u2014 no contradiction\n - Note that \\( 0 < k \\leq p \\) from (2) and (3)\n - If there is a \\( k \\) that works, no contradiction", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 864, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "afdd485c-5e15-42e2-a06b-c633f5e3e212": {"__data__": {"id_": "afdd485c-5e15-42e2-a06b-c633f5e3e212", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "86cb79a1-8dea-4096-87c4-5fdee9068470", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "f01749674286db15ed580973bcf825c44a2b796063ef9390e81f137d080a7314", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let\u2019s try $$s = 1^p 0^{2p}$$. Note that $$s \\in D$$ and $$|s| \\ge p$$.\n - Again, to satisfy (2) and (3), we have\n - $$x = 1^j$$ for any $$j \\ge 0$$\n - $$y = 1^k$$ for any $$k > 0$$\n - $$z = 1^{p-(j+k)} 0^{2p}$$\n - We have \n $$\n xy^i z = 1^j (1^k)^i 1^{p-(j+k)} 0^{2p} = 1^{p + ki - k} 0^{2p}\n $$\n - If we increase $$i$$, we increase the number of 1s\n - To get a contradiction, we need the number of 1s to be greater than or equal to the number of 0s\n - In other words, \n $$\n p + ki - k \\ge 2p\n $$\n $$\n ki - k \\ge p\n $$\n $$\n k(i - 1) \\ge p\n $$\n $$\n i - 1 \\ge \\frac{p}{k}\n $$\n $$\n i \\ge \\left(\\frac{p}{k}\\right) + 1\n $$\n - $$xy^{(p/k)+1} z = 1^{2p} 0^{2p} \\notin D$$ \u2014 **contradiction**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c30a26d7-d5ba-42e0-930b-14289cb7c8d4": {"__data__": {"id_": "c30a26d7-d5ba-42e0-930b-14289cb7c8d4", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a6ecf36b-beda-4120-9c2d-f510fd43c48c", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "79ed0742ea5c2c9afefc4ce24359cc15051053c94e20910d5838d5db765798e8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Show that \n$$D = \\{ w \\mid w \\text{ has more number of 0s than number of 1s} \\}$$ \nis not regular\n\nAssume that \\(D\\) is regular. Since \\(D\\) is regular, the Pumping lemma says that for any string \\(s \\in D\\) of length at least \\(p\\), \\(s\\) can be divided into \\(s = xyz\\) satisfying the following conditions:\n\n1. \\(xy^iz \\in D\\) for any \\(i \\geq 0\\) \n2. \\(|y| > 0\\) \n3. \\(|xy| \\leq p\\) \n\nLet \\(s = 1^p 0^{p+1}\\). Since \\(s\\) starts with \\(p\\) 1s, to satisfy the third condition, \\(x\\) and \\(y\\) are strings that contain nothing but 1s. In other words, \\(x = 1^j\\) for any \\(j \\geq 0\\), and \\(y = 1^k\\) for any \\(k > 0\\). Note that \\(k\\) must be greater than 0 because \\(|y| = |1^k| = k\\), and condition 2 says that \\(|y| > 0\\). Since \\(x = 1^j\\) and \\(y = 1^k\\), \n\\(z = 1^{p-(j+k)} 0^{p+1}\\). Let \\(i = 2\\). We have\n\n\\[\nxy^iz = xy^2z = xyyz = 1^j 1^k 1^k 1^{p-(j+k)} 0^{p+1} = 1^{p+k} 0^{p+1}\n\\]\n\nFor the string \\(1^{p+k} 0^{p+1}\\) to be in \\(D\\), the number of 0s must be greater than the number of 1s. In other words, \\(p + 1\\) must be greater than \\(p + k\\). This requires \\(k\\) to be 0. But since \\(k\\) must be greater than 0, \n\\(xy^2z \\notin D\\) \u2014 contradiction. Therefore, \\(D\\) is not regular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1210, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e289ad4-07f4-4973-8c5d-72048f23d697": {"__data__": {"id_": "8e289ad4-07f4-4973-8c5d-72048f23d697", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "44fd8e5e-b2be-48fd-a409-dac7e8ca8b17", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "b8ab388a86aeb1a3ad85b5801b0c0f94202834fd260ef50ff2d3892ef111c7bc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Rule of Thumb\n\n* If a condition of the language is about inequality ($<, \\leq, >, \\geq$), pick a string that is right at the border line to break the condition \n * $$D = \\{ w \\mid w \\text{ has more number of 0s than number of 1s} \\}$$ \n * $1^p 0^{p+1}$ needs $xy^2z$ to add at least one 1 \n * $0^p 1^{p-1}$ needs $xy^0z$ to take out at least one 0 \n * No need to find a large value of $i$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 399, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d27cb8df-6669-46ca-b314-e4166d755777": {"__data__": {"id_": "d27cb8df-6669-46ca-b314-e4166d755777", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f2c10cae-5d9a-4acb-a45b-2c5dba2400af", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "318421686bee4dac15006434f1ba311760e840ee0eeb2b44cf320daf527e7e40", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\nShow that $$E = \\{0^{(i^2)} \\mid i \\geq 0\\}$$ is not regular.\n\n* Let\u2019s try to understand this language first\n - If \\(i = 0\\), \\(0^{(0^2)} = 0^0 = \\varepsilon\\)\n - If \\(i = 1\\), \\(0^{(1^2)} = 0^1 = 0\\)\n - If \\(i = 2\\), \\(0^{(2^2)} = 0^4 = 0000\\)\n - If \\(i = 3\\), \\(0^{(3^2)} = 0^9 = 000000000\\), and so on\n\n* Thus, we have\n\n $$\n E = \\{ w \\mid w \\text{ contains nothing but 0s and} \\\\\n \\quad \\quad \\text{the number of 0s is } i^2 \\text{ for some } i \\geq 0 \\}\n $$\n\n* **Important:** You cannot pick \\(s = 0^p\\)\n - There is nothing to guarantee that \\(p = i^2\\) for some \\(i \\geq 0\\)\n - We need to pick \\(s = 0^{(p^2)}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 638, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf729cc3-3c4c-4b19-b546-fc0836c708c7": {"__data__": {"id_": "bf729cc3-3c4c-4b19-b546-fc0836c708c7", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b7818993-ede8-4367-9f6a-5fdf5943bece", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "3569c9829b94c81c7233a53bddd070cb37473565b1901498321c1b4d7e219b46", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that $$E = \\{0^{i^2} \\mid i \\geq 0\\}$$ is not regular.\n\n* As usual, assume that $$E$$ is regular and followed by the statement from the Pumping lemma\n* Let $$s = 0^{p^2}$$\n - Note that $$s \\in E$$ and\n - $$|s| = p^2 \\geq p.$$\n* From the second and third conditions ($|y| > 0$ and $|xy| \\leq p$), we have \n $$0 < |y| \\leq p$$\n* Note that since $$s = xyz$$ and $$|s| = p^2, \\quad |xyz| = p^2.$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 415, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ab903cf6-123b-4ee6-a739-5bf2cbc95604": {"__data__": {"id_": "ab903cf6-123b-4ee6-a739-5bf2cbc95604", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "578155f4-0e4a-4271-b8ad-f63ebd9a5668", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "6939a80640fdc7cefd7efea703dea4d6d92c73089d57e9ac47a2e154e14e1a9f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let\u2019s do some analysis about \\( xy^2 z \\)\n * \\( p^2 = |xyz| \\)\n * \\( |xyz| < |xy^2 z| = |xyyz| \\) because \\( |y| > 0 \\)\n * \\( |xyyz| = |xyz| + |y| = p^2 + |y| \\)\n * \\( p^2 + |y| \\leq p^2 + p \\) because \\( |y| \\leq p \\)\n * \\( p^2 + p < p^2 + 2p + 1 = (p + 1)^2 \\)\n\n* Note that the string \\( xy^2 z \\) can in \\( E \\) if \\( |xy^2 z| = q^2 \\) for some \\( q \\)\n\n* Above analysis shows that \\( p^2 < |xy^2 z| < (p + 1)^2 \\)\n\n* But there is no \\( q \\) such that \\( p^2 < q^2 < (p + 1)^2 \\)\n\n* Thus, \\( xy^2 z \\notin E \\) \u2014 contradiction\n\n* \\( E \\) is not regular", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 574, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6e66fdc-cbdd-4a51-8189-04d967b93dc1": {"__data__": {"id_": "a6e66fdc-cbdd-4a51-8189-04d967b93dc1", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "95109bdb-511c-449b-8ede-afb99ef70043", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "0bf1ec91fd74a24763be82adff7a5bae99b5a01c7f62e26a3428c044d49417a2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine 03\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 69, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "daddf21a-e626-4978-92a2-56a21ef3573f": {"__data__": {"id_": "daddf21a-e626-4978-92a2-56a21ef3573f", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f6802080-3da1-4a2f-83d0-b26707f55200", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "08251d995ef9b2918dd9239b5bc642356285b81e4fe35bc4fb6e7aa5265d4324", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Combining Turing Machines\n\n* A Turing machine represents an algorithm \n* Generally an algorithm can be described as a number of smaller algorithms working in combination \n* Similarly, we can combine several Turing machines into a larger one \n* Example, two Turing machines \\( T_1 \\) and \\( T_2 \\) sharing the same tape: \n - When \\( T_1 \\) finishes (either in the accept or reject state), \\( T_2 \\) takes over \n - This new machine is represented by \\( T_1 T_2 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 471, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "43ddd6e6-e136-4646-9ab2-858a6ecd7a0a": {"__data__": {"id_": "43ddd6e6-e136-4646-9ab2-858a6ecd7a0a", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5caa264a-f7dc-4afa-8a67-5cb72b1655eb", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "4a9835112f5336cdb93a8a84f96dc8cbb96d7f4c65d2650bc89b6966631e51ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Combining Turing Machines\n\n* Suppose we have two Turing machines: \n $$T_1 = (Q_1, \\Sigma, \\Gamma, \\delta_1, q^{1}_{start}, q^{1}_{accept}, q^{1}_{reject})$$ and \n $$T_2 = (Q_2, \\Sigma, \\Gamma, \\delta_2, q^{2}_{start}, q^{2}_{accept}, q^{2}_{reject})$$\n\n* Let \n $$T = (Q, \\Sigma, \\Gamma, \\delta, q_{start}, q_{accept}, q_{reject})$$ \n be \\(T_1 T_2\\) which can be constructed as follows: \n - \\(Q = Q_1 \\cup Q_2\\) (states of \\(T_2\\) are relabeled if necessary) \n - Initial state of \\(T\\) is the initial state of \\(T_1\\) \\((q_{start} = q^{1}_{start})\\) \n - \\(\\delta = \\delta_1 \\cup \\delta_2\\) except those of \\(T_1\\) that go to \\(q^{1}_{accept}\\) and \\(q^{1}_{reject}\\)\n\n* A transition \n \\[\n q \\xrightarrow{x \\to y, D} q^{1}_{a}\n \\]\n in \\(T_1\\) becomes \n \\[\n q \\xrightarrow{x \\to y, D} q^{2}_{s}\n \\]\n where \\(q^{1}_{a}\\) is the accept state of \\(T_1\\) and \\(q^{2}_{s}\\) is the start state of \\(T_2\\).\n\n - If \\(T_1\\) enters its accept state, \\(T_2\\) takes over. The moves that cause \\(T\\) to accept are precisely those that cause \\(T_2\\) to accept. \n - However, if \\(T_1\\) enters the reject state and halts, so does \\(T\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1147, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ed0c24d6-e82f-47dc-b4c7-c8033da8546b": {"__data__": {"id_": "ed0c24d6-e82f-47dc-b4c7-c8033da8546b", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "72e0c9aa-b71c-40be-9f5a-da9e7b8be455", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "d995989a63536fd73a1cece82bb4472972456d5dd5464883d53354ebaa0a936d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Suppose we want to create a machine that recognize a palindrome (e.g., racecar)\n* Suppose we have the following Turing machines:\n - *Copy*: From \\(\\sqcup x\\) to \\(\\sqcup x \\sqcup x\\)\n - *NB*: Moves tape head to the next blank symbol to the right\n - *PB*: Moves tape head to the next blank symbol to the left\n - *R*: Reverses the content of the tape from \\(\\sqcup x\\) to \\(\\sqcup x^r\\)\n - \\(x^r\\) is the reverse of a string \\(x\\)\n - *Equal*: Compare two strings separated by a blank symbol\n* For simplicity, we put the blank symbol on the first square of the tape to indicate the left-end of the tape.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 622, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "03a75a77-cacc-4427-b53e-7ba8ac45caa8": {"__data__": {"id_": "03a75a77-cacc-4427-b53e-7ba8ac45caa8", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ca41b5f2-bb87-4ee6-bcb1-fa8a1e39cbc9", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "a331690773a9560eaeed8ee6e0649265196ac6e86bde06360c77002a699a052b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let the content of a tape be $\\sqcup x$ where $x$ is a string\n* The following machine will accept if $x$ is a palindrome: \n $$Copy \\to NB \\to R \\to PB \\to Equal$$\n* Step by Step:\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MachineTape
Start\u2193 $\\sqcup x$
Copy\u2193 $\\sqcup x \\sqcup x$
NB$\\sqcup x \u2193 \\sqcup x$
R$\\sqcup x \u2193 \\sqcup x^r$
PB\u2193 $\\sqcup x \\sqcup x^r$
Equal$\\sqcup x \\sqcup x^r \u2193 \\sqcup$
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 658, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f53f3554-6084-45bf-a812-98586246d2c4": {"__data__": {"id_": "f53f3554-6084-45bf-a812-98586246d2c4", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ed12e29d-0130-4d50-995c-6ae2d5a867ab", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "73518efc8605f7ebfdfe2a2d6f13a6eec899452568ed8e65b501d8df7d228c2a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Multitape Turing Machines\n\n* A Turing machine can have multiple tape and tape heads:\n\n\n \n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n \n\n \n\n\n\n\n \n
01010\u25af\u22ef
Maaa\u25af\u22ef
ba\u25af\u22ef
\n\n* All tape heads can read then write and move in a single Turing machine step", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 521, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b01fc261-a5d3-4163-a612-2f36538be0d5": {"__data__": {"id_": "b01fc261-a5d3-4163-a612-2f36538be0d5", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8a49f89a-1c56-477e-9548-00a47562f51f", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "22df1b49eb4d407f6f4fa406cf4e2858a1643400affce25cff20477b87f2a8f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Multitape Turing Machines\n\n* Transition function need to control/make decision based on symbols read from all tapes \n* Example: A transition function of a three-tape TM:\n\n$$\n\\delta(q, x, y, z) \\to (r, a, b, c, R, L, R)\n$$\n\n - Current state is \\( q \\), the first tape reads \\( x \\), the second tape reads \\( y \\), and the third tape reads \\( z \\) \n - Change the current state to \\( r \\) \n - Write \\( a \\) on to the first tape, write \\( b \\) onto the second tape, and write \\( c \\) onto the third tape \n - Move the first tape head to the right direction, move the second tape head to the left direction, and move the third tape head to the right direction \n\n* Multitape TMs are suitable for algorithms in which several kinds of data are involved", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 755, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9450bfec-28b1-49e8-b246-4a8942f0878f": {"__data__": {"id_": "9450bfec-28b1-49e8-b246-4a8942f0878f", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e0e49a7b-27c9-4e33-b0dd-9bd77aab93b8", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "c91e01bb9dc3a2988ace3c801e8f137379f6b573fecfdeb6433de9e26736ad59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Multitape to One-Tape\n\nA multitape Turing machine from previous slide, can be convert into one-tape Turing machine as shown below:\n\n```\nS\n# 0 \ud835\udfed 0 \ud835\udfed 0 # a a \u2022 a # \u2022 b a #\n```\n\n* Use `#` symbol to separate content between tapes \n* Use `\u2022` to indicate the current position of each tape head \n* One move of multitape machine will be equal to several moves of one-tape machine \n* For example, \n $$\n \\delta(q, 1, a, b) \\to (r, 0, b, a, L, L, R)\n $$ \n will be \n 1. Move to the next `\u2022` on the right, write `0`, move to the left square, write `\u2022` over the symbol, and move to the right square \n 2. Move to the next `\u2022` on the right, write `b`, move to the left square, write `\u2022` over the symbol, and move to the right square \n 3. Move to the next `\u2022` on the right, write `b`, move to the right square, write `\u2022` over the symbol, and move to the left-end", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 863, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc242849-0c98-4b80-9e98-eecb0a817143": {"__data__": {"id_": "dc242849-0c98-4b80-9e98-eecb0a817143", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "58aeed7e-b50c-453d-97e6-fe4567615909", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "705f2620386d568b01ee082c54de67ee210654f845534bffbad4da95c9f432ff", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Multitape to One-Tape\n\n* Recall that a tape will be filled with blank after the last symbol of the string on the tape\n\n```\n M\n 0 1 0 1 0 \u2423\n a a a \u2423\n b a \u2423\n\n S\n# 0 1 0 1 0 # a a a # b a # \u2423\n```\n\n* From the above multi-tape TM, if the second tape head needs to move to the right direction, it should be on top of a blank symbol\n - But on a single-tape TM, it will be on top of the `#` symbol\n - Single-tape TM must **insert** the blank symbol with a dot at the `#`\n* Every multitape TM has an equivalent single-tape TM (slower)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "04292cb1-81e0-4884-9b0d-284c45e38eda": {"__data__": {"id_": "04292cb1-81e0-4884-9b0d-284c45e38eda", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ee3ecdfe-e123-4a78-a143-4b090300b9d7", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "00de9bc1a7ca33f1e244201928d2e4ca7d924d42485628217772e60bf5a9554d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Nondeterministic Turing Machine\n\n* Similar to Nondeterministic Finite Automata (NFA) \n - Processing one input symbol results in one or more machine. \n - $$\\delta : Q \\times \\Gamma \\to \\mathcal{P}(Q \\times \\Gamma \\times \\{L, R\\})$$ \n - Computation is a tree similar to NFA\n\n* For a nondeterministic Turing machine (NTM): \n - If a branch is in the accept state, the machine accepts the input string \n - If all branches are in the reject state, the machine rejects the input string \n - If no branch is in the accept state and at least one branch enter an infinite loop, the machine loops indefinitely on the input string\n\n> **Theorem 3.16** \n> Every nondeterministic Turing machine has an equivalent deterministic Turing machine.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 742, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e853d4e3-0788-4418-9bb0-c888dff27d87": {"__data__": {"id_": "e853d4e3-0788-4418-9bb0-c888dff27d87", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c5611fde-0b06-4f39-8ee5-1462926e6a7e", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "d8e7ed760a526f6221db037c2b7c13c2f3e11f9a78e0861af1b37089f070c975", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof Idea\n\n> **Theorem 3.16 Rewording** \n> For every nondeterministic TM \n> $$ T = (Q, \\Sigma, \\Gamma, \\delta, q_{start}, q_{accept}, q_{reject}) $$ \n> there is an ordinary (deterministic) TM \n> $$ T' = (Q', \\Sigma, \\Gamma', \\delta', q'_{start}, q'_{accept}, q'_{reject}) $$ \n> with \n> $$ L(T') = L(T). $$\n\n* Recall that \n $$ \\delta : Q \\times \\Gamma \\to \\mathcal{P}(Q \\times \\Gamma \\times \\{L, R\\}) $$ \n - Processing a tape alphabet at a state may result in multiple machines \n - The upper bound of the number of machines is \n $$ |Q| \\times |\\Gamma| \\times |\\{L, R\\}| $$ \n - For simplicity, assume that for every combination of nonhalting state and tape symbol, there are exactly two moves (split to two machines)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 734, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64fcb065-be75-47df-8f2a-6caff36d6968": {"__data__": {"id_": "64fcb065-be75-47df-8f2a-6caff36d6968", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "83a5d65a-7b0e-4811-8350-d54c95af23c9", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "6931e97e1b03267624be1c17bc1a9ca01ae6e7f8c4d38f4c5317fe2550180b7f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof Idea\n\n* Computational Tree of a TM on an input\n\n```mermaid\ngraph TD\n A(( )) -->|0| B(( ))\n A -->|1| C(( ))\n B -->|0| D(( ))\n B -->|1| E(( ))\n C -->|0| F(( ))\n C -->|1| G(( ))\n D -->|0| H(( ))\n D -->|1| I(( ))\n E -->|0| J(( ))\n E -->|1| K(( ))\n F -->|0| L(( ))\n F -->|1| M(( ))\n G -->|0| N(( ))\n G -->|1| O(( ))\n H -->|0| P(( ))\n H -->|1| Q(( ))\n I -->|0| R(( ))\n I -->|1| S(( ))\n J -->|0| T(( ))\n J -->|1| U(( ))\n K -->|0| V(( ))\n K -->|1| W(( ))\n L -->|0| X(( ))\n L -->|1| Y(( ))\n M -->|0| Z(( ))\n M -->|1| AA(( ))\n N -->|0| AB(( ))\n N -->|1| AC(( ))\n O -->|0| AD(( ))\n O -->|1| AE(( ))\n P -->|0| AF(( ))\n P -->|1| AG(( ))\n Q -->|0| AH(( ))\n Q -->|1| AI(( ))\n R -->|0| AJ(( ))\n R -->|1| AK(( ))\n S -->|0| AL(( ))\n S -->|1| AM(( ))\n T -->|0| AN(( ))\n T -->|1| AO(( ))\n U -->|0| AP(( ))\n U -->|1| AQ(( ))\n V -->|0| AR(( ))\n V -->|1| AS(( ))\n W -->|0| AT(( ))\n W -->|1| AU(( ))\n X -->|0| AV(( ))\n X -->|1| AW(( ))\n Y -->|0| AX(( ))\n Y -->|1| AY(( ))\n Z -->|0| AZ(( ))\n Z -->|1| BA(( ))\n AA -->|0| BB(( ))\n AA -->|1| BC(( ))\n AB -->|0| BD(( ))\n AB -->|1| BE(( ))\n AC -->|0| BF(( ))\n AC -->|1| BG(( ))\n AD -->|0| BH(( ))\n AD -->|1| BI(( ))\n AE -->|0| BJ(( ))\n AE -->|1| BK(( ))\n click B \"javascript:void(0)\" \"blue branch start\"\n click E \"javascript:void(0)\" \"blue branch\"\n click K \"javascript:void(0)\" \"blue branch\"\n click R \"javascript:void(0)\" \"blue branch\"\n```\n\n* The branch in blue behaves like a deterministic TM \n* The move follows the path in blue can be represented by `0110` \n - Use `0110` as a guideline to simulate a branch", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1740, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "34e62bc5-13a7-4f3c-9429-53b3220dc0d7": {"__data__": {"id_": "34e62bc5-13a7-4f3c-9429-53b3220dc0d7", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e9a4d9ae-b033-4d29-a20b-5b85b896a8fe", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "8a78233d4e0b867cfac9a850575c956d09ba7ab89c9e92a75c3c4d4bfcdbdc9c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof Idea\n\n* Suppose a deterministic TM picks a branch and simulate it\n - If that branch ends in the accept state, the NTM accepts the input string\n - If that branch ends in the reject state, no conclusion\n * If another branch is in the accept state, NTM accepts the input string\n * If all other branches are in the reject state, NTM rejects the input string\n * If no branch is in the accept state and at least one branch enter infinite loop, NTM loops indefinitely on the input string\n - If that branch enter infinite loop, the simulation will not end\n * We do not always know that a TM has enter an infinite loop\n * Even if we know that it enters an infinite loop, we still cannot conclude whether NTM accepts or rejects the input string\n\n* Machine \\( T' \\) that simulate an NTM will have to test all possible moves (level order, breadth first search)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 875, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a52e31d7-c3b9-4095-9012-be76909d9d0a": {"__data__": {"id_": "a52e31d7-c3b9-4095-9012-be76909d9d0a", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "09997602-71df-4827-b08b-ddcceb2fa6b7", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "47540aaa71240ae9920cbbbc7ba0844719dd28dd141abde3ce35a0abf25c2d1a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof Idea\n\n* Machine \\( T' \\) consists of four tapes \n - Tape 1 will be the input string and its contents never change \n - Tape 2 contain the binary string that represents the sequence of moves we are currently testing. (e.g., \\( 0110_{\\sqcup} \\)) \n - Tape 3 is the working tape of a copy of NTM \n - Tape 4 keeps track of all possible reject sequences \n* If a sequence of moves result in the accept state, \\( T' \\) accepts the input string \n* If all possible sequence of the same length end in the reject state, \\( T' \\) rejects the input string \n* If NTM loops indefinitely on the input string, the simulation will also loop indefinitely \n* Since \\( T' \\) is a multitape Turing machine, there is an equivalent single-tape Turing machine", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 753, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "32908c3d-5262-40c6-9a1d-74a1e9940f33": {"__data__": {"id_": "32908c3d-5262-40c6-9a1d-74a1e9940f33", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8c007612-ceca-4859-821e-e8f949699739", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "8446b7bb3fa07cf5ef6cc6c9245095cc24aeeacb92e8e95bcfde993e4896c1b6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Universal Turing Machine\n\n* A universal TM is a TM that can run another TM on an input string\n* Imagine a multi-tape TM:\n - Tape 1 contains the formal definition of a TM \\( M \\), followed by a # symbol, and an input string \\( w \\)\n - Tape 2 will be a working tape for TM \\( M \\)\n - Tape 3 will be used to keep track of the current state of TM \\( M \\)\n* Initially:\n - Copy input string \\( w \\) to tape 2\n - Put the start state of TM \\( M \\) onto tape 3\n* To run a step, simply search for \\(\\delta(q, a)\\) in the formal definition of TM \\( M \\)\n - \\( q \\) is the current state of tape 3\n - \\( a \\) is the symbol under the second tape head \n and update tapes 2 and 3 until tape 3 contains \\( q_{accept} \\) or \\( q_{reject} \\)\n* A universal TM will loop indefinitely if the TM that it is running loops indefinitely", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 822, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fe300689-09d4-405c-8cd7-2537c8332550": {"__data__": {"id_": "fe300689-09d4-405c-8cd7-2537c8332550", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "41dd2289-fdb2-416e-9928-6616a6dd832c", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "016141bb2c7fd9f7cfa8f6d4629658ffb7d94120e0361a121cc94bb547a6c879", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Church-Turing Thesis\n\n* To say that the Turing machine is a general model of computation means that any algorithmic procedure that can be carried out at all, by a human computer or a team of humans or an electronic computer, can be carried out by a Turing machine.\n* Note that a Turing machine depends on low-level operations\n - A complex algorithm is simply a series of simple instruction (e.g., assembly) that involve\n * sophisticated logic (state machine) or\n * complex bookkeeping (tape/memory) strategies\n* **An algorithm is a procedure that can be carried out by a Turing machine.**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 602, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "426b88ed-5aca-470c-ac1c-1e2e826647ef": {"__data__": {"id_": "426b88ed-5aca-470c-ac1c-1e2e826647ef", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "52419c57-ae65-4ff0-a76f-38809201ac13", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "c38fa752f0d11a8ddce12738581bc72806871ac1e795545e297cace794a73524", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L05 Model-based Engineering\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 174, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f6ce613-fdc4-4928-bf65-5eec78e35b5d": {"__data__": {"id_": "9f6ce613-fdc4-4928-bf65-5eec78e35b5d", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3e847f41-4220-4f5d-a9b8-cb9175f29709", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "af7ccc2b463950852af7f566ed3b65c636fea79076d0a85f461b020ab8decbc3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - [http://scrum.org/])(http://scrum.org/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1384, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7fea9b02-7b80-487d-a6cd-8bd114f4a7d0": {"__data__": {"id_": "7fea9b02-7b80-487d-a6cd-8bd114f4a7d0", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6c6fc445-b4e2-4744-88d5-f8655ce5af18", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "33cb66f560e9a639548090ebaf9392efdba4362a14ad2bff32ff6db730a8debb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have a better understanding of the user vs enduser \n* You understand how to extract relevant information from a problem statement \n* You have an overview of requirements engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 208, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b719978-e2d4-4f26-9d8f-f015c453e809": {"__data__": {"id_": "6b719978-e2d4-4f26-9d8f-f015c453e809", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e3e67105-1b12-45ef-b2e1-cd6ddbb3cf1a", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "8854b1f4e1655a65c8c33eb7a8fd459f244d375a9531fad0148de629cf0bb07c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n\u27a1\ufe0f The importance of abstraction \n* Intro to model-based engineering \n* Intro to requirements engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 127, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0a0102b-0c21-44b9-bb38-f3a2ac82cc6c": {"__data__": {"id_": "c0a0102b-0c21-44b9-bb38-f3a2ac82cc6c", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f2a5d9cd-caf9-450f-8331-5df48fd3c94c", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "d4be91ea8991269ee0736ef1776ebd5e3ad2f0b5e71bc6ee340d2c523703eb2b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Designing software systems\n\n* Internal representation of external reality\n* Typically\n\nDesigner / Developer \n[thought bubble with a snowflake on a smartphone]\n\n\u2192 (smartphone with an ice skate and a red alert symbol) \u2192 \n\nCustomer \n[thought bubble with an ice cream cone on a smartphone]\n\n----\n\nUniversity of Pittsburgh \n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L03 Model-based & intro to Engineering \nCS 1530 - L05 Scrum abstraction", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 447, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49c0c3b3-02a8-48ba-b6a2-9fc4058a6482": {"__data__": {"id_": "49c0c3b3-02a8-48ba-b6a2-9fc4058a6482", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dbb85775-0ff3-42aa-958c-1ac3a78e034e", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "513961bd4649755f10f7fdb8b1184d1156dfe5a84bd5891a48c345e5bcfdf206", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Problems with system integrations\n\n* Communication issues\n* Wrong usage of available tools\n* Interface miscommunication\n* Antipatterns\n* Physical impossibility\n* Data inconsistencies\n* Dependency conflicts\n* Performance bottlenecks\n* Unforeseen compatibility issues\n* \u2026\n\n> **Holistic Approach:** \n> To solve problems, we need a holistic view of the entire system \n> * Creative thinking \n> * Cross-disciplinary", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 423, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b09e303c-2795-49e0-ab69-8e528cdb3264": {"__data__": {"id_": "b09e303c-2795-49e0-ab69-8e528cdb3264", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4daf4552-2b4d-43c9-ae2c-03ab77e60d9f", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "2dd0080a7a030a39b415eb4966b6621cd4fbd4f9d5e742b1f0e35f0f76c5a16a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Understanding the problem\n\n* Engage with the customer about the problem scope and the requirements\n* Identify specific components of the problem to ensure a comprehensive understanding\n* **Divide-&-conquer!**\n - Break down complex problems into manageable, smaller components/pieces\n - Formulate a structured approach to tackle each component/piece individually\n* **Problem statements** aid in recognizing distinct entities and elements\n - They enable the identification of unique objects for effective problem-solving\n\n> \"Unique objects\" are distinct entities or components that have specific roles or attributes within a system. They typically contribute to the overall functionality of the system.\n\n**Basic assumption of software projects: project outcome cannot be produced in a single monolithic activity**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 817, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1370dfd8-f624-4027-a9e9-35a6d2568faf": {"__data__": {"id_": "1370dfd8-f624-4027-a9e9-35a6d2568faf", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4ca8f838-44c1-45ae-ac33-4755f2714aac", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "484ed04a349d0d209e8fe05250b798b5f522c32eb425da6cb150dca0037f41e0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\n* A problem statement is our **communication basis**\n* It is a *concise description of the issue that the system aims to address*\n* Usually, problem statements are documents that contain:\n - **Current situation:** What are the existing circumstances, if available\n - **Specification of functionality:** What capabilities are required?\n - **Delivery:** Where and how will the system be deployed?\n - **Customer expectations:** What are the customer\u2019s expectations and deliverables?\n - **Milestones:** Are there concrete delivery dates and project phases?\n - **Acceptance criteria:** What will we use to evaluate the system?\n\n**Problem Statement** \nWe need a way so that people can get from one location to another using multiple means of transport, based on their available options and preferences.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 825, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b81c6e71-dec6-42eb-bf97-5723d0baf4e9": {"__data__": {"id_": "b81c6e71-dec6-42eb-bf97-5723d0baf4e9", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b4497ab9-2afd-4d8b-b3d5-9176986b0fdc", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "922ba8b86b4a3208a134fed2f489053692ef759d9de9337ea3062983699de142", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "41db2b71-aeca-47b4-9b84-9d96abd1dc56", "node_type": "1", "metadata": {}, "hash": "2f022ac24f7d5c92a20211691b551384732db38f66626d6b6ec76ffd82067094", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software systems are often very complex\n\n----\n\n*Privacy* \n- Author: Wassim Tani \n- ServiceType: Privacy aware data storage and processing in cloud \n- Time: 2009 \n- Aliases: PasS (a set of Protocols) \n\n*Value* \n- Author: Jingliang Chen et al. \n- Time: 2014 \n- ServiceType: Big data analysis \n- Aliases: VaaS (Jingliang Chen et al. 2014) \n\n*Education and Learning* \n- Author: Mohssen M. Alabbadi et al. \n- Time: 2011 \n- ServiceType: Education and Learning based on cloud \n- Aliases: ELaaS (Mohssen M. Alabbadi et al. 2011) \n\n*Videoconference* \n- Author: Pedro Rodriguez et al. \n- Time: 2009 \n- ServiceType: Videoconference \n- Aliases: VaaS (Pedro Rodriguez et al. 2009) \n\n----\n\n*Forensics* \n- Author: Anthony Smith et al. \n- Time: 2013 \n\n*Policing* \n- Author: Anthony Smith et al. \n- ServiceType: Cloud security policy \n- Time: 2013 \n\n*Automated Software Testing* \n- Author: George Candea \n- Time: 2010 \n- ServiceType: Automated software testing \n- Aliases: TaaS (Candea et al. 2010) \n\n*Everything* \n- Author: Robison et al. \n- Time: 2008 \n- Aliases: XaaS (Charith Perera et al. 2014) \n\n----\n\n*Virtual Routers* \n- Author: Marcelo R. Nascimento et al. \n- ServiceType: Virtual Routers based on Software Defined Networks \n- Time: 2011 \n\n*Telepresence* \n- Author: Cicic et al. \n- Time: 2014 \n- Aliases: TPaaS (Cicic et al. 2014) \n\n*Business* \n- Author: Rimal et al. \n- Time: 2009 \n\n*Database Management* \n- Author: Divyakant Agrawal et al. \n- ServiceType: Database management \n- Time: 2009 \n- Aliases: CaaS (Hong Cai et al. 2009) \n\n----\n\n*Media Network* \n- Author: Cicic et al. \n- Time: 2014 \n- Aliases: MNaaS (Cicic et al. 2014) \n\n*IP Network* \n- Author: Nascimento et al. \n- Time: 2011 \n\n*Consistency* \n- Author: Qin Liu et al. \n- Time: 2011 \n\n*Networking* \n- Author: Tao Feng et al. \n- Time: 2011 \n- ServiceType: Networking \n\n----\n\n*Cloud Monitoring* \n- Aliases: Monitoring as a service, MONaaS \n\n*Hybrid Network* \n- Author: Jin-ichi Mizusawa et al. \n- Time: 2011 \n- ServiceType: Hybrid network \n- Aliases: HaaS (Mizusawa et al. 2011) \n\n*IDE and Hosting* \n- ServiceType: IDE and code hosting \n- Time: 2011 \n- Author: Timo Aho et al. 2011 \n\n----\n\n*Threat* \n- Author: Tsai et al. \n- Time: 2012 \n\n*Hardware* \n- Author: Aymerich et al. \n- Time: 2008 \n\n*Cloud Services* \n- Author: Gillett et al. \n- Time: 2008 \n- ServiceType: Cloud Services \n\n*Content Delivery* \n- Author: Yichao Jin et al. \n- Time: 2014 \n- Aliases: GoDaaS (Yichao et al. 2014) \n\n----\n\n*General Services* \n- Author: Yichao et al. \n- Time: 2014 \n- Aliases: EaaS, aaS (readOnly) \n- Author: S. Robinson (Hewlett) (readOnly) \n- Description: string (readOnly) \n- ServiceType: string = anything (readOnly) \n- Time: 2008 (readOnly) \n\n*Disaster Tolerance* \n- Author: Shriram Rajagopalan et al. \n- Time: 2012 \n- ServiceType: Disaster Tolerance in cloud \n\n*Risk Assessment* \n- Author: Kaliski et al. \n- Time: 2010 \n- ServiceType: Risk assessment \n\n*Search* \n- Author: A. Singh et al.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 3043, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "41db2b71-aeca-47b4-9b84-9d96abd1dc56": {"__data__": {"id_": "41db2b71-aeca-47b4-9b84-9d96abd1dc56", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b4497ab9-2afd-4d8b-b3d5-9176986b0fdc", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "922ba8b86b4a3208a134fed2f489053692ef759d9de9337ea3062983699de142", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "b81c6e71-dec6-42eb-bf97-5723d0baf4e9", "node_type": "1", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "94f2b4a1edf2aa9a1e657d5669c2d75011b851dc29f22821f985106fd22cf58e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "- Time: 2014 \n- Aliases: GoDaaS (Yichao et al. 2014) \n\n----\n\n*General Services* \n- Author: Yichao et al. \n- Time: 2014 \n- Aliases: EaaS, aaS (readOnly) \n- Author: S. Robinson (Hewlett) (readOnly) \n- Description: string (readOnly) \n- ServiceType: string = anything (readOnly) \n- Time: 2008 (readOnly) \n\n*Disaster Tolerance* \n- Author: Shriram Rajagopalan et al. \n- Time: 2012 \n- ServiceType: Disaster Tolerance in cloud \n\n*Risk Assessment* \n- Author: Kaliski et al. \n- Time: 2010 \n- ServiceType: Risk assessment \n\n*Search* \n- Author: A. Singh et al. \n- Time: 2009 \n- ServiceType: Search \n\n----\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L05 Model-based Engineering \nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 2476, "end_char_idx": 3188, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "48c148e0-c9d7-49ad-a775-b12b790d5061": {"__data__": {"id_": "48c148e0-c9d7-49ad-a775-b12b790d5061", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a3cebf60-6223-453e-927f-4b8cc1c5b5b5", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "9ebc9a58fc6d7cceffd9d520287b1fb24730d6ceb5b67df98982773275bc3eed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Managing complexity in complex systems \u2014 Abstraction\n\n* Complex systems are difficult or sometimes even impossible to understand \n* *\"The magical number* **_seven, plus or minus two_**\" \n - Human Brain Constraint \n Our immediate memory span covers 7 \u00b1 2 pieces of information at the same time \n - Widely applied in various fields to enhance information retention and usability \n - **[Example]** phone numbers _(not including the area code)_ \n - Miller\u2019s law \n* The **Chunking** technique \n - Group collection of objects to reduce complexity \n - **[Example]** instead of 5-6-5-1-9-7-4 chunk into 565-1974", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 624, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "42976374-c8fe-4c5a-aba3-6335dedf0e32": {"__data__": {"id_": "42976374-c8fe-4c5a-aba3-6335dedf0e32", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f55b9170-8cce-49e7-9198-f8f694e61808", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "e66d262c7b8cb74bb1392b86ce065395348022821fdce8609978fc6f1c3ba968", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Abstraction is key\n\n* Allows us to hide unessential details and focus on essential aspects\n* Abstraction is a thought process (activity) where ideas are distanced from objects\n - E.g., We break a system into **layers** (UI, logic, storage) where each layer abstracts away details not necessary for the other layers to function\n* Abstraction is the result (entity) of a thought process\n* Abstractions can be expressed with a **model**\n\n[The image shows a silver espresso machine labeled \"CASABREWS\" with various knobs and two cups of espresso being brewed.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1c0586b3-8392-42a1-b290-3230baef34e4": {"__data__": {"id_": "1c0586b3-8392-42a1-b290-3230baef34e4", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d55b425f-2c7c-456f-a76e-d4defd093678", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "f794b4a71b1f11568cd5d91a74b84574c40c429c33c0830ed660442377e9d605", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* The importance of abstraction \n* Intro to model-based engineering \n* Intro to requirements engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 126, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6a762ca5-b07a-4a50-b67f-5514ee40908b": {"__data__": {"id_": "6a762ca5-b07a-4a50-b67f-5514ee40908b", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ca5afee3-0cde-4e4f-8f91-a9cbc4d3b6d2", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "1c784cd1ba4edd83b9b143a0a7f68d98c2bca8385bef10b448fff178e0dcb851", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Models are abstractions of systems\n\n* An **existing system** \n - **[Example]** Integrate a feature or troubleshooting for Canvas or TopHat \n - Often used in reverse engineering of a system that lacks clear communication\n\n* A **system to be built** \n - **[Example]** Create user workflows/recommendation logic for a restaurant picker app \n - Most common: UML diagrams, wireframes, and state models\n\n* A **system that no longer exists** \n - **[Example]** Modeling legacy systems (Netscape web browser, MacDraw, Facebook Paper, \u2026) could help inform if a modern replacement / support documentation \n - Also useful for data migration, compliance, research", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 665, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ebcea148-b348-4072-9352-2f34241f75e4": {"__data__": {"id_": "ebcea148-b348-4072-9352-2f34241f75e4", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "539f8591-5953-4660-a181-96febc6ed5c0", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "5c2996d3694663f2b2838d73ab6e14e976d1142270b2feb807658c3b14dee423", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Typical models in software engineering\n\n* **Functional model:** What are the functions of the system? (**use cases**)\n* **Object model:** What is the structure of the system? (**entities**)\n* **Dynamic model:** How does the system react to external events? (**activities**)\n\n* **System model:** object model + functional model + dynamic model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 345, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4197c6a8-f6c7-454c-b180-02651d16321a": {"__data__": {"id_": "4197c6a8-f6c7-454c-b180-02651d16321a", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c0f98458-c31c-4ef4-a41b-9ec99e614d67", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "5658a315abf823c7d6d0ce3eacbe8e862db3ba2b259b84443610ce3fd866f831", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is **model-based engineering**?\n\n* Models are **abstract representations** of system behavior and structure \n* **Visual and standardized way** of presenting complex systems \n* Used to **design, analyze**, and **document systems** \n* Supports **iterative development** \n* Can be used as tool for **communication** between stakeholders \n - Also used in other fields, e.g., mechanical engineering \n\n> Models can help guide the development of systems. \n> E.g., the general code structure (important classes) can be derived from class diagrams", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 554, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f0c174bc-9014-4222-a316-38c0604558ed": {"__data__": {"id_": "f0c174bc-9014-4222-a316-38c0604558ed", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2290dc41-4dcc-4716-b972-ea85bcad2128", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "639accfa340d1e5a4236fbe4cc03a8ec8243ffc918c8e1092e847f83ef698d8b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem with models\n\n**Design Model** \n[Image of a smartphone with a snowflake icon] \n*Designer / Developer*\n\n**System Model** \n(System Image) \n[Image of a smartphone with an ice skate icon]\n\n**User Model** \n[Image of a smartphone with an ice cream cone icon] \n*Customer*\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 306, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ad7cfc6-2841-4bb2-866b-9540b92e53be": {"__data__": {"id_": "9ad7cfc6-2841-4bb2-866b-9540b92e53be", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a86fce18-9a32-4ceb-b5ac-b84c4db13b04", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "1701f4a440283865835be4065bfe23c51b18b25490f3b2fb2e1c042527196b91", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem with models\n\n**Design Model** \n[Image of a smartphone with an ice cream cone icon] \n*Designer / Developer*\n\n**User Model** \n[Image of a smartphone with an ice cream cone icon] \n*Customer*\n\n**System Model** \n(System Image) \n[Image of a smartphone with an ice cream cone icon]\n\n> Ideally, design, user, and system model are identical/overlap\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 382, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b5e16504-735e-4b45-b852-832513fa2677": {"__data__": {"id_": "b5e16504-735e-4b45-b852-832513fa2677", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6cbf7941-acc2-401b-83c9-5cf6055c5418", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "f2ed4cd9de55866c8531b5b99995cabbb678e72c2e684f6960ae4a9566266059", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Mental models\n\n> *What users believe they know about a user interface impacts how they use it. Mismatched mental models are common, especially with designs that try something new.*\n\n* **User model** \u2014 *what the user thinks the system does* \n - The user\u2019s expectations of the system \n - Reflects how users perceive and understand the system \n\n* **Design model** \u2014 *what the developers intended the system to do* \n - Created by designers and developers based on the system\u2019s functionality \n - ~~Typically before coding begins~~ \n\n* **System image** \u2014 *what the system actually does/conveys through UI/behavior*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d02c5e4c-c17c-4f3e-a0ba-425064ff2655": {"__data__": {"id_": "d02c5e4c-c17c-4f3e-a0ba-425064ff2655", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ec83aa2d-60cc-454b-98b4-f14ed817cd2a", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "5aab814c6452a0f09fb2e800dc95c7a4c80709c68641ed75274b927d30be0486", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] ATM - User Model Assumptions\n\n* Users expect an ATM to dispense cash quickly and securely after they input their PIN and select the amount\n* Assumptions\n - The ATM will process the user\u2019s request without delays\n - User can cancel a transaction at any point if needed\n - User\u2019s card will always be returned after use\n\n[The left image shows an ATM keypad with numbers 1 to 9, 0, and function keys ENTER, CLEAR, CANCEL. The right image shows an ATM dispensing cash with a keypad below it labeled with numbers 1 to 9, 0, 00, and buttons Cancel, Correct, Confirm.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "908c5982-cda3-468e-aefb-215af949be13": {"__data__": {"id_": "908c5982-cda3-468e-aefb-215af949be13", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a6c539a4-563c-4469-818b-0af7e85abe18", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "1f520e1200ede401c0f53ed2d38b3659fce6398c9abe3976656c448b9cbf7f07", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** ATM - Design Model (*simplified*)\n\n* Users will follow on-screen instructions/prompts carefully step-by-step\n* The system includes safeguards \n - (e.g., locks the card if a user inputs the wrong PIN multiple times)\n* Cash dispensing happens only after confirming sufficient account balance\n\n\n \n \n \n\n \n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n \n \n
CASH
[Image of $100 bills dispensing slot with visible serial number LF51713969A]
123Cancel
456Correct
789
000Confirm
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 750, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e290ea3-891a-4e80-a1c3-941be45b3029": {"__data__": {"id_": "2e290ea3-891a-4e80-a1c3-941be45b3029", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2ff26c0e-6a5d-4217-bf2f-ad58ff69e47b", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "bdc871b88f136c17bb248845a279a8d3c952a225d299f2d78e75a241708adbd5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] ATM - System Image (*simplified)\n\n* A series of prompts for language selection, PIN entry, and transaction type \n* A delay between PIN entry and the display of account options due to backend processing \n* A button for canceling a transaction \n\n[The image shows an ATM screen with an orange background and several buttons on the right side. The screen displays the following text and buttons:]\n\n- Text input box with the number: `2000`\n- Button labeled: `Return`\n- Button labeled: `Correct`\n- Button labeled: `Confirm`\n\nAdditional text on the screen: \n\"The commission will be deducted from your account balance by the issuing bank.\"\n\nBelow this text are some numbers and a website: \n`95574` \n`www.nbcb.com.cn`\n\nOn the right side of the screen, there are physical buttons aligned with the on-screen options.\n\nSource: https://languagelog.ldc.upenn.edu/~bgzimmer/atm.jpg", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 885, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c47d994c-a4e5-4dbd-938f-abdb52be9263": {"__data__": {"id_": "c47d994c-a4e5-4dbd-938f-abdb52be9263", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9b11cfb2-944f-4ee3-93f6-48af277ad8ae", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "5f2f5889ab0b88299333817d6ff0291feffc16f10a155881ab96534b59cf38ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problems with models\n\n* **Problem:** The more stakeholders involved, the more \"mental models\" exist \n - Requires extensive communication \n - Prone to misunderstandings \n\n* **Solution:** Use a **common language** to **abstract and describe problems** \n - Ensures a common understanding \n - Refactor models as needed", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 326, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6ce72a0a-d954-4c06-8ea4-ef08d62f32b1": {"__data__": {"id_": "6ce72a0a-d954-4c06-8ea4-ef08d62f32b1", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6a860b3d-0380-4b04-b29a-cf435a112968", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "83f79136274255470f509974dd7ce944331e9139504183dac61fdbc5c9459cf0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Unified Modeling Language\n\n* Created in the late 1990s by a consortium of software companies \n* Became an official **standard** in 2005 by the Object Management Group (OMG) \n* UML diagrams provide a **visual representation** of an aspect of a system \n* UML includes a variety of diagram types for modeling different aspects of software systems \n - **Structural** diagrams \u2192 static structure \n - **Behavioral** diagrams \u2192 dynamic behavior \n - **Interaction** diagrams \u2192 interactions between objects or components \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n
Car
model
color
year
drive()
\n\n> UML class diagram", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 805, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9664f6cf-08ba-4659-8324-33be2c04c5ad": {"__data__": {"id_": "9664f6cf-08ba-4659-8324-33be2c04c5ad", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3f234a7d-a8c8-4c0c-b6ab-8098854a1e6e", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "fbea3267d497ce68a8dd06f2d5cacb7231625ffdf78bf46dde9d8f027a21096a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Why UML?\n\n* Reduces complexity by focusing on abstractions\n* Allows for a better organization of code\n* Provides a communication basis\n - Common vocabulary\n* Analysis and design\n - Enables to specify a future system without focusing on implementation details", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 263, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc2e3edb-c8bf-4c0d-8ec5-f8810277a6fc": {"__data__": {"id_": "dc2e3edb-c8bf-4c0d-8ec5-f8810277a6fc", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4af3f9ce-37cf-4e2a-957f-e0bae849a1a3", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "ac2774d9f264b77b9f7a7d0e6564a0bb26eb6064af1a92be366c3a8d8a71ecf8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Purposes of UML diagram types\n\n* Use case diagram: shows functionality \n* Class diagram: shows class/object structure \n* Activity diagram: shows dynamic behavior (activities & objects) \n* State chart: shows dynamic behavior (states of an object) \n* Communication diagram: shows interaction (messages between objects) \n* Sequence diagram: shows interaction (method invocation & lifespan) \n* Deployment diagram: shows system architecture \n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 450, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5c9a208e-9d67-4541-a2e9-80f328d3099d": {"__data__": {"id_": "5c9a208e-9d67-4541-a2e9-80f328d3099d", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2eb8ae5b-bda3-4f8e-80ce-4952786f603c", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "610c1d2c8b0073d2c009f51d61bc52a078bfc039bdfdf804ee223677de269bc7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML in practice\n\n* Documentation\n - Many companies use UML to document their systems\n * Ensures global understanding\n - Many open-source projects include UML models in their documentation\n* Ideation & design thinking\n - Structured approach in defining ideas\n* Programming\n - Allows to share ideas\n - Helps in defining complex algorithms\n - Provides starting point for writing and organizing code\n* Enhances abstract thinking & builds problem-solving skills", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 468, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2785e8eb-cb22-4d25-a612-409558dc2f49": {"__data__": {"id_": "2785e8eb-cb22-4d25-a612-409558dc2f49", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f94bcf04-9a54-4790-a1c8-7a8d22e987c5", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "9a0a93fcd881e689b63bf61ed4c9ec93cd526400dcb992b46695e9ad775f54b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] FrequentFlyer \u2014 UML class diagram\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n\n \n\n\n\n \n\n \n\n\n \n \n
FlightFrequentFlyer
numberdurationfirstNameupgrade()
arrivalTimelastName
delayFlight(Minutes)frequentFlyerNumber
\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n
MileageCredit
baseMiles
bonusMiles
\n\n* The association between **Flight** and **FrequentFlyer** is many-to-many (indicated by `*` on both ends).\n* The association roles are labeled as `flights` (from FrequentFlyer to Flight) and `passengers` (from Flight to FrequentFlyer).\n* The **MileageCredit** class is connected to both **Flight** and **FrequentFlyer** with aggregation (diamond symbol).\n\n> This is an example of a UML class diagram of a frequent flyer system. \n> We will talk more about the individual UML elements soon!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1220, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4c206349-a8fe-4f87-9aa1-d87203b87282": {"__data__": {"id_": "4c206349-a8fe-4f87-9aa1-d87203b87282", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ea81f8c1-6216-493b-aad2-6f14fbdb22a1", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "0e1a0fc7ca5bf2ef5f4740dd5b3b787939a0875cc49087bd25b701583ed01f06", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Two abstraction domains\n\n* **Application domain** (= problem space) \n - Focus is on understanding and analyzing the **problem** \n - Environment where the system is operating\n\n* **Solution domain** (= solution space) \n - Focus is on **design** & **implementation** \n - Technologies used to build the system", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 316, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8eaed070-28e9-4dbe-88c2-76f80f6cef9c": {"__data__": {"id_": "8eaed070-28e9-4dbe-88c2-76f80f6cef9c", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "71f3c27f-ae98-4dea-a337-dd07ccc819a1", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "2c9d756677037229b20c2a51613015e055558e10d0ba332f6311f619b451aa59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Application vs. solution domain\n\n| Application Domain | Solution Domain |\n|-------------------|-----------------|\n| **Reality** | **Reality** |\n| [Image of rocket launch] [Image of mission control room] | [Image of control panel] [Image of astronaut in spacecraft] [Image of lunar lander] |\n\n| **Model** | **Model** |\n|-------------------|-----------------|\n| Rocket | Status |\n| Engine | FAA Reg. |\n| LaunchPlan | `< />` |\n| Mission Control | Peregrine lander |\n\n**Analysis** (under Application Domain) \n**Design & Implementation** (under Solution Domain)\n\n[University of Pittsburgh logo]\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 758, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "858bc6bb-03a7-48f1-9a1c-334681b036b5": {"__data__": {"id_": "858bc6bb-03a7-48f1-9a1c-334681b036b5", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1c3e8b1c-1dcd-45b1-8664-3ad34bccc770", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "61f6ba7c6358e88035c72746a42d96044dba3e40297bd80786aed9fa2ca0da69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Overview of Model-based Software Engineering\n\n**Problem**\n\nCommuter App\n\n**Problem Statement**\n\nWe need a way so that people can get from one location to another using multiple means of transport, based on their available options and preferences.\n\n| Requirements | System Design | Object Design & Implementation | Testing & Verification | |\n|--------------------|-----------------------|-------------------------------|-----------------------|---|\n| Functional Model | Structural Model | Behavioral Model | Source Code | Testing Model |\n| **Use case model** | **Class diagram** | **Activity diagram** | **Object model** | **Sequence diagram** |\n| | **Component diagram** | ... | **Dependency graph** | **Activity diagram** |\n| | ... | | ... | ... |\n\n\ud83e\uddd1\ud83e\uddd1\ud83e\uddd1\ud83e\uddb0\ud83d\udc69\ud83e\uddb1\ud83d\udc71\ud83e\uddd3 \n**Enduser**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1002, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cff8c484-2dde-447f-b5b0-89451db3b8c4": {"__data__": {"id_": "cff8c484-2dde-447f-b5b0-89451db3b8c4", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "803f4178-7f87-4f8f-891d-cb59fddb0f0a", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "4a6098a543cfa1028ffc938704a622cb26a48d5eed21905f00bbf0b57ad6f13a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* The importance of abstraction\n* Intro to model-based engineering\n* Intro to requirements engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 122, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7adf0459-2c47-48f5-ab55-4f0d5b1950bf": {"__data__": {"id_": "7adf0459-2c47-48f5-ab55-4f0d5b1950bf", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7b710131-364e-4bc5-b2e9-e7f4b5fcfa2a", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "48e9c7ca03d169a7d57a2cd37c68503e612b2ca2ab42e7ceef174d82bb6de2f3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "[Five panels showing different versions of a tree swing, each with a tree and a swing attached in different ways.]\n\nPanel 1: A wooden swing with three horizontal planks and two ropes hanging from a tree branch.\nCaption: How the customer explained it\n\nPanel 2: A wooden swing with a single horizontal plank and two ropes hanging from a tree branch.\nCaption: How the engineer designed it\n\nPanel 3: A wooden swing with a single horizontal plank and two ropes hanging from a tree stump and a tree branch.\nCaption: How the project leader understood it\n\nPanel 4: A wooden swing with a single horizontal plank tied directly around the tree trunk with ropes.\nCaption: How the programmer wrote it\n\nPanel 5: A tire swing hanging from a tree branch by a single rope.\nCaption: What the customer really needed\n\n[In the top right corner, the University of Pittsburgh logo and text.]\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 940, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "779d4626-b38a-4783-861b-5e8f6544bfd0": {"__data__": {"id_": "779d4626-b38a-4783-861b-5e8f6544bfd0", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e3abc501-edbf-4607-a901-88279381cc2c", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "a0758a6a2fd7f1cd847c1cadda093b5fc719024d35e035643531bb5b7eff4f87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System requirements\n\n* Requirements describe the purpose of the system \n* They specify the **functionality** and **constraints** of a system \n* **Requirements elicitation** describes the process of identifying requirements \n* The elicited requirements are then analyzed and a system model is created \n\n> **Note:** Requirements are important but not set in stone! \n> Often, during system design or implementation, \n> new requirements arise or existing ones need to be adapted", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 483, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d705065-30b3-401e-be16-dd9e194a81ed": {"__data__": {"id_": "8d705065-30b3-401e-be16-dd9e194a81ed", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "027c61ed-ec7c-4476-8731-74c8571cee84", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "6c302de9e9debdd11785117dc6d3d3be07ae407c2817d85c2b2088cd56c5c8e8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements Engineering\n\n* Combination of requirements elicitation and requirements analysis\n* An activity that defines the requirements of the system under construction\n* **Requirements elicitation** defines the system from the **view of the** (end)**user**\n - Requirements specification\n - Uses natural language\n* **Requirements analysis** defines the system from the **view of a developer**\n - Technical specification\n - Uses (semi-) formal language, e.g., UML", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 471, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "597bf18a-85fb-460f-920c-55891cf72679": {"__data__": {"id_": "597bf18a-85fb-460f-920c-55891cf72679", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2f75c810-f18c-4067-9252-4d09d1d18b2f", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "1158fa3188b0d61f58ec80da392d41d711033ba60c5d8783e2f735a7f9948772", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements Engineering\n\n**= Process of eliciting requirements and analyzing them**\n\n* Activities \n - Identify actors (different users of the system) \n - Identify scenarios (in natural language describe the functionality of the future system) \n - Identify functional requirements \n - Identify non-functional requirements \n - Derive use cases (generalize functionality, describe their behavior, and identify the relationships among use cases) \n - Derive entities, characteristics, and behavior \n - \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 516, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ecd20bb-8452-4e74-8efc-c13a894491c0": {"__data__": {"id_": "9ecd20bb-8452-4e74-8efc-c13a894491c0", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e2c78923-1204-4f05-b887-99a6bff120ab", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "dc4fed671110fc3436700fe5226f2969b39d8abb8a8b21cf46d91f0ec138a62a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying actors\n\n* Actors represent the different users of a system \n - Note that a user is not necessarily just the enduser! \n - Users can also include: system analyst, database admin, another system, \u2026 \n* In UML, actors are represented as a **stick figure**\n\n```\n O\n /|\\\n / \\\n```\nActor\n\n> Should be a concrete user, e.g., \"Student\", \"PizzaBaker\", \"Developer\", \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 378, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "78dcd2df-213a-4088-b4ee-6fb5b28216ec": {"__data__": {"id_": "78dcd2df-213a-4088-b4ee-6fb5b28216ec", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0d7fab36-2c6f-4e23-b90f-2bc6730da0a0", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "140152bc486884f7a1a471ce5ba789f89b2e52cad3e810efd95a7fc1040924f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Stakeholders in a software project\n\n**Stakeholder** \n*Has an involvement in a software project*\n\n----\n\n\n \n \n \n \n \n \n\n \n \n
\n Internal

\n Project Manager
\n Builds the system\n
\n Developer
\n Builds the system\n
\n User
\n Uses the system\n
\n Customer
\n Sponsors/commissions the system\n
\n External\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 843, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "42573e27-8a0e-42a1-8944-db1877d0f848": {"__data__": {"id_": "42573e27-8a0e-42a1-8944-db1877d0f848", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "10dbccf2-1a8e-4b8a-b256-7d9568b285fe", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "271ce4dd50abb48a18fae5a6c243594106149cb98eedf54226f2b8d66d3d5a69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Take-Away: Overview of requirements elicitation\n\n* User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and stakeholders \n* Effective Communication: Establish clear and open channels of communication to gather accurate requirements \n* Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving project needs \n* Documentation: Thoroughly document gathered requirements to ensure clarity and alignment throughout the project lifecycle \n\n\n \n \n\n\n\n\n \n
YOUR USER REQUIREMENTS INCLUDE FOUR HUNDRED FEATURES. DO YOU REALIZE THAT NO HUMAN WOULD BE ABLE TO USE A PRODUCT WITH THAT LEVEL OF COMPLEXITY? GOOD POINT. I'D BETTER ADD \"EASY TO USE\" TO THE LIST.
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 821, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e0e83651-c7fc-4c99-8ec7-38f068e77c2c": {"__data__": {"id_": "e0e83651-c7fc-4c99-8ec7-38f068e77c2c", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "33fdc0a1-6561-48c3-998e-89c0333c7e9f", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "f005a273ffef2d79c59d045bad2de20d0c3acee269762829e29b7eb0b1463581", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L05 Model-based Engineering\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d39325d7-1383-4bf9-9610-fa7bcaf1a753": {"__data__": {"id_": "d39325d7-1383-4bf9-9610-fa7bcaf1a753", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4731bd9c-3858-4789-8f98-7cf1866689f5", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "199bfcc96180115b056f9f7e851182741bda9adc2234990bcdba4429bd7c83a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 05\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5718c26a-17c5-4971-b398-7d33bad5d82e": {"__data__": {"id_": "5718c26a-17c5-4971-b398-7d33bad5d82e", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f3ce54f5-9b69-4b0f-86b7-ba5bc66d7085", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "6fdb728c1761f60ef018affd30589c19b8dc4b2a0b20c7cab75381c133aba99f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Language\n\n* **Question:** Given a regular language, can it be expressed by a regular expression? \n - There are infinite number of regular languages \n - Luckily, all of them have one thing in common \n - Each of them has some finite-state machines that recognize it \n\n* So, to try to answer the above question, we need to show a way to convert a finite-state machine into a regular expression that expresses the language of the machine", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cc03cb4a-6299-4a8c-8651-b2910d7560f2": {"__data__": {"id_": "cc03cb4a-6299-4a8c-8651-b2910d7560f2", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2e6140c2-6bb9-4cee-aa40-0ceba53a44b1", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "080555054562a8fe7377034234b53f72d2f8d3632d33e3f36396545e09c9a3db", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Generalized Nondeterministic Finite Automaton\n\n* A Generalized Nondeterministic Finite Automaton (GNFA) \\( \\mathcal{N} \\) of a DFA \\( M \\) is\n * a special NFA where \\( L(\\mathcal{N}) = L(M) \\)\n * \\( \\mathcal{N} \\) has exactly one accept state\n * all transitions of \\( \\mathcal{N} \\) are regular expressions\n * To transition from one state to another, you need a string in the language expressed by the regular expression instead of a symbol\n* Example:\n\n\n \n \n \n \n \n
\\( q_2 \\)\\( 0^* \\cup 11^*0 \\)\\( q_5 \\)
\n\nAt \\( q_2 \\), if you encounter a string in the language \\( 0^* \\cup 11^*0 \\), move to state \\( q_5 \\)\n\n$$\n0^* \\cup 11^*0 = \\{\\varepsilon, 0, 00, \\ldots \\} \\cup \\{10, 110, 1110, \\ldots \\}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 845, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8dd02411-dc47-43cd-b0bd-2a35f5cf09b0": {"__data__": {"id_": "8dd02411-dc47-43cd-b0bd-2a35f5cf09b0", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c3304f9a-595a-4dfc-96ba-bbd19e6f4f57", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "a15fd971b95db6bc20d02a2be531c3559953c727787aa5d3658b4435e505c102", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA\n\n1. Start with a DFA \\( M \\) \n2. Add a new start state \\( s \\) with an \\(\\varepsilon\\) arrow to the original start state of \\( M \\) \n3. Add a new accept state \\( a \\) \n * From every accept state of \\( M \\), add an \\(\\varepsilon\\) arrow to the new accept state \n * Change all original accept states of \\( M \\) to non-accept states \n4. Turn transition labels to regular expressions (rule #1 of regular expression) \n5. Add necessary transition arrows \n * Change multiple arrows or multiple labels to a single arrow while label is the union of the previous labels \n\n----\n\nDiagram illustrating the merging of multiple arrows/labels into a single arrow with union of labels:\n\n```mermaid\ngraph LR\n A1(( )) -- a --> B1(( ))\n A1 -- b --> B1\n B1 --> B2(( ))\n A2(( )) -- a \u222a b --> B2\n\n C1(( )) -- \"0, 1\" --> D1(( ))\n D1 --> D2(( ))\n C2(( )) -- \"0 \u222a 1\" --> D2\n```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 05", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 990, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a1c2a556-9dfc-49df-b54d-14d54aca1096": {"__data__": {"id_": "a1c2a556-9dfc-49df-b54d-14d54aca1096", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fa627162-bb28-438d-b7a8-5456eb82fb3c", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "fb40c3d2992ca8a00f2d689bda4736058f749273f49a73c9f01fd09a254f3686", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* A DFA\n\n```mermaid\nstateDiagram-v2\n [*] --> 1\n 1 --> 2: a\n 2 --> 1: a\n 2 --> 2: b\n 1 --> 3: b\n 3 --> 1: b\n 3 --> 2: a\n state 2 {\n <>\n }\n state 3 {\n <>\n }\n```\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 05", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2d034c71-061b-4cb0-bbd0-bfffb2baf3b8": {"__data__": {"id_": "2d034c71-061b-4cb0-bbd0-bfffb2baf3b8", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e05b56a2-c7c5-4c49-ba44-39e60e89b1c1", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "ac173e10a45493a4d278b9382bd435592a816fb48bb0066bc56902c3787cbf00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* Add a new start state \\( s \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> 1\n state 1 {\n [*] --> 1\n 1 --> 2: a\n 1 --> 3: b\n }\n state 2 {\n 2 --> 2: b\n 2 --> 1: a\n }\n state 3 {\n 3 --> 1: b\n 3 --> 2: a\n }\n 2 --> 3: a\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 337, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8ed6ddf9-c718-419c-b010-bae367075e17": {"__data__": {"id_": "8ed6ddf9-c718-419c-b010-bae367075e17", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c41e11d9-ebaa-48dc-8284-7ed5367bf332", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "68d6b0b2d6e180e8abb055410df66f645bbba40445560166c5ad312cc0cf658c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* \\( \\varepsilon \\) from \\( s \\) to the original start state\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> 1: \u03b5\n 1 --> 2: a\n 1 --> 3: b\n 2 --> 1: a\n 2 --> 2: b\n 3 --> 1: b\n 3 --> 2: a\n state 2 {\n [*] --> 2\n }\n state 3 {\n [*] --> 3\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 328, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f5fd928e-9e4b-43cc-941b-1fcb648478c8": {"__data__": {"id_": "f5fd928e-9e4b-43cc-941b-1fcb648478c8", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0177558b-9d0d-49a6-9644-fc9d74730c0f", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "d819fb44ab11222cc0709a49f452f4f146f62d87312a2dd372252505900263d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* Add a new accept state \\( a \\)\n\n```\n b\n +-----+\n | |\n v |\ns --\u03b5--> 1 --a--> 2\n | ^ | b\n b | v\n v 3 <--a\n a\n```\n\n* States:\n - \\( s \\) (start state)\n - \\( 1 \\)\n - \\( 2 \\) (accept state)\n - \\( 3 \\)\n - \\( a \\) (new accept state)\n\n* Transitions:\n - \\( s \\xrightarrow{\\epsilon} 1 \\)\n - \\( 1 \\xrightarrow{a} 2 \\)\n - \\( 1 \\xrightarrow{b} 3 \\)\n - \\( 2 \\xrightarrow{a} 1 \\)\n - \\( 2 \\xrightarrow{b} 2 \\) (loop)\n - \\( 3 \\xrightarrow{a} 2 \\)\n - \\( 3 \\xrightarrow{b} 1 \\)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 05", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 647, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a8a2eca6-d2fb-4e86-85c0-e24609c8c2de": {"__data__": {"id_": "a8a2eca6-d2fb-4e86-85c0-e24609c8c2de", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b7e2b995-a7fc-418b-8078-25620a255b71", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "c901eae72497e02e2853ff4b0ba8f849e129e264e42b6249b959ba33329908f6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* \\( \\varepsilon \\) from all accepts state to \\( a \\)\n\n\n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n
b
a
12
\\(\\varepsilon\\)a\\(\\varepsilon\\)
sbb
3\\(\\varepsilon\\)
a
a
\n\n- The diagram shows states \\( s, 1, 2, 3, a \\) with transitions labeled \\( a, b, \\varepsilon \\).\n- State \\( s \\) transitions to state 1 with \\( \\varepsilon \\).\n- State 1 transitions to state 2 with \\( a \\), and to state 3 with \\( b \\).\n- State 2 has a loop on \\( b \\), transitions to state 1 with \\( a \\), and to state \\( a \\) with \\( \\varepsilon \\).\n- State 3 transitions to state 1 with \\( b \\), to state 2 with \\( a \\), and to state \\( a \\) with \\( \\varepsilon \\).\n- State \\( a \\) is an accept state.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1051, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "72a8566f-ed41-40eb-9279-8c358eed6bbd": {"__data__": {"id_": "72a8566f-ed41-40eb-9279-8c358eed6bbd", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "169bbaad-84ad-4eda-acfc-26415a5e5f88", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "020eb4ab7a37302decf35c9a4120442884fe38a43684bfba1cb59c0cc39c0475", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* All original accept states to non-accept state\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> 1: \u03b5\n 1 --> 2: a\n 2 --> 1: a\n 2 --> 2: b\n 1 --> 3: b\n 3 --> 1: a\n 3 --> 2: a\n 2 --> a: \u03b5\n 3 --> a: \u03b5\n\n state s {\n direction LR\n }\n state 1 {\n direction LR\n }\n state 2 {\n direction LR\n }\n state 3 {\n direction LR\n }\n state a {\n direction LR\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 476, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "be4536e5-1cac-4089-a8b5-50876374fd2a": {"__data__": {"id_": "be4536e5-1cac-4089-a8b5-50876374fd2a", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a4c1fb0e-2a75-4b9c-adb4-a439757ced40", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "527c1f43bb72dd8214cb64c3a7038ca050b67c3e9e06dec840889a772eefa0d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# GNFA to Regular Expression\n\n* Note that by converting a DFA and an equivalent GNFA, the language of the machine remain unchanged \n* Next, we are going to remove original states of DFA one at a time until there are only two states left \n - When a state is removed, we have to make sure that the language of the machine is not changed \n - The new start state \\( s \\) and the new accept state \\( a \\) \n\n* Example:\n\n```mermaid\nflowchart LR\n A[\"3-state DFA\"] --> B[\"5-state GNFA\"]\n B --> C[\"4-state GNFA\"]\n C --> D[\"3-state GNFA\"]\n D --> E[\"2-state GNFA\"]\n E --> F((regular expression))\n```\n\n* The transition from \\( s \\) to \\( a \\) is a regular expression that expresses the language of the original DFA", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 723, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "029479cd-ccb8-45aa-84e0-02032ed0d94a": {"__data__": {"id_": "029479cd-ccb8-45aa-84e0-02032ed0d94a", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "15e6d703-6715-4e5b-a989-4a4b14446bdd", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "49b4c0c247465294451cc1677cc3f14a6724637e953459e183e373d8da848d22", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Reducing Number of States of GNFA\n\n* Removing \\( q_{rip} \\)\n\n```mermaid\ngraph LR\n qi -->|R_4| qj\n qi -->|R_1| q_{rip}\n q_{rip} -->|R_3| qj\n q_{rip} -->|R_2| q_{rip}\n```\n\n* How to go from \\( q_i \\) to \\( q_j \\)?\n - \\( q_i \\to q_j \\) using a string in \\( R_4 \\)\n - \\( q_i \\to q_{rip} \\to q_j \\)\n - \\( q_i \\to q_{rip} \\) using a string in \\( R_1 \\)\n - \\( q_{rip} \\to q_{rip} \\) using a string in \\( R_2 \\) any number of times \\((R_2^*)\\)\n - \\( q_{rip} \\to q_j \\) using a string in \\( R_3 \\)\n\n* From \\( q_i \\) to \\( q_j \\) by any strings in \\( R_1 R_2^* R_3 \\cup R_4 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 583, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ac0906f4-73f0-4d90-9304-1ae39cfd48fa": {"__data__": {"id_": "ac0906f4-73f0-4d90-9304-1ae39cfd48fa", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "04a26b1e-a807-4772-bce8-c0081849eb08", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "3a204a18cdd4333ffdb38ce975c463d8c59ba02569a25f7e14949644dabda872", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Reducing Number of States of GNFA\n\n* Removing \\( q_{rip} \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> qi\n qi --> q_{rip} : \\(R_1\\)\n qi --> q_j : \\(R_4\\)\n q_{rip} --> q_{rip} : \\(R_2\\)\n q_{rip} --> q_j : \\(R_3\\)\n```\n\n\\(\\Rightarrow\\)\n\n```mermaid\nstateDiagram-v2\n [*] --> qi\n qi --> q_j : \\(R_1 R_2^* R_3 \\cup R_4\\)\n```\n\n* To remove \\( q_{rip} \\)\n 1. Search for all possible paths from a state \\( q \\) to \\( q_{rip} \\) and to a state \\( r \\) \n $$\n q \\to q_{rip} \\to r\n $$\n 2. Turn all paths from previous step to regular expressions \n 3. Remove \\( q_{rip} \\) which results in \\( q \\to r \\) \n 4. Insert paths \\( q \\to r \\) back with their regular expressions", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 692, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "43a4e60c-4f18-4094-aab7-bf7a64211336": {"__data__": {"id_": "43a4e60c-4f18-4094-aab7-bf7a64211336", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d9da3902-bdef-4d17-ab94-bdd46cf6fcb0", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "a1e4d7be4587b6dca9aec616e6c25712b308f133761366fbaed8ad0113bdf748", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* DFA\n\n```mermaid\nstateDiagram-v2\n [*] --> 1\n state 1 {\n direction LR\n 1 : a\n 1 --> 1 : a\n 1 --> 2 : b\n }\n state 2 {\n direction LR\n 2 : a, b\n 2 --> 2 : a, b\n }\n```\n\n$$\\{ w \\mid w \\text{ contains at least one } b \\}$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "77bce36b-8ad8-476f-82db-ae0732a8c309": {"__data__": {"id_": "77bce36b-8ad8-476f-82db-ae0732a8c309", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5851eca3-df58-4608-9748-65667ef53334", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "4d37fee1f55d7e45825e4a342ece0b9094ea86041a6fb55ff7c0e30fdd60e45f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* DFA to GNFA\n\n```mermaid\nstateDiagram-v2\n direction LR\n %% DFA on the left\n [*] --> 1\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a,b\n 2 --> [*]\n\n %% Arrow to GNFA on the right\n %% GNFA on the right\n [*] --> s\n s --> 1: \u03b5\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a \u222a b\n 2 --> a: \u03b5\n a --> [*]\n```\n\n$$\\{ w \\mid w \\text{ contains at least one } b \\}$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 392, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e6e7873b-2f75-4530-bd92-8a587469342f": {"__data__": {"id_": "e6e7873b-2f75-4530-bd92-8a587469342f", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b40c98d9-c3b7-4bd2-bf36-3a0ba25d05e5", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "32aa82748825cefcf9f178bb00c43617472d37f8ca21bd6f02180c2c1905d163", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 2\n\n```mermaid\nstateDiagram-v2\n [*] --> 1\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a,b\n 2 --> [*]\n\n %% After transformation\n state s {\n [*] --> 1\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a \u222a b\n 2 --> a: \u03b5\n a --> [*]\n s --> 1: \u03b5\n }\n\n %% Final transformation\n state s2 {\n [*] --> 1\n 1 --> 1: a\n 1 --> a: b(a \u222a b)*\n a --> [*]\n s2 --> 1: \u03b5\n }\n```\n\n$$\n\\{ w \\mid w \\text{ contains at least one } b \\}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 530, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b18dc1b6-5d0a-490d-8b78-701dec761945": {"__data__": {"id_": "b18dc1b6-5d0a-490d-8b78-701dec761945", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "efa53c04-3fa9-41df-83d5-fbacbfba05e1", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "3fe196a5b424ab55e5fca61dff5b4c19c72b81049d7ba9d1c506e97c1ba235a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 1\n\n```mermaid\nstateDiagram-v2\n [*] --> 1\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a,b\n 2 --> [*]\n\n %% Step 1: Introduce new start and accept states with epsilon transitions\n state s1 {\n [*] --> s\n s --> 1: \u03b5\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a U b\n 2 --> a: \u03b5\n a --> [*]\n }\n\n %% Step 2: Remove state 1 by combining transitions\n state s2 {\n [*] --> s\n s --> a: a* b (a U b)*\n a --> [*]\n }\n```\n\n$$ \\{ w \\mid w \\text{ contains at least one } b \\} $$\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 05", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 641, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ba2cf730-235f-48c8-8499-a11271d769f3": {"__data__": {"id_": "ba2cf730-235f-48c8-8499-a11271d769f3", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "04f3b053-992a-4ad4-97cd-9def0e9667cd", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "0f5d61d1be6eb27eaa80863a3eb3bffd85beef18a47ef4f6ac233d99cbcd14bc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* DFA to GNFA\n\n```mermaid\nstateDiagram-v2\n direction LR\n %% DFA on the left\n [*] --> 1\n 1 --> 2: a\n 1 --> 3: b\n 2 --> 2: b\n 2 --> 3: a\n 3 --> 1: b\n 3 --> 2: a\n state 2 {\n <>\n }\n state 3 {\n <>\n }\n\n %% Arrow to GNFA\n 1 --> 2: \" \" %% just to separate visually\n\n %% GNFA on the right\n [*] --> s\n s --> 1: \u03b5\n 1 --> 2: a\n 1 --> 3: b\n 2 --> 2: b\n 2 --> a: \u03b5\n 2 --> 3: a\n 3 --> 1: b\n 3 --> 2: a\n 3 --> a: \u03b5\n state a {\n <>\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 558, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f1132bd4-f2c3-4c87-aaaf-89d6adc3e674": {"__data__": {"id_": "f1132bd4-f2c3-4c87-aaaf-89d6adc3e674", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fed0817b-0036-47d5-ab89-964ac95af8a4", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "782e95ba1c21bc94dc30d67bad4b0fde27ac6e532eb494bb4aebd2e51abbcace", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 1\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> 1: \u03b5\n 1 --> 2: a\n 1 --> 3: b\n 2 --> 2: b\n 2 --> 3: a\n 2 --> a: \u03b5\n 3 --> 1: b\n 3 --> a: \u03b5\n 3 --> 2: a\n\n %% After removing state 1\n [*] --> s\n s --> 2: a\n s --> 3: b\n 2 --> 2: aa \u222a b\n 2 --> 3: ab\n 2 --> a: \u03b5\n 3 --> 2: ba \u222a a\n 3 --> 3: bb\n 3 --> a: \u03b5\n```\n\n* Paths that go through state 1 \\((q \\to 1 \\to r)\\)\n - \\(s \\to 1 \\to 2 \\quad \\epsilon a = a\\)\n - \\(s \\to 1 \\to 3 \\quad \\epsilon b = b\\)\n - \\(2 \\to 1 \\to 2 \\quad aa\\)\n - \\(2 \\to 1 \\to 3 \\quad ab\\)\n - \\(3 \\to 1 \\to 2 \\quad ba\\)\n - \\(3 \\to 1 \\to 3 \\quad bb\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 653, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5baa32cb-d5f4-42ed-aeda-58dd11f2fbfb": {"__data__": {"id_": "5baa32cb-d5f4-42ed-aeda-58dd11f2fbfb", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bf3551bb-a69b-4786-8b97-9e1991779b25", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "056367591d19bdb94b098f048eb6e793095b255284f0259f519986163b3b21fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 2\n\n```\n aa \u222a b\n \u21bb\n +---------+\n | | \u03b5\n s -|-> 2 ---------> a (final)\n a | \u2191 ab \u03b5\n | | ba \u222a a\n | 3 --------->\n b | \u2191 bb \u03b5\n +---------+\n```\n\n```\n a(aa \u222a b)* a\n s ---------------> a -------->\n \\ | (ba \u222a a)(aa \u222a b)* \u222a \u03b5\n \\ |\n \\ v\n \\-> 3 ---------> a\n (ba \u222a a)(aa \u222a b)*ab \u222a b\n \u2191\n (ba \u222a a)(aa \u222a b)*ab \u222a bb\n```\n\n* Paths that go through state 2 \\((q \\to 2 \\to r)\\)\n - \\(s \\to 2 \\to a \\quad a(aa \\cup b)^* \\varepsilon = a(aa \\cup b)^*\\)\n - \\(s \\to 2 \\to 3 \\quad a(aa \\cup b)^* ab\\)\n - \\(3 \\to 2 \\to a \\quad (ba \\cup a)(aa \\cup b)^* \\varepsilon = (ba \\cup a)(aa \\cup b)^*\\)\n - \\(3 \\to 2 \\to 3 \\quad (ba \\cup a)(aa \\cup b)^* ab\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 861, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa139241-552f-443c-9c90-64fee4377610": {"__data__": {"id_": "fa139241-552f-443c-9c90-64fee4377610", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dd4802ad-d90b-4097-b027-0c9063d87a6b", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "527166682af951849cd7bfb2337417948e07de619022946f8dd10490a2cea069", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 3\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> a: a(aa \u222a b)*\n s --> 3: a(aa \u222a b)*ab \u222a b\n 3 --> a: (ba \u222a a)(aa \u222a b)* \u222a \u03b5\n 3 --> 3: (ba \u222a a)(aa \u222a b)*ab \u222a bb\n```\n\n$$\n(a(aa \\cup b)^* ab \\cup b) ((ba \\cup a)(aa \\cup b)^* ab \\cup bb)^* ((ba \\cup a)(aa \\cup b)^* \\cup \\epsilon) \\cup a(aa \\cup b)^*\n$$\n\n* Paths that go through state 3 \\((q \\to 3 \\to r)\\)\n - \\(s \\to 3 \\to a\\)\n\n$$\n(a(aa \\cup b)^* ab \\cup b) ((ba \\cup a)(aa \\cup b)^* ab \\cup bb)^* ((ba \\cup a)(aa \\cup b)^* \\cup \\epsilon)\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 530, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "26325910-8f1d-45ba-a499-6be1cf11e2de": {"__data__": {"id_": "26325910-8f1d-45ba-a499-6be1cf11e2de", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e1dbcc9b-86f2-4156-989c-97a5793dd227", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "866fee241851044b46ae301f4fc0da946c19bab10120d9950ec888d5f6fa68d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Theorem 1.54\n\n* Earlier, we show that every regular expression expresses a regular language \n* We just show that every state diagram of a DFA can be converted into an equivalent regular expression\n\n> **Theorem (1.54)** \n> *A language is regular if and only if some regular expression describes it.*\n\n* **Problem**: If you cannot express a language using a regular expression, it does not mean it is not regular \n - The language is so complicate that it needs a very long and complicate regular expression", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 511, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "444ca371-63f5-4bc7-87d5-af528c7eea75": {"__data__": {"id_": "444ca371-63f5-4bc7-87d5-af528c7eea75", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "afbb6827-a175-4052-8938-0a65fa569958", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "14e804ab6c1b5cfeb0d76282ba9256e110265cadd86a0acc29571b4c45160466", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automaton and Algorithm\n\n* For every finite automaton, there is an equivalent algorithm \n* For example, consider a machine where its language is the set of all strings over 0 and 1 that consist of an odd number of 1s.\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q1: 0\n q1 --> q0: 1\n state q1 {\n <>\n }\n```\n\n* The above machine can be converted into a Java method that \n - Takes a string of 0s and 1s as an argument \n - Returns true (accept) of the input string consisting of an odd number of 1s. Otherwise, returns false (reject).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 613, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cdd168c2-9c88-449b-8bf7-020c5a9a094f": {"__data__": {"id_": "cdd168c2-9c88-449b-8bf7-020c5a9a094f", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d3f89eb8-9591-4eb8-90f5-78862abd97ef", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "0d191d03182d36e011b9faa06ed4571a1d98aa810960dce31155b377aa0615a6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata and Algorithm\n\n```java\npublic boolean isAccepted(String input)\n{\n String state = \"q0\";\n int length = input.length();\n\n for(int i = 0; i < length; i++)\n {\n char c = input.charAt(i);\n\n if(state.equals(\"q0\") && c == '0')\n state = \"q0\";\n else if(state.equals(\"q0\") && c == '1')\n state = \"q1\";\n else if(state.equals(\"q1\") && c == '0')\n state = \"q1\";\n else if(state.equals(\"q1\") && c == '1')\n state = \"q0\";\n }\n\n if(state.equals(\"q1\"))\n return true;\n else\n return false;\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 602, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "24fc1550-be07-42f3-9188-2c53766041a7": {"__data__": {"id_": "24fc1550-be07-42f3-9188-2c53766041a7", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "80239979-c162-4be3-a87b-d736b75d6d86", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "ce7055190f2744685decc24ccf69229a01dafbb56a90fe1f8afada0ddadddeba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Limitation of Finite Automaton\n\n* Finite Automaton only captures a small subset of algorithms \n - Problems that associated with Regular languages \n* Not all language can be recognized by a finite state machine \n - Such languages is called **Nonregular Languages** \n* Example: \n $$ B = \\{0^n 1^n \\mid n \\geq 0\\} $$ \n - $$ B = \\{\\varepsilon, 01, 0011, 000111, \\ldots \\} $$ \n - The machine need to be able to remember how many 0s and how many 1s it sees so far \n - We need an **infinite** number of states \n* If you cannot express a language using regular expression, it does not mean it is not a regular language \n - Too complicate and requires a huge number of states \n* We need a way to determine whether a language is not regular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 752, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "58670055-e2c8-412b-bf7a-931a857941e6": {"__data__": {"id_": "58670055-e2c8-412b-bf7a-931a857941e6", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b632da1c-a299-45b5-af0a-c02d87d51ab0", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "62265c232d227f19bbcc6252e1d339580ec57040c7318b25c0fd8bcfdd7ff985", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L02 Introduction to SE\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fb59083c-69c3-4755-a769-4cd8b99041bf": {"__data__": {"id_": "fb59083c-69c3-4755-a769-4cd8b99041bf", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5e01de27-ac07-485f-8ec8-aaa8727920fc", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "5ce7c966d78805a1352bdabcfcb59f662a7995e06be5510deccad52d5a7dcbb0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet. \n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes. \n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n\n* Material from these notes is obtained from various sources, including, but not limited to, the following: \n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009. \n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994. \n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011. \n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d34643fb-423f-4160-8127-37ba20bf905b": {"__data__": {"id_": "d34643fb-423f-4160-8127-37ba20bf905b", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1054260f-7162-43e1-87e2-4adc704520aa", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "2405bed36482e30b75a9a7277e64b9ba6d6bd0ef47c367549fec9bfd58dbfbb1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have an overview of software engineering practices \n* You understand the need for process control when building software \n* You understand the differences between incremental, iterative, and adaptive development approaches", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 249, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "22e59c78-09f1-4246-84b7-6fbbefbb6138": {"__data__": {"id_": "22e59c78-09f1-4246-84b7-6fbbefbb6138", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8f275a63-b889-4200-9f19-6b5e79099395", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "e1eb7a2e8093322b9baa6b2ea21e5b9935ac0cddc8bab61c44f1a1db9228b2be", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* \u27a1\ufe0f A short history of SE\n* Intro to software development lifecycle models\n - AdHoc & Waterfall Model\n - Development Approaches\n - Agile Manifesto", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7cf1409-e420-4b5d-8d5a-1fe3b6f93e8d": {"__data__": {"id_": "e7cf1409-e420-4b5d-8d5a-1fe3b6f93e8d", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f849f020-c8b2-47ef-a5ad-8a712f14a243", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "084c763a0f697d655890d80da2b3a4cd91c398768bc0700c3336eeaacced9350", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software systems\n\n* Many types of software systems exist:\n - Simple embedded systems\n - Complex search engines\n - Graphics-intensive games\n - \u2026\n* There is no common denominator/universal software to build them\n\n> All these systems need software engineering!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 264, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "69ce28e1-6a0d-40a2-80a4-53bec8d6878a": {"__data__": {"id_": "69ce28e1-6a0d-40a2-80a4-53bec8d6878a", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "51a40464-b60a-4af5-8ed7-0aeac71e3790", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "cecd5f312f754600ba65d1b36165ff6a18b98d6ce6d8e74e063a65c9140e60a1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software engineering\n\n> *Software engineering* is an **engineering discipline** that is concerned with **all aspects of software production** from the early stages of system specification through to maintaining the system after it has gone into use. \n> \n> - Ian Sommerville\n\n* SE is a **process** concerned with all aspects of producing software to solve real-world problems: specifying, designing, developing, analyzing, testing, deploying, and maintaining software systems \n* It needs to adhere to a set of engineering **principles** and **best practices** \n* **Involves both technical and non-technical skills**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "408fe7dc-92b5-4f10-a3bc-bc2989373c24": {"__data__": {"id_": "408fe7dc-92b5-4f10-a3bc-bc2989373c24", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "50ac2efc-012c-4509-834a-ed09ae8f63de", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "fe7dd1ca8c522405fa2ff5c2f623cc33d2154e136d5ac3caf454cfba691fc0a6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software engineering eras\n\n* \"Early days\" ~1945 \u2014 1950\n * ENIAC \n University of Pennsylvania, 1943 \u2014 1946\n\n[The image shows two black-and-white photographs of women operating the ENIAC computer. The first photo depicts three women working on a large, complex machine with many wires and components. The second photo shows two women standing in front of a large panel filled with numerous switches, dials, and cables.]\n\nhttps://penntoday.upenn.edu/news/eniacs-anniversary-nod-its-female-computers", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 503, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1cb034ee-b1f4-4619-84d5-9dbbcdde5a9d": {"__data__": {"id_": "1cb034ee-b1f4-4619-84d5-9dbbcdde5a9d", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d866a6a8-3bd0-464d-848c-abe58043d188", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "95b1e2c3f2c79016495979344e3d0eebc8acd2398f7c1e1965874cabe4c4699f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software engineering eras\n\n* \"Early days\" ~1945 \u2014 1950 \n - ENIAC \n University of Pennsylvania, 1943 \u2014 1946\n\n* **Software crisis** ~mid 1960s \u2014 mid 1980s \n - Very large software projects \n - Start of large commercial software applications \n - E.g., IBM System/360, FORTRAN, COBOL, Apollo \n - Margaret E. Hamilton & Anthony Oettinger coined the term \"Software Engineering\"\n\nMargaret E. Hamilton \nBorn: 1936 \nDeveloped software for NASA\u2019s Apollo program \nFounded two companies \nPresidential Medal of Freedom\n\nAnthony Oettinger \n1929 - 2022 \nWorked on information resources policy (Harvard) \nConsulted on NASA\u2019s Apollo moon-landing program", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 659, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0b1f4a46-922e-4d55-9d4d-c5e0b0211409": {"__data__": {"id_": "0b1f4a46-922e-4d55-9d4d-c5e0b0211409", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "87b2b43c-0df0-4eb3-9aea-59147a753c60", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "eb9c73a412dbd4e3d3f1e91b75ca7b1b075bbcaa0993abb6bf5cae47fb70762d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Software Crisis \u2014 Causes\n\n* Complexity of software systems \n* Increasing demand \n* Projects ran over-budget & -time \n* Low quality software \n* No standards \n* Lack of formalization \n* Unmanageable, difficult to maintain \n\n1st NATO Software Engineering Conference (1968) \nGarmisch-Partenkirchen, Germany \n\n> \"The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.\" \n> \u2014 **Edsger Dijkstra** (1972, *The Humble Programmer*)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 749, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80ab7cc7-5d4a-4438-9f55-306b0b8c1038": {"__data__": {"id_": "80ab7cc7-5d4a-4438-9f55-306b0b8c1038", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f2405322-6a69-49ab-9945-70f2c4a4c31c", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "d3e06198cfc571941cc161d65b7de458d71c0828a4b6cc20225a9d6dfff9d9db", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Software Crisis \u2014 Approaches\n\n* Reduce complexity\n* Improve communication\n* Introduce standards\n* CASE tools (computer-aided software engineering)\n* Define processes\n* Model-based engineering\n* Object-oriented programming\n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 232, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d45ed6a6-1de5-429c-8e27-b88b43011766": {"__data__": {"id_": "d45ed6a6-1de5-429c-8e27-b88b43011766", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f287c9f4-8311-4f48-8743-675111602dd0", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "58a9137da16061cb1a153227e6ea90d45e03baf3be7f5b4b4186b603b3b3a8e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Software Crisis \u2014 Today\n\n* There has been some progress, but some problems persist\n - Schedule / cost estimates are inaccurate\n - Fast pace\n - Productivity of developers does not keep up with demand\n - Customer expectations are not met\n - \u2026.\n\n\u2b07\ufe0f\n\n**Still a need for \"engineering\" the software process!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 315, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b3e6608b-393c-4629-91f8-ebc8cf32d140": {"__data__": {"id_": "b3e6608b-393c-4629-91f8-ebc8cf32d140", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a56deb37-fdb5-4992-8631-cc26f94c6811", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "bb40460a169a6d70c19c5152f46fb0d261e26ce98f7ca8bfd5b55802de0406e0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* A short history of SE\n* Intro to software development lifecycle models\n - AdHoc & Waterfall Model\n - Development Approaches\n - Agile Manifesto", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "148f4746-0472-4818-b762-cf8419471311": {"__data__": {"id_": "148f4746-0472-4818-b762-cf8419471311", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c9269bbc-a5c0-4847-871e-c48413c459f5", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "d69083552fea67fe4dbbcd19295734c0b04bf58e75fd7c53618792fbedd05c0a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Challenges in software development\n\n**Problem Statement** \nWe need a way so that people can get from one location to another using multiple means of transport, based on their available options and preferences.\n\n\u27a1\ufe0f ??? \u27a1\ufe0f \ud83e\uddd1\ud83c\udfff \ud83e\uddd1\ud83c\udffb \ud83e\uddd1\ud83c\udffc \ud83e\uddd1\ud83c\udffe \ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb1 \ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb3 \n**Enduser**\n\n\u2b07\ufe0f\n\nNeed for a **process**!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 289, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f4035c4f-dd38-4eaf-95d6-8bbaaec46ffe": {"__data__": {"id_": "f4035c4f-dd38-4eaf-95d6-8bbaaec46ffe", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a688981c-5fdd-4b87-90f9-4e5a7c7b9f2a", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "b22d41909227128a92d3120e4479170819008f180d59ad77039ab43ca87c52f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is a process?\n\n* **Series of steps** involving activities that take some **input**, constraints, and resources to produce an intended **output**\n* Involves a **set of techniques and tools**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 197, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7e4b2efc-b005-4b28-9303-39a1a3e7c40c": {"__data__": {"id_": "7e4b2efc-b005-4b28-9303-39a1a3e7c40c", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6ce55b5e-e69b-4764-91b4-0bf267aefb9c", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "ae1ce83ff3703557f3c751654a667e3f83fee8d2f59b82b4d85f0aed8479b567", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Code & Fix (**Ad hoc Model**)\n\n* Aka. *\"Build & fix model\"*\n* The product is constructed with minimal requirements, minimal or no specification, no attempt at design, and omitting testing\n* An initial product is built and then repeatedly modified until the user is satisfied\n\n```mermaid\nflowchart TD\n A[Build n-th version] --> B[Modify until user is satisfied]\n B --> C[Use]\n C --> B\n C --> D[final product]\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 426, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6967bae5-313b-4026-a70f-7c49d38ff1e6": {"__data__": {"id_": "6967bae5-313b-4026-a70f-7c49d38ff1e6", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dce7d637-fa63-4b5a-a7e3-a173d79e4d55", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "9506b7834a38214254baff76d0cddb7daee9bf1a4495ec41d92e91b5b68564a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Ad hoc Model\n\n* Pros\n - Little overhead\n - Quick progress\n - Useful for small, exploratory projects\n - Useful for small teams\n\n* Cons\n - No proper quality assessment\n - Work synchronization is not defined\n - Changes may be hard to incorporate\n - Unclear delivery and timing\n - \u2026\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n \n \n
Doing a lot of work but no real progress towards the goal
100%Productive WorkThrashing
0%Process
Beginning of ProjectEnd of Project
\n\n> Source: https://stevemcconnell.com/articles/the-power-of-process/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 866, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e05e2cda-ea97-4ec3-b289-f3c25ed78210": {"__data__": {"id_": "e05e2cda-ea97-4ec3-b289-f3c25ed78210", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "88fdec93-e525-4504-a951-124a7b7fb27d", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "48a2b1884c17746316246421c0240fd554a5ebf03703be389ba042bc301759cc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# *[Excursion]* Let\u2019s build a house!\n\n* Blueprint and requirements \n \u27a1\ufe0f Project Plan & Requirements\n\n* Foundation and architecture \n \u27a1\ufe0f System Design / Software Architecture\n\n* Construction phases \n \u27a1\ufe0f Development (Object Design)\n\n* Materials \n \u27a1\ufe0f Codebase, Tool Suite\n\n* Quality control and inspection \n \u27a1\ufe0f Testing, Deployment/Delivery\n\n* Interior design & occupant experience \n \u27a1\ufe0f User Interaction & Experience\n\n* Maintenance \n \u27a1\ufe0f Updates, Fixes, \u2026\n\n* Collaboration and Teamwork \n \u27a1\ufe0f Developers, Designers, Testers, Stakeholders, \u2026\n\n> These phases are similar to building a software system!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 609, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3d911852-496c-41c8-9b0e-d0e947f76d3e": {"__data__": {"id_": "3d911852-496c-41c8-9b0e-d0e947f76d3e", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0372323a-6121-416a-9281-85ba8271185f", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "64f983cbcd4b4bdca65aa97d95dcc0a5777738dd57494a9e8a469709fcd220c0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The software development process\n\n* Structured set of activities required to develop a software system\n* There are many different software processes!\n* Recurring stages:\n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n\n \n\n\n\n\n \n
Requirements specificationDesignImplementationVerification &
Validation
Evolution
What should the system do?How to organize the system?How to implement the system?How to test the system?How to change/maintain the system?
Risk ManagementRationale ManagementDeliveryConfiguration Management
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1183, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dd5dd3dc-9e12-4008-96c0-0512503f36d8": {"__data__": {"id_": "dd5dd3dc-9e12-4008-96c0-0512503f36d8", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8613a745-e3ad-428f-a3f4-f46d707a3be6", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "278146d6b25ae99e2de7cd808f715842d7cb07ac8251a52265ca3a7ee4941fe4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Waterfall Model\n\n\n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n
Project initiation
Concept exploration
Requirements
Analysis
Implementation
Verification & Validation
Deployment
Maintenance
\n\n* \"Introduced\" by Winston Walker Royce, 1970 \n* Early software development process adapted from manufacturing & construction processes \n* An activity needs to be completely finished before the next one begins \n\n**Project timeline** \u2192 \n\n*exemplary, simplified steps*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 901, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "613c648c-620d-42f5-948f-8866b19892ce": {"__data__": {"id_": "613c648c-620d-42f5-948f-8866b19892ce", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d67d9b9d-a347-4ebd-8c68-eab5e57d6a15", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "f93a5e1834ec2e5067e87a2696dd3b35cccc926c55d9d702c2f3be50994febb0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Waterfall Model \u2014 Considerations\n\n* Activity-centered lifecycle model \n - Linear and sequential execution of activities (development & management process) \n - All requirements activities are completed before system design activities \n - Goal: Never turn back \n* Simplistic view of software development \n - Progress is measured by the number of completed tasks \n* No overlapping or iterative activities \n* Schedules software development as a step-by-step process \n - Transforms user needs into code \n* The verification activity ensures that each activity does not introduce unwanted or delete mandatory requirements \n* **Suited for short, simple projects with well-understood requirements**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 711, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9e3dbff5-ebd7-4dac-be74-1111171328cc": {"__data__": {"id_": "9e3dbff5-ebd7-4dac-be74-1111171328cc", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d4bc8f5d-66d9-4d67-80df-5a54f94d49eb", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "755222dc350989c7b33a6dd6416a647e4587ebf67e07a7a06e0af148f550f5c0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* A short history of SE\n* Intro to software development lifecycle models\n - AdHoc & Waterfall Model\n - Development Approaches\n - Agile Manifesto", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce6351d7-0ac9-4266-ade0-e06225721be1": {"__data__": {"id_": "ce6351d7-0ac9-4266-ade0-e06225721be1", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e94de2b8-a1c9-401e-b46b-55842d2b42c8", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "f5a50499b591535a227d2f1ad12fe12d70402f157da1cd57490cdf6c4e5f18a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is change in software projects?\n\n* Deviation from initial project plan \n - Evolving requirements throughout the project \n* New insights \n* Stakeholder feedback \n* Challenges \n - Some problems are easier to solve than others \n - Environment \n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 262, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "838f6c59-bf15-4887-84f1-3593bcbb5af6": {"__data__": {"id_": "838f6c59-bf15-4887-84f1-3593bcbb5af6", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "07a578e6-45e9-42ab-a845-4e10000dfdbd", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "2aa92cb8ecc9ed7f47f48064814f25c2a38045494aa5b2c1cfc874c2d22fad7c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software lifecycle models & change\n\n* Software lifecycle models vary in their ability to address change\n - **Flexibility:** How can change be addressed?\n - **Responsiveness:** When can change be addressed?\n* Lifecycle model choice impacts its ability to handle the frequency of change\n* Frequency of change describes how often change occurs, depends on many factors", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 370, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5df98e36-fc29-4a6e-8947-a644905fd532": {"__data__": {"id_": "5df98e36-fc29-4a6e-8947-a644905fd532", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "223a0db6-4f51-4623-9c88-c6f1e3e57f3e", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "bf555388484dd71ae7764b232ddb5951b6154362624d99320ab8614303dec3ff", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Rough estimation of change frequency\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n
RarelySometimesFrequently
\n
\u2193 \u2193
\n
Sequential models
\n
Waterfall, V-Model
\n
\n
\u2193 \u2193 \u2193 \u2193
\n
Iterative models
\n
Spiral Model, Unified Process
\n
\n
\u2193 \u2193 \u2193 \u2193 \u2193 \u2193 \u2193
\n
Agile
\n
Scrum, Kanban, XP
\n
\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 747, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "05dd4dcf-3b28-46a1-8b4f-60a08bc0639d": {"__data__": {"id_": "05dd4dcf-3b28-46a1-8b4f-60a08bc0639d", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "290cf564-ff5f-4e14-aab0-e2daab98f2d8", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "e4b4539298c2c64cde06c9078a0ef3edf49150511ab5a85a4fd0f575bcb8465a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n * Build the system in small, usable sections\n * Each increment adds a defined set of functionalities\n * Works well when requirements are well-understood\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n \n
R1R2R3R4
Top down integration\u25a0\u25a0\u25a0\u25a0UI
\u25a0\u25a0\u25a0\u25a0Middleware
\u25a0\u25a0\u25a0\u25a0Data Access
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 737, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "019979f0-13a5-4bc5-9fc4-3267d007e25f": {"__data__": {"id_": "019979f0-13a5-4bc5-9fc4-3267d007e25f", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ffe8d2c3-f7b0-4546-a0b6-62af01debd44", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "a880da4f3f4e21f3f8cec7808409ab2cd51f775161b2f74f4a197073155cd25e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n * Build the system in small, usable sections\n * Each increment adds a defined set of functionalities\n * Works well when requirements are well-understood\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n
R1R2R3R4
UI
Middleware
Data Access
\n\n> Bottom-up integration \u2191", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 742, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2905d948-3972-4c07-a434-30536c23caf3": {"__data__": {"id_": "2905d948-3972-4c07-a434-30536c23caf3", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "744d61ac-3c3f-4bcd-a02a-75cd6e617007", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "4c49dfb19235d957d786f4e11d031073f48ab70c687ba88f44b3d142ddcb849c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n * Build the system in small, usable sections\n * Each increment adds a defined set of functionalities\n * Works well when requirements are well-understood\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n
R1R2R3R4
UI
Middleware
Data Access
\n\n> Vertical integration", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 739, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e67904c6-050b-4b49-8266-577114e62da7": {"__data__": {"id_": "e67904c6-050b-4b49-8266-577114e62da7", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f0ec5205-b0be-4aed-82df-6d032d3d95be", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "ef01a83f4c061cff99a99feed0b26253418f6df7eed0ef92815800527f30c8d3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n* **Iterative** development (**re-do something**)\n * Repeat development cycles on the same functionalities\n * Each cycle improves and refines the product (prototype)\n * Allows to incorporate stakeholder feedback\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n
R1R2R3R4
UI
Middleware
Data Access
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1067, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "263fa9d3-b7d7-4835-880b-8b61605e29e9": {"__data__": {"id_": "263fa9d3-b7d7-4835-880b-8b61605e29e9", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a43a5582-b664-4232-8cbd-e1a698c76529", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "5f2f4da117a97a5d459952dde3617c6ba876b65e58fbd4715d31bc8cac28962c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n* **Iterative** development (**re-do something**)\n* **Adaptive** development (**adjust to change**)\n - Highly flexible to changing requirements\n - Adjust based on learning from previous iterations\n - Works well for projects with high uncertainty and evolving projects\n\n> **First rule of usability:** \n> Don\u2019t listen, watch what people actually do \n> \u2014 Jakob Nielsen\n\n```mermaid\nflowchart TB\n subgraph R1[\"R1\"]\n direction TB\n UI1[\"UI\"]\n Middleware1[\"Middleware\"]\n DataAccess1[\"Data Access\"]\n end\n subgraph R2[\"R2\"]\n direction TB\n UI2[\"UI\"]\n Middleware2[\"Middleware\"]\n DataAccess2[\"Data Access\"]\n end\n subgraph R3[\"R3\"]\n direction TB\n UI3[\"UI\"]\n Middleware3[\"Middleware\"]\n DataAccess3[\"Data Access\"]\n end\n subgraph R4[\"R4\"]\n direction TB\n UI4[\"UI\"]\n Middleware4[\"Middleware\"]\n DataAccess4[\"Data Access\"]\n end\n\n %% Highlight R3 crossed out with text\n click R3 callback \"We don\u2019t need R3!\"\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1119, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "174119db-f271-44f2-b1a5-cb9c309ef103": {"__data__": {"id_": "174119db-f271-44f2-b1a5-cb9c309ef103", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7dddbbb6-98c9-40b3-9aa4-ee6d51fb5a10", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "f1f24bdd8a897c05a60f97fdfc2e01f8e87bd1f2f62c614cd83c5ea630bff754", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n \n
Delivery Frequency
Degree of Changelowhigh
PredictiveIncremental
low
highIterativeAdaptive (Agile)
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 832, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f1eb7004-5e6e-4969-9537-5405184494df": {"__data__": {"id_": "f1eb7004-5e6e-4969-9537-5405184494df", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d4d49f27-79ad-4678-a77c-2e4773879061", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "3cf6ecfd769f217f231f2c84d20558c6b9a1ed4597b1e59835d4103fbaea3d8e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n \n \n \n
Predictive
PlanAnalysisDesignCodeTestDeploy3 to 24 months
\n\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n \n
Iterative
PlanAnalysisDesignCodeTestDeployPlanAnalysis
DesignCodeTestDeployPlanAnalysisDesignCode
TestDeploy1 to 3 months1 to 3 months1 to 3 months1 to 3 months
\n\n\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n \n
Adaptive
IterationIterationIterationIterationIterationIterationIterationIteration
IterationIterationIterationIterationIterationIterationIterationIteration
IterationIterationIterationIterationIterationIterationIterationIteration
\n\n\n \n \n \n \n \n \n \n \n \n \n \n
PlanAnalysisDesignCodeTestDeploy1 - 4 weeks
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1787, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3df43b51-6aab-406b-9ebc-4f521cf1618b": {"__data__": {"id_": "3df43b51-6aab-406b-9ebc-4f521cf1618b", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "35e396a6-b1b3-4ba3-b8da-3e78d25e7c11", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "a45c2c6eed9bb8308b856410cddb31f2bb652089743dbb715957eaffe8366026", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* A short history of SE\n* Intro to software development lifecycle models\n - AdHoc & Waterfall Model\n - Development Approaches\n - Agile Manifesto", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "31584f26-5cf2-4a82-bdf1-884b1d66f78e": {"__data__": {"id_": "31584f26-5cf2-4a82-bdf1-884b1d66f78e", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5bf9f36f-1ffc-450e-ad32-5aa4ec0b074e", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "31a26074cfc6e2458e829cec88e9859cbe9f6468b84ce1b3dc2f0c5b4235b431", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Agile manifesto (2001)\n\n*We are uncovering better ways of developing software by doing it and helping others do it. \nThrough this work we have come to value:*\n\n**Individuals and interactions** over processes and tools \n**Working software** over comprehensive documentation \n**Customer collaboration** over contract negotiation \n**Responding to change** over following a plan\n\n*That is, while there is value in the items on the right, we value the items on the left more.*\n\nKent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, \nAndrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas\n\nagilemanifesto.org/\n\nBackground story: https://agilemanifesto.org/history.html", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 812, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "17a9411d-5b20-4b2b-b595-c710ed69773f": {"__data__": {"id_": "17a9411d-5b20-4b2b-b595-c710ed69773f", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "799365a7-246d-4db8-9743-423571ba73d4", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "ed6dbebb8acdc4b47ffa11bb6de29efacd87a16f13c7ffadab2381624da85375", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Agile methodology\n\n* Set of principles and practices for software development \n* Designed to accommodate change \n* Require a collaborative approach among cross-functional teams \n* Examples: \n - Scrum \n - Kanban \n - XP \n - Lean software development \n - Feature-driven development \n\n```mermaid\nflowchart LR\n Plan --> Design\n Design --> Develop\n Develop --> Test\n Test --> Deploy\n Deploy --> Review\n Review --> Plan\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4be4f840-841a-4a3f-8628-7e0c2ca1c2ca": {"__data__": {"id_": "4be4f840-841a-4a3f-8628-7e0c2ca1c2ca", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d0422eba-a342-4da4-a900-10f22e1af418", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "e2210c23fa6a3f690490617630b287fff995d31c2dd959b6b5532ac1d5d6a41e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Agile principles\n\n* **Continuously deliver** value to customers with early and frequent software releases \n* **Collaborate daily** across all team members, blending business and technical expertise \n* Foster a supportive environment for self-motivated teams, emphasizing direct communication \n* Focus on **delivering functional software** as a key progress indicator \n* Ensure the **development pace is sustainable** for long-term project health \n* Pursue technical excellence, good design, and simplicity \n* Engage in **regular self-assessment** to improve effectiveness and processes", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 594, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aa1f6aab-19dd-46e5-ba87-6dcf880a75e1": {"__data__": {"id_": "aa1f6aab-19dd-46e5-ba87-6dcf880a75e1", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1886b990-6e64-458b-a499-b0788432dc1b", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "77e8b8f11b0ca304bd0dc3861e9d64ce7e42a121e5f4dad55e972c1d38693c7b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Key characteristics\n\n* **Adapt to changing requirements**, even late in a project's development cycle\n* Agile projects are broken down into **small, manageable increments**\n - Each increment goes through multiple steps: planning, design, coding, and testing\n - An increments is usually referred to as a **\"sprint\"** (or an \"iteration\")\n* **Stakeholder involvement is important:** Regular feedback from customers or end-users is integrated into the development process\n* **Self-organizing and cross-functional teams**\n* **Continuous improvement** of the product, the process, and the team\n* **Frequent releases** of the product\n\nRetrospectives", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 647, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d3a05920-199c-4102-927c-3b9129e2c475": {"__data__": {"id_": "d3a05920-199c-4102-927c-3b9129e2c475", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8b750aba-9a8d-44cd-a6de-5bd835fe7668", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "a6ad4afb059cf31747d8cd1a0b29f44ff66b6758c72e2c0de58926fe5cc16d21", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Summary: Need for process control in software development\n\n*Software crisis (~1960s-1980s*)* \n* Cost overruns, delays, and unreliable software due to unstructured development\n\n## Need for Software Development Lifecycle Models:\n* Process control ensures quality, predictability, and scalability in software projects\n* Ad-hoc development: Code & fix model \n - Lack of planning, maintenance, and scalability \n - Suitable for small, well-understood projects\n* Waterfall Model: Sequential, rigid, suitable for stable requirements but not adaptable to changes\n* Incremental (add-on), iterative (re-do) vs adaptive (adjust for change) development approaches\n* Agile Manifesto: Focuses on collaboration, flexibility, and delivering incremental value", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 749, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d5c91e31-68dc-4b65-8d54-83e83cb0a283": {"__data__": {"id_": "d5c91e31-68dc-4b65-8d54-83e83cb0a283", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c8dd567f-3b26-42ba-a364-e1a6cc1aea91", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "049cde75307319d7ef74c1e69fac5ffa9456dcfc30485b7c194428d3fad50d5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Optional Readings\n\n* CS History \n - https://www.computerhistory.org/timeline/computers/\n* ENIAC \n - https://www.computerhistory.org/revolution/birth-of-the-computer/4/78 \n - https://spectrum.ieee.org/the-women-behind-eniac\n* Agile Manifesto \n - https://agilemanifesto.org/ \n - https://www.agilealliance.org/agile101/the-agile-manifesto/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 349, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "30188c2a-405e-4df6-aed8-a27c80572983": {"__data__": {"id_": "30188c2a-405e-4df6-aed8-a27c80572983", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "13989220-a054-4245-a93e-d6888b340135", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "b3bf52015c14804d1e9599028021f1b8ada59809e772bf524bc87528d0fe7abd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017\n* Agile Alliance, [https://www.agilealliance.org/agile101/the-agile-manifesto/])(https://www.agilealliance.org/agile101/the-agile-manifesto/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 335, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "54b3843d-c918-46aa-81c7-2d3a5d722bc5": {"__data__": {"id_": "54b3843d-c918-46aa-81c7-2d3a5d722bc5", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "697cfd63-29e2-4306-be1f-256208ad1dd6", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "293edf449526db0d65d9a599be8f70687a64e539026121b8802456e1eb5ddd60", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L02 Introduction to SE\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "67ecc16d-d2e1-40eb-b131-1937eb90bab2": {"__data__": {"id_": "67ecc16d-d2e1-40eb-b131-1937eb90bab2", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5da6453a-0764-4d06-bf7d-57dcc8aa8ffe", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "1303ba7fb01badab0977c6669ceb38b17d7c73efc1ecc6336474e8d8dcbe76c0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L11 Requirements Analysis & OOP Recap\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 185, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3cbf3fe0-7e29-42f5-95bb-3428ee9bde41": {"__data__": {"id_": "3cbf3fe0-7e29-42f5-95bb-3428ee9bde41", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "726dd4aa-a665-4d0f-88a8-14d896a7ffb3", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "262adb13d3fa743ccc14c6540e42125e837a4e3259751d6ab5d0e66928942b38", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "430b4321-1113-45e0-a4a1-1af224b6fd4b": {"__data__": {"id_": "430b4321-1113-45e0-a4a1-1af224b6fd4b", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e616ef71-4a0b-4cab-b1e3-11e4414e2198", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "5dbc80e93541431487ea2e82878ca765948c86159dc144f0e086cc833fbe71ed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You understand the purpose of an analysis object model\n* You can derive entity, boundary, and control objects from requirements / a problem statement", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64d8ac29-2b6d-41c3-add3-57d597854303": {"__data__": {"id_": "64d8ac29-2b6d-41c3-add3-57d597854303", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "04f11f87-b9d7-4add-93cd-fddd8ea9c421", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "f4c8f0608aa2a393e1bc826fdeef60245df6a8a8689fc1d5a00dcb62a82f977a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to Analysis\n - Recap: OOP\n* Analysis object model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 78, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f19ccd3-1aac-4728-9c49-874e3d58447a": {"__data__": {"id_": "5f19ccd3-1aac-4728-9c49-874e3d58447a", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "84fce7b1-c416-420e-8163-895208ff3738", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "3db94dcbfd84158c7adb42907007f008b5789551e9fbb69acbbb03eb54ba1a64", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements specification?\n\n[Left image: William Ely Hill, 1915, *My Wife and My Mother-in-Law* \u2014 a multi-stable image showing either a young woman or an old woman.]\n\n[Right image: Schr\u00f6der's stairs, 1858 \u2014 an ambiguous staircase drawing labeled with \"A\" and \"B\" indicating two possible perspectives.]\n\n> If these multi-stable images were a requirements specification, which model would you have constructed? \n> \u2192 Specifications contain **ambiguities**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 457, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "db5e19e5-f624-45ee-bbce-840acaf4ea40": {"__data__": {"id_": "db5e19e5-f624-45ee-bbce-840acaf4ea40", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f905dd96-3364-41de-b8d9-9b52b790479c", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "9951d3748542aaf9c55fa28d1f1f9235356df58064fd1ab1a18f8201dc39cd1a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Status in the SDLC\n\n* Requirements: What the system must do (functional + non-functional) \n* **Analysis**: Build models to understand and organize those requirements in the problem domain \n* Design: Translate analysis models into solution models (classes, architecture, code)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 280, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f3743615-5342-4734-93a1-58f5dc45fcef": {"__data__": {"id_": "f3743615-5342-4734-93a1-58f5dc45fcef", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "32d90b03-e4d9-4c78-a68b-9f2757d3c282", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "7b2fe39d5dd43d8c2b6af82743cf6a7c874989719a25ad468623199af7bd31ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Analysis \u2014 First step towards system architecture\n\n* Refine and validate requirements \n - Resolve ambiguities discovered during requirements stage\n\n* Identify analysis objects \n - From problem domain (e.g., Sinkhole, Report, Resident, City Official)\n\n* Define relationships \n - Associations, aggregations, generalizations among analysis objects\n\n* Model system behavior \n - Scenarios \u2192 sequence diagrams, state machines, activity diagrams\n\n* Partition the problem \n - Which responsibilities belong to which objects or subsystems?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 542, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "035ec694-4c56-447d-9d81-445ca6ddf586": {"__data__": {"id_": "035ec694-4c56-447d-9d81-445ca6ddf586", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d4e3cdfd-5afd-4465-b1b6-297275b2075b", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "1c84ff6f0c6f3f22333c84fa9e7ac986c35770a576b65f1132f4df9e21b95d4d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to Analysis \n - Recap: OOP \n* Analysis object model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 82, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "775d3e70-ba3e-4ee9-a4a3-937c85ca2944": {"__data__": {"id_": "775d3e70-ba3e-4ee9-a4a3-937c85ca2944", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c926d539-2327-463d-9e6e-e70ffe3abd2f", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "af7ce9591c0c2d30c0969226cf3024ae8b1ab23a2d0204d16550def88c097ed0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Object types\n\n> persistent information tracked by the system \nEntity \n**Sinkhole** \n(has location, status, reportedDate)\n\n> interaction between user and system \nBoundary \n**SinkholeReporter** \n(e.g., form; validates user input)\n\n> control tasks performed by the system \nControl \n**SinkholeReportController** \n(creates a new Sinkhole, saves it)\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 381, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "02218cea-5376-426a-99e9-93ec0e45bd3f": {"__data__": {"id_": "02218cea-5376-426a-99e9-93ec0e45bd3f", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cccca899-8ab8-4615-81b0-1dac5d48ed99", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "e6d5a284bb906fda643b4b4b195c4cc615e8ad14bc7f501681cfc49618be0460", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System (SiMCity) to address the issue of sinkholes within the city. The first version of SiMCity should enable **residents** and **city officials** to **report** sinkhole occurrences and **track** their locations.\n\nThe system should be easy to use, accessible through **web and mobile platforms**, and track sinkholes in real-time.\n\nResidents should be able to **view** sinkholes on a **map**, helping them to avoid such areas. It should also allow residents to report new sinkholes by **sending** in their **location** and **photographic evidence** for verification, or **call for help**. **City officials** can **remove** sinkholes from the **map** after they have been re-filled and repaired.\n\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and improve the city\u2019s ability to manage and mitigate the impact of these geohazards.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 957, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "94183481-7d55-4cc2-a5ce-fbed7497cf69": {"__data__": {"id_": "94183481-7d55-4cc2-a5ce-fbed7497cf69", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c0e197b3-ba58-4e4b-8214-20ea6bb78a63", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "c28eaf34050550de300ec7cdf1f9e67c3cebb1faca8d580ecf56158078044fb9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ExampleGrammatical constructUML element
sinkholeProper nounObject
residentImproper nounClass
trackAction verbOperation
is aBeing verbInheritance
has aHaving (verb)Aggregation
must have aModal verbConstraint
funAdjectiveAttribute
reportTransitive verbOperation
depends onIntransitive verbConstraint, class, association
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 801, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1469041f-0eb7-4286-90ea-e28a153a1b8e": {"__data__": {"id_": "1469041f-0eb7-4286-90ea-e28a153a1b8e", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dc1dc521-9838-4b9a-ad8d-70416b301089", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "84d81bc43f70959975e825e8dedc40d722542ea815ae71b459a10fafc8618dd8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Entity, control, and boundary objects\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
EntityControlBoundary
SinkholeSinkholeReporterWebPlatform
LocationSinkholeVerifierMobilePlatform
AreaAuthenticatorCityAuthority
UserMapControllerMapView
MapPhotoManagerStorage
PhotoNotifier
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 674, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a4df2723-367d-4aa4-9fb8-2f4b3037985c": {"__data__": {"id_": "a4df2723-367d-4aa4-9fb8-2f4b3037985c", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "19b71fcd-15d8-4271-a2a3-125f386bbc21", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "7a35141462ca5a6d42bd3d05a9ac4a054ccad0ece355a623fafd3a10605a17ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Encapsulation promotes security & modularity\n\n* **Purpose:** Hide internal details of an object and only expose the necessary functionality through public methods\n* New objects can be identified based on the system\u2019s requirements\n* Encapsulation means creating classes for such objects to define the characteristics by defining attributes and behavior by providing methods\n* Java supports encapsulation by using classes with `attributes for structuring` and `methods for describing functionality`\n\n> **Problem Statement:** \n> \u201cPizza lovers can `bake` pizzas with varying `sizes` and `toppings` and `check the expected time` until the pizza is ready.\u201d\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n
Pizza
size
toppings[ ]
bake()
calculateExpectedTime()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 872, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "68e68022-8735-4f93-83ce-df521ef92a1d": {"__data__": {"id_": "68e68022-8735-4f93-83ce-df521ef92a1d", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e09f0a03-a02d-4663-9d48-1bf00d5fdc4e", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "26a581093e7670d0d192e5dc00cc3854366a6da5d3b850254541ce77e248f910", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
Pizza
sizetoppings[]
bake()calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) {\n expectedTime += 5;\n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ecf2bc3c-4b78-4d2f-9e84-523d290b5f19": {"__data__": {"id_": "ecf2bc3c-4b78-4d2f-9e84-523d290b5f19", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "25e03c5c-4106-46c5-819b-5da441c12aa8", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "c1a74fdb626677a81b80065923616bc53e76e896490b0e14e7245face71f941c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
Pizza
sizetoppings[]
bake()calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) {\n expectedTime += 5;\n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d1d6223e-d11a-4aa4-900b-f883b02c8126": {"__data__": {"id_": "d1d6223e-d11a-4aa4-900b-f883b02c8126", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "99428655-c2f8-4f80-89ee-416f5a73c506", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "a36fb69c03c0d92c6dbbcb42155bb769eb1faab6f3311192c8543073cc8996a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n
Pizza
size
toppings[]
bake()
calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) {\n expectedTime += 5;\n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 805, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e36500f0-5eb1-480f-a09c-cebe16a60844": {"__data__": {"id_": "e36500f0-5eb1-480f-a09c-cebe16a60844", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a8b8a16d-03a1-417c-abae-fa999fefa8b9", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "097762b0937449004b56b543f22ed32a918c63ba4f3e33cd96f270d3242608ad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
Pizza
sizetoppings[]
bake()calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) {\n expectedTime += 5;\n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f13b708-06f7-4a63-af40-c35b59334a79": {"__data__": {"id_": "5f13b708-06f7-4a63-af40-c35b59334a79", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "620c0c64-71af-4f84-9bea-9cb655339ebf", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "3df5b5c89e3640fcb6559497fe1a8b79ccdc5758053ed30f2cef105543023ad0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
Pizza
size
toppings[]
bake()
calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\ud83c\udf55\ud83d\udd25\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) { \n expectedTime += 5; \n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 849, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bbc010b8-4a0d-4e97-b739-f966e45ff91d": {"__data__": {"id_": "bbc010b8-4a0d-4e97-b739-f966e45ff91d", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c4708dd5-68d4-4aae-8ccf-78ba5b0bb2e4", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "26a74ac42e4722c5d4ae278c1201a79295cee79963ee5afb0a7dc773ee9a8cc8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Inheritance creates common structure & behavior\n\n* **Purpose:** Create new classes by inheriting attributes & behaviors from existing classes \n* Establishes an inheritance hierarchy (also called a \"**taxonomy**\")\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n
Car
modelSuperclass
color
year
drive()
\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n
SportsCar
modelSubclass
color
year
maxSpeed
drive()
\n\n> Inheritance\n\n```java\nclass Car {\n String model;\n String color;\n int year;\n\n void drive() {\n System.out.print(\"vroom\");\n }\n}\n\nclass SportsCar extends Car {\n int maxSpeed;\n\n @Override\n void drive() {\n System.out.print(\"VROOM \ud83d\udca8\");\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1244, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e3c2fe52-ad60-4196-969d-fbe856fd3520": {"__data__": {"id_": "e3c2fe52-ad60-4196-969d-fbe856fd3520", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c2588257-46a5-4107-aab9-e30dfc2f039d", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "d570b4d52b8142c6d0e55549cea5fe974adf6e303b81aad87f70cea92cda055b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Classes vs. abstract classes\n\n* **Class**\n * An abstraction in the context of object oriented programming\n * A class encapsulates state and behavior\n\n* **Abstract class**\n * Cannot be instantiated\n * Define an abstract structure which holds common structure (state) or functionality (behavior)\n * Allows to create a blueprint for other classes without implementing all of the concrete methods and properties themselves \n \u2192 Greater code reusability and modularity\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n\n \n\n \n \n\n \n \n\n \n\n\n \n\n \n \n \n
Abstract superclass (italics)
<<abstract>>
Vehicle
modelcoloryear
drive() (Abstract method)
Inheritance
\n Car
\n numberOfTires
\n drive()
\n numberOfTires
\n drive()\n
\n Boat
\n numberOfSeats
\n drive()
\n numberOfSeats
\n drive()\n
Concrete method
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1301, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0fadaa87-845b-440a-9256-af5304735ecf": {"__data__": {"id_": "0fadaa87-845b-440a-9256-af5304735ecf", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ba7a052b-e731-4020-822a-b834a9201dcd", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "882ea979dda1e4afa896cbfd80348b7ff9ab7ac15bef176fe0391606ea9a6ac8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Generalization vs Specialization Inheritance\n\n* **Generalization:** A superclass defines common features \n* **Specialization:** Subclasses refine or extend the superclass with more specific features \n\n* An **abstract class** represents generalization: \n - There is shared data (attributes) and shared logic. \n - Subclasses are variations of a \"is-a\" relationship \n\n> \u2194 An **interface** defines shared functionality, role, or a \"contract\" across unrelated hierarchies \n\n**[Example - SiMCity]** Is a CityOfficial a special kind of Resident (specialization)? Or are Resident and CityOfficial both kinds of User (generalization)?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 636, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7ffde410-532e-43fb-8e2a-b52629a7b4cc": {"__data__": {"id_": "7ffde410-532e-43fb-8e2a-b52629a7b4cc", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c7475fab-c6f8-4a13-956a-ee42b4597bb6", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "8dc6276a0906721df58dbce4e5259542a3bf84a57d0448927bc957d044a70a4c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Polymorphism\n\n* *Poly* (= many) + *morph* (= forms) \u2192 \"many forms\"\n* Ability of an object reference to take on many forms\n* A super class reference (compile time) is used to refer to any specific subclass object (runtime)\n* Polymorphism allows us to mix methods and objects of different types in a consistent way\n* The polymorphism the object undergoes depends on the *when* & *what* part of the object is transforming\n - **When:** Compile-time vs dynamic\n - Compile-time polymorphism\n - Runtime polymorphism\n - **What:** Method vs object\n\n[Two images showing a transformation sequence of a character changing dress, illustrating polymorphism conceptually]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 667, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "37da0edb-cea7-4c0a-baa2-9c3e00c30027": {"__data__": {"id_": "37da0edb-cea7-4c0a-baa2-9c3e00c30027", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4f9fc753-4917-4a02-87a9-e3a23c6a9764", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "d7b5587bc426e54c3f8849e82ed963729f83e3e55826fa57c6cb32f72c86eb2e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example]\n\n```java\nif (type.equals(\"Cat\")) {\n Cat cat = new Cat();\n cat.makeSound();\n cat.describe();\n cat.showAnimation();\n} else if (type.equals(\"Dog\")) {\n Dog dog = new Dog();\n dog.makeSound();\n dog.describe();\n dog.showAnimation();\n} else {\n Cow cow = new Cow();\n cow.makeSound();\n cow.describe();\n cow.showAnimation();\n}\n```\n\n```java\n// \"Polymorphism\"\nAnimal animal;\nif (type.equals(\"Cat\")) {\n animal = new Cat();\n} else if (type.equals(\"Dog\")) {\n animal = new Dog();\n} else {\n animal = new Cow();\n}\nanimal.makeSound();\nanimal.describe();\nanimal.showAnimation();\n```\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 645, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "74916d55-4321-4e62-878f-fd732b83b0dd": {"__data__": {"id_": "74916d55-4321-4e62-878f-fd732b83b0dd", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c85615fe-eab1-4b76-8657-f4b59ca1cdf0", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "8aedc86d77bba47aa63dedb4ca354778c5831ae0558b080317a665d3a6e42e8a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Polymorphism\n\n```java\npublic abstract class Pancake {\n public abstract void cook();\n}\n\npublic class BlueberryPancake extends Pancake {\n @Override\n public void cook() {\n System.out.println(\"\ud83e\uded0\ud83e\udd5e\");\n }\n}\n\npublic class ChocolateChipPancake extends Pancake {\n @Override\n public void cook() {\n System.out.println(\"\ud83c\udf6b\ud83e\udd5e\");\n }\n}\n\npublic class PancakeMaker {\n public static void main(String[] args) {\n Pancake myPancake; // Compile time type\n\n myPancake = receiveOrder();\n myPancake.cook();\n }\n\n public static Pancake receiveOrder(Order order) {\n // Order type is based on user input\n // defined somewhere else\n if (order.getType().equals(\"Blueberry Pancake\")) {\n return new BlueBerryPancake(); // Runtime type\n } else {\n return new ChocolateChipPancake(); // Runtime type\n }\n }\n}\n```\n\n\n\n\n \n\n\n \n\n\n \n \n \n\n\n \n\n\n\n\n
Pancake
cook()
Blueberry PancakeChocolateChip Pancake
cook()cook()
\n\n> **Compile time type** points to the declared type of the variable (`Pancake myPancake;`).\n\n> **Runtime type** is the actual object type created at runtime (`new BlueBerryPancake()` or `new ChocolateChipPancake()`).\n\n----\n\nUniversity of Pittsburgh \n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1524, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "df3f39db-af4b-4003-a2f5-37b8606f399a": {"__data__": {"id_": "df3f39db-af4b-4003-a2f5-37b8606f399a", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f047a5c3-91c6-410f-8802-1a7a518cd5be", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "3e7821f6352f3f7d7de129c8dc004dacb1d623a49a13b47f39c176f80bcb87ef", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# OOP principles are tools that help us write better code\n\n* **Encapsulation/Reusability:** Encapsulating data and behavior allows for efficient code reuse across the application \n* **Maintainability:** OOP makes code modification and maintenance easier over time \n* **Scalability:** OOP allows code to scale with increasing complexity and new features can be added without breaking existing ones \n* **Abstraction:** OOP abstracts away complexity and allows developers to focus on essential aspects of the system \n* **Communication & Collaboration:** OOP enables easier collaboration", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 588, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "509f4580-14bc-46c7-b6f7-b51f99f08ab9": {"__data__": {"id_": "509f4580-14bc-46c7-b6f7-b51f99f08ab9", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a8f5e1c0-1477-4982-8b0f-eb310384510e", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "2020c3b725b64dc316c1afa5d3971a42e35c0d38d273275d25b3351e6d9040b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Best Practices\n\n* **Aim for high cohesion:** Ensure that each identified object has a well-defined purpose and responsibilities, promoting high cohesion within the classes\n* **Low Coupling:** Minimize dependencies and coupling between objects, aiming for a modular and maintainable system design\n* **Iterative Process:** The process may require multiple iterations to refine and validate the identified objects and their relationships as the requirements evolve\n* **Documentation:** Document the derived objects, their attributes, behaviors, and relationships in a structured manner, e.g., using class diagrams or entity-relationship diagrams\n* **Review and Validation:** Collaborate with stakeholders to review and validate the derived objects, ensuring they accurately represent the requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 800, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "779d0987-a343-4e99-a569-9f0e2cd6a793": {"__data__": {"id_": "779d0987-a343-4e99-a569-9f0e2cd6a793", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a148c81f-57e5-4ebb-8f75-a9338a4f350a", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "5646a3551aecb81a7e51a50ade7a8af6fb34e45ea357dc54ea8e0091a87ff145", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to Analysis \n - Recap: OOP \n* Analysis object model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 82, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ead8c55b-772d-41ef-bdfe-82354f1f8e9c": {"__data__": {"id_": "ead8c55b-772d-41ef-bdfe-82354f1f8e9c", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ccbdd146-08da-4e5e-bee7-c08456289b09", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "4900278a18ff83150524d1c174793ef81cbd277ca31ba3c49c44d6e897f9f47f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System model \u2014 overview\n\nSystem model\n\n----\n\n| Functional model \u2714\ufe0f | Analysis object model | Dynamic model |\n|---------------------|-----------------------|---------------|\n| Use case model \u2714\ufe0f | Class diagram | Activity diagram |\n| | | Communication diagram |\n| | | State chart diagram |\n\n----\n\n> **What key functionality can users access / does the system provide?**\n\n> **What are the key objects and their relationships in the problem domain?**\n\n> **How does the system behave over time and respond to events?**\n\n----\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 723, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49a9b64c-675a-4ef8-864a-11b91ac76fb0": {"__data__": {"id_": "49a9b64c-675a-4ef8-864a-11b91ac76fb0", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "575f2d11-d731-47d2-ac53-6fb66fcfba4f", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "b87f2ac440263726809e5d80bfc8542e5f4462267e7a4c87c1099338104fa5cb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The analysis object model (AOM)\n\n* Helps in **structuring the problem domain**\n - Ensures that the system accurately represents real-world concepts\n - Identify and structure important concepts, attributes, and associations (relevant to the system\u2019s requirements)\n - Bridges the gap between requirements and design\n - Reduces errors\n - Improves communication\n - Facilitates code structure and reusability\n* Often depicted using a **UML class diagram**\n - Typically, visibility is not displayed\n - Focus on the most important elements (7+-2!)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 551, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "87bd4044-c308-4483-acc5-75aa1ed6b0d2": {"__data__": {"id_": "87bd4044-c308-4483-acc5-75aa1ed6b0d2", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fc76e065-cd9a-477d-bdbc-8b4ee513fbb1", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "f3db8bb93db64684a0ca79eb6ff6575625dd948cc0d050851a398c3e68a8f8c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to think in an abstract way?\n\n1. What are the main **entities**? \u2192 **Objects** \n2. What **characteristics/properties** does the entity have? \u2192 **Attributes** \n3. What **functionality/behavior** does the entity provide/need? \u2192 **Methods** \n4. How do the entities **communicate** with each other? \u2192 **Associations**\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n\n \n\n \n \n
PizzaTopping
sizeAggregation,
\"consists of/has\"
nameMultiplicity, \"1-to-many\"
bake()amount
calculateExpectedTime()isVegetarian()
\n\n> Association", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 837, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2cd9ff24-6171-4849-ad82-89eb228db8ad": {"__data__": {"id_": "2cd9ff24-6171-4849-ad82-89eb228db8ad", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e9fee1c7-0f03-454e-8c49-4aa4c54980fe", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "b9e0fc3415f14ed11c88b4c292309846e8d83d110613da3169f2c35cd92386ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Elements I\n\n* UML class diagrams are structural models\n* Focus on the most important entities, their attributes and methods, and their relationships among each other\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n\n \n \n \n\n \n \n \n
ClassAssociation
\n \n\n\n \n \n \n \n \n\n\n\n \n
Car
model
color
drive()
inspect()
\n\n
Attribute\n \n\n\n \n \n \n \n \n\n\n \n
Degree
name
field
viewRequirements()
\n\n
**\n \n\n\n \n \n \n \n \n\n\n \n
Course
title
isRequired
checkAvailability()
\n\n
Methods
* means \"0..*\"
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1545, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce13a010-200c-44bc-bcf9-7c9aa5ff13bf": {"__data__": {"id_": "ce13a010-200c-44bc-bcf9-7c9aa5ff13bf", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4bd5360e-180f-4515-af78-3351033db5cd", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "05caa0292d9060b6456d6ca680b2beb9c29813c2cc2095348c063cf3b90de503", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Elements II\n\n| ClassA | \n|:------:| \n| ClassB | \n*ClassB inherits from ClassA* \n(Arrow with hollow triangle pointing from ClassB to ClassA indicating inheritance)\n\n----\n\n| <> | \n|:------------:| \n| ClassA | \n*abstract class*\n\n----\n\n| <> | \n|:-------------:| \n| ClassA | \n*interface*\n\n----\n\n| Notes are used to explain unclear aspects | \n|:-----------------------------------------:| \n| ClassA | \n(Dashed line connecting note to ClassA)\n\n----\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 571, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7f3bae4b-d9bf-4146-9a9d-97aec35c22a4": {"__data__": {"id_": "7f3bae4b-d9bf-4146-9a9d-97aec35c22a4", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b562eff1-8611-4a50-9cae-734517aaaba6", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "78e5711190f872941a4e0063d61f687874fc72f36436a96f85ff02db2873d2b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Basic Associations\n\n> **(uni-)directional;** ClassA can access ClassB (not vice-versa)\n\n```\nClassA \u2192 ClassB\n```\n\n> **bi-directional;** ClassA can access ClassB and vice-versa\n\n```\nClassA \u2014 ClassB\n```\n\n> 1 is the **default multiplicity**, does \n> **not** need to be explicitly modeled\n\n```\nClassA * ClassB\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 338, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4894c612-4f4b-44ef-b446-5ad895e0057c": {"__data__": {"id_": "4894c612-4f4b-44ef-b446-5ad895e0057c", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cd1debd8-c3aa-4c88-a574-047a013dada4", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "2ffa926e05bca8eb814f8710d970bb551398dc133914e254fd31eb69f33baa72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Associations Overview\n\n* Unidirectional association\n* Dependency\n* Bidirectional association\n* Inheritance\n* Aggregation\n* Composition", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 157, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a24daadd-e48d-48da-8f25-e666ab587b6e": {"__data__": {"id_": "a24daadd-e48d-48da-8f25-e666ab587b6e", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "92a40f89-2155-455d-b05a-89b585944884", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "0d53c42707aa862b5946325b4e0b3bdf1d002d9d37c5ee2d9c32cfca0641cdd9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Unidirectional association\n\n* Represents a (long-term) relationship where one element (client) relies on another element (supplier) in some way to perform its functionality\n* Can be categorized into various types: usage, realization, generalization, and constraint dependencies\n\n> Student has 0..many favorite pizzas \n> Unidirectional association\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
StudentPizza
namefavoritePizza *size
isHungryprice
isVegetarian
eat()bake()
calculateExpectedTime()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 844, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9cc3475c-5c68-4340-8bae-5c9059167510": {"__data__": {"id_": "9cc3475c-5c68-4340-8bae-5c9059167510", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a08a4887-bebe-4910-a559-29469701d3bd", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "91ddeb461cf35961c425823aaaeebb7afcc9e7c031a32d75f409eb95952ada90", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Dependency\n\n* Represents a (temporary) relationship where one element (client) relies on another element (supplier) in some way to perform its functionality\n* Can be categorized into various types: usage, realization, generalization, and constraint dependencies\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n \n \n
StudentPizza
name*size
isHungryprice
isVegetarianbake()
eat()calculateExpectedTime()
order()
\n\n> Student can access pizzas \n> dashed line = dependency. \n> solid line = long-time access", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 859, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bb1f9b28-0d9d-4ec6-a573-d388758012fa": {"__data__": {"id_": "bb1f9b28-0d9d-4ec6-a573-d388758012fa", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ae4786c2-b8c6-4b78-b1ce-4bc15a04f6cb", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "c54147b827fd7e6e4a76e7abb069f6ff72ceaa62525f190e026d980c30140b33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Bidirectional Association\n\n* Mutual relationship between two classes in which both classes have references to each other\n* Enables direct interaction and information exchange between the two classes in both directions\n* Bi-directional associations are used when both classes need to maintain a symmetrical connection and collaborate with each other\n\n\n \n \n\n\n\n \n
Student1*Order
\n\n> A student can place many orders, an order has a reference to one student", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f479c12-1239-46ae-bfb0-2f0aaf4de1c6": {"__data__": {"id_": "5f479c12-1239-46ae-bfb0-2f0aaf4de1c6", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "23fa9e9f-f346-4c66-a40a-6ebaac43783a", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "42f0d7406cb23fca12a5c6232ee2e8c99736f86d9bf98cc2d260ee5299139625", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Multiplicities\n\n* Specifies more details about an association\n* Indicates the number of objects that participate in an association\n* Also indicates whether an association is mandatory\n\n\n \n \n\n\n\n \n\n \n\n\n\n \n
Course1..610..*Student
City*Person
\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
MultiplicityMeaning
1Exactly 1 (default)
*Zero or more (unlimited)
0..*Zero or more (unlimited); same as *
1..*One or more
0..1Zero or one (optional)
2..42Specified range
2, 4, 6..8Multiple, disjoint ranges
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 995, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "32e57dc5-01cd-4151-a9fd-a5e3cdf34d99": {"__data__": {"id_": "32e57dc5-01cd-4151-a9fd-a5e3cdf34d99", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2d91f457-af7b-482c-87c2-bb6c5951eeb6", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "b9412f8887bbe6cfba0c6aab68112bf7dc8d0405750dc95ec8c5402f3af910a9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Take-Away:** Analysis object model (AOM)\n\n* Defines the system\u2019s structure \n - Models the most important objects \n - Defines relevant characteristics and behavior objects provide \n - Defines how objects interact with each other \n* High-level view of the problem! \n - Helps in defining a system early on without getting lost in too much detail", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 356, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "11fed973-8cb7-4715-b804-2eae5a034d4f": {"__data__": {"id_": "11fed973-8cb7-4715-b804-2eae5a034d4f", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4fdd7801-f42e-4314-a8bf-54ab7349d058", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "78698da552489c3422ee8f0319c987ff101a9e098f6dbdd8b1d113cb5fa5af84", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L11 Requirements Analysis & OOP Recap\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 174, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "30053f6f-ce96-4f66-9c43-b42aa00e65da": {"__data__": {"id_": "30053f6f-ce96-4f66-9c43-b42aa00e65da", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "562d8c23-f0de-4efa-bb19-3f8dbfc4e739", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "1a084ca44488de516da882f21c4d7bcd84ea1004581b4b2373485df440474db0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L18 MVC & Exercise\n\n## CS 1530 Software Engineering\n\nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 168, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ccac079e-86ed-4539-b564-d1652a576d38": {"__data__": {"id_": "ccac079e-86ed-4539-b564-d1652a576d38", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "329513eb-9027-4f77-a34d-9691b4b55308", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "c54b833fc7cbf59b192a9f857717e85648138c7ff41f0890f0b7dc2e8c40cc2f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet. \n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes. \n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n\n* Material from these notes is obtained from various sources, including, but not limited to, the following: \n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009. \n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994. \n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011. \n - [http://scrum.org/])(http://scrum.org/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1397, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f07195ae-53b0-43c7-a0b3-76b435a8879a": {"__data__": {"id_": "f07195ae-53b0-43c7-a0b3-76b435a8879a", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ecae360b-ffea-4275-9cf2-c9348f9912d1", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "e8d7572b5806fae0f9abc7f8e0901e86bf8109b2543d06063a97df03a4f37dc0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You can model a UML component diagram", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 58, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64fad90e-236d-415a-979b-20b9861e98b0": {"__data__": {"id_": "64fad90e-236d-415a-979b-20b9861e98b0", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ba46548f-c0e3-42b1-91bd-1edcfdb78f64", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "8a92a9a698c3657ce8e0548181953c8166c06e70d2a5c601a9ef83ec798a2a79", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* MVC\n* Model a subsystem decomposition", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 59, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "12a2437d-8cc5-47d2-82f0-e48af71d2762": {"__data__": {"id_": "12a2437d-8cc5-47d2-82f0-e48af71d2762", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ea686be8-b317-47f8-bce2-f5f58a9ff1b5", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "a26bc357f66b1594f400986d8bc274002a3ad91b0a0701c9667e3261fe210714", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# MVC architectural style \u2014 Motivation\n\n* **Problem:**\n - Systems with high coupling tend to require modifications to both boundary objects (presentation/user interface) and entity objects (data) when changes are made to either component\n - Developers cannot work in parallel (UI changes can be made affect the underlying data or logic)\n\n* **Solution:** decouple entity objects (data) from boundary objects (presentation)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3a9c156b-870c-4ffd-afa1-9f00d1604024": {"__data__": {"id_": "3a9c156b-870c-4ffd-afa1-9f00d1604024", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "118f7e01-ba0b-4828-ae19-5afe6c94367a", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "242ec8619c13b243ce27dab892dc3231529bc641535f7fd14b806f5586f4bc1b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# MVC architectural style \u2014 Definition\n\n* Model-view-controller (MVC) architectural style \n* MVC separates a system into three main components: \n - Model \u2014 processes and stores entity objects \n - View \u2014 displays data (boundary objects) to the user \n - Controller \u2014 Acts as an intermediary between Model and View \n* MVC promotes a clear separation of concerns and modularity in application design \n* Commonly used when developing user interfaces \n - Widely used in web development, desktop applications, mobile app development, \u2026 \n* Enhances code maintainability and reusability", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 590, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8c151c8e-d7e3-486b-9231-1518589aa755": {"__data__": {"id_": "8c151c8e-d7e3-486b-9231-1518589aa755", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "22b30988-4276-4847-a318-d41456d456a5", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "f1e832760c65bbe3c0cc578daa5a3547157bd2b597c9cdf4cfad26aef2da01e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# MVC architectural style \u2014 Overview\n\n* MVC typically operates on a cycle of user interactions\n* User input triggers actions within the Controller\n* The Controller updates the Model based on these actions\n* Changes in the Model are reflected in the View\n\n```mermaid\nflowchart TD\n A[request] --> B[\"\u00absubsystem\u00bb\\n**Controller**\"]\n B -->|update view| C[\"\u00absubsystem\u00bb\\n**View**\"]\n B -->|update model| D[\"\u00absubsystem\u00bb\\n**Model**\"]\n D -->|update model| C\n C -->|notify view of data change| D\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 503, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c2e416c5-4cdd-46b2-8336-2faa9387332e": {"__data__": {"id_": "c2e416c5-4cdd-46b2-8336-2faa9387332e", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "689e2465-c0e9-46d9-b7d0-9c7cab6543dd", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "e283be842cd3a028a14399df921e059d830337e52ff81134130bd0710420266d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] MVC\n\n* A website:\n - Model \u2192 HTML (handles knowledge of the website)\n - View \u2192 CSS (presentation)\n - Controller \u2192 browser (manipulates data through, e.g., user input forms)\n* Mac:\n - Locate a file (keynote presentation) in the file browser (Finder)\n - Open the file\u2019s info view\n - Open the file in keynote\n - Change the file\u2019s name (the new name is synced across all views)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 393, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "83ef3da2-6102-4e08-9b77-a835f3d2612a": {"__data__": {"id_": "83ef3da2-6102-4e08-9b77-a835f3d2612a", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ca7589bb-9b3e-4601-804d-28498152a7ad", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "ec0818acdb4472201e9a0e1a82e7e2e5b7d36c36c59986f14e375224bc24d8bd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Update File name\n\n| | | | |\n|---------------|---------------|---------------|---------------|\n| | **:Controller** | | |\n| | 2 \u2192 | | |\n| | 3: setName(newName) \u2193 | | |\n| **:InfoView** | 1: subscribeToFileEvents(file) \u2192 | **:Model** | \u2190 1: subscribeToFileEvents(file) |\n| \u2190 4: notifySubscribedViews(file) | 5: getName() \u2192 | \u2190 5: getName() | 4: notifySubscribedViews(file) \u2192 |\n| | | | **:KeynoteView** |\n\n> Informal UML communication diagram: \n> attributes & objects are missing", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 725, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ec91f4b-74db-481d-a982-0ac0afece875": {"__data__": {"id_": "9ec91f4b-74db-481d-a982-0ac0afece875", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "89e98d9b-081a-42da-9d8b-91abcd90bf1f", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "6ae6f071220dc1126d3c8e19379cbee907c3e0fd7ed0610f5f942df4e4a1b2a9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I18 - Order system (MVC) \u23f3 10min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\n* Review: [https://github.com/pitt-1530/order-app-mvc-refactor])(https://github.com/pitt-1530/order-app-mvc-refactor)\n* Describe how you would refactor the system to use the Model-View-Controller architecture", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 258, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0da49feb-0ae9-4576-adfc-a377ffbcb18c": {"__data__": {"id_": "0da49feb-0ae9-4576-adfc-a377ffbcb18c", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fd17eb08-fc20-4a90-a4a1-c3b4cf6b89bd", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "d3481f75e91b11b8e9b6627e938dcaec88821d8cf84c22909eb9ac020b760f5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Deisgn goals\n\n* Maintainability: Each component isolated \n* Modifiability: UI changes don\u2019t break logic \n* Reusability: Same model works for different interfaces \n* Parallel development: Teams work on different subsystems", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 227, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c2fd5c17-3cc3-4c56-b21d-2c71276d38ac": {"__data__": {"id_": "c2fd5c17-3cc3-4c56-b21d-2c71276d38ac", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4d98d23d-c42f-444b-9323-1fe97baca94e", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "8b7a172bd1572cac5d70792c4db6b28dc3e7d17b3ab11432b13abbb5bcbbcc75", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Variations of MVC\n\n> **Presenter replaces controller, View is passive**\n\n> **ViewModel exposes data, View updates automatically via data binding**\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
InputInputInput
ViewViewView
ControllerPresenterView Model
ModelModelModel
\n\n**MVC** \n(Model-View-Controller) \n\n**MVP** \n(Model-View-Presenter) \n\n**MVVM** \n(Model-View-Viewmodel)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 644, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b65d9d3f-b955-4f40-a185-1691256386fc": {"__data__": {"id_": "b65d9d3f-b955-4f40-a185-1691256386fc", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8ec72078-d96d-4747-a4e2-a7daacc332a8", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "e701bff97cb0eb3f30ef9d4c1f47d168856941f9958197028f51d0a69228361b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# When to use MVC\n\n* Multiple synchronized views of the same model \n* Exchangeable views and controllers \n* Exchangeability of look and feel \n* Considerations \n - Increased complexity \n - Potential for excessive number of updates \n - Close coupling of views and controllers to model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0173a25f-3887-49f8-b8ed-cd83682fcf81": {"__data__": {"id_": "0173a25f-3887-49f8-b8ed-cd83682fcf81", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "794ad272-a4d7-44e7-a22f-46892474b952", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "cb30e04d7528be39f7bf7af26a4eed135a0eba6deba6d5824b331e1b1d1c2d44", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* MVC\n* Model a subsystem decomposition\n\n[University of Pittsburgh logo]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 92, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "06958429-3c4d-4593-aaf7-0e5462b645e8": {"__data__": {"id_": "06958429-3c4d-4593-aaf7-0e5462b645e8", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a32121c2-7242-410d-98fe-f2d81d8e58c7", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "1ade6ff7d0d9049aa8ecdb80a502e91348b3ef78668b85ed91f3b473cb518f72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] UML component diagram\n\n* High-level view of the system\u2019s design using components and dependencies\n* A **UML component** represents a system part (such as classes, packages, or subsystems)\n* UML component diagrams are used for:\n - **Architectural design and planning**\n - Identifying system components and their interactions\n - Representing the high-level structure of a software system\n* Represented as a rectangle with a tabbed rectangle symbol inside\n\n----\n\n**Component notation examples:**\n\n```\n+---------------------+\n| \u00abcomponent\u00bb |\n| **Component** |\n+---------------------+\n```\n\n```\n+-----------------------------+\n| \u00absubsystem\u00bb | | |\n| **Subsystem1** |---|---|\n| | | |\n| +---------------------+ | | |\n| | \u00abcomponent\u00bb | |\n| | **Component** | |\n| +---------------------+ | | |\n+-----------------------------+\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 932, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "21f821af-52f4-403a-8f5d-afad4e403009": {"__data__": {"id_": "21f821af-52f4-403a-8f5d-afad4e403009", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "429c284f-4fe9-480e-ab19-d64267de40ec", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "cb84be251633265d661ae667b03f02c25a1de6058d528b14a1e6283b8835fee0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] UML interfaces\n\n* Define how components interact with each other or with external entities\n* Specify the required and provided services:\n\n * Lollipop: provided interface \u2b58\n\n * Socket: required interface \ud800\udd02\n\n * Dependency - - - - - - - - - \u2794 \n (a component depends on the implementation of another component)\n\n * A **port** specifies a distinct interaction point between the component and its environment \u2610\n - Ports are depicted as small squares on the sides of classifiers\n - Ports allow to group interfaces", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f4e80a2e-2667-473d-aa02-45c1d88d566c": {"__data__": {"id_": "f4e80a2e-2667-473d-aa02-45c1d88d566c", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9d36db84-fefe-4e6d-8034-9eb0e37c55fd", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "c3001970a23acfea666405edbf730aec4cc231409b420a61d4b14273a7042b17", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Subsystem decomposition \u2014 Steps\n\n1. **Identify functional components:** Break the system into functional components with distinct roles \n2. **Define interfaces:** Clearly specify how subsystems interact and exchange data \n3. **Organize subsystems:** E.g., organize subsystems hierarchically \n4. **Assign responsibility:** Assign responsibilities to each subsystem \n5. **Manage dependencies:** Minimize dependencies between subsystems", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d8a5dd12-6cd0-49cb-b8d0-442672752690": {"__data__": {"id_": "d8a5dd12-6cd0-49cb-b8d0-442672752690", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "42781a21-7024-426e-83ba-4af0bb4387b4", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "b4d7feac49c326d388314951d2399caaba500e626ca697bf76aa3f3f6f586bdd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** E-Commerce Ordering System\n\n\n \n \n\n \n\n\n \n\n \n\n\n\n\n \n\n \n \n \n\n \n \n \n\n \n\n\n\n \n
\n Authentication
\n userName
\n password

\n login()
\n logout()
\n resetPassword()\n
\n Customer
\n name
\n emailAddress
\n address\n
*\n Order
\n date
\n status

\n create()
\n confirm()
\n calculateTotal()
\n view()\n
\n Payment
\n amount

\n process()
\n pay()\n
\n Shipment
\n date
\n trackingNumber

\n schedule()\n
\n Product
\n name
\n description
\n price

\n add()
\n remove()
\n checkStock()\n
\n 1..20\n
\n PaymentMethod

\n select()\n
\n ApplePay

\n select()\n
\n Credit/Debit

\n select()\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1321, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7ecc1b24-59ed-4d3f-a551-0cea5992dfc0": {"__data__": {"id_": "7ecc1b24-59ed-4d3f-a551-0cea5992dfc0", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c9587028-18dc-4835-b0ca-e2efcf7e12a9", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "e08a13977ca67440731402493d8b6d1464f59d3d08546fb2ab9bb955628c3c99", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** E-Commerce Ordering System - Option I\n\n\n \n \n \n \n \n \n\n\n\n \n \n \n\n\n\n\n \n \n\n\n \n \n \n
\n Authentication
\n userName
\n password

\n login()
\n logout()
\n resetPassword()\n
\n Customer
\n name
\n emailAddress
\n address\n
\n Order
\n date
\n status

\n create()
\n confirm()
\n calculateTotal()
\n view()\n
\n Payment
\n amount

\n process()
\n pay()\n
\n Shipment
\n date
\n trackingNumber

\n schedule()\n
\n Product
\n name
\n description
\n price

\n add()
\n remove()
\n checkStock()\n
\n PaymentMethod

\n select()\n
\n ApplePay

\n select()\n
\n Credit/Debit

\n select()\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1694, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "33f6c40d-c4f2-495f-8c2f-845c693b5ad4": {"__data__": {"id_": "33f6c40d-c4f2-495f-8c2f-845c693b5ad4", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5200c3ed-ecad-48ae-a6fc-9e49e59a386d", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "72eb7a8fa8875336815dc4cb9835f79c7024ece8902035570186fe4d951023bd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] E-Commerce Ordering System - Option I\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
Authentication\u00absubsystem\u00bb
Customer
Order\u00absubsystem\u00bb
Payment
userNamenamedateamount
passwordemailAddressstatus
login()addresscreate()process()
logout()confirm()pay()
resetPassword()calculateTotal()
view()
\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
\u00absubsystem\u00bb
Inventory
ShipmentProductPaymentMethod
datename
trackingNumberdescriptionselect()
schedule()price
add()ApplePay
remove()select()
checkStock()Credit/Debit
select()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1529, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "150a6315-59c7-4fa7-b43d-7324a3584f1e": {"__data__": {"id_": "150a6315-59c7-4fa7-b43d-7324a3584f1e", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8ab592e8-7178-4b82-ab4e-e27508a21501", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "f7e53ac2da19139d50275cda0321ca7494f991dfa5d294023e34300c680c3be9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Pizza Ordering System\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n\n \n\n\n\n \n\n \n \n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
Baker*Order1..10Pizza
nameanchovyLovertotalPricedeliveryTypeaddExtraPineapple()
makePizza()complete()calculateExpectedTime()
Studentcreate()
nameemailAddress
address
notify()
\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n \n\n \n \n \n
Topping
nameamount
isVegetarian()
0..5
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n
HawaiianPizzaYinzerPizza
addExtraPineapple()addExtraFries()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1639, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0e93c412-e25d-4d00-9211-4cb84eb05d47": {"__data__": {"id_": "0e93c412-e25d-4d00-9211-4cb84eb05d47", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fc139323-ae7e-4f71-a7d9-089bb416b7d2", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "91303b63e46247e6bd480b334b5e517070fc6b7d07a51652ad2416279820645e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I18 In-class: Subsystem Decomposition \u23f3 15 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nDecompose your own or the provided pizza ordering system analysis object model into subsystems:\n\n* Create a **UML component diagram**\n* Decide on interfaces\n* Remember the SOLID principles!\n* **Review architectural styles: Can they solve a \"problem\"?**\n* Add a discussion (3-6 sentences / short bullet points) how your architecture follows SOLID and which architectural style(s) you have chosen and why.\n - Describe at least 3 SOLID principles", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 506, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8311fd1f-a666-4272-bcee-cc6e1c1d8ea0": {"__data__": {"id_": "8311fd1f-a666-4272-bcee-cc6e1c1d8ea0", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "880463eb-8565-4a9f-9410-927a8e0084eb", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "d472367c00c8eb2942ac1316fe4e6f614ce61f6d06552aa2a13aa2423a4bc3f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1f08ceaf-c39f-4fcd-b80d-e6c9c5f32cc4": {"__data__": {"id_": "1f08ceaf-c39f-4fcd-b80d-e6c9c5f32cc4", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "650aaba2-9ff6-49ca-9da9-5b6941e2e460", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "30eee91942114d19de897f0df884b340070fc9c925c55eba4f9939fbc53a1be3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L18 MVC & Exercise\n\n## CS 1530 Software Engineering\n\nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 168, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "728d4e1e-0912-474d-a13c-3dfec6840006": {"__data__": {"id_": "728d4e1e-0912-474d-a13c-3dfec6840006", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "65067d81-e80a-49d0-be37-bdbeb86477c3", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "975cdf3374a76dc5668adb121146af2eaa3d984bfe30d718ee1a6bb9c0ba0016", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 06\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 72, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "21c4e6f2-ea29-4288-ab32-78ef5e9c4283": {"__data__": {"id_": "21c4e6f2-ea29-4288-ab32-78ef5e9c4283", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1c3dbc12-03a8-4b38-8cfe-d3260f3aead2", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "520c48c1f1ab50dfb39302c6b37a5ace935f8dc2a21201c7b46562bdb63588d6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Language\n\n* A language is a set of strings \n - A set can be empty \n - A set can have a finite number of elements \n - A set can have an infinite number of elements \n\n* Regular or not regular? \n - If \\( L \\) is the empty language, \n - \\( L \\) is regular since we can express it using the regular expression \\(\\emptyset\\) \n - If \\( L \\) is finite \n $$\n L = \\{ s_1, s_2, s_3, \\ldots, s_n \\}\n $$ \n for a number \\( n > 0 \\) and \\( s_i \\) is a string, \n - \\( L \\) is regular since we can express it using the regular expression \n $$\n s_1 \\cup s_2 \\cup s_3 \\cup \\cdots \\cup s_n\n $$\n\n* So, a non-regular language must be an infinite language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 678, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0246f201-6f15-41dd-9ba3-e7c495e55454": {"__data__": {"id_": "0246f201-6f15-41dd-9ba3-e7c495e55454", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5f6e090d-e6ab-44ea-b030-63a0b81e5890", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "45b31987465e0446fb6c01de9397d1fe0b6ee9c41130234dedaf5466bfb98b2c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Infinite Languages\n\n* But an infinite language can be a regular language:\n - \\(\\{ w \\mid w \\text{ starts with a } 1 \\}\\)\n - \\(\\{ w \\mid w \\text{ contains } 011 \\text{ as a substring} \\}\\)\n - \\(\\{ w \\mid w \\text{ ends with } 0110 \\}\\)\n\n* Technically, there are infinite number of regular languages that contain infinite number of strings\n\n* There must be something that can be used to distinguish between regular languages and non-regular languages\n - By definition, a language is regular if there are some finite state machines that recognize it\n - Recall that the number of states of a finite state machine must be finite\n - But a finite state machine can accept an infinite number of strings", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 710, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "30acbbb4-283c-40e9-8aa4-7276852e265e": {"__data__": {"id_": "30acbbb4-283c-40e9-8aa4-7276852e265e", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3c25db0f-0efe-4641-85b8-41f37d34f11a", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "4a53e8b7663c93d0457ee74866c878dcdd287902b5f3b746d8058f68f86b7ee4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Infinite Languages\n\n* What is the special property that makes a finite state machine accepts an infinite number of strings? \n - A loop **in a path to an accept state**\n\n```\n 0\n \u250c\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 \u2502\n \u25bc \u2502\n( ) \u2192 ( ) \u2192 ( ) \u2192 ( )*\n 0 1 0 0\n \u2191 \u2193 \u2191\n 1 0 1\n \u2502\n \u25bc\n ( )\n 0\n```\n\n* Let \\( L(M) \\) be the language of the above machine \\( M \\): \n - \\( 10^*1 \\subseteq L(M) \\) \n - \\( 10^*1 = \\{11, 101, 1001, 10001, \\ldots \\} \\subseteq L(M) \\) \n In other words, \\( 10^i1 \\in L(M) \\) for any \\( i \\geq 0 \\) \n - \\( 00(1010)^*0 \\subseteq L(M) \\) \n - \\( 00(1010)^*0 = \\{000, 0010100, 00101010100, \\ldots \\} \\subseteq L(M) \\) \n In other words, \\( 00(1010)^i0 \\in L(M) \\) for any \\( i \\geq 0 \\) \n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 06", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 847, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aca39985-4dcc-4026-a08f-81cccc60b0fc": {"__data__": {"id_": "aca39985-4dcc-4026-a08f-81cccc60b0fc", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "80a26ef5-2152-438d-93f2-e99d0ff385e8", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "0ed35caa7d5eae5510476e0de40c6a5e571ca7e0650853ed2c74f096fa652080", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Infinite Languages\n\n* Given a DFA \\( M \\), how to detect that there is a loop in a path to an accept state? \n* Suppose a DFA \\( M \\) has 5 states and it accepts the string \n \\( w = w_1 w_2 w_3 w_4 w_5 \\) of length 5 \n\n ```\n (start) --w_1--> ( ) --w_2--> ( ) --w_3--> ( ) --w_4--> ( ) --w_5--> (accept)\n ```\n\n* There are the total of 6 current states but there are only 5 states \n - At least two of them must be the same (Pigeonhole principle) \n* Suppose the third and the fifth are the same state \n\n ```\n (start) --w_1--> ( ) --w_2--> ( ) --w_5--> (accept)\n ^ |\n | v\n w_4 w_3\n ```\n\n* $$ w_1 w_2 (w_3 w_4)^i w_5 \\in L(M) \\quad \\text{for any } i \\geq 0 $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 771, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "141316cd-14d2-4c33-ac98-10eebb3881bd": {"__data__": {"id_": "141316cd-14d2-4c33-ac98-10eebb3881bd", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f6f0a271-e590-4481-bbda-1673f8911af6", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "2d62b75a80dffad011a8132e2eb67a53866fd23c295b7d6c1d258cc0a8bebf14", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Infinite Languages\n\n* From previous example\n - Any strings of length **at least** 5 that is accepted by \\( M \\) will go through a loop\n - If we let \\( x = w_1 w_2 \\), \\( y = w_3 w_4 \\), and \\( z = w_5 \\), we can say that\n\n $$\n xy^i z \\in L(M) \\text{ for any } i \\geq 0\n $$\n\n* Given an infinite regular language \\( A \\), there is a finite state machine \\( M \\) that recognizes it\n - But we have no idea how many states it has\n - Suppose it has \\( p \\) states\n - Any string \\( s \\in A \\) of length **at least** \\( p \\) will go through a loop\n - \\( s \\) must be divided into \\( s = xyz \\) where \\( y \\neq \\varepsilon \\) such that\n\n $$\n xy^i z \\in A \\text{ for any } i \\geq 0\n $$\n\n where \\( y \\) is the string that takes you around a loop", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 770, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "993b1b15-d413-417b-80b4-bca6b3102572": {"__data__": {"id_": "993b1b15-d413-417b-80b4-bca6b3102572", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c92c3ba1-c02f-415f-bacf-a21086a8ca30", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "da848cdbe93d5d14c09a75892a58e663ac760645a4800dc46ef25fcfd46178cb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Consider the following language \n $$ A = \\{ w \\mid w \\text{ contains } 011 \\text{ as a substring} \\} $$\n\n* We need at least a 4-states DFA to recognize \\( A \\) \n* Let\u2019s find a string \\( s \\in A \\) of length at least 4 \n - Let \\( s = 0111 \\) \n - \\( x = 011, y = 1, z = \\varepsilon \\) \n - \\( xy^0z = xz = 011 \\in A \\) \n - \\( xy^1z = xyz = 0111 \\in A \\) \n - \\( xy^2z = xyyz = 01111 \\in A \\) \n - \\(\\cdots\\) \n - \\( xy^i z \\in A \\text{ for } i \\geq 0 \\) \n - Let \\( s = 0101011 \\) \n - \\( x = 0, y = 1, z = 01011 \\) and \\( xy^i z \\in A \\text{ for } i \\geq 0 \\) \n - \\( xy^0 z = xz = 001011 \\in A \\) \n - \\( xy^1 z = xyz = 0101011 \\in A \\) \n - \\( xy^2 z = xyyz = 01101011 \\in A \\) \n - \\(\\cdots\\) \n - \\( xy^i z \\in A \\text{ for } i \\geq 0 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 798, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f21b0a3a-dccc-4c2a-9272-21368cae552e": {"__data__": {"id_": "f21b0a3a-dccc-4c2a-9272-21368cae552e", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "82817cec-6ca7-41d4-b42f-2dae2f0b112a", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "458f9b8825d9c1c43f663727e1b7edca1c883478839f270f97097011d26cf325", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Pumping Lemma\n\n* The pumping lemma states that all regular languages has a special property\n* If a language lack this property, it is not a regular language\n\n> **Property** \n> All strings in the language can be **pumped** if they are at least as long as a certain special value, called the **pumping length**. Each such strings contains a section that can be repeated any number of times with the resulting string remaining in the language.\n\n* **pumped**: $$xy^iz$$ for any $$i \\geq 0$$ \n - We can insert the string \\(y\\) in between \\(x\\) and \\(z\\) any number of times but the result string is still in the language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "871ae3b0-de62-45ec-8d41-b378016a2bf7": {"__data__": {"id_": "871ae3b0-de62-45ec-8d41-b378016a2bf7", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "25e80a7a-ab4e-4d67-801b-ed1dd66320d5", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "ac2ea6da5a28ed3a4eb79e285991fa85e20af6872a7496170becc1347efa7cc1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Pumping Lemma\n\n> **Pumping Lemma** \n> If \\( A \\) is a regular language, then there is a number \\( p \\) (the pumping length) where if \\( s \\) is any string in \\( A \\) of length at least \\( p \\), then \\( s \\) must be divided into three pieces, \\( s = xyz \\), satisfying the following conditions: \n> 1. for each \\( i \\geq 0 \\), \\( xy^i z \\in A \\), \n> 2. \\( |y| > 0 \\), **and** \n> 3. \\( |xy| \\leq p \\). \n> \n> where \n> * \\( |s| \\) represents the length of the string \\( s \\) \n> * \\( y^i \\) means that \\( i \\) copies of \\( y \\) are concatenated together \n> - \\( y^0 \\) equals \\( \\varepsilon \\) but it does not mean that \\( y = \\varepsilon \\) \n> - \\( (010)^0 = \\varepsilon \\) but \\( 010 \\neq \\varepsilon \\) \n> - \\( xy^0 z = xz \\), \\( xy^1 z = xyz \\), \\( xy^2 z = xyyz \\), \\( xy^3 z = xyyyz \\), and so on", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 818, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "35ea75f3-c13e-4018-945f-872f6251d0b1": {"__data__": {"id_": "35ea75f3-c13e-4018-945f-872f6251d0b1", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e9acb4f4-88b6-4ea0-bc71-4e926e70a931", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "6b78e68a0cef586221824fbbafb7ddadad4c01b838aaf46378515b0b403a11eb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof of the Pumping Lemma\n\n* Let \\( M \\) be a DFA recognizing \\( A \\) and \\( p \\) (the pumping length) be the number of states of \\( M \\).\n* Let \\( s \\) be a string of length at least \\( p \\).\n - \\( s = s_1 s_2 \\ldots s_n \\) where \\( s_x \\in \\Sigma \\) and \\( n \\geq p \\).\n* Let \\( r_1, r_2, \\ldots, r_{n+1} \\) be the sequence of states of \\( M \\) when processing \\( s \\).\n - \\( r_1 \\) is the start state of \\( M \\).\n - When \\( s_1 \\) is processed, the state of \\( M \\) is changed to \\( r_2 \\), and so on.\n * \\(\\delta(r_1, s_1) = r_2\\)\n * \\(\\delta(r_2, s_2) = r_3\\)\n * \\(\\vdots\\)\n * \\(\\delta(r_i, s_i) = r_{i+1} \\quad \\text{for } 1 \\leq i \\leq n.\\)\n * \\(\\vdots\\)\n * \\(\\delta(r_n, s_n) = r_{n+1}\\)\n* **Note** that there is no restriction that \\( r_x \\) and \\( r_y \\) cannot be the same state.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 815, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d655f37f-761e-493f-91b7-eadfa023b346": {"__data__": {"id_": "d655f37f-761e-493f-91b7-eadfa023b346", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d80eceb6-ebb8-4704-84e2-c4e31aea85cc", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "b250783bbffcb0c54a985d72e6422ff5d956a661be6adfaab03da5084307f6a0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof of the Pumping Lemma\n\n* The sequence \\( r_1, r_2, \\ldots, r_{n+1} \\) consists of \\( n + 1 \\) states \n - Since \\( n \\geq p \\), the above sequence has at least \\( p + 1 \\) states. \n* Since the machine \\( M \\) has only \\( p \\) states, in the first \\( p + 1 \\) states of the sequence, at least two states \\( r_j \\) and \\( r_l \\) must be the same state. \n - Let \\( r_j \\) be the first occurrence of the repeated state \n - Let \\( r_l \\) be the second occurrence of the repeated state in the above sequence. \n - **Note** that \\( j < l \\). \n* Since \\( r_l \\) is in the first \\( p + 1 \\) states of the sequence \\( l \\leq p + 1 \\). \n* Let \n - \\( x = s_1 \\ldots s_{j-1} \\) \n - \\( y = s_j \\ldots s_{l-1} \\) \n - \\( z = s_l \\ldots s_n \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 749, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d247f619-fde8-40e2-8b3e-5fd1259ae8fe": {"__data__": {"id_": "d247f619-fde8-40e2-8b3e-5fd1259ae8fe", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3bd05c2a-98f0-43bb-9c18-068045afbd73", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "49655146bb810e1b8bc09f2117d8d0fe9b421cc14cc496497dd2e39a08230c00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof of the Pumping Lemma\n\n* If \\( M \\) accepts \\( s = s_1 s_2 \\ldots s_n \\) and \\( s = xyz \\),\n - \\( x \\) takes \\( M \\) from \\( r_1 \\) to \\( r_j \\),\n - \\( y \\) takes \\( M \\) from \\( r_j \\) to \\( r_l \\), and\n - \\( z \\) takes \\( M \\) from \\( r_l \\) to \\( r_{n+1} \\)\n\n where \\( r_{n+1} \\) is an accept state.\n\n* Let\u2019s check all conditions of the pumping lemma \n 1. Thus \\( M \\) accept \\( xy^i z \\) for \\( i \\geq 0 \\). \n 2. Since \\( j < l \\), \\( |y| > 0 \\). \n 3. Since \\( l \\leq p + 1 \\), \\( |xy| \\leq p \\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 518, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "81bf18d2-00c6-4ddc-a842-5f55ccc7a982": {"__data__": {"id_": "81bf18d2-00c6-4ddc-a842-5f55ccc7a982", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a2824579-7f5c-4154-ad0c-5f4a8497bb6f", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "ddf81baa3d939d34e5670b875109ec02d2747fbd8bcd21e360f3eaeb19c66b26", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to use the Pumping Lemma\n\n* To check whether a language \\( B \\) is **not** regular using the Pumping Lemma, we use prove by contradiction\n - Assume that \\( B \\) is regular\n - There exists a machine \\( M \\) with \\( p \\) states that recognizes \\( B \\)\n - Select a string \\( s \\in B \\) of length at least \\( p \\) so that the conditions 1, 2, and 3 of the pumping lemma lead to a contradiction\n\n* **Notes**\n - The choice of \\( s \\) must involve \\( p \\) to ensure that \\( s \\) has length at least \\( p \\) (e.g., \\( s = 0^p011 \\), \\( s = a^p b a^{2p} \\) or \\( s = b^{p+1} a^p b \\))\n - It is possible that some choices of \\( s \\) do not produce contradiction. **If we do not get a contradiction, we have not proved anything yet**\n - Once you pick an \\( s \\), nothing tells us what \\( x \\), \\( y \\), and \\( z \\) should be. **We have to show that we must get a contradiction, no matter what \\( x \\), \\( y \\), and \\( z \\) are, as long as they satisfy conditions 1, 2, and 3.**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 981, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "467558c3-e094-43dc-b88e-d59b2009928c": {"__data__": {"id_": "467558c3-e094-43dc-b88e-d59b2009928c", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "06c7b0d7-c250-47a7-b208-4988b241d811", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "f526e58dfb9a5efb7d564e5de9070e75068601fce121d48f1ed06b95e92f9f2f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that $$B = \\{0^n 1^n \\mid n \\geq 0\\}$$ is not regular.\n\n* Assume that $$B$$ is regular. In other words, there exists a machine $$M$$ with $$p$$ states that recognizes $$B$$.\n - There are infinite number of strings in $$B$$ of length at least $$p$$\n - Just pick one (for now)\n* Let $$s = 0^p 1^p$$. Note that $$s \\in B$$ and $$|s| = 2p \\geq p$$.\n - The pumping lemma says there are strings $$x, y,$$ and $$z$$ such that $$s = xyz$$ satisfying the conditions 1, 2, and 3\n* Recall that there are multiple ways to divide $$s$$ into $$x, y,$$ and $$z$$ such that $$xyz = s = 0^p 1^p$$\n - Examples:\n * $$x = \\varepsilon, y = 0, \\text{ and } z = 0^{p-1} 1^p \\quad \\Rightarrow \\quad xyz = \\varepsilon 0 0^{p-1} 1^p = 0^p 1^p$$\n * $$x = 0^2, y = 0^3, \\text{ and } z = 0^{p-5} 1^p \\quad \\Rightarrow \\quad xyz = 0^2 0^3 0^{p-5} 1^p = 0^p 1^p$$\n * $$x = 0^p 1, y = 1, \\text{ and } z = 1^{p-2} \\quad \\Rightarrow \\quad xyz = 0^p 1 1^{p-2} = 0^p 1^p$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 968, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "497e79e3-be9e-40b2-8edb-a5996c71a4c2": {"__data__": {"id_": "497e79e3-be9e-40b2-8edb-a5996c71a4c2", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b0e5baa2-f02b-4bfc-9d28-1b2505e3f73e", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "4bf9db522c66f39776d82eda7764e28e8dcb489a5dd01850a2feee0f3e77da0c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\)\n\n* Since there are multiple ways to divide \\( s \\), we are going to focus on all possible ways to divide \\( s \\) into \\( x \\), \\( y \\), and \\( z \\) satisfying only conditions 2 and 3 first\n - We will try to get a contradiction from the first condition\n* The condition 3 says \\( |xy| \\leq p \\)\n - Since \\( s \\) starts with \\( p \\) 0s, to satisfy this condition, \\( x \\) and \\( y \\) must be strings that contain only 0s\n - If \\( x \\) contains one 1, for \\( s = 0^p 1^p = xyz \\), \\( |x| \\) is already \\( p + 1 \\)\n $$\n |xy| = |x| + |y| = (p + 1) + |y| > p\n $$\n - If \\( y \\) contains one 1, for \\( s = 0^p 1^p = xyz \\), \\( |xy| \\) is already \\( p + 1 \\)\n* Formally, to satisfy condition 3\n - \\( x = 0^j \\) for some \\( j \\geq 0 \\)\n - \\( y = 0^k \\) for some \\( k > 0 \\)\n - \\( k > 0 \\) makes \\( |y| > 0 \\) (satisfying condition 2)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 898, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6a9babf7-2595-4eaf-a5f2-6791b4523678": {"__data__": {"id_": "6a9babf7-2595-4eaf-a5f2-6791b4523678", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2d97bbc7-d34d-4676-9c49-2bebce8cde61", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "2c08f0fc97dc465086fd2b43f6aedf6296d41306f419089ff390162ebf4c319e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\)\n\n* Now we have \n - \\( x = 0^j \\) for some \\( j \\geq 0 \\) and \n - \\( y = 0^k \\) for some \\( k > 0 \\) \n* To make \\( xyz = s = 0^p 1^p \\), \\( z \\) must be \\( 0^{p-(j+k)} 1^p \\) \n\n$$\nxyz = 0^j 0^k 0^{p-(j+k)} 1^p = 0^{j+k+p-(j+k)} 1^p = 0^p 1^p\n$$\n\n* Condition 1 says that \\( xy^i z \\in B \\) for any \\( i \\geq 0 \\) \n - We just need to find an \\( i \\) such that \\( xy^i z \\notin B \\) \n - Let \\( i = 0 \\) \n\n$$\nxy^0 z = 0^j (0^k)^0 0^{p-(j+k)} 1^p = 0^j 0^{p-(j+1)} 1^p = 0^{p-k} 1^p\n$$\n\n* For \\( 0^{p-k} 1^p \\) to be in \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\) \n - \\( p - k \\) must be equal to \\( p \\) \n - \\( k \\) must be 0 to make \\( p - k = p \\) but \\( k \\) cannot be 0 \n - Contradiction \\(\\implies B\\) is not regular", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 773, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ddc3920e-1495-4f90-a987-3e4e03b4094a": {"__data__": {"id_": "ddc3920e-1495-4f90-a987-3e4e03b4094a", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c96dd937-7ac2-4451-ad25-f023d0883c0a", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "4bc5bbcbad965c0d6f00de823a317fe857f1fdc080e15bc1f5fcabfc8d4ad347", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\)\n\n* There are multiple \\( i \\)s that can lead to a contradiction \n - But \\( i \\) should not be 1 since \\( xy^1z = xyz = s \\in B \\) \n* Let \\( i = 2 \\)\n\n$$\n\\begin{aligned}\nxy^2z &= 0^j (0^k)^2 0^{p-(j+k)} 1^p \\\\\n &= 0^j 0^k 0^k 0^{p-(j+1)} 1^p \\\\\n &= 0^{p+k} 1^p\n\\end{aligned}\n$$\n\n* For \\( 0^{p+k} 1^p \\) to be in \\( B \\) \n - \\( p + k \\) must be equal to \\( p \\) \n - \\( k \\) must be 0 to make \\( p + k = p \\) but \\( k \\) cannot be 0 \n - Contradiction \\(\\implies B\\) is not regular \n* In this example, any \\( i \\neq 1 \\) will give you a contradiction", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 614, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "347f96c7-eaf6-47b0-8418-e85e3b6ba4f4": {"__data__": {"id_": "347f96c7-eaf6-47b0-8418-e85e3b6ba4f4", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "830305c3-609b-4801-9adc-005c67d22cc6", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "208aa82e3992d7f287d5a71009054cb01e141e24e81d4412bb31649f55a7be5d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: $$B = \\{0^n 1^n \\mid n \\geq 0\\}$$\n\n* There are multiple strings \\( s \\) of length at least \\( p \\) that work for this example\n* Example: \\( s = 0^{2p} 1^{2p} \\)\n - This this string \\( s \\), use exact same proof where \\( x = 0^j \\) for any \\( j \\geq 0 \\), \\( y = 0^k \\) for any \\( k > 0 \\), and \\( z = 0^{2p-(j+k)} 1^{2p} \\)\n* Example: \\( s = 0^{\\frac{p}{2}} 1^{\\frac{p}{2}} \\)\n - This one is a little bit harder since condition 3 does not help much\n - There are three possibility for the string \\( y \\)\n * \\( y \\) contains nothing but 0s \\(\\left(y = 0^k \\text{ for some } k > 0\\right)\\) contradiction because \\( xy^2 z \\) will have more 0s than 1s\n * \\( y \\) contains some 0s and 1s \\(\\left(y = 0^k 1^m \\text{ for some } k,m > 0\\right)\\) contradiction because \n \\[\n xy^2 z = 0^j 0^k 1^m 0^k 1^m 1^{\\frac{p}{2} - m} \\notin B\n \\]\n * \\( y \\) contains nothing but 1s \\(\\left(y = 1^k \\text{ for some } k > 0\\right)\\) contradiction because \\( xy^2 z \\) will have more 1s than 0s", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1011, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8aad0ff2-ae77-4639-9fea-67d0bb34374e": {"__data__": {"id_": "8aad0ff2-ae77-4639-9fea-67d0bb34374e", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f9abceb8-bdf5-4600-a217-efd48276f962", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "971c03e4df8b6205d13bc06d45f24839950318840c6e944917dd8b94612ee2fe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Rule of Thumb\n\n* Pick a string \\( s \\) in the language of length at least \\( p \\) such that it starts with at least \\( p \\) of the same symbol\n - \\( 0^p 1^p \\)\n - \\( 0^{2p} 1^{2p} \\)\n* Condition 3 will help reducing the amount of proofs that you have to do", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 261, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a2c1c819-1ab6-4eb8-a613-69663a3453fc": {"__data__": {"id_": "a2c1c819-1ab6-4eb8-a613-69663a3453fc", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dbc6a8ca-6079-4a3f-9f79-ef586620a4ab", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "4401d264b32ea801a52035c47adab53a3289c071c2ea461ce23518c538206b2d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Some Incorrect Proofs: \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\)\n\n* Let \\( s = 000111 \\) \n - \\( s \\) does not have length at least \\( p \\) (\\( p \\) can be any positive number) \n* Let \\( s = 0^p 1^{2p} \\) \n - \\( s \\notin B \\), cannot use the Pumping lemma \n* Let \\( s = 0^p 1^p \\) and \\( x = 0 \\), \\( y = 0^{p-1} \\), \\( z = 1^p \\) \n - This only shows one way of dividing \\( s \\) into \\( x \\), \\( y \\), and \\( z \\) such that \\( s = xyz \\) \n - There are multiple ways \n - Need to show them all by using variables (e.g., \\( 0^j \\), \\( 0^k \\), etc) \n* Let \\( s = 0^p 1^p \\) and \\( x = 0^j \\), \\( y = 0^k \\), and \\( z = 1^p \\) \n - \\( xyz = 0^j 0^k 1^p = 0^{j+k} 1^p \\neq s = 0^p 1^p \\) \n - If you say \\( j + k = p \\), it is still incorrect \n - You only show all possible ways such that \\( s = xyz \\) where \\( z = 1^p \\) \n - But \\( z \\) can have some 0s as well", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 876, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c2863b92-e1f7-4b40-9088-ed90b8087a05": {"__data__": {"id_": "c2863b92-e1f7-4b40-9088-ed90b8087a05", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "471e4d15-b9dd-4fc2-a696-b406755c55df", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "3e1f72b5042e6f4eb7d737dbd8358501d8ce0ca8c3cf1652392842dbd6fa51c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Show that \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\) is not regular\n\nAssume that \\( B \\) is regular. Since \\( B \\) is regular, the Pumping lemma says that for any string \\( s \\in B \\) of length at least \\( p \\), \\( s \\) can be divided into \\( s = xyz \\) satisfying the following conditions:\n\n1. \\( xy^i z \\in B \\) for any \\( i \\geq 0 \\) \n2. \\( |y| > 0 \\) \n3. \\( |xy| \\leq p \\) \n\nLet \\( s = 0^p 1^p \\). Since \\( s \\) starts with \\( p \\) 0s, to satisfy the third condition, \\( x \\) and \\( y \\) are strings that contain nothing but 0s. In other words, \\( x = 0^j \\) for any \\( j \\geq 0 \\), and \\( y = 0^k \\) for any \\( k > 0 \\). Note that \\( k \\) must be greater than 0 because \\( |y| = |0^k| = k \\), and the condition 2 says that \\( |y| > 0 \\). Since \\( x = 0^j \\) and \\( y = 0^k \\), \\( z = 0^{p-(j+k)} 1^p \\). Let \\( i = 0 \\). We have\n\n$$\n\\begin{aligned}\nxy^i z &= xy^0 z \\\\\n &= xz \\\\\n &= 0^j 0^{p-(j+k)} 1^p \\\\\n &= 0^{p-k} 1^p\n\\end{aligned}\n$$\n\nFor the string \\( 0^{p-k} 1^p \\) to be in \\( B \\), the number of 0s must be equal to the number of 1s. In other words, \\( p - k \\) must be equal to \\( p \\). This requires \\( k \\) to be 0. But since \\( k \\) must be greater than 0, \\( xy^0 z \\notin B \\) \u2014 contradiction. Therefore, \\( B \\) is not regular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1265, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49cb22d8-d0c8-475b-b601-b153020a5f74": {"__data__": {"id_": "49cb22d8-d0c8-475b-b601-b153020a5f74", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "acffaf91-caa0-4d73-a07d-c749c5bcda6f", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "e4121c9f72d5334c4754a235a6f765fa9a27f61aeac3106d006ceb49028c465c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L07 Requirements Elicitation II\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 179, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f9b24bb6-fdc3-45ee-97ca-36ae4e970830": {"__data__": {"id_": "f9b24bb6-fdc3-45ee-97ca-36ae4e970830", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6f2844c6-fd21-482c-b18c-3dbb1b3d3520", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "3b1d40c90888f4058993d9d39071e88ee9456d6415ea3fc6879ee19024de3e55", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet. \n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes. \n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n\n* Material from these notes is obtained from various sources, including, but not limited to, the following: \n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009. \n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994. \n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011. \n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fe17e153-46df-46b9-86eb-0008f84b9722": {"__data__": {"id_": "fe17e153-46df-46b9-86eb-0008f84b9722", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fab66206-335d-4130-bf81-df3daaacbd2a", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "19f6c5c53578047d587cdee2725107df7448e0d9e0f7a01db3081a74dfd40ff8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have a deeper understanding of functional requirements\n* You can define non-functional requirements\n* You can define constraints", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 153, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "217bf5e2-c5b9-4b63-802d-556058a0085f": {"__data__": {"id_": "217bf5e2-c5b9-4b63-802d-556058a0085f", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "91a0e099-9352-43c9-be28-b097c6948ccd", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "d258fe920f955145baaefa83e56680f67f322ece9ae5949c63c43aeeaa7d3dca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Deriving requirements\n - [Recap] Deriving functional requirements\n - Non-functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 120, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3eba1c17-a17e-4c47-822c-e928c296572b": {"__data__": {"id_": "3eba1c17-a17e-4c47-822c-e928c296572b", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e373490c-63ab-4a0a-9468-52bb59feb4eb", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "5b65523af85631f074573cda0557bda6a9206030a44c798f776b2dd4744a3ef0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Goals of Requirements Elicitation\n\n* Define the **problem**: Understanding the stakeholders\u2019 real needs (not just what they think they need) \n* **Avoid ambiguity**: Requirements should be clear, testable, and unambiguous \n* **Build a shared understanding**: Align developers, customers, and other stakeholders \n - Users, endusers, customers, maintainers, support staff, etc.\n\n> Proper requirements elicitation avoids rework, saves money, and keeps projects on track.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 473, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "59ca93af-7d14-40e9-9abf-4f523f3967ae": {"__data__": {"id_": "59ca93af-7d14-40e9-9abf-4f523f3967ae", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ffa06323-0f28-4158-858e-420adb2b52ee", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "49662bfe000cf4c13eb790b2510fca690db9ea42422a8ae9a4b6a5ad827142a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Examples] Issues with requirements\n\n* healthcare.gov: Launch in 2013, crashed under high load \n* Zoom: Security issues (2020) \n* Windows/CrowdStrike (mid 2024): No backward compatibility (BSOD) \n* Tesla HW4 Computer Failures (late 2024): Safety requirements inadequate \n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 281, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e30b55d8-0065-46bc-8a62-87fa60eb5bb1": {"__data__": {"id_": "e30b55d8-0065-46bc-8a62-87fa60eb5bb1", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "18cb1284-786a-4c85-b1d9-3be29b41e3d8", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "88671d2a22893084f777d699da9a3a8f9209066bd977563c3cb06c210f1a88f4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Functional Requirements\n\n* Describe the essential functionality of the system\n* Define one requirement per function (feature)\n* They should be phrased in a general (/\"detailed enough\") manner\n\n\n \n \n\n\n\n \n\n \n \n
FR#Short title:Description
\n \n\n\n \n \n\n\n \n
Should be numbered based on their soon priorityPhrased in imperative mood!The description should not include implementation details!
\n\n
\n\n## [Example]\n\n**FR1 Select location:** The user can select a location on a map to view sinkholes in the selected area.\n\n**FR2 Login:** The user can login to the system using their email address and password.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 857, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "609613be-622c-4399-9520-972093ac0af3": {"__data__": {"id_": "609613be-622c-4399-9520-972093ac0af3", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "895ce90e-7271-45ca-99a1-6b64e506194e", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "736b94d45a22c7198b4e7056a250a403c759c6e63c02e5d0900d7e2e6013e4ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] What is functionality?\n\n* **Single purpose:** Each functional requirement should represent one logical unit of work \n* **Low complexity:** Complex requirements should be split into separate requirements (or grouped as sub-requirements) \n* **Unified testing & maintenance:** Each functional requirement should be treated as one unit during testing and maintenance \n* An **atomic requirement** is a requirement that cannot be further broken down into individual tasks \n\n> Splitting complex requirements into smaller, manageable requirements helps in system design to better identify reusable parts", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 610, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1f19df44-bb56-4512-b6a1-07277aa48dd5": {"__data__": {"id_": "1f19df44-bb56-4512-b6a1-07277aa48dd5", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "983665e5-b3c8-4f2c-9cf5-642420dca2fb", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "e9e05e98f866ced25f82a884ad48a9645a7241d4eb5f6b1ed9ba3f4e324cd247", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Defining requirements\n\n> User\u2019s perspective: viewing and downloading an account statement are two distinct actions \n> Each has its own functionality and does not depend on each other \n> Testing & maintenance will most likely be treated separately\n\n**FR4 Access account statements:** The customer can access account statements.\n\n**FR4.1 View Monthly Statements:** The customer can view their past transactions in their account statement, updated monthly.\n\n**FR4.2 Download Statements:** The customer can download their statements as a PDF file.\n\n**FR4.3 Receive statements via email:** The customer can choose to receive their account statement automatically via email automatically each month.\n\n> Sub-steps indicate a logical categorization", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 755, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a20991bc-8767-4e8a-aa1f-5755a297db79": {"__data__": {"id_": "a20991bc-8767-4e8a-aa1f-5755a297db79", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "574ad8ba-e6f0-46f6-aa1c-b3540f8ef1d5", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "e6b5c6da55faee6f31e2ce374fef78511b2532e86e947bad6c89761fd4851961", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I06/I07 \u2014 Define functional requirements \u23f3 15 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nBased on the problem statement, define **functional requirements** for the SiMCity system\n\n----\n\n| I07 - Functional Requirements | 2 points |\n|------------------------------|----------|", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 250, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "165085db-1f95-44b6-940b-c5cca6842b1e": {"__data__": {"id_": "165085db-1f95-44b6-940b-c5cca6842b1e", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "47712a70-0e42-4e57-b314-df6893743083", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "d1456deae198fd97f5ae1801611d14cbe6f3741c6b3476317e64d6c5bad20dc2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System (SiMCity) to address the issue of sinkholes within the city. The first version of SiMCity should enable residents and city officials to report sinkhole occurrences and track their locations.\n\nThe system should be easy to use, accessible through web and mobile platforms, and track sinkholes in real-time.\n\nResidents should be able to view sinkholes on a map, helping them to avoid such areas. It should also allow residents to report new sinkholes by sending in their location and photographic evidence for verification, or call for help. City officials can remove sinkholes from the map after they have been re-filled and repaired.\n\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and improve the city\u2019s ability to manage and mitigate the impact of these geohazards.\n\n> **Let\u2019s develop this system!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 935, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4fb53d4a-1cfc-4d48-abc3-26017f53a822": {"__data__": {"id_": "4fb53d4a-1cfc-4d48-abc3-26017f53a822", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "67fb5e22-830d-4357-b7b1-24aa423c671c", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "6f7a48149b09dbe2e05683223664b842f77e008fbcc4f40ec8e43fb1753aa1a0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Deriving requirements\n - [Recap] Deriving functional requirements\n - Non-functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 120, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2f52a19d-fbc1-45af-b617-b1a0a5bb5442": {"__data__": {"id_": "2f52a19d-fbc1-45af-b617-b1a0a5bb5442", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "31286cb6-e92b-459b-8a12-1b78d8a964a5", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "accea5bc8beff43e64faff2a0d604926a739523b517c03ca0c47ae8006fa4cfe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Deriving requirements: FURPS+ Model\n\n* FURPS+ is a model used to categorize features and attributes\n* [x] **Functional Requirements** \n > What functionalities/features should the system provide?\n* Non-functional Requirements \n - **U**sability \n - **R**eliability \n - **P**erformance \n - **S**upportability \n - \u2026 \n > E.g., robustness, maintainability, \u2026\n* Constraints (pseudo-requirements) \n > E.g., standards, physical limitations, software limitations, dependencies, \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 498, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7b527787-96da-4226-9382-d6940ff03097": {"__data__": {"id_": "7b527787-96da-4226-9382-d6940ff03097", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9cfe2d17-5416-4b9f-aa4f-9d99f68bca8c", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "8bc854ce983a3c79f63986725af21d33eacca61fc3ffd78167a949f772c5d211", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Non-functional requirements & constraints\n\n* **Non-functional requirements** (NFR) describe quality attributes that are important for the system (but do not describe functionality)\n* **Constraints** describe limitations or conditions that restrict the solution space\n - E.g., budgetary constraints, time constraints, technical constraints (e.g., the use of specific technologies), \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 386, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "73d8a3f4-aac1-4760-839c-d9f35314c71f": {"__data__": {"id_": "73d8a3f4-aac1-4760-839c-d9f35314c71f", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "020699a9-b701-46b2-a642-b577f16ab28c", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "770bb6cefcfa42d3a8ccf682087e3b13c58bb193b30f7eb76e1582bbfc1eeaa6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Defining non-functional requirements\n\n* **Usability:** How easy to use is the system?\n* **Robustness:** How stable and reliable is the system?\n* **Performance:** How fast and efficient is the system?\n* **Security:** How secure is the system?\n* \u2026\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
NFR#Short title[Category]Description
Should be numbered based on their \u27a1\ufe0f priorityCan be in imperative mood, can be a noun. Should be expressive!E.g. UsabilityThe description should not include implementation details!
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 754, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "52fc16cd-9438-4db7-b20e-6ba898d1a3d7": {"__data__": {"id_": "52fc16cd-9438-4db7-b20e-6ba898d1a3d7", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7a9e7e27-00b3-4beb-9aef-3d1b001d4be4", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "ee39b349ddb1aed3d91c346bf62d2d60838527fce7000c8ee08d42fc76a5cc70", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Defining non-functional requirements\n\n* NFRs are observed during the testing, validation & verification phase\n* Focus on **measurable**, **testable**, and **specific** (enough) criteria!\n - It is (often) up to the requirements engineer to define **measurable** NFRs\n* Problem statements often hint at NFRs\n\n**[Example]** \n\"Wording and color scheme should be consistent\" \n\"The user should always be able to get back to the dashboard within at most 2 clicks.\" \n_\"The system must be user-friendly\"_, _\"The system should be intuitive\"_, \n_\"The system should be easy to use\"_", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 578, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5a07a60d-8e79-4a7b-a081-3cb40cd8c90c": {"__data__": {"id_": "5a07a60d-8e79-4a7b-a081-3cb40cd8c90c", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a546c90b-f54a-4ead-a910-873dcbcf3679", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "d317467d781773ecbbc68475f310eae5e7278f2583948045b84678c87d1c9d5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\"The system must be ~~easy to use~~ ~~user-friendly~~ ~~intuitive~~ \u2026\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 71, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d6e60ab-5079-411a-b140-74b407662a38": {"__data__": {"id_": "8d6e60ab-5079-411a-b140-74b407662a38", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4f42f07a-0612-4806-b7f7-d8340894b052", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "435a34353195897340f34f2a817b5279933ec83026c9fed9adca02f1029f27a1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Usability \u2014 Overview\n\n* \"How effectively, efficiently and satisfactorily a user can interact with a user interface\" (usability.gov)\n* \"Quality attribute that assesses how easy user interfaces are\" (Nielsen, 2003)\n\n[The image shows a colored illustration of a person standing on a path labeled \"USABILITY PLAN\" looking towards a river labeled \"INTERFACE COMPLEXITY.\" The person is wearing a helmet labeled \"HEURISTIC EVALUATION\" and standing on land labeled \"COMPUTER CAPABILITIES.\" There is a crane labeled \"PROTOTYPING\" building a bridge labeled \"USER INTERFACE DESIGN\" that spans the river. On the far side of the river, there is a pillar labeled \"USABILITY ANALYSIS\" and land labeled \"USER NEEDS.\"]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 704, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5127b3b6-0396-4ecd-a2ab-0d4eb61fe826": {"__data__": {"id_": "5127b3b6-0396-4ecd-a2ab-0d4eb61fe826", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4a4c7a86-55ca-4fea-86b4-31b073c4c7a4", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "bf0f5bbdf9c986e94f31a6aded84c3449336d4cecf029b853fe63ba87fc1d646", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Usability Engineering\n\n* Process to \"build\" usability into products \n* Helps to ensure \"high quality\" of products\n\n----\n\n**Why is Usability Engineering important?**\n\n**How can we describe usability?**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 204, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "181101e7-b7f0-4a5c-8f26-2c4e0a926e02": {"__data__": {"id_": "181101e7-b7f0-4a5c-8f26-2c4e0a926e02", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c732afba-4e52-4c28-b884-4898cbbf8cdd", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "1d98c86a8b66ca1a6b7b8b9cebd23d1701a62375a084293ef6d6e207eac97982", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Usability\n\n* **Learnability** \u2014 How quickly can users grasp the user interface? \n* **Efficiency** \u2014 Once mastered, does the interface enable swift and efficient usage? \n* **Memorability** \u2014 Can users easily recall how to navigate and use the interface? Is the design memorable and user-friendly over time? \n* **Error Handling & Robustness** \u2014 How well does the system handle errors or unexpected user actions? \n* (subjective) **Satisfaction & User Experience** \u2014 Does the user interface offer an enjoyable and satisfying experience?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 539, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7ae099af-2305-4fc1-a0c0-c81b9fb112d4": {"__data__": {"id_": "7ae099af-2305-4fc1-a0c0-c81b9fb112d4", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2c5c2ddf-7e81-4453-bd3c-1820ccf464fe", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "4f7e7ab09c2d53ee0271976525ac320989da3d733c6f2b66dc32619d329051ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Usability (cont.)\n\n* **Consistency:** Is the interface design uniform across different sections, reducing cognitive load for users? `(7\u00b12) !`\n* **Flexibility:** Can users customize the interface to better suit their individual preferences and needs? E.g., IDE themes\n* **Task Completion:** How effectively does the interface support users in accomplishing their intended tasks without unnecessary complications?\n* **Feedback:** Does the interface provide users with helpful feedback after performing an action or guidance when they encounter difficulties or make errors?\n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 577, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a5ba9817-a5d2-488f-b85a-0d1a52593071": {"__data__": {"id_": "a5ba9817-a5d2-488f-b85a-0d1a52593071", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c92d81c9-a929-45c3-a048-9a6079e2325c", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "3094d4692805d73d7a8c148bc1ad6115b6298d0d9d89e3cad94f747db99746d8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Usability requirements\n\n**NFR1 Student Learnability [Usability]:** Students must be able to use the system without needing a manual.\n\n**NFR2 Instructor Learnability [Usability]:** Instructors must be able to learn and recall the main functionality of the system after following a user tutorial.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 307, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "365743a5-9d9f-4233-a559-198392666f13": {"__data__": {"id_": "365743a5-9d9f-4233-a559-198392666f13", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d5489249-da51-4c41-99b0-7272b2fd55db", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "65a0a541cbb6308acb633bb864ad071722ed34429418cae538ac0b9964751835", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Usability requirements\n\n**NFR1 Student Learnability [Usability]:** Students must be able to use the system to **complete basic tasks within 10 minutes** without requiring a manual.\n\n**NFR2 Instructor Learnability [Usability]:** Instructors must be able to learn and recall **90% of the core system functionality after completing a one-hour tutorial and must be able to perform key tasks within 5 minutes after a one-week break**.\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 468, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7c7e803c-b7cc-4098-bf47-14a970fed3cc": {"__data__": {"id_": "7c7e803c-b7cc-4098-bf47-14a970fed3cc", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "45d2774f-fd5e-422f-889e-9b49ebe8aabb", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "56839438c414deb64c6dd5181120e904be769a95c76debb7c4f502c8e8fcb293", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Usability requirements\n\n> Initial version. Measurability is vague, should be revised and refined when more is known\n\n**NFR1 Student Learnability [Usability]:** Students must be able to use the system without needing a manual. \n**NFR2 Instructor Learnability [Usability]:** Instructors must be able to learn and recall the main functionality of the system after following a user tutorial.\n\n> Revised / more detailed version\n\n**NFR1 Student Learnability [Usability]:** Students must be able to use the system to complete basic tasks within 10 minutes without requiring a manual. \n**NFR2 Instructor Learnability [Usability]:** Instructors must be able to learn and recall 90% of the core system functionality after completing a one-hour tutorial and must be able to perform key tasks within 5 minutes after a one-week break.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 836, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a872cb37-41f0-4edf-9734-b48da18fb4ab": {"__data__": {"id_": "a872cb37-41f0-4edf-9734-b48da18fb4ab", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f0b615a9-16af-4b1e-88b9-7851aff8a6bf", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "19cb8dd5a5bbfe32c53a215b6b2d0f959544eb9a36a91bb7a619a0c44b9ff4e1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Deriving requirements \n - [Recap] Deriving functional requirements \n - Non-functional requirements \n* Organizational: Team Project", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 157, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7cbff7d-1181-479f-a570-edbc3e78e753": {"__data__": {"id_": "e7cbff7d-1181-479f-a570-edbc3e78e753", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "782dd48e-91d1-4ac3-8964-5c039488bebe", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "91cab62321ca6f983969d87b97ead05116a1ee884aed172ca3f49f5b7c7c74af", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Team Project\n\n* **Team:** 4 - 6 students \n* **Goal:** Develop a software system throughout this term \n - Learn to apply SE best practices \n - Become more confident in using git and build up your GitHub profile \n - Setup a development pipeline and follow a workflow \n - Create test cases \n - Learn to use new tools \n - \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 335, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "588ec552-d024-40cb-8227-661219987a07": {"__data__": {"id_": "588ec552-d024-40cb-8227-661219987a07", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "13f9a580-e911-46b8-942f-a573c653285e", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "d6703d77b46c6bd81d7d6f328f3b35fda9b7aacd5773f562cd9cbe0945d9cf3a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Team Project** Timeline & First Tasks\n\n* Team forming: Due **September 18, 2025, 11:59pm** \n* Problem statement: Due **September 25, 2025, 11:59pm** \n* Find someone (your customer) who has a **problem** that **can be solved** with a (somewhat) complex **software system** \n - Customers can be: \n - Family members, friends \n - Pitt community: Professor (me included), staff \n - Local shop owner \n - \u2026 \n\n> \u2757\u2757 **If you already have an idea, please make use of Discord to find a team by 09/18.** \n> Otherwise I will allocate the teams.\n\n* System examples: \n - Campus navigation app \n - Fitness challenge platform \n - Personal finance tracker \n - Smart grocery list \n - Local events website \n - Sustainability tipps app \n - Coding challenge website \n - \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 792, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e5ccf591-1040-41ae-be1d-a8346f207f33": {"__data__": {"id_": "e5ccf591-1040-41ae-be1d-a8346f207f33", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "91261279-84e1-4e31-8385-422fc05bf691", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "f8f081c9d8632f656cfddcdbf59deabfecad450e9d09bd0f6c6b15fc9219b187", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Team Project** Timeline & First Tasks\n\n* Team forming: Due **September 18, 2025, 11:59pm**\n* If you **already have a team**, you must register it -> **Q2**\n - Name + email + GitHub handle\n - Roles: PO & Scrum Master (can rotate later)\n* **If you do not have a team -> Q1**\n - Name + Email + GitHub handle\n - Preferred Role: (PO, SM, Developer \u2014 or \"no preference\", can be changed later)\n - Project interests (short text or category you find interesting), no guarantee though \ud83d\ude43\n\n> \u203c **If you already have a project idea but no team / not enough members, please make use of Discord to find a team by 09/17,** \n> otherwise I will allocate you into teams.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 662, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e5ace444-4f8a-4d6f-b321-ed511d2dfa22": {"__data__": {"id_": "e5ace444-4f8a-4d6f-b321-ed511d2dfa22", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "baeede9e-dd88-42be-8318-e867b5f18e1b", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "59fedf9efc64752147623a677484a8d4e4aa5af0bae3859a7445223b0014ff0a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Team Project** Basic requirements\n\n* Project must be hosted open-source (GitHub or GitLab) (more on that soon!)\n* Project must contain:\n - User interface\n - Middleware (logical components)\n - Data storage\n - *Optional*: connect to an external API\n\n* Meet at least on a (bi-) weekly basis\n* Work as a TEAM (you are all responsible for the outcome!)\n - Each major milestone will include a peer review of the other team members.\n\n[The image shows four men standing together, dressed in distinct styles, positioned on the right side of the slide. The University of Pittsburgh logo is in the top right corner.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 615, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4e496608-68d4-4426-8289-00aaec8c5a1c": {"__data__": {"id_": "4e496608-68d4-4426-8289-00aaec8c5a1c", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4a61b464-204b-4c5d-a1cd-4a2e8d2ec383", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "ce566594650788d4f831279d4a5b443896f049a10640c3f0a2a339129f81b564", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Team project schedule *[tentative]*\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
#MilestonePtStartDueFormat
-Team formation109/1609/18Team / preferences
0Project Kickoff
(Problem Statement)
509/1909/25Problem Statement
1Sprint 1: Requirements & Use Cases1509/2510/07Requirements, user stories, use case diagram, acceptance criteria
2Sprint 2: Analysis & Modeling1010/0710/21Analysis object model, class diagram,
2 dynamic models
3Sprint 3: Architecture & Tech Stack1010/2111/04Architecture model, choice of stack
4Sprint 4: Implementation011/0411/18Basic skeleton running
5Sprint 5: Presentation & Delivery5011/1812/05Final code, documentation, live demo
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1229, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "71a928b2-dd65-4147-ae36-a611b24ec474": {"__data__": {"id_": "71a928b2-dd65-4147-ae36-a611b24ec474", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a59bee68-7978-4dea-b538-21f517b45231", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "8c43b94de8f279b3fcfd4e307d82c6e2fcb223120977d0520030546341ef7ff6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Homework assignment schedule *[tentative]*\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
AssignmentPtStartDueTopic
A12509/1809/27Requirements
A22510/0710/16Modeling
A32510/3011/11Patterns
A42511/1812/05Testing
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 518, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "223d108d-3a96-4fc3-86af-cd7ad0f869a9": {"__data__": {"id_": "223d108d-3a96-4fc3-86af-cd7ad0f869a9", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6e7782fa-7c64-4be6-b1a8-b775384c6045", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "c6c88ad4948aea2d92157a3f2eb18688450cc5ae85898a008e46ec4a71f607e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Take-Away: Overview of requirements elicitation\n\n* User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and stakeholders\n* Effective Communication: Establish clear and open channels of communication to gather accurate requirements\n* Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving project needs\n* Documentation: Thoroughly document gathered requirements to ensure clarity and alignment throughout the project lifecycle\n\nYOUR USER REQUIREMENTS INCLUDE FOUR HUNDRED FEATURES.\n\nDO YOU REALIZE THAT NO HUMAN WOULD BE ABLE TO USE A PRODUCT WITH THAT LEVEL OF COMPLEXITY?\n\nGOOD POINT. I'D BETTER ADD \"EASY TO USE\" TO THE LIST.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 709, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d9e92c63-6c38-44e8-84e8-ecbc7a945bb1": {"__data__": {"id_": "d9e92c63-6c38-44e8-84e8-ecbc7a945bb1", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cf46b441-f121-4ceb-b962-533de2ab09ef", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "33bb082e5576c0878201d8bee0087732cfd3b737c16baae83f69f738f8b2c5ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L07 Requirements Elicitation II\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 179, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dba849df-4ab3-48c1-a42a-681574bf5874": {"__data__": {"id_": "dba849df-4ab3-48c1-a42a-681574bf5874", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b7c22205-d09c-4c1b-8769-27187f8f8f3c", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "560af1c5b50f59b1d7f3c08f266daa85c667d344a926b23c7279df6fdb74653f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L01 Introduction\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu\n\nFall 2025", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "18892d8c-f772-4afe-9a4c-7e3248c913f7": {"__data__": {"id_": "18892d8c-f772-4afe-9a4c-7e3248c913f7", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1b5246dc-12b7-4622-adbb-65c56b283528", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "4899f4f66cf4084d39842e44f80029d7bf638e21e8c7de865edd7b8838420a84", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - [http://scrum.org/])(http://scrum.org/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1384, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c575b97f-68ff-4e6e-8893-abba43e9882c": {"__data__": {"id_": "c575b97f-68ff-4e6e-8893-abba43e9882c", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0f09bfc6-d04a-40da-ae1c-216cd687c2a8", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "52487f3fb76ac0494118d804e073c395f77fee91b6f7056100423400241c997f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dfe1af4c-e6f7-4e72-976d-cd544f46d6ca": {"__data__": {"id_": "dfe1af4c-e6f7-4e72-976d-cd544f46d6ca", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "301b59e1-7bfd-424e-bbea-c78435a4e74f", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "62fb9d63a3c63fadfb75c9c8f0b34c34765e2fb92c592829693346f8d7997750", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Organizational matters\n\n* Please review the syllabus & course policies on Canvas!\n* If you need specific **accommodations**, please **__email me & the DRS ASAP!__**\n* Make sure you fulfill the prerequisites for this course", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 225, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b331adce-78c4-4106-aec0-e265f3c93550": {"__data__": {"id_": "b331adce-78c4-4106-aec0-e265f3c93550", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4c3acf80-a37c-4608-b91f-7d138698cc39", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6750fcc0def7bd3bcae117a589d07b0acf905676f5649aca9ac088d42d9a965c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Prerequisites & assumptions for this course\n\n* You have some programming experience \n - Previous experience with **Java** OR Python, C, C++, Visual Basic, \u2026 \n - Lecture code examples & coding homework assignments will be in Java \n - Team project (*more later*) can be in any language \n* You have access to a computer and use it during the lectures", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 357, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e79562a0-d816-49ba-b5d7-6e22b2262755": {"__data__": {"id_": "e79562a0-d816-49ba-b5d7-6e22b2262755", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6a94ba21-36ed-4666-b23d-68c960f0e51f", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "b7e99a43b400db6f71762d416ab66b2cc2cf55dd917330607d124596d5da1004", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Material to refresh your knowledge (Java)\n\n* Interactive online tutorials\n - https://www.learnjavaonline.org\n - https://www.w3schools.com/java/\n* Java tutorials covering the basics: https://docs.oracle.com/javase/tutorial/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 227, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cc9f9c4b-da7b-4308-8a2e-d16ce5da2549": {"__data__": {"id_": "cc9f9c4b-da7b-4308-8a2e-d16ce5da2549", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a796ce72-4b56-4e6b-9153-af284fec00ff", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "aa8d1fa1df7c36296a2246250ce36d8733241e4bbc7c3aa539632eeb955779e7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2af20fc5-f229-4a96-8b32-21d8d206296b": {"__data__": {"id_": "2af20fc5-f229-4a96-8b32-21d8d206296b", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e415bf5b-c8df-4d49-8f9e-929870e90d82", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "d00fd6ef89f5ea2923479744da0b9f894e35b9001f7ed2707fe806c0fa93ea6e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Course learning goals\n\n* You know the most important software engineering terms and workflows \n* You understand the basic concepts and phases of a software project \n* You can apply suitable concepts and methods for concrete problems in complex projects \n* You are familiar with and can apply problem-solving techniques \n* You are able to analyze and evaluate given problems", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 380, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f2a62183-e832-4709-9a26-36e803bffe7e": {"__data__": {"id_": "f2a62183-e832-4709-9a26-36e803bffe7e", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "26d95543-2609-44ca-a060-642c622650a6", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "95f50e5c0409396c2ef331706666579d7a2c30875be9a78c2f06884252e7ceeb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Teaching philosophy\n\n*Tell me and I forget,* \n*teach me and I remember,* \n*involve me and I learn.* \n\u2014 Chinese proverb | Confucius", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 136, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "db0bef2b-e52c-4e6f-839b-8e551556273b": {"__data__": {"id_": "db0bef2b-e52c-4e6f-839b-8e551556273b", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9f131792-ce60-4bd0-9d09-76c9faf87792", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "17461c22e380a486e3c23fee27fed720147322474788e657b3965ed3e6965c1e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Teaching & learning framework\n\n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n \n \n\n \n
LectureIn-class exercisesQuizzes &
Rapid Recaps
Theoretical knowledgeApply knowledgeTest knowledge
GuidedCollaborativeSelf
Team ProjectAssignments
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1305, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "31b5046c-98a9-4b23-a6b7-5a8c6ae14d2f": {"__data__": {"id_": "31b5046c-98a9-4b23-a6b7-5a8c6ae14d2f", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3233a8d8-e958-4023-9cd3-e31a1fe713cc", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "ec694bd200db97c8af8c3057c666c48f4c511fb01a7950d83ea4a3460cd7029d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# This course\u2019s roadmap\n\n* Intro to Problem-Solving \n* Model-based Engineering (UML) \n* Software Development Lifecycle Models (Waterfall, Spiral, Agile, \u2026) \n* Requirements Engineering \n* System Design and Architecture > Order is subject to change \n* Object-Oriented Analysis and Design \n* Design Patterns \n* Software Testing and Quality Assurance \n* Project Management in Software Engineering \n* Software Configuration Management & Deployment \n\n* ~~User Interface Design and Usability~~ \n* ~~Emerging Trends in Software Engineering (AI in SE, Blockchain, etc.)~~ > If time permits \n* ~~Verification and Validation~~", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 630, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1c04a149-9edc-42f4-b82f-4ac9dad20fc4": {"__data__": {"id_": "1c04a149-9edc-42f4-b82f-4ac9dad20fc4", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fcc46606-2a7c-4b00-8e9c-02ef0088ec48", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "722573918b7255b910ea5d28723fdf2a686783449210b829f345771a96e4df60", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Course organization \u2014 Lectures\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n\n \n\n \n \n
#DateSubject
108/26/2025Introduction
08/28/2025
209/02/2025Model-based Engineering
09/04/2025
309/09/2025Requirements Analysis
09/11/2025
\u2026\u2026
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 674, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6810bf0b-5de0-4a95-a4e0-59cafa0b0549": {"__data__": {"id_": "6810bf0b-5de0-4a95-a4e0-59cafa0b0549", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9a689495-cd44-40f8-8713-1e688b3fea5a", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "c6fd5001dcec4b3fc27eb568eb964090ac4c7d479eaee7a33c6cb91ea2a3fa2e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc857518-0890-4de9-9bcd-73fa9c03cf9e": {"__data__": {"id_": "dc857518-0890-4de9-9bcd-73fa9c03cf9e", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "23a4e7cf-847d-4167-887a-9503eebeb38c", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "fc9649da7f3b7085a9f1ff68066b781792802ab038059b5bdb5b4a09b5ec59f2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Grading \u2014 Scale\n\n\n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n\n \n \n\n \n \n\n \n\n\n\n\n
% LG Breakdown
>= 90%A100% \u2014 97% A+
96% \u2014 94% A
93% \u2014 90% A-
>= 80%B89% \u2014 87% B+
86% \u2014 84% B
83% \u2014 80% B-
>= 70%C79% \u2014 77% C+
76% \u2014 74% C
73% \u2014 70% C-
>= 60%D69% \u2014 67% D+
66% \u2014 64% D
63% \u2014 60% D-
< 60%F59% \u2014 0%F
\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1190, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "552ce3fd-f6be-44e8-8cfc-1ecd642c9e34": {"__data__": {"id_": "552ce3fd-f6be-44e8-8cfc-1ecd642c9e34", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "073d7554-2822-495a-88c3-8181a0d96057", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "46c0384c6ddb273ab8c019faa9ae00d409b136eed4238b242150834c0240cb56", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Grading \u2014 Composition\n\n* Rapid recaps (in-class) [10%]\n* In-class exercises [20%]\n* Individual Homework Assignments [30%]\n - You will complete several assignments on your own\n - More information soon!\n* Team Project [40%]\n - In small teams, you will complete several assignments (more soon)\n - Each team must present their project (end of term)\n* No exams :-)\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
TypePercentage
In-class
Rapid Recaps
10%
In-class
Exercises
20%
Individual
Homework
Assignments
30%
Team Project40%
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 793, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d0cb3c00-ce6f-4e68-8801-b59965fd9f50": {"__data__": {"id_": "d0cb3c00-ce6f-4e68-8801-b59965fd9f50", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0861b705-526f-4ec5-8512-5a223a554697", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "0e4c6c5124d7af643c07e11c9b598b44a02bce4d9272f656460c71609de1ae02", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Rapid Recaps (RRs) [10%]\n\n* Short quiz questions about the previous week\u2019s content \n* Every **Tuesday** at the beginning of class, **11:00 am on the dot** \u23f0 \n* Open book, up to 5 questions, time will vary from ~ 3 - 10 min \n* There are no repetitions! No exceptions! \n* Your worst two RR results will be dropped", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 318, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "100e256c-b31c-4980-8b18-66bb26e5658e": {"__data__": {"id_": "100e256c-b31c-4980-8b18-66bb26e5658e", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "299bdafd-87c1-43ad-ab20-1e15cea35998", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "7c4d66618acf0e05fd6295dd5978d748556f7d61c158aa5fc5ba94e5d5c7fb4b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# In-class Exercises [20%]\n\n* You will be given some time in-class to work on a problem in **pairs**\n* Follow-alongs or short exercises to be completed in class (latest by 11:59 pm)\n - E.g., programming exercises, modeling exercises, quiz questions, \u2026\n* After some time, a pair present their results\n - You receive feedback from peers & me\n - Allows you to adapt your solution before submitting it!\n - You see other solutions and understand other approaches\n - Practice communication skills", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 498, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6194bf94-85ef-478f-8032-9777db67d686": {"__data__": {"id_": "6194bf94-85ef-478f-8032-9777db67d686", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "86419b13-fe0b-4ebf-b289-7a76d092426f", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "51290d1c48fa69d7e24562c57bafd2fa843cde1cb4d4b3c75502ddce5a79475f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Individual Homework Assignments [30%] \u2014 Preview\n\n* Individual submissions \n* Assignments allow you to apply & deepen your knowledge \n* *More & schedule soon*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 162, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "748d2d9e-d021-473f-85d0-4dc7dbd466af": {"__data__": {"id_": "748d2d9e-d021-473f-85d0-4dc7dbd466af", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a0b3d243-a1be-478e-af7f-5cb685263367", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6f26ab1f0ee872218e94ca8da454bf45cd4efe43f3b87da7d8854bbec4ee112f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Team Project [40%] \u2014 Preview\n\n* In small teams, you will work together on designing a software system (and implementing parts of it) throughout the term\n* You will come up with your own idea / find someone with an idea\n* Each team member must contribute somewhat equally (will be assessed!)\n* Each team must present their system\n* *More & schedule soon*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 356, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "417bb18f-2806-4d2b-9105-5c8ab590d81f": {"__data__": {"id_": "417bb18f-2806-4d2b-9105-5c8ab590d81f", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fd270dac-04c1-4540-bad7-be889e6f13b6", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "d7c3284297403aac1f328ef6772739dee8a786b9af12d9648bd23c9dfe70b557", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1e7df8b9-7dde-4853-b068-94bef3c1cce6": {"__data__": {"id_": "1e7df8b9-7dde-4853-b068-94bef3c1cce6", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "79cdcea3-4106-4852-af23-05376dc62149", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "ed014e993f9382fd0ea277d53212969dd89c0515908fa7037f85b815dbbda55e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Main course tools (1)\n\n**Canvas** \n* Access lecture material \n* Take rapid recaps \n\n**TopHat** \n* Follow-along with the slides \n* Complete in-class exercises \n\n**Gradescope** \n* Access & submit coding exercises (in-class, assignments)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 244, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ac42d99f-c337-4120-81da-21d4ec5f3994": {"__data__": {"id_": "ac42d99f-c337-4120-81da-21d4ec5f3994", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "14d5a4f1-97d4-4afa-b7e2-ce34b22ee040", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "99bef9b47c0c4fca39c43cd7f88b0318e1138f6d018fb3777f9486b6a3ea483b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Main course tools (2)\n\n## Discord\n* Communicate with instructor, TA, & fellow students\n* Ask general questions about the organization, lectures, and exercises\n* Receive announcements\n* You can find the invite link on Canvas", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 226, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "db8dcb55-38f3-4529-8cea-a2251d43ca78": {"__data__": {"id_": "db8dcb55-38f3-4529-8cea-a2251d43ca78", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c8c1849e-79b1-4ea8-9416-eadcf372d06d", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6b16b5790ae712a00173dfe659993be626648b8b61415d3de2554a6c78b8f82b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80bd1f7e-f5aa-4f48-80ce-3ec2020d2ec6": {"__data__": {"id_": "80bd1f7e-f5aa-4f48-80ce-3ec2020d2ec6", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c38b6e84-c14e-4c89-a98c-203da93122f2", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "437fa8d4783dcc061f67987d9817240d6515401e36b5375ae77dc042c89a83a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \"Life happens\" - Late submissions & Extensions\n\n* Reach out **asap** in case of medical/family/\u2026 emergencies \n - I will need some **proof**, e.g., doctor\u2019s note \n - (E.g., your roommate\u2019s friend\u2019s COVID test is NOT a valid form of proof) \n - **Alternative:** \n Reach out to **Lynnsey Doane** (`led114@pitt.edu`, Director of Student Success) \n\n* Non-emergency late submissions/extensions \n - Please reach out if unsure how to handle a situation before the deadline (no later than 3 days past the due date)! \n - Late assignments/in-class exercises: see late policy in the syllabus \n - RR: in total, you can miss two (your best 10 RR scores will count) \n\n[The image shows a two-panel comic of a dog sitting calmly in a room on fire, saying \"THIS IS FINE.\"]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 776, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a1274bf9-7155-408d-964c-6a26033a2418": {"__data__": {"id_": "a1274bf9-7155-408d-964c-6a26033a2418", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "24c147ae-2bd1-4716-89b2-a4ccd9964cfe", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "a21fec4e8d1f51c20c22fcbeb373df6fac7f9800588e2a14d69b8c44ae7429d9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \u203c Expectations \u2014 Questions (in-class & Discord)\n\n* **Ask questions!**\n - If asking a question \"publicly\" makes you a little uncomfortable, I still encourage you to do so; it will be good practice & benefit you in the long run (e.g., being more comfortable to ask questions in a job later on)\n - **THERE ARE NO STUPID QUESTIONS!**\n - Remember, you are here to **learn**! \n If you have a question, there is a high chance of someone else having the same question\n - If my/your TA\u2019s answer does not satisfy you, also please let do me/them know! \n What is obvious to us might not be obvious to you, but if we don\u2019t know, we can\u2019t change anything\n* **If there are no questions, I will assume that everyone understood everything!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 739, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ad1fa5bd-9807-4b34-8c3b-306b626c2ab5": {"__data__": {"id_": "ad1fa5bd-9807-4b34-8c3b-306b626c2ab5", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cf158de9-7c38-42aa-a93f-23d893e79d03", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "d03cbc0fda18cc88906259b2a6136676f3dec370dc8ab51e05bf22ef5894746d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Expectations \u2014 Feedback\n\n* If you have any feedback, **please talk to me!**\n* I can only make changes if I know about what\u2019s working for you and what isn\u2019t\n - Knowing what\u2019s working for you is important for me!\n - Don\u2019t wait for the surveys, please reach out anytime!\n* There will be frequent questions/feedback TopHat discussions - do use them!\n* There will be two 'official' surveys throughout the course\n - **Midterm evaluation:** 09/08 - 10/20/2025 \n > Based on this feedback, I will make changes for the remainder of the semester\n - \u2757\u2757 **Final course evaluation: 11/17 - 12/07/2025** \n > **Most important one!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 631, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cc53da89-a4e8-44fc-b199-757185d1aa6a": {"__data__": {"id_": "cc53da89-a4e8-44fc-b199-757185d1aa6a", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1afb2557-03af-4d8c-9e3f-91403f1e7a0f", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "697f021cbf303f4ffb68590d9e922d28a015aad63af6d43b11e4f0da54e4c04d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Previous Knowledge\n\n\u23f3 5-10 min \ud83d\udcca Survey **Please complete this survey by the end of today!**\n\n[University of Pittsburgh logo]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 130, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1824ef33-3ae1-4007-990e-2a38a329eee1": {"__data__": {"id_": "1824ef33-3ae1-4007-990e-2a38a329eee1", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aa8a5db0-1399-4397-9812-efe1d991257f", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "5e18322add8baf6919ba3c974c419a103015e5085965f3aab734fc346d1d8fa9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "edad2037-5822-4d1d-841d-66ded241e10b": {"__data__": {"id_": "edad2037-5822-4d1d-841d-66ded241e10b", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "96bc6cf5-071b-40f2-a18e-7228b28f954b", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6333708f61680c53e4f1f2f07460b6db427e500e5da8d33385c15dbec3266e4e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Questions? \nConcerns? \nFeedback?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 35, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fbae79a1-b97a-49e7-b325-491294704e07": {"__data__": {"id_": "fbae79a1-b97a-49e7-b325-491294704e07", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e682343e-cde9-4486-b456-e475edfcbdfb", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "8515a21915c7126b1ba1b1f16f624f1c5eec56751bf07bbcfd2b8953d85dba41", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Useful websites every programmer should know & use\n\n* Google ![Google logo]\n* Stack Overflow ![Stack Overflow logo]\n* GitHub ![GitHub logo]\n\n* Other useful websites:\n - Geeks for Geeks\n - SourceForge\n - Codecademy\n - CodeBeautify", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 236, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8fa28574-ef92-4c6c-b836-a486fc0311c3": {"__data__": {"id_": "8fa28574-ef92-4c6c-b836-a486fc0311c3", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2c0df155-53aa-42c6-a41c-1f606533b23d", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "a4fdaf00b43d47823587177d5ad6b4bb339f46a2d0d7c80c656f7173afbdc062", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "What are your expectations for this class?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 43, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "72677465-31f5-4878-bbb7-93947e22b346": {"__data__": {"id_": "72677465-31f5-4878-bbb7-93947e22b346", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9090fba3-be99-400b-a1da-530771880f18", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "b1133922333629505c600834bfcd9e6211b2230946a4575645c2947946a8b850", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Mini-Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 200, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "74e65e2d-e14f-4cc5-8016-e3766e4319a8": {"__data__": {"id_": "74e65e2d-e14f-4cc5-8016-e3766e4319a8", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c702bfd8-9800-49c7-92fb-b693c6145849", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "ff2168e03d1432f34eb9dfd3fed752133d35bd0a795186abca66ca0ded499a64", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is software?\n\n* Software is **complex** \n - Typically composed of many parts\n* Software can be **complicated** \n - No sufficient documentation = not easy to understand \n - Often requires in-depth knowledge to make a change\n* Building & maintaining software involves many **stakeholders** \n - E.g., developer, customer, user, \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9a6ef3ac-b79a-4356-b902-35ed95df741d": {"__data__": {"id_": "9a6ef3ac-b79a-4356-b902-35ed95df741d", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b0c6553b-33ee-4108-96ee-62f106037168", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "7b88e8e7fcc5c922d4f2aa576b856ed3dbcf2ca514abf0662987851a15833874", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is software engineering?\n\n> Code? \n> Coding?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 53, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "696ba37e-8197-4a87-8c57-69869db5cbd3": {"__data__": {"id_": "696ba37e-8197-4a87-8c57-69869db5cbd3", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "26481353-f152-4f38-9411-b83984780735", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "8139899bf3ca5961891136dd4df8fc6feba23b23a029aad80bdf5bd4663a9028", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "*Software Engineering is not rocket science nor textbook knowledge*\n\n# Software Engineering is the use of **common sense** and **discipline** to **solve real-world problems**\n\n[University of Pittsburgh logo in the top right corner]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 232, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5fadc877-5586-4b9e-a555-77bdd03dfae4": {"__data__": {"id_": "5fadc877-5586-4b9e-a555-77bdd03dfae4", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "02d62435-c5fa-48cc-9f0e-fb7aeb8c728e", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "5857c88f270c87679a05741f1f88736320ba27ec0d4e2bf69dcc00ff394df8f5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is software engineering?\n\n* Software engineering is much more than 'just writing code' \n - Programming is a subset of software engineering!\n\n* **Software engineering is the** **process** **of applying scientific principles to the design & creation of software** \n - Systematic approach to designing, building, testing, and maintaining software \n - Focuses on problem-solving and decision-making throughout the project lifecycle \n - Collaboration and teamwork across various roles & stakeholders \n - Emphasizes quality assurance, scalability, and sustainability\n\n* Involves both technical and non-technical skills \n > Communication & project management", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f93cbaa7-56e2-443a-8c05-f4a2f768520c": {"__data__": {"id_": "f93cbaa7-56e2-443a-8c05-f4a2f768520c", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e64df88d-e942-40b8-ab22-c5364989388f", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "49af37af4013a1a1abe207b33d4ea183bb59dee33fa89a7b3a9a860cafbc9ccb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Key concepts in software engineering\n\n* Software engineering builds on **problem-solving** abilities \n 1. Understand the problem \n 2. Propose a solution and a project plan \n 3. Engineer a system using best practices and good design principles \n\n> The proposed solution is often called and used as a 'prototype'\n\n* Software engineering is about **dealing with complexity** \n - Creating abstractions and models \n - Notations for abstractions \n\n* Software engineering is concerned with **dealing with change** \n - Requirements elicitation, analysis, design, implementation, validation of the system, delivery and maintenance", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 638, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "72a7ec13-75f2-4f7b-9315-bf2ab8e1bcec": {"__data__": {"id_": "72a7ec13-75f2-4f7b-9315-bf2ab8e1bcec", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6092dddd-47de-4263-b7fc-a3ecfecdb2cf", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "57f4d65ad0e91fca0841e5fb3cc49388a74092dd83c6a6e4fe92851a43feeaf8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Why you should learn about software engineering\n\n* Building software without discipline is crazy!\n* Software is critical to society\n - Economy\n - Enterprises\n - Key part of many complex systems\n - Essential for designing products\n - Embedded in systems you are using daily\n - \u2026\n* Realizing large, complex projects is hard\n* Software crisis (*more next lecture*)\n* It\u2019s fun \ud83e\udd13", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 383, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b0024046-c605-412d-a67d-c4feb989ee23": {"__data__": {"id_": "b0024046-c605-412d-a67d-c4feb989ee23", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6284aa5a-d57b-40b1-86ca-1dc2ddb4f77e", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "78cd7c3b62ff70f5d719842bc34ee2a82e6f06f99b94422a533dc8cec9264932", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# RR00 - Demo\n\n\u23f3 2 min \u26a1 Rapid Recap \n\n> **Practice time!** \n> (Today\u2019s results will count as a bonus \ud83d\udcaa)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 108, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f461ffe1-3e70-4beb-8e4e-2fb4513d940a": {"__data__": {"id_": "f461ffe1-3e70-4beb-8e4e-2fb4513d940a", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b62617e8-5b2e-4ecb-8f1f-43e6137f9488", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "40904850d8c5a1634ec43661516e1e2da4f1021bac14ff00273982171a26f012", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to build a complex system?\n\n## Where to start?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 53, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "786fd7c3-f6c0-4853-9e02-18d51ec84468": {"__data__": {"id_": "786fd7c3-f6c0-4853-9e02-18d51ec84468", "embedding": null, "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c867a2ae-a7d9-425a-a1de-196b65d9b431", "node_type": "4", "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "8791ddce1b0f6879e8ef57b887d646ccedb9718db4f21a4cfb1f0a32464b1826", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I01 \u2014 Group Exercise \u23f3 10 min \ud83d\udcac In-class\n\n## Problem Statement: \n*Imagine you're in a new city for the first time, and you're very hungry. You want to find a good place to eat but don't know the area. How would you go about solving this problem?*\n\n## Your Task:\n* Form small groups of 2 \u2014 3 students \n* Identify steps you would naturally need to solve this problem \n* You now want to share your approach with many people in various cities! \n* **Design & build this system:** *How many possible solutions are there? Which solution is correct? Where to start?* \n* Share your results! \n\n\n \n \n\n \n\n \n\n \n
gradescopeI1 - Defining a system
2 points by Turnitin
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 744, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c3eead52-fc52-4935-8e0c-17c3e66a0d49": {"__data__": {"id_": "c3eead52-fc52-4935-8e0c-17c3e66a0d49", "embedding": null, "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a05b4cb2-113f-4bf3-be3c-04b7d84b88da", "node_type": "4", "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6dcad74d5bbb565d526de14ad5e237acbf1c1191fad0976ba0a0c3c340775778", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I01 \u2014 Group Exercise \u23f3 10 min \ud83d\udcac In-class\n\n----\n\n**Problem Statement:** \n*Imagine you're in a new city for the first time, and you're very hungry. You want to find a good place to eat but don't know the area. How would you go about solving this problem?*\n\n----\n\n**Questions you might consider:**\n\n* What do you need to build this system? \n* What assumptions are you making? \n* How will the user interact with the system? \n* How will you collect information about available restaurants? \n* Are other stakeholders involved? Who are they? \n* How will you measure the success of the system? \n* What happens after you have built this system? \n* \u2026\n\n----\n\n> Via **Gradescope.** \n> One submission per group, please! \n> You can add your group members after submitting the exercise.\n\n\n \n \n\n \n\n \n \n
gradescopeI1 - Defining a system
2 points by Turnitin
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 954, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "68257f21-2395-453e-b427-e449a71cf1e5": {"__data__": {"id_": "68257f21-2395-453e-b427-e449a71cf1e5", "embedding": null, "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "12209d31-5909-44ad-841d-8d24c207b7fb", "node_type": "4", "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "ed1b7983a2030b18bd8d6a6d0c3dc407daf16fa70e864806a44a755e0c66f42e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L01 Introduction\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "61d73bee-5e2d-489d-823d-0563b5462d6b": {"__data__": {"id_": "61d73bee-5e2d-489d-823d-0563b5462d6b", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7df62fdd-2eaa-4daa-94b5-eb47e66a77d0", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "7c753553b6baf825bdc4fc03054fc21f5d1f018baf96186d3a6589a3fefe7b1c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 03\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79afa0b5-9289-4e77-97a6-77fedcf62191": {"__data__": {"id_": "79afa0b5-9289-4e77-97a6-77fedcf62191", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ad712aa0-cfb6-477a-b7a8-f688e69bc2a6", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b220251ba34e95223795635959dd8130b3597c4fa175e5460d39675094b5ba1b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Nondeterministic Finite Automaton\n\n```\n 0, 1 0, 1\n \u21bb \u21bb\n(q\u2081) \u20141\u2192 (q\u2082) \u20140, \u03b5\u2192 (q\u2083) \u20141\u2192 (q\u2084) \u21bb\n```\n\n* Let \\( \\Sigma = \\{0, 1\\} \\)\n* Different between Deterministic Finite Automaton (DFA) and Nondeterministic Finite Automaton (NFA):\n - DFA always has exactly one exiting transition arrow for each symbol in the alphabet\n * NFA may have none, one, or many exiting arrows for each symbol\n - DFA have no arrow with the label \\( \\varepsilon \\)\n * NFA may have zero, one, or many arrows exiting from each state with the label \\( \\varepsilon \\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 564, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6105b810-1abb-40a3-b00a-ac84c03b4110": {"__data__": {"id_": "6105b810-1abb-40a3-b00a-ac84c03b4110", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9424c67c-0023-4cbb-a07b-55ddb2e96746", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "dfb636a62cb8592a3b9141ffc7bcebf4cd0552f3e0f101734ed5876fd147eaba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA\n\n```\n 0, 1 0, 1\n\n \u2192 (q\u2081) --1--> (q\u2082) --0, \u03b5--> (q\u2083) --1--> ((q\u2084))\n \u2191 \u2191\n | |\n 0,1 0,1\n```\n\n* If you encounter a state with multiple ways to proceed for a regular input:\n - The machine splits into multiple copies of itself.\n - The machines follow all the possibilities in parallel.\n - Each copy of the machine takes one of the possible ways.\n\n* If you encounter a state with an $\\varepsilon$ symbol as an exiting arrow:\n - Without reading any input, the machine splits into multiple copies.\n - Each follows each of the exiting $\\varepsilon$-labeled arrows, and\n - One stays at the current state.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 703, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bd07802f-a077-4fbc-ab10-9d0b766136a3": {"__data__": {"id_": "bd07802f-a077-4fbc-ab10-9d0b766136a3", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a59eff89-d205-408b-9480-3ac62d20ac25", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "58bb067b34d85555013bdd050e9564d96596f1e374b9aa31e84a0e4940ecf411", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n```mermaid\nstateDiagram-v2\n [*] --> q1: Start\n q1 --> q1: 0,1\n q1 --> q2: 1\n q2 --> q3: 0, \u03b5\n q3 --> q4: 1\n q4 --> q4: 0,1\n state q4 {\n <>\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 275, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "87f41955-fa21-472e-8dc0-cd4711c3a796": {"__data__": {"id_": "87f41955-fa21-472e-8dc0-cd4711c3a796", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1052f264-49dd-47d2-a3d6-8443a6955451", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "fbafa46e611d0a51514e01323a1d3635356e202bc646cd81ea0c852d1a3037ca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n----\n\nSymbol read | State \n------------|--------\n0 | ![circle with q1 inside] Start \n0 | ![circle with q1 inside] \n\n----\n\nMermaid diagram representing the NFA:\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q1: 0,1\n q1 --> q2: 1\n q2 --> q3: 0, \u03b5\n q3 --> q4: 1\n q4 --> q4: 0,1\n```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 483, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f3ada881-f366-49e2-974f-fac699dcc276": {"__data__": {"id_": "f3ada881-f366-49e2-974f-fac699dcc276", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f46a460e-58b5-46bd-a6b4-347d8650a1f3", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "773174403f224ba7b60c37e8f7cbb67a416c0d55684d92b8f58f71a84e4adcc5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n----\n\nSymbol read | | | | \n---|---|---|---|---\n | | | | \n0 | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n\n----\n\nMermaid diagram representing the NFA and its computational tree:\n\n```mermaid\ngraph TD\n subgraph Computational Tree\n A1((q1)) --> A2((q1))\n A2 --> B1((q1))\n A2 --> B2((q2))\n A2 --> B3((q3))\n end\n\n subgraph NFA\n Q1((q1)) -->|1| Q2((q2))\n Q2 -->|0, \u03b5| Q3((q3))\n Q3 -->|1| Q4((q4))\n Q1 -->|0,1| Q1\n Q4 -->|0,1| Q4\n end\n\n style Q4 stroke-width:3px,stroke:#000\n style Q1 stroke-width:3px,stroke:#000\n```\n\n----\n\n* Start state: `q1`\n* Input string: `010110`\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 961, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e85461e-56c6-4a43-a9c2-1460615792dd": {"__data__": {"id_": "8e85461e-56c6-4a43-a9c2-1460615792dd", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ff3189ee-6cee-4ea0-af55-214386c4311e", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "932575de5a9831053fbcb015ce79910aa7841e4b2e798281cefb254fdd68b503", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n\n \n \n\n \n\n \n\n \n\n \n\n\n\n \n\n \n\n\n \n
Symbol readq1 Start
0q1
1\n \n\n\n \n \n\n\n \n
q1q2q3
\n\n
0,10,1
0\n \n\n\n \n \n\n \n
q1q3
\n\n
\n \n\n\n \n \n\n\n\n\n\n\n \n
q11q20, \u03b5q31q4
\n\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 801, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "87452903-5997-468c-892a-4d4233a18f1c": {"__data__": {"id_": "87452903-5997-468c-892a-4d4233a18f1c", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9f775235-b052-436e-9a44-029203885d7e", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "43d0bfe3d9b81349eb199822fb93ede29b7eb65d13bff47fe0a8beeb3219dcea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n```mermaid\ngraph TD\n %% Computational Tree on input 010110\n Start((q\u2081)) --> q1_1((q\u2081))\n q1_1 -->|1| q1_2((q\u2081))\n q1_1 -->|1| q2_1((q\u2082))\n q1_1 -->|1| q3_1((q\u2083))\n q1_2 -->|0| q1_3((q\u2081))\n q2_1 -->|0| q3_2((q\u2083))\n q3_1 -->|0| q4_1((q\u2084))\n q1_3 -->|1| q1_4((q\u2081))\n q1_3 -->|1| q2_2((q\u2082))\n q1_3 -->|1| q3_3((q\u2083))\n q3_2 -->|1| q4_2((q\u2084))\n```\n\n```mermaid\ngraph LR\n %% NFA Diagram\n start --> q1((q\u2081))\n q1 -- \"1\" --> q2((q\u2082))\n q2 -- \"0, \u03b5\" --> q3((q\u2083))\n q3 -- \"1\" --> q4((q\u2084))\n q1 -- \"0,1\" --> q1\n q4 -- \"0,1\" --> q4\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 651, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b8035955-6e30-47bc-a4e1-611048db7055": {"__data__": {"id_": "b8035955-6e30-47bc-a4e1-611048db7055", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f9196c41-455c-440a-9fbd-4c48c23b1073", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b68ade13125f0566955fe72c95aceacffa85b741c94bf5d5e6d463969991aa38", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n```mermaid\ngraph TD\n %% Computational tree on the left\n A1((q1)) --> A2((q1))\n A2 -->|1| B1((q1))\n A2 -->|1| B2((q2))\n A2 -->|1| B3((q3))\n B1 -->|0| C1((q1))\n B2 -->|0| C2((q3))\n B3 -->|0| C3((q1))\n C1 -->|1| D1((q1))\n C1 -->|1| D2((q2))\n C1 -->|1| D3((q3))\n C2 -->|1| D4((q4))\n C3 -->|1| D5((q4))\n D1 -->|1| E1((q1))\n D2 -->|1| E2((q2))\n D3 -->|1| E3((q3))\n D4 -->|1| E4((q4))\n D5 -->|1| E5((q4))\n\n %% NFA diagram on the right\n subgraph NFA\n direction LR\n Q1((q1)) -->|1| Q2((q2))\n Q2 -->|\"0, \u03b5\"| Q3((q3))\n Q3 -->|1| Q4((q4))\n Q1 -->|0,1| Q1\n Q4 -->|0,1| Q4\n end\n```\n\n* Symbol read and states:\n\n| Symbol read | States at this step |\n|-------------|---------------------------------------------|\n| Start | q\u2081 |\n| 0 | q\u2081 |\n| 1 | q\u2081, q\u2082, q\u2083 |\n| 0 | q\u2081, q\u2083 |\n| 1 | q\u2081, q\u2082, q\u2083, q\u2084 |\n| 1 | q\u2081, q\u2082, q\u2083, q\u2084, q\u2084 |\n\n----\n\nThumrongsak Kosiyatrakul `tkosiyat@cs.pitt.edu` \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1361, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "95a6c872-151d-4014-aa31-2437d61168f4": {"__data__": {"id_": "95a6c872-151d-4014-aa31-2437d61168f4", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "140c7a6d-d3b2-4654-94da-9c360bd4924a", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "963c02b91a3e4699d96f09cd2d277b61407c457ce1fd0967df794a710800072b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n----\n\n### Computational Tree for the input `010110`\n\n| Symbol read | | | | | | |\n|-------------|-------|-------|-------|-------|-------|-------|\n| | | | | | | |\n| 0 | | | | | | |\n| | | | | | | |\n| | | | | | | |\n| | | | | | | |\n| | | | | | | |\n\n```mermaid\ngraph TD\n A1((q1)) --> A2((q1))\n A2 --> B1((q1))\n A2 --> B2((q2))\n A2 --> B3((q3))\n B1 --> C1((q1))\n B1 --> C2((q2))\n B1 --> C3((q3))\n B2 --> C4((q3))\n B3 --> C5((q4))\n C1 --> D1((q1))\n C2 --> D2((q2))\n C3 --> D3((q3))\n C4 --> D4((q4))\n C5 --> D5((q4))\n D1 --> E1((q1))\n D2 --> E2((q3))\n D4 --> E3((q4))\n D5 --> E4((q4))\n```\n\n----\n\n### NFA Diagram\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q1: 0,1\n q1 --> q2: 1\n q2 --> q3: 0, \u03b5\n q3 --> q4: 1\n q4 --> q4: 0,1\n q4: accept\n```\n\n----\n\n> If there is at least one copy in an accept state, the machine accepts the input string.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1391, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dab178e8-44d6-4ed4-8d29-b250367ee35a": {"__data__": {"id_": "dab178e8-44d6-4ed4-8d29-b250367ee35a", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3fd70f57-777c-4642-8892-0ffefdcd50e6", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8df0828326c77529d7d48dc4d800d2af623c3c2dc9d7c12117793f2cc7d30a81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Let \\( A \\) be the language consisting of all strings over \\(\\{0,1\\}\\) containing a 1 in the third position from the end (e.g., 000100 is in \\( A \\) but 0011 is not in \\( A \\)).\n\n* Design a DFA for this problem is quite complicate \n* Design an NFA is easier\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1: 0,1\n q1 --> q1: 0,1\n q1 --> q2: 1\n q2 --> q3: 0,1\n q3 --> q4: 0,1\n state q4 {\n <>\n }\n```\n\n* The transition from \\( q_1 \\) to \\( q_2 \\) is our guess that this is the 1 in the third position from the end. \n* If our guess is wrong: \n - The input string is shorter, it will end at reject state. \n - The input string is longer, the machine will die but other one remains alive.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 733, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "232f7354-00ee-4af3-b01d-62e2a6cf1a21": {"__data__": {"id_": "232f7354-00ee-4af3-b01d-62e2a6cf1a21", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3b30874b-f2b3-416b-9e10-2f652fab7ae2", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "3df0b8589384b6b12b8782d0b90925dbd9293f9fce291bdbe44796f744d2ad67", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* An equivalent DFA machine\n\n```mermaid\nstateDiagram-v2\n direction LR\n [*] --> q000\n q000: q_{000}\n q000 --> q000: 0\n q000 --> q001: 1\n\n q001: q_{001}\n q001 --> q100: 1\n q001 --> q010: 0\n q001 --> q000: 1\n\n q100: q_{100}\n q100 --> q000: 0\n q100 --> q001: 1\n\n q010: q_{010}\n q010 --> q100: 0\n q010 --> q101: 1\n\n q101: q_{101}\n q101 --> q011: 1\n q101 --> q110: 0\n q101 --> q010: 0\n\n q011: q_{011}\n q011 --> q111: 1\n q011 --> q101: 0\n\n q111: q_{111}\n q111 --> q110: 0\n q111 --> q111: 1\n\n q110: q_{110}\n q110 --> q100: 0\n q110 --> q111: 0\n```\n\n* Name states according to the last three symbols", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 685, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1a4ccf2d-69b0-4c6a-b47b-cbcd8656fb08": {"__data__": {"id_": "1a4ccf2d-69b0-4c6a-b47b-cbcd8656fb08", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "487b3eb8-8cab-406c-8060-a2e6e36a8ad8", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "f9c89f2c8c196f5efb1e9b04968d02ef5290916efa81b68b2b5527e42b5ab462", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0\\}\\). Design a machine that recognizes the language \\(A\\) where \\(A\\) is an empty string or all strings over \\(\\Sigma\\) that their length is a multiple of 2 or 3.\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0: (start, accept)\n S1: (accept)\n S0 --> S1: 0\n S1 --> S0: 0\n```\n\n(Note: The diagram above shows a two-state machine with states S0 and S1. S0 is the start and accepting state. There are transitions labeled \"0\" going from S0 to S1 and from S1 back to S0.)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 529, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9da2d37c-95b6-4260-aa56-f9a6e39fb71a": {"__data__": {"id_": "9da2d37c-95b6-4260-aa56-f9a6e39fb71a", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bcc9a12f-2bce-4e9b-b756-a2b1d08dad75", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "bc55d83ab8ce0481d21a453d217570cb59f7a7ef10d5c5795d2f8439d523f603", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0\\}\\). Design a machine that recognizes the language \\(A\\) where \\(A\\) is an empty string or all strings over \\(\\Sigma\\) that their length is a multiple of 2 or 3.\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0: (accepting)\n S1: (accepting)\n S2: \n S3: \n S4: (accepting)\n S5: \n S0 --> S1: 0\n S1 --> S0: 0\n S0 --> S3: 0\n S3 --> S4: 0\n S4 --> S5: 0\n S5 --> S3: 0\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 452, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "739158d1-2fb3-4caa-83c4-ef42559e09c9": {"__data__": {"id_": "739158d1-2fb3-4caa-83c4-ef42559e09c9", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0a0fc459-8fe1-4b48-a380-b63513da438d", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "f83a9a6a596accb5e159394585bde639cc904f5adcbb49f33f14c253707ac44b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0\\}\\). Design a machine that recognizes the language \\(A\\) where \\(A\\) is an empty string or all strings over \\(\\Sigma\\) that their length is a multiple of 2 or 3.\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0: (accepting)\n S0 --> S1: 0\n S1 --> S0: 0\n\n S0 --> T0: \u03b5\n T0: (accepting)\n T0 --> T1: 0\n T1 --> T2: 0\n T2 --> T0: 0\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 406, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bb35196e-acec-44d3-94b4-03f4ba22373b": {"__data__": {"id_": "bb35196e-acec-44d3-94b4-03f4ba22373b", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "36bfac59-dc60-465f-b915-1005e705be87", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "103fc844153a0346be4275221de5294dccd6cecb4475e86c98a23ad5b59ca2a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formal Definition of A Nondeterministic Finite Automaton\n\nA **nondeterministic finite automaton** is a 5-tuple\n\n$$\n(Q, \\Sigma, \\delta, q_0, F)\n$$\n\n1. \\( Q \\) is a finite set of states \n2. \\( \\Sigma \\) is a finite alphabet \n3. \\( \\delta : Q \\times \\Sigma_{\\varepsilon} \\to \\mathcal{P}(Q) \\) is the transition function, \n - \\( \\Sigma_{\\varepsilon} = \\Sigma \\cup \\{\\varepsilon\\} \\) and \n - \\( \\mathcal{P}(Q) \\) is the **powerset** of \\( Q \\) (set of set of states). \n4. \\( q_0 \\in Q \\) is the start state \n5. \\( F \\subseteq Q \\) is the set of accept states.\n\n**Notes** \n* In an NFA, one input symbol can change the state of the machine to multiple states. \n - Split to multiple copies with different current states \n - Example: \\( \\delta(q_0, 1) = \\{q_0, q_1\\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 778, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "03875b2e-46aa-448c-a638-f3b4d34d686b": {"__data__": {"id_": "03875b2e-46aa-448c-a638-f3b4d34d686b", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a74c4f60-ea99-49c7-a20a-06789922b60b", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "1c4e6d0030bae7670f170047aec5344f92b14830a8a5f215cbab01f02a3eefc5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\nDiagram of states and transitions:\n\n- States: \\( q_1, q_2, q_3, q_4 \\)\n- Transitions:\n - From \\( q_1 \\):\n - Loop on input 0 or 1 back to \\( q_1 \\)\n - On input 1 to \\( q_2 \\)\n - From \\( q_2 \\):\n - On input 0 or \\(\\varepsilon\\) to \\( q_3 \\)\n - From \\( q_3 \\):\n - On input 1 to \\( q_4 \\)\n - From \\( q_4 \\):\n - Loop on input 0 or 1 back to \\( q_4 \\)\n\n----\n\n* \\( Q = \\{ q_1, q_2, q_3, q_4 \\} \\)\n* \\( \\Sigma = \\{0, 1\\} \\) and \\( \\Sigma_{\\varepsilon} = \\{0, 1, \\varepsilon\\} \\)\n* \\( \\delta \\) is given as\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
\\(\\delta\\)01\\(\\varepsilon\\)
\\(q_1\\)\\(\\{q_1\\}\\)\\(\\{q_1, q_2\\}\\)\\(\\emptyset\\)
\\(q_2\\)\\(\\{q_3\\}\\)\\(\\emptyset\\)\\(\\{q_3\\}\\)
\\(q_3\\)\\(\\emptyset\\)\\(\\{q_4\\}\\)\\(\\emptyset\\)
\\(q_4\\)\\(\\{q_4\\}\\)\\(\\{q_4\\}\\)\\(\\emptyset\\)
\n\n* We treat \\(\\varepsilon\\) as a regular input symbol\n* If there is no \\(\\varepsilon\\) transitions, we can ignore the \\(\\varepsilon\\) column\n* \\( q_1 \\) is the start state\n* \\( F = \\{ q_4 \\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1315, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b41a10c-13f5-4d44-8080-8ff81315e875": {"__data__": {"id_": "6b41a10c-13f5-4d44-8080-8ff81315e875", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fec25271-d813-41b3-b484-99b53b8fccfb", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "6d1273455ccbef88a6266475b6d5066b07b3eb3d0ac70320661028beb4fa0964", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# NFA and DFA\n\n* NFA is a slightly different computation model compared to DFA\n - NFA can split into multiple copies\n - NFA may have \\( \\varepsilon \\) transitions\n* Is there a language that can be recognized by an NFA but cannot be recognized by any DFAs?\n* In theory of computation, we try to see whether we can capture the behavior of an NFA using a DFA", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 358, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3e7ffe36-12db-4f88-b6e4-3b5ad7af0b1d": {"__data__": {"id_": "3e7ffe36-12db-4f88-b6e4-3b5ad7af0b1d", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dd0a9c1d-115f-466a-bf74-24eeb03a0ba3", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "6e672954390577b454118d671d77585a85642d7d0e7a1ba7ef0f3e4dd758864e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "a56c9b23-c481-44bf-bc26-f353c0d3847c", "node_type": "1", "metadata": {}, "hash": "b67f087f88418332f9e146396243b1106f295415a0d31eda929d02d4a0993f41", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Simulating and NFA with a DFA\n\n*Simulate 010110*\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u03b401\u03b5
q1{q1}{q1, q2}\u2205
q2{q3}\u2205{q3}
q3\u2205{q4}\u2205
q4{q4}{q4}\u2205
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
StateTransition/InputNext State(s)Set RepresentationResulting Set
q1Start{q1}= {q1}
q10q1= {q1}
q11q1, q2, q3{q1, q2, q3}= {q1, q2, q3}
0q1, q3{q1} \u222a {q3} \u222a \u2205= {q1, q3}
1q1, q2, q3, q4{q1, q2, q3} \u222a {q4}= {q1, q2, q3, q4}
1q1, q2, q3, q4{q1, q2, q3} \u222a \u2205 \u222a {q4} \u222a {q4}= {q1, q2, q3, q4}
0q1, q3, q4{q1} \u222a {q3} \u222a \u2205 \u222a {q4} \u222a {q4}= {q1, q3,", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1995, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a56c9b23-c481-44bf-bc26-f353c0d3847c": {"__data__": {"id_": "a56c9b23-c481-44bf-bc26-f353c0d3847c", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dd0a9c1d-115f-466a-bf74-24eeb03a0ba3", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "6e672954390577b454118d671d77585a85642d7d0e7a1ba7ef0f3e4dd758864e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "3e7ffe36-12db-4f88-b6e4-3b5ad7af0b1d", "node_type": "1", "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "2bafbe39f8438d4fcbbabf0b809d85cb373fccff16b3671f3fa07fbdb34156c7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "q2, q3} \u222a \u2205 \u222a {q4} \u222a {q4}= {q1, q2, q3, q4}
0q1, q3, q4{q1} \u222a {q3} \u222a \u2205 \u222a {q4} \u222a {q4}= {q1, q3, q4}
\n\n[The diagram on the page shows a tree-like structure of states and transitions simulating the NFA with a DFA for the input string 010110, illustrating the subset construction method.]\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1644, "end_char_idx": 2298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c8ee41d4-888f-4964-ba60-aae034fed8dd": {"__data__": {"id_": "c8ee41d4-888f-4964-ba60-aae034fed8dd", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b6b592f8-7b24-4370-a06c-86013706fef3", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b5fbe9cff189031aa7a61b5883dcb91a35fd179cbbeb56bd5cdfff47ad79dcf9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Equivalence of NFAs and DFAs\n\n> Every nondeterministic finite automaton has an equivalent deterministic finite automaton.\n\n* Let \\( N = (Q, \\Sigma, \\delta, q_0, F) \\) be the NFA recognizing some language \\( A \\)\n* We are going to construct a DFA \\( M = (Q', \\Sigma, \\delta', q_0', F') \\) recognizing \\( A \\)\n* Let\u2019s consider the case where \\( N \\) has no \\(\\varepsilon\\) transitions.\n 1. \\( Q' = \\mathcal{P}(Q) \\)\n 2. \\( \\delta'(R, a) = \\bigcup_{r \\in R} \\delta(r, a) \\)\n 3. \\( q_0' = \\{ q_0 \\} \\)\n 4. \\( F' = \\{ R \\in Q' \\mid R \\text{ contains an accept state of } N \\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 580, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dd0adeb3-984c-4b58-913f-ee347afc4bee": {"__data__": {"id_": "dd0adeb3-984c-4b58-913f-ee347afc4bee", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7b5d463d-d3de-4791-a2fe-4a4dff9bb6b7", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8f093cdb5c891ff7e56572b3751b40d100fcd4f677278b0b486b48bb3fdc4da2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let \\(\\Sigma\\) be \\(\\{0, 1\\}\\). The following NFA \\(N\\) recognizes the language \\(A\\) where \\(A\\) is a set of strings that end with a 1.\n\n```\n 0, 1\n \u21bb\n (q_0) ----1----> ((q_1))\n```\n\n* \\(N = (Q, \\Sigma, \\delta, q_0, F)\\)\n 1. \\(Q = \\{q_0, q_1\\}\\),\n 2. \\(\\Sigma = \\{0, 1\\}\\)\n 3. \\(\\delta\\) is given as\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n \n
01
\\(q_0\\)\\(\\{q_0\\}\\)\\(\\{q_0, q_1\\}\\)
\\(q_1\\)\\(\\emptyset\\)\\(\\emptyset\\)
\n\n 4. \\(q_0\\) is the start state \n 5. \\(F = \\{q_1\\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 687, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9bbd0c3b-82cd-4e5e-bc4b-01fdcae31938": {"__data__": {"id_": "9bbd0c3b-82cd-4e5e-bc4b-01fdcae31938", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3c91e7e0-16a3-4ccd-b7ab-d0d8c4d7eb5e", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "0747b76c809224a95f1e50cd6745e41e89dcb1f653251cc1892e2b0d1941553b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Construct a DFA \\( M = (Q', \\Sigma, \\delta', q'_0, F') \\)\n * \\( Q' = \\mathcal{P}(Q) = \\mathcal{P}(\\{q_0, q_1\\}) \\)\n \n $$\n Q' = \\{\\emptyset, \\{q_0\\}, \\{q_1\\}, \\{q_0, q_1\\}\\}\n $$\n\n* We will construct \\(\\delta'\\) later\n* \\( q'_0 = \\{q_0\\} \\) where \\( q_0 \\) is the start state of the NFA\n* \\( F' = \\{ R \\in Q' \\mid R \\text{ contains an accept state of } N \\} \\)\n\n $$\n F' = \\{\\{q_1\\}, \\{q_0, q_1\\}\\}\n $$\n\nwhere \\( F = \\{q_1\\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 446, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "590e7498-f4a9-4b9a-b8e7-56688901f0b4": {"__data__": {"id_": "590e7498-f4a9-4b9a-b8e7-56688901f0b4", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a8d0ae09-ac89-4e73-8aef-8b45d3e55522", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "83510d7fc4669041068da7917eca48e48f3e76c9c55838d38b153a7e707494d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let\u2019s focus on transition functions\n* The transition function \\(\\delta\\) of the NFA is as follows:\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n \n
01
\\(q_0\\){\\(q_0\\)}{\\(q_0, q_1\\)}
\\(q_1\\)\u2205\u2205
\n\n* Recall that the set of state of the equivalent DFA is the power set of set of state of the NFA\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
\\(\\delta'\\)01
\u2205\u2205\u2205
{\\(q_0\\)}{\\(q_0\\)}{\\(q_0, q_1\\)}
{\\(q_1\\)}\u2205\u2205
{\\(q_0, q_1\\)}{\\(q_0\\)}{\\(q_0, q_1\\)}
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 915, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5a3b743a-33a7-4c1e-ba74-9f532f407616": {"__data__": {"id_": "5a3b743a-33a7-4c1e-ba74-9f532f407616", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0382de30-f2cc-4207-b40e-c03dd9526da7", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "c1e93070056ae007c9576869da4fc3061b0ec2ac7369bd03b4765ef940a844c7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Machine \\( M = (Q', \\Sigma, \\delta', q'_0, F') \\) equivalent to \\( N \\) can be defined as follows:\n * \\( Q' = \\mathcal{P}(Q) = \\{\\emptyset, \\{q_0\\}, \\{q_1\\}, \\{q_0, q_1\\}\\} \\),\n * \\[\n \\delta'(R, a) = \\bigcup_{r \\in R} \\delta(r, a)\n \\]\n * \\[\n \\delta'(\\emptyset, 0) = \\bigcup_{r \\in \\emptyset} \\delta(r, 0) = \\emptyset\n \\]\n * \\[\n \\delta'(\\emptyset, 1) = \\bigcup_{r \\in \\emptyset} \\delta(r, 1) = \\emptyset\n \\]\n * \\[\n \\delta'(\\{q_0\\}, 0) = \\bigcup_{r \\in \\{q_0\\}} \\delta(r, 0) = \\delta(q_0, 0) = \\{q_0\\}\n \\]\n * \\[\n \\delta'(\\{q_0\\}, 1) = \\bigcup_{r \\in \\{q_0\\}} \\delta(r, 1) = \\delta(q_0, 1) = \\{q_0, q_1\\}\n \\]\n * \\[\n \\delta'(\\{q_1\\}, 0) = \\bigcup_{r \\in \\{q_1\\}} \\delta(r, 0) = \\delta(q_1, 0) = \\emptyset\n \\]\n * \\[\n \\delta'(\\{q_1\\}, 1) = \\bigcup_{r \\in \\{q_1\\}} \\delta(r, 1) = \\delta(q_1, 1) = \\emptyset\n \\]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 867, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "08cbe4ad-c49a-4959-8a6d-c8e9d9f9461c": {"__data__": {"id_": "08cbe4ad-c49a-4959-8a6d-c8e9d9f9461c", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "68f337d1-3425-4e8c-b46e-e92da8276b9b", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "cec95f7763c417cd394fcd731b12ded8444afede5b728ff0052b96e23e723970", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Machine \\( M \\) (Continue)\n * \\( \\delta' \\) (Continue)\n * \n $$\n \\delta'(\\{q_0, q_1\\}, 0) = \\bigcup_{r \\in \\{q_0, q_1\\}} \\delta(r, 0) = \\delta(q_0, 0) \\cup \\delta(q_1, 0) = \\{q_0\\} \\cup \\emptyset = \\{q_0\\}\n $$\n * \n $$\n \\delta'(\\{q_0, q_1\\}, 1) = \\bigcup_{r \\in \\{q_0, q_1\\}} \\delta(r, 1) = \\delta(q_0, 1) \\cup \\delta(q_1, 1) = \\{q_0, q_1\\} \\cup \\emptyset = \\{q_0, q_1\\}\n $$\n* Thus \\( \\delta' \\) is given by\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
\\( \\delta' \\)01
\u2205\u2205\u2205
{\\( q_0 \\)}{\\( q_0 \\)}{\\( q_0, q_1 \\)}
{\\( q_1 \\)}\u2205\u2205
{\\( q_0, q_1 \\)}{\\( q_0 \\)}{\\( q_0, q_1 \\)}
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 891, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d2121c03-ca57-4920-930d-2806d96a5540": {"__data__": {"id_": "d2121c03-ca57-4920-930d-2806d96a5540", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "376f03af-7831-4263-944f-067a8a739610", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "1a0958f4b16b9d54b29fc0e261cc4a6d3ce72975e0b33c9dad58d66f6596f5b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* The state diagram of the machine \n $$ M = (Q', \\Sigma, \\delta', q'_0, F') $$\n equivalent to \n $$ N \\quad (L(M) = L(N)) $$\n is shown below:\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0: {q_0}\n q0 --> q0: 0\n q0 --> q01: 1\n q01: {q_0, q_1}\n q01 --> q0: 0\n q01 --> q01: 1\n q1: {q_1}\n q1 --> empty: 0\n q1 --> empty: 1\n empty: \u2205\n empty --> empty: 0\n empty --> empty: 1\n```\n\n* Without bottom part, it is the same as one of our previous example\n* It is okay for a DFA to have unreachable states", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 542, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "76adf11d-d524-4787-bbd0-a77a5bdfd853": {"__data__": {"id_": "76adf11d-d524-4787-bbd0-a77a5bdfd853", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "65963bed-bac0-49d6-a9de-d65a242db975", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8cd784aa4d48e655be915ccd3fba59998b2e17301bd029042a9c966046bc2b50", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# NFA to DFA with \\(\\varepsilon\\) Symbol\n\n* Let \\(E(R)\\) be the collection of states that can be reached from members of \\(R\\) by going only along \\(\\varepsilon\\) arrows, including the members of \\(R\\) themselves. \n $$\n E(R) = \\{ q \\mid q \\text{ can be reached from } R \\text{ by travel along } 0 \\text{ or more } \\varepsilon \\text{ arrows} \\}\n $$\n\n* Note that a state \\(q\\) can be reached from its own state \\(q\\) by travel along no \\(\\varepsilon\\) arrow \\(\\left(R \\subseteq E(R)\\right)\\).\n\n* Example:\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q1: 0, 1\n q1 --> q2: 1\n q2 --> q3: 0, \\varepsilon\n q3 --> q4: 1\n q4 --> q4: 0, 1\n state q4 <>\n```\n\n* \\(E(\\{q_1\\}) = \\{q_1\\}\\) \n* \\(E(\\{q_2\\}) = \\{q_2, q_3\\}\\) \n* \\(E(\\{q_1, q_2\\}) = \\{q_1, q_2, q_3\\}\\) \n* \\(E(\\{q_1, q_3\\}) = \\{q_1, q_3\\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 827, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7cb02807-3a6b-4322-a1d6-d8aece2f2bf7": {"__data__": {"id_": "7cb02807-3a6b-4322-a1d6-d8aece2f2bf7", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b43b6e13-0f5a-425d-9275-2729a955c844", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "c6c9bc3ee5d9f30cf1695a0fd22eab041c9618e6f331837b21fc5ef28bb20d04", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# NFA to DFA with \\(\\varepsilon\\) Symbol\n\n* Let NFA \\(N = (Q, \\Sigma, \\delta, q_0, F)\\) with \\(\\varepsilon\\) transitions that recognizes a language \\(A\\).\n* We can construct a DFA \\(M = (Q', \\Sigma, \\delta', q'_0, F')\\) as\n 1. \\(Q' = \\mathcal{P}(Q)\\)\n 2. \\(\\delta'\\) is given by \n $$\n \\delta'(R, a) = \\bigcup_{r \\in R} E(\\delta(r, a))\n $$\n 3. \\(q'_0 = E(\\{q_0\\})\\) \n - If \\(q_0\\) has no exiting arrow for \\(\\varepsilon\\), then \\(q'_0 = \\{q_0\\}\\)\n 4. \\(F' = \\{ R \\in Q' \\mid R \\text{ contains an accept state of } N \\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 533, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5dcc40da-7eb2-472b-b22c-6775eb440a35": {"__data__": {"id_": "5dcc40da-7eb2-472b-b22c-6775eb440a35", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "29c3b60a-bb82-4527-bde0-350a15fbae8f", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "ca5418686c1e3d287b5a76af89ed8e68449fde8f9a34cf6c79c09ba8c2b09979", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Consider the following NFA machine:\n\nStates and transitions diagram:\n\n- State 1 (initial and accepting state) has:\n - a transition labeled **b** to state 2\n - an epsilon (\u03b5) transition to state 3\n- State 2 has:\n - a loop on **a**\n - a transition labeled **a, b** to state 3\n- State 3 has:\n - a transition labeled **a** back to state 1\n\n$$\nN = (Q, \\Sigma, \\delta, q_0, F)\n$$\n\n* \\( Q = \\{1, 2, 3\\} \\)\n* \\( \\Sigma = \\{a, b\\} \\)\n* \\( \\delta \\) is given by\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
ab\u03b5
1\u2205{2}{3}
2{2, 3}{3}\u2205
3{1}\u2205\u2205
\n\n* \\( q_0 = 1 \\)\n* \\( F = \\{1\\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 863, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c5c359ca-e3cd-4bfc-a33d-1c1a7d0f1599": {"__data__": {"id_": "c5c359ca-e3cd-4bfc-a33d-1c1a7d0f1599", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3d053e94-cef1-4380-b5b1-e0b0d51c5222", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "6a768b6a239b2a2002c157ba75ecc5064deb53590ce980171d0bdf5f9ff2f68b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Machine \\( M = (Q', \\Sigma, \\delta', q'_0, F') \\) equivalent to \\( N \\):\n * \\( Q' = \\mathcal{P}(Q) = \\mathcal{P}(\\{1, 2, 3\\}) \\)\n \n $$\n Q' = \\{\\emptyset, \\{1\\}, \\{2\\}, \\{3\\}, \\{1, 2\\}, \\{1, 3\\}, \\{2, 3\\}, \\{1, 2, 3\\}\\}\n $$\n\n* Start state is \\( E(\\{1\\}) = \\{1, 3\\} \\)\n* \\( F' \\) is a set of sets of states that contain accept states of \\( N \\) (\\( F = \\{1\\} \\)).\n\n $$\n F' = \\{\\{1\\}, \\{1, 2\\}, \\{1, 3\\}, \\{1, 2, 3\\}\\}\n $$\n\n* Transition function:\n\n $$\n \\delta'(R, a) = \\bigcup_{r \\in R} E(\\delta(r, a))\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 528, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14d5d01f-e73e-40d1-846f-b207bf893c48": {"__data__": {"id_": "14d5d01f-e73e-40d1-846f-b207bf893c48", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "313d1cc0-c831-4786-a0da-932c1fc8bc88", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "64722774738db271b53fc3429d9da7c2bdeb25e754a9605050ca5effef5e022c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let\u2019s focus on transition functions \n* The transition function \\(\\delta\\) of the NFA is as follows:\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\\(\\delta\\)ab\\(\\varepsilon\\)
1\u2205{2}{3}
2{2, 3}{3}\u2205
3{1}\u2205\u2205
\n\n* Recall that the set of state of the equivalent DFA is the power set of set of state of the NFA\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\\(\\delta'\\)ab
\u2205\u2205\u2205
{1}\u2205{2}
{2}{2, 3}{3}
{3}{1, 3}\u2205
{1, 2}{2, 3}{2, 3}
{1, 3}{1, 3}{2}
{2, 3}{1, 2, 3}{3}
{1, 2, 3}{1, 2, 3}{2, 3}
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1061, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "edd13447-bbd1-4ad7-ad95-8d1c79ba38c0": {"__data__": {"id_": "edd13447-bbd1-4ad7-ad95-8d1c79ba38c0", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "35a7a5d5-29d2-44dd-9aa5-27639f970e07", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "da3a9c4f1501aad098b811d5f867bae796d759e508624282d2510b714fd31106", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Machine \\( M \\)'s \\(\\delta'\\)\n\n$$\n\\begin{aligned}\n\\delta'(\\emptyset, a) &= \\bigcup_{r \\in \\emptyset} E(\\delta(r, a)) \\\\\n&= \\emptyset \\\\\n\\\\\n\\delta'(\\emptyset, b) &= \\bigcup_{r \\in \\emptyset} E(\\delta(r, b)) \\\\\n&= \\emptyset \\\\\n\\\\\n\\delta'(\\{1\\}, a) &= \\bigcup_{r \\in \\{1\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(1, a)) \\\\\n&= E(\\emptyset) \\\\\n&= \\emptyset \\\\\n\\\\\n\\delta'(\\{1\\}, b) &= \\bigcup_{r \\in \\{1\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(1, b)) \\\\\n&= E(\\{2\\}) \\\\\n&= \\{2\\} \\\\\n\\\\\n\\delta'(\\{2\\}, a) &= \\bigcup_{r \\in \\{2\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(2, a)) \\\\\n&= E(\\{2, 3\\}) \\\\\n&= \\{2, 3\\} \\\\\n\\\\\n\\delta'(\\{2\\}, b) &= \\bigcup_{r \\in \\{2\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(2, b)) \\\\\n&= E(\\{3\\}) \\\\\n&= \\{3\\} \\\\\n\\\\\n\\delta'(\\{3\\}, a) &= \\bigcup_{r \\in \\{3\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(3, a)) \\\\\n&= E(\\{1\\}) \\\\\n&= \\{1, 3\\} \\\\\n\\\\\n\\delta'(\\{3\\}, b) &= \\bigcup_{r \\in \\{3\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(3, b)) \\\\\n&= E(\\emptyset) \\\\\n&= \\emptyset \\\\\n\\\\\n\\delta'(\\{1, 2\\}, a) &= \\bigcup_{r \\in \\{1, 2\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(1, a)) \\cup E(\\delta(2, a)) \\\\\n&= \\emptyset \\cup \\{2, 3\\} \\\\\n&= \\{2, 3\\}\n\\end{aligned}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1109, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e01af6d8-e78f-4b51-b017-6a668eaca36e": {"__data__": {"id_": "e01af6d8-e78f-4b51-b017-6a668eaca36e", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "14b6087f-7eb1-4559-b618-81303dba6bad", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "3dc43d13c7342ff5e7d0ede427e23bdf18e9f2f8f345043c3e0ff38d18a0aa54", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\n\\text{Machine } M \\text{'s } \\delta'\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 2\\}, b) &= \\bigcup_{r \\in \\{1,2\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(1, b)) \\cup E(\\delta(2, b)) \\\\\n&= \\{2\\} \\cup \\{3\\} \\\\\n&= \\{2, 3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 3\\}, a) &= \\bigcup_{r \\in \\{1,3\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(1, a)) \\cup E(\\delta(3, a)) \\\\\n&= \\emptyset \\cup \\{1, 3\\} \\\\\n&= \\{1, 3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 3\\}, b) &= \\bigcup_{r \\in \\{1,3\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(1, b)) \\cup E(\\delta(3, b)) \\\\\n&= \\{2\\} \\cup \\emptyset \\\\\n&= \\{2\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{2, 3\\}, a) &= \\bigcup_{r \\in \\{2,3\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(2, a)) \\cup E(\\delta(3, a)) \\\\\n&= \\{2, 3\\} \\cup \\{1, 3\\} \\\\\n&= \\{1, 2, 3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{2, 3\\}, b) &= \\bigcup_{r \\in \\{2,3\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(2, b)) \\cup E(\\delta(3, b)) \\\\\n&= \\{3\\} \\cup \\emptyset \\\\\n&= \\{3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 2, 3\\}, a) &= \\bigcup_{r \\in \\{1,2,3\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(1, a)) \\cup E(\\delta(2, a)) \\cup E(\\delta(3, a)) \\\\\n&= \\emptyset \\cup \\{2, 3\\} \\cup \\{1, 3\\} \\\\\n&= \\{1, 2, 3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 2, 3\\}, b) &= \\bigcup_{r \\in \\{1,2,3\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(1, b)) \\cup E(\\delta(2, b)) \\cup E(\\delta(3, b)) \\\\\n&= \\{2\\} \\cup \\{3\\} \\cup \\emptyset \\\\\n&= \\{2, 3\\}\n\\end{aligned}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1426, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "17650171-9692-484b-8800-0431b1999129": {"__data__": {"id_": "17650171-9692-484b-8800-0431b1999129", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9023d277-fae0-45f5-95a6-6469aed88c6b", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "64c0f27a4094faa1ec28d6d05e113fec6171be77417065a27cb5765643c7f395", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Recall the transition function of \\( M \\)\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n
ab
\u2205\u2205\u2205
{1}\u2205{2}
{2}{2, 3}{3}
{3}{1, 3}\u2205
{1, 2}{2, 3}{2, 3}
{1, 3}{1, 3}{2}
{2, 3}{1, 2, 3}{3}
{1, 2, 3}{1, 2, 3}{2, 3}
\n\n* The state diagram of \\( M \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> \u2205\n \u2205 --> \u2205: a,b\n {1} --> \u2205: a\n {1} --> {2}: b\n {2} --> {2,3}: a\n {2} --> {3}: b\n {3} --> {1,3}: a\n {3} --> \u2205: b\n {1,2} --> {2,3}: a,b\n {1,3} --> {1,3}: a\n {1,3} --> {2}: b\n {2,3} --> {1,2,3}: a\n {2,3} --> {3}: b\n {1,2,3} --> {1,2,3}: a\n {1,2,3} --> {2,3}: b\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 935, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d51528f0-e47c-46ef-a09c-f7fa954bb167": {"__data__": {"id_": "d51528f0-e47c-46ef-a09c-f7fa954bb167", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b94e7616-e08f-459d-b18e-d9c8cccc5c04", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "ad6ee40311646c1db056c9daba05f63c36d295f60408a957ce46eda5f97ac3a2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n- \\(N_1\\) recognizes a regular language \\(A\\)\n- \\(N_2\\) recognizes a regular language \\(B\\)\n- \\(N\\) recognizes \\(A \\cup B\\) \\((A \\cup B \\text{ is regular})\\)\n\n```mermaid\ngraph TD\n subgraph N1\n A1(( )) --> B1(( ))\n C1(( )) --> D1(( ))\n end\n subgraph N2\n A2(( )) --> B2(( ))\n C2(( )) --> D2(( ))\n end\n subgraph N\n start(( )) --> Nstart(( ))\n Nstart --> N1start(( ))\n Nstart --> N2start(( ))\n subgraph N1\n A1(( )) --> B1(( ))\n C1(( )) --> D1(( ))\n end\n subgraph N2\n A2(( )) --> B2(( ))\n C2(( )) --> D2(( ))\n end\n end\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 690, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cb47fab4-3a26-4663-971d-d0b1896002e3": {"__data__": {"id_": "cb47fab4-3a26-4663-971d-d0b1896002e3", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f190840c-f1c7-4a6c-9501-64b2db54a31f", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "9ad9aa86fb9e0e8c4b07e7e23806ff35b36024f51942b09e89299c8a7c63bfcc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Let \\( N_1 = (Q_1, \\Sigma, \\delta_1, q_1, F_1) \\) recognizes \\( A_1 \\).\n* Let \\( N_2 = (Q_2, \\Sigma, \\delta_2, q_2, F_2) \\) recognizes \\( A_2 \\).\n* To construct \\( N = (Q, \\Sigma, \\delta, q_0, F) \\) to recognizes \\( A_1 \\cup A_2 \\):\n 1. \\( Q = \\{q_0\\} \\cup Q_1 \\cup Q_2 \\)\n 2. The state \\( q_0 \\) is the start state of \\( N \\)\n 3. The set of accept state \\( F = F_1 \\cup F_2 \\)\n 4. \\( \\delta \\) is given by\n\n$$\n\\delta(q, a) = \\begin{cases}\n\\delta_1(q, a) & q \\in Q_1 \\\\\n\\delta_2(q, a) & q \\in Q_2 \\\\\n\\{q_1, q_2\\} & q = q_0 \\text{ and } a = \\varepsilon \\\\\n\\emptyset & q = q_0 \\text{ and } a \\neq \\varepsilon\n\\end{cases}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 661, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7d7f38d0-f610-414d-95e3-c3c680064ebb": {"__data__": {"id_": "7d7f38d0-f610-414d-95e3-c3c680064ebb", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "849394fc-644f-4569-8500-914171e26ecf", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "a439bd5607e3850c422f5c02e8f92a4ff0e992ffa5183a001db5616f9b10798c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Given state diagrams of finite-state machines \\(N_1\\) and \\(N_2\\)\n* To draw a state diagram of a new machine \\(N\\) where\n $$L(N) = L(N_1) \\cup L(N_2):$$\n 1. Draw the state diagram of \\(N_1\\) on the top half \n 2. Draw the state diagram of \\(N_2\\) on the bottom half \n 3. Add a new start state \n 4. Add \\(\\varepsilon\\) transitions from the new start state to the start states of \\(N_1\\) and \\(N_2\\), respectively", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 454, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4a253d66-1583-4cfd-bea9-984528c6e8ab": {"__data__": {"id_": "4a253d66-1583-4cfd-bea9-984528c6e8ab", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b5c10dbe-54b3-4806-8983-d3a98129a858", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "802a145ecec00c7d07d321229d0935f0052ee1c0213dee2dc123e26c0710045d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Draw \\( N_1 \\) on the top half\n\n[The image shows a rectangular box labeled \\( N_1 \\) containing several circles, some of which are double-circled, and an arrow pointing to one of the circles inside the box.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 243, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ca1348c-2def-4c68-a259-7d11d229331a": {"__data__": {"id_": "9ca1348c-2def-4c68-a259-7d11d229331a", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e356ac61-993e-4364-a94e-f7b445b0a58b", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "4100937331eb2c9122da8b033e2db2eaf2b7fa152cbff789b2d1d2a02c95119b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Draw \\( N_2 \\) on the bottom half\n\n[The image shows two rectangular automata diagrams stacked vertically. The top rectangle is labeled \\( N_1 \\) and contains several states represented by circles, with one initial state indicated by an incoming arrow and two double-circled accepting states. The bottom rectangle is labeled \\( N_2 \\) and similarly contains several states with one initial state and three double-circled accepting states.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 474, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9d0b0d10-d046-4e08-bbfe-d3a26db58db9": {"__data__": {"id_": "9d0b0d10-d046-4e08-bbfe-d3a26db58db9", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "73ea29ac-969b-4aeb-9022-a5bd0df59e05", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "5e81ad0c3cbf834523d751e957f7d86b8fa5ad433a3c735dff620e2d360649e8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Add new start state\n\n```mermaid\nstateDiagram-v2\n [*] --> NewStart\n state N1 {\n [*] --> S1\n S1 --> F1: double circle\n S2: circle\n S3: circle\n S4: circle\n F1: double circle\n }\n state N2 {\n [*] --> S1\n S2: circle\n S3: circle\n S4: circle\n F1: double circle\n }\n NewStart --> N1.S1\n NewStart --> N2.S1\n```\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 501, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49162b36-6737-473b-b3a9-7793482ee363": {"__data__": {"id_": "49162b36-6737-473b-b3a9-7793482ee363", "embedding": null, "metadata": {"page_number": 41, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "eac1c32c-3264-4aa1-bf3b-5fc59fa1b043", "node_type": "4", "metadata": {"page_number": 41, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "75dcc93cda9d98aac3b0e1f2baf46440aa1d211b0ea96d35008fffac7ff7728f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Add \\(\\varepsilon\\) transitions\n\n```mermaid\nstateDiagram-v2\n [*] --> N\n N --> N1 : \\(\\varepsilon\\)\n N --> N2 : \\(\\varepsilon\\)\n\n state N1 {\n [*] --> s1\n s1 --> s2\n s2 --> s3\n s3 --> s4\n s4 --> [*]\n }\n\n state N2 {\n [*] --> t1\n t1 --> t2\n t2 --> t3\n t3 --> t4\n t4 --> [*]\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 403, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8ebc2396-6364-45ad-82ce-dbab340a70ea": {"__data__": {"id_": "8ebc2396-6364-45ad-82ce-dbab340a70ea", "embedding": null, "metadata": {"page_number": 42, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9526bc96-2551-4757-9b96-b103199d49a8", "node_type": "4", "metadata": {"page_number": 42, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b26eb11960a2073aebcd43375c3e43255e381674b26ddb7bd03d111a54f2a522", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Let \\( N_1 \\) recognizes \\( A \\) and \\( N_2 \\) recognizes \\( B \\)\n* Given a string \\( w \\), how do we know whether \\( w \\in AB \\)?\n* Recall the definition of \\( AB \\) (A concatenated by \\( B \\))\n\n $$\n AB = \\{ xy \\mid x \\in A \\text{ and } y \\in B \\}\n $$\n\n* For \\( w \\) to be in \\( AB \\), \\( w \\) must be divided into two strings \\( x \\) and \\( y \\) where \\( w = xy \\) such that \\( x \\in A \\) and \\( y \\in B \\)\n * If \\( x \\in A \\), \\( x \\in L(N_1) \\)\n * Since \\( x \\in L(N_1) \\), by simulating \\( N_1 \\) on input \\( x \\), the simulation will end in an accept state of \\( N_1 \\) (\\( N_1 \\) accepts \\( x \\))\n * But if \\( x \\notin A \\), simulation will end in a non-accept state of \\( N_1 \\)\n * If \\( y \\in B \\), \\( y \\in L(N_2) \\)\n * Since \\( y \\in L(N_2) \\), by simulating \\( N_2 \\) on input \\( y \\), the simulation will end in an accept state of \\( N_2 \\) (\\( N_2 \\) accepts \\( y \\))\n * But if \\( y \\notin B \\), simulation will end in a non-accept state of \\( N_2 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1025, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "58822eb0-35e8-495a-8200-bdf3662c0cce": {"__data__": {"id_": "58822eb0-35e8-495a-8200-bdf3662c0cce", "embedding": null, "metadata": {"page_number": 43, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8ea0761b-9bdc-4d7a-9681-d8639b64bec9", "node_type": "4", "metadata": {"page_number": 43, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "82b406e9396035a5e84e246387d0ae359e704c964dc426bd5474f3e9f3d72376", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n- \\(N_1\\) recognizes a regular language \\(A\\)\n- \\(N_2\\) recognizes a regular language \\(B\\)\n- \\(N\\) recognizes \\(AB\\) (\\(AB\\) is regular)\n\n----\n\nDiagram description:\n\n- Two separate automata \\(N_1\\) and \\(N_2\\) are shown.\n- \\(N_1\\) has an initial state with an arrow pointing to it, several intermediate states, and three accepting states.\n- \\(N_2\\) has an initial state with an arrow pointing to it, several intermediate states, and two accepting states.\n- The combined automaton \\(N\\) is shown below, containing both \\(N_1\\) and \\(N_2\\) as subcomponents.\n- The three accepting states of \\(N_1\\) have epsilon (\\(\\epsilon\\)) transitions to the initial state of \\(N_2\\).\n- The initial state of \\(N_1\\) is the initial state of \\(N\\).\n- The accepting states of \\(N_2\\) are the accepting states of \\(N\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 842, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e1275809-2525-44a9-bafb-15e14944f645": {"__data__": {"id_": "e1275809-2525-44a9-bafb-15e14944f645", "embedding": null, "metadata": {"page_number": 44, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "32061c73-6c51-4127-9f5e-6bb73e1ea3da", "node_type": "4", "metadata": {"page_number": 44, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8311d7f8511ffa4ef6dd69df845a8300ba4ab6b4fa8b1a3b409e89b356046ff8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Let \\( N_1 = (Q_1, \\Sigma, \\delta_1, q_1, F_1) \\) recognizes \\( A_1 \\).\n* Let \\( N_2 = (Q_2, \\Sigma, \\delta_2, q_2, F_2) \\) recognizes \\( A_2 \\).\n* To construct \\( N = (Q, \\Sigma, \\delta, q_0, F) \\) to recognizes \\( A_1 \\circ A_2 \\):\n 1. \\( Q = Q_1 \\cup Q_2 \\)\n 2. The state \\( q_1 \\) is the start state of \\( N \\)\n 3. The set of accept state \\( F = F_2 \\)\n 4. \\( \\delta \\) is given by\n\n$$\n\\delta(q, a) = \n\\begin{cases}\n\\delta_1(q, a) & q \\in Q_1 \\text{ and } q \\notin F_1 \\\\\n\\delta_2(q, a) & q \\in Q_2 \\text{ and } a \\neq \\varepsilon \\\\\n\\delta_1(q, a) \\cup \\{q_2\\} & q \\in F_1 \\text{ and } a = \\varepsilon \\\\\n\\delta_2(q, a) & q \\in Q_2\n\\end{cases}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 699, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "769c905e-eb1c-4fdf-84f6-14f27e971937": {"__data__": {"id_": "769c905e-eb1c-4fdf-84f6-14f27e971937", "embedding": null, "metadata": {"page_number": 45, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "af10af35-89d4-4899-8f12-81ec55b469f6", "node_type": "4", "metadata": {"page_number": 45, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "99fa66c7ecd5f16c774cdca267b49bc165e022ddb3b121006438d45fb75c2e42", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Given state diagrams of finite-state machines \\( N_1 \\) and \\( N_2 \\)\n* To draw a state diagram of a new machine \\( N \\) where \n $$ L(N) = L(N_1) \\circ L(N_2) : $$\n 1. Draw the state diagram of \\( N_1 \\) on the left side \n 2. Draw the state diagram of \\( N_2 \\) on the right side \n 3. For every accept state of \\( N_1 \\), add the \\(\\varepsilon\\) transition to the start state of \\( N_2 \\) \n 4. Change all accept states of \\( N_1 \\) to non-accept states", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 505, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bed8fca3-37f1-4a86-af25-385ae63ad65c": {"__data__": {"id_": "bed8fca3-37f1-4a86-af25-385ae63ad65c", "embedding": null, "metadata": {"page_number": 46, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c663017c-a0f0-46d9-8375-9598f20f5bf8", "node_type": "4", "metadata": {"page_number": 46, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "e3ba5cdf5f2f9647e2cd432c3e650090dd7d432b9132aca94983d1a77e68dd64", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Draw the state diagram of \\( N_1 \\) on the left side\n\n```\n+-----------------------+\n| |\n| N_1 |\n| |\n| ( ) o o |\n| o o o |\n| |\n| ( ) ( ) ( ) (final states) \n| |\n| --> (start state) |\n+-----------------------+\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 412, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "915aeab3-6584-4617-9f58-fc713d80a9dc": {"__data__": {"id_": "915aeab3-6584-4617-9f58-fc713d80a9dc", "embedding": null, "metadata": {"page_number": 47, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d1de82e4-a7a6-4543-9d6d-42a010f1f92f", "node_type": "4", "metadata": {"page_number": 47, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "a9ac0b75a0d942b7e24506163ad055524e2cd354dd5468eb941c5460a1b7c11b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Draw the state diagram of \\( N_2 \\) on the right side\n\n\n \n \n\n \n
\n \\( N_1 \\)\n
\n [Diagram of \\( N_1 \\) with states and transitions, including an initial state with an incoming arrow, multiple states, and three double-circled accept states on the right side]\n
\n \\( N_2 \\)\n
\n [Diagram of \\( N_2 \\) with states and transitions, including an initial state with an incoming arrow, multiple states, and two double-circled accept states on the right side]\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 582, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79e3792a-83eb-4108-a9f8-bf22774d7ebc": {"__data__": {"id_": "79e3792a-83eb-4108-a9f8-bf22774d7ebc", "embedding": null, "metadata": {"page_number": 48, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b296c27a-953f-49b2-943c-493f33ba628b", "node_type": "4", "metadata": {"page_number": 48, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "434b3176b1dd17431d1b38486ea43ac8c04e61710d93d5cb0aff163b653a8d5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* \\( \\varepsilon \\) from accept states of \\( N_1 \\) to start state of \\( N_2 \\)\n\n\n \n \n\n \n\n \n \n
\n \\( N_1 \\)
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \\( N_2 \\)
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Transitions:
\n \\(\\varepsilon\\) transitions from each accept state of \\(N_1\\) to the start state of \\(N_2\\)\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2392, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "61753fa5-98cc-4327-96d5-64296678dbc1": {"__data__": {"id_": "61753fa5-98cc-4327-96d5-64296678dbc1", "embedding": null, "metadata": {"page_number": 49, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b2cbc931-737c-4e43-82b5-4787d6ff0a47", "node_type": "4", "metadata": {"page_number": 49, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "bfbf485e70505108d0c876e206c0950ccec8c1364e60ac18be1419e086b40193", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Accept states of \\( N_1 \\) to non-accept states\n\n```mermaid\nstateDiagram-v2\n [*] --> N1_1\n N1_1 --> N1_2\n N1_2 --> N1_3\n N1_3 --> N1_4 : \u03b5\n N1_3 --> N1_5 : \u03b5\n N1_3 --> N1_6 : \u03b5\n N1_4 --> N2_1\n N1_5 --> N2_1\n N1_6 --> N2_1\n N2_1 --> N2_2\n N2_2 --> N2_3\n N2_3 --> [*]\n```\n\n- \\( N_1 \\) and \\( N_2 \\) are two automata.\n- The accept states of \\( N_1 \\) are connected via epsilon (\u03b5) transitions to the start state of \\( N_2 \\).\n- The accept states of \\( N_1 \\) become non-accept states in the concatenated automaton.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 591, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0ddc2be0-ce5a-4e4a-a046-e87ae0be01ec": {"__data__": {"id_": "0ddc2be0-ce5a-4e4a-a046-e87ae0be01ec", "embedding": null, "metadata": {"page_number": 50, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "433ec58a-41ab-4f6e-baa3-5537eec5d764", "node_type": "4", "metadata": {"page_number": 50, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b5388199e75e150223b0eb32c0f7ad29b30fd5c789e3137a3ec3f08fe9295257", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Star operator is similar to concatenation except that it can be concatenated any number of times:\n\n$$\nA^* = \\{ x_1 x_2 x_3 \\ldots x_k \\mid k \\geq 0 \\text{ and } x_i \\in A \\}\n$$\n\nand\n\n$$\n\\varepsilon \\in A^* \\quad \\text{for any language } A\n$$\n\n* Automata diagrams:\n\n```\nN_1:\n (start) --> (state) --> ... --> (accept states)\n\nN:\n (start) --> \u03b5 --> (state) --\u03b5--> (accept states)\n \\--\u03b5--/\n```\n\n* $N_1$ recognizes a regular language $A$\n\n* $N$ recognizes $A^*$ ($A^*$ is regular)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 528, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f68b9e7d-da2f-4e1f-96b0-9d1bb241ca5c": {"__data__": {"id_": "f68b9e7d-da2f-4e1f-96b0-9d1bb241ca5c", "embedding": null, "metadata": {"page_number": 51, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d3469469-a7dc-48a1-8114-c6ad60289b02", "node_type": "4", "metadata": {"page_number": 51, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "f05b5ee7c855f519dcbc841c4ec14ab86d3763223bbe3b69f5ebe8fef12ce2ad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Let \\( N_1 = (Q_1, \\Sigma, \\delta_1, q_1, F_1) \\) recognizes \\( A_1 \\).\n* To construct \\( N = (Q, \\Sigma, \\delta, q_0, F) \\) to recognizes \\( A_1^* \\):\n 1. \\( Q = \\{q_0\\} \\cup Q_1 \\)\n 2. The state \\( q_0 \\) is the start state of \\( N \\)\n 3. The set of accept state \\( F = \\{q_0\\} \\cup F_1 \\)\n 4. \\( \\delta \\) is given by\n\n$$\n\\delta(q, a) = \n\\begin{cases}\n\\delta_1(q, a) & q \\in Q_1 \\text{ and } q \\notin F_1 \\\\\n\\delta_1(q, a) & q \\in F_1 \\text{ and } a \\neq \\varepsilon \\\\\n\\delta_1(q, a) \\cup \\{q_1\\} & q \\in F_1 \\text{ and } a = \\varepsilon \\\\\n\\{q_1\\} & q = q_0 \\text{ and } a = \\varepsilon \\\\\n\\emptyset & q = q_0 \\text{ and } a \\notin \\varepsilon\n\\end{cases}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 702, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "675d2460-93ba-4808-9665-89eab9f8d9cc": {"__data__": {"id_": "675d2460-93ba-4808-9665-89eab9f8d9cc", "embedding": null, "metadata": {"page_number": 52, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "92901df1-6b57-4508-9883-c67975b880bf", "node_type": "4", "metadata": {"page_number": 52, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8c1f6f0cfe72c8284b69c62220b76d1b21c29e54a3a92f9b5d08b8188fae99a0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Given state diagrams of finite-state machines \\( N_1 \\)\n* To draw a state diagram of a new machine \\( N \\) where \n $$ L(N) = L(N_1)^* : $$\n 1. Draw the state diagram of \\( N_1 \\)\n 2. Add a new start state and make it an accept state\n 3. Add \\(\\varepsilon\\) transition from the new start state to the start state of \\( N_1 \\)\n 4. For each **original** accept state of \\( N_1 \\), add \\(\\varepsilon\\) transition to the **original** start state of \\( N_1 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 493, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1507ec4f-e5eb-4eae-adb6-b0da7e39a5e4": {"__data__": {"id_": "1507ec4f-e5eb-4eae-adb6-b0da7e39a5e4", "embedding": null, "metadata": {"page_number": 53, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9bf6d0f4-f6c7-47ff-ab18-11ad9a806eaf", "node_type": "4", "metadata": {"page_number": 53, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "d868fc194ce712ee6b0284d0a206ea736bd23bd4fbf76c761e1415751749815c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Draw the state diagram of \\( N_1 \\)\n\n[The image shows a rectangular box labeled \\( N_1 \\) containing four states represented by circles. One state on the left has an incoming arrow indicating it is the start state. Two states on the right are double circled, indicating they are accepting states. The other two states are single circled. The states are arranged with the start state on the left, two states in the middle, and two accepting states on the right.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 496, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "130f7a3f-48c9-41a3-85bf-f050bdb4cf02": {"__data__": {"id_": "130f7a3f-48c9-41a3-85bf-f050bdb4cf02", "embedding": null, "metadata": {"page_number": 54, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c553e89a-8eff-46e3-9bf6-baeba39fb35e", "node_type": "4", "metadata": {"page_number": 54, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "3a8514919aa0a592158c2d30616b3d402195e29ed625d5c9f82762fb95a661a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Add a new start state and make it an accept state\n\n```mermaid\nstateDiagram-v2\n [*] --> NewStartAcceptState: new start state (accept state)\n state N1 {\n [*] --> S1\n S1 --> S2\n S3 --> S4\n S2 --> S3\n S4 --> S1\n S3 --> S3: accept states\n S4 --> S4: accept states\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 358, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "02aeba3e-3b4c-4e7a-bde4-4916d2109590": {"__data__": {"id_": "02aeba3e-3b4c-4e7a-bde4-4916d2109590", "embedding": null, "metadata": {"page_number": 55, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "477b0431-83eb-48bc-9e40-157830569fb8", "node_type": "4", "metadata": {"page_number": 55, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "1040eb382af8fd68a129b6d7b47e9c057b26a8b1748ebf24dd3e606cf698cf27", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Add \\(\\varepsilon\\) from the new start state to the original start state of \\(N_1\\)\n\n```mermaid\nstateDiagram-v2\n [*] --> NewStart\n NewStart --> N1Start: \u03b5\n state N1 {\n [*] --> S1\n S1 --> S2\n S3 --> S4\n S5 --> S6\n S2 --> [*]\n S4 --> [*]\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 331, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d13cf60f-7ae0-414a-8adb-baf89547fa12": {"__data__": {"id_": "d13cf60f-7ae0-414a-8adb-baf89547fa12", "embedding": null, "metadata": {"page_number": 56, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "654b897d-5ce5-4d9e-a1d6-375372571733", "node_type": "4", "metadata": {"page_number": 56, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "5b47a585ab08fb88fdabb187a4f6461031abc7d520f1157d10e4e6eb52119b3e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* For each **original** accept state of \\( N_1 \\), add \\(\\varepsilon\\) transition to the **original** start state of \\( N_1 \\)\n\n```\nN\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 \u2502\n \u2502 N\u2081 \u2502\n \u2502 \u2502\n \u2502 (start) \u2192 ( ) \u2192 ( ) \u2502\n \u2502 \u03b5 \u03b5 \u03b5 \u2502\n \u2502 \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n* The diagram shows an NFA \\(N\\) with an \\(\\varepsilon\\)-transition to the start state of \\(N_1\\).\n* Inside \\(N_1\\), for each original accept state, there is an \\(\\varepsilon\\)-transition back to the original start state of \\(N_1\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 676, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4b4cfded-8949-4b05-a853-f4379e0166da": {"__data__": {"id_": "4b4cfded-8949-4b05-a853-f4379e0166da", "embedding": null, "metadata": {"page_number": 57, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "edf49ec4-4d0b-4505-bff6-39e537e5d32e", "node_type": "4", "metadata": {"page_number": 57, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "2a688530da7ba6c4617c3def82bcef4e382997f5aba9f500594b5ecdf2fe8e33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Conclusions\n\n* A Nondeterministic Finite Automata (NFA) has an equivalent Deterministic Finite Automata (DFA) \n - The algorithm how to convert from an NFA \\( N \\) to an equivalent DFA \\( D \\) where \\( L(N) = L(D) \\) has been discussed\n\n* The set of all regular languages is closed under union, concatenation, and star operations: \n - If \\( A \\) and \\( B \\) are regular languages, \\( A \\cup B \\) is a regular language \n - If \\( A \\) and \\( B \\) are regular languages, \\( AB \\) (\\( A \\circ B \\)) is a regular language \n - If \\( A \\) is a regular language, \\( A^* \\) is a regular language\n\n* The proof process also gives us an algorithm how to construct DFAs", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 666, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e587b98-181b-4b7d-b59b-2c22706e75f0": {"__data__": {"id_": "2e587b98-181b-4b7d-b59b-2c22706e75f0", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8cdddba1-58cc-48ab-a868-f85419425888", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "91cf43ff0a215b03fe935ee8d45ddc58f44a2f612323dc7918e2360de2af217a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L06 Requirements Elicitation I\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 178, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f65e948b-543c-4c3e-9d06-36a16842a1ee": {"__data__": {"id_": "f65e948b-543c-4c3e-9d06-36a16842a1ee", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3b6e9bd9-77e5-41ce-84a2-340f4dc22022", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "5cfd0d1a43424ba2c03e1201cd21eb7858e538a6572c9c77a8251cbad821027b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet. \n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes. \n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n\n* Material from these notes is obtained from various sources, including, but not limited to, the following: \n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009. \n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994. \n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011. \n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9b52bcf5-6aea-40ae-aaf3-05e8d96df639": {"__data__": {"id_": "9b52bcf5-6aea-40ae-aaf3-05e8d96df639", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5305a6bb-8838-4138-a781-5f865e2a288a", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "7b46f669af6d8845843ed77ea87b2c46cc55e6ef1570b65b8d84b2f8f4447b45", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have a better understanding of user, enduser, and customer \n* You can extract functional requirements from a problem statement", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5767ab18-6e20-4627-91af-3637d7f1a09d": {"__data__": {"id_": "5767ab18-6e20-4627-91af-3637d7f1a09d", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5d74f000-553f-4673-b3d0-28cbababecea", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "c367a1b958cae64cc10f96d52e36c1055d187842ea2ef2bab2b4655b47949d81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to requirements engineering\n* Functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 81, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6751d0ef-b8bb-443f-8614-b1d907c212c0": {"__data__": {"id_": "6751d0ef-b8bb-443f-8614-b1d907c212c0", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fdd79aa2-d716-484a-a5fb-b48c5db3d5aa", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "d4b84c29b9234aecc3c1d2c6b4e95b2e326a720be6bcd1b002e67536532f84f3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Who is the user, enduser, and customer?\n\n* Company A builds a software product for Company B. \n Kim purchases the software product from Company B.\n\n* Company X develops an ordering platform for Restaurant Chain Y. \n Restaurant managers use an admin dashboard to update menus & track orders. \n Customers place orders through the app and get their food delivered.\n\n* Company M creates an online banking backend for Bank N. \n Bank tellers and support staff use the system to manage accounts. \n Bank customers use the mobile app or website to transfer money and check balances.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 596, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8ab66ea3-8192-4554-8f82-ea41d4e94aca": {"__data__": {"id_": "8ab66ea3-8192-4554-8f82-ea41d4e94aca", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "89380637-7b41-45f2-94b6-102faa2120cc", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b286edb63251748ad1787d2612a7beb3580f2542d58e60fd436ed01692d4e5c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# User vs enduser\n\n* **User** is anyone who interacts with the system \n - Includes maintainers or supporters of a system \n - Can be an external system \n - **[Example]** system operations / administrators, technical personnel \n* **Enduser** is the person who is intended to use the software for its _primary function_ \n - Does not need advanced technical knowledge of the system \n - **[Example]** person who downloads an app from the App Store/Google Play Store \n\n> The users of a software system should be defined \n> at the start of a project!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 557, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "db6014ac-e6a5-49a6-9f7e-aa422426479f": {"__data__": {"id_": "db6014ac-e6a5-49a6-9f7e-aa422426479f", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f86f8db1-8f12-42ea-8488-e1c3f148d78e", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "86c9dff3d0990c11977faac041398bcc298865a87565fe3c6f2fab7270e1cf93", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# SDLC \n## Actors & Activities\n\n- Customer \n - Define problem \n - <> Develop software system\n\n- Project Manager \n - Define problem \n - Develop system \n - <> Develop software system\n\n- Developer \n - Develop system\n\n- Enduser \n - Operate System \n - <> Develop software system\n\n- System Administrator \n - Operate System\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 398, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bb6121b2-c770-4cd8-9d65-d67a062c63f4": {"__data__": {"id_": "bb6121b2-c770-4cd8-9d65-d67a062c63f4", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b03e76c6-5dbd-4cc4-86b9-0c41fbb6e934", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b3f5ead26424da479f07b851d8f7884a6579283a452ee11a729e316500e78630", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem definition\n\n* Typically documented as an informal problem statement\n* Describes the purpose of the system\n - Not necessarily something that is wrong\n - Could describe the gap between an existing and desired state\n - Could be an idea\n* **The problem is not the solution!**\n\n> Essential for building any system!\n\n----\n\nVAGUE IDEA OF THE PROBLEM \u2192 DIFFERENT PERSPECTIVES \u2192 CLEAR, SUCCINCT PROBLEM STATEMENT\n\n[The image shows a progression from a vague idea of the problem (depicted as a thought bubble with an exclamation mark inside a triangle), through different perspectives (multiple overlapping shapes with question marks and exclamation marks), to a clear, succinct problem statement (a single triangle with an exclamation mark and rays around it).]\n\n----\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L06 Requirements Elicitation: Functional requirements \nhttps://blog.prototypr.io/the-problem-with-problems-and-a-better-way-to-frame-them-visually-b3bb71f30baf", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1006, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f6195136-b503-4e23-bf30-71204259bd9a": {"__data__": {"id_": "f6195136-b503-4e23-bf30-71204259bd9a", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a44778b6-04dc-4c57-9d08-5713937c5fef", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "da500ecdb822af00abaac8f6b67339c0e7a4926934f6e07ba0007861697498ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Why is it important to separate the problem from the (concrete) solution?\n\n* **Clarity and understanding** \u2014 Avoid premature solution \n - Ensure well-informed solutions \n* **Flexibility** \u2014 Encourage creativity and innovation \n - Explore various solutions \n* **Communication** \u2014 Foster better collaboration \n - Enable a common understanding of the problem \n\n[The image shows a man in a shirt and tie standing in front of a wall covered with papers and red string connecting various points, gesturing animatedly.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 524, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f94d4268-a09d-452c-b0d3-cf107a84fc94": {"__data__": {"id_": "f94d4268-a09d-452c-b0d3-cf107a84fc94", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3b2847fa-3592-4070-aa79-ae706c9bea34", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "d124debb6191a74feee7a5c411b7f9a15e32a4dda66b06c3beb360af09daa160", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Application vs Solution Domain\n\n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n
Application DomainSolution DomainApplication Domain
Requirements
Elicitation
Requirements
Analysis
Deployment /
Delivery
Maintenance
\"What is the problem?\"System Design\"How is the system used / maintained?\"
Object Design
Implementation
Testing & Validation
\"What is the solution?\"
\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1858, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e2783e38-ecf5-4d4e-a4b7-09c4e2ae2e6a": {"__data__": {"id_": "e2783e38-ecf5-4d4e-a4b7-09c4e2ae2e6a", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f79cdcab-543f-48e2-bb71-863126c6495c", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "020a6b2b711dca006482b7c7861d4fe6c53cafb4473afa783203ab8ea4d1ab13", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Application vs Solution Domain\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
PhaseExample
Problem DefinitionStudents complain they can\u2019t find parking spots near class on time
Requirements ElicitationInterview students: Need real-time lot status, navigation to nearest open spot
Requirements AnalysisCreate a use-case diagram for \u2018Find Spot\u2019
& model state machine for lot occupancy
Solution Domain \u2013 DesignDecide: mobile app + backend API with sensor data
ImplementationBuild app using Flutter, connect to database
Testing/ValidationCheck that parking spot data updates every 10 seconds
Deployment/ MaintenanceRelease to App Store, monitor usage, fix bugs
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1145, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "71d5db72-221f-44ae-8812-54b0c05a8556": {"__data__": {"id_": "71d5db72-221f-44ae-8812-54b0c05a8556", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f721df7a-b66d-4897-9ea3-08df3e5b20ed", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "dbe3c44f8c35570651b6599905d4fb8b57b9948b0b811d9ace6e49e6d672fcce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Different domains require different approaches\n\n## Greenfield Engineering\n* Developing a system from scratch; no prior system exists \n* Requirements: Extracted from stakeholders and (end)user input \n* Initiation: New market needs \n* Starting Point: Clear problem statement based on user needs", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eb25e297-6a78-4bb2-973c-3de5fa8fc760": {"__data__": {"id_": "eb25e297-6a78-4bb2-973c-3de5fa8fc760", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bf341016-cc1e-424a-8872-7ea2560af094", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "60d4d445c6003a411a33e68107a6903e4765121d6c23416dd94a2d012c8293ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Different domains require different approaches\n\n**Re-engineering** \u2014 redesign or re-implementation of an existing system \n* Requirements: Driven by new technology \n* Initiation: Responds to technological advancements \n* Starting point: Problem statement rooted in technological evolution", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 293, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9bee7d1a-e45d-4743-9edf-53ce4139b13c": {"__data__": {"id_": "9bee7d1a-e45d-4743-9edf-53ce4139b13c", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "07352b2c-813b-41b2-b7cb-cabd91963b87", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "db55241a3c27a252a45613d4e71d570d7b6d3cc783ad7b23a26acd7380950b8f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Different domains require different approaches\n\n**Interface Engineering** \u2014 adapting an existing system to a new environment \n* Requirements: Prompted by technology or new market needs \n* Initiation: Responds to technology shifts or emerging market demands \n* Starting Point: Problem statement reflecting technological or market changes", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fcca7c53-29a4-46e4-99ed-0ec171908c81": {"__data__": {"id_": "fcca7c53-29a4-46e4-99ed-0ec171908c81", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "98ecebcf-8483-4dff-99de-733175d15d8d", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "67cccb22c1e341441e4da6b9136fe161c67712b76433aaa60b246a54dd0c7fbe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to requirements engineering\n* Functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 81, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "efe5721b-79de-48e0-a2d0-2389066fe3a4": {"__data__": {"id_": "efe5721b-79de-48e0-a2d0-2389066fe3a4", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bf851eec-2363-4255-bfce-6e5a2ce887d6", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "024625182c3d58aeba705a62910070e125b5bfb11593628e9d420ffb52c1bf21", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System Requirements\n\n* Describe the functions to satisfy the stakeholder needs and requirements \n* Basis for designing a software system \n* Describe how the user requirements should be provided by the system \n* Expressed in textual statements \n* Types of requirements: \n - **Functional** (Focus is on the functionality) \n - **Quality** / **Non-functional** (Focus is on quality attributes) \n - **Constraints** (Focus is on limitations) \n\n> WALLY, WE DON\u2019T HAVE TIME TO GATHER THE PRODUCT REQUIREMENTS AHEAD OF TIME. \n> I WANT YOU TO START DESIGNING THE PRODUCT ANYWAY. OTHERWISE IT WILL LOOK LIKE WE AREN\u2019T ACCOMPLISHING ANYTHING. \n> OF ALL MY PROJECTS, I LIKE THE DOOMED ONES BEST.\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 795, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cf6e7a4c-3047-4a28-b9f8-f9950b935083": {"__data__": {"id_": "cf6e7a4c-3047-4a28-b9f8-f9950b935083", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9482f7ce-699b-4e10-9e1c-330a59a1ac13", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b0a6a178dd5b5d92fa9129df1d3563c372d0452e95f611b74e7b08606ba823bf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Functional Requirements\n\n* Describe the essential functionality of the system\n* Define one requirement per function (feature)\n* They should be phrased in a general manner\n\n```\nFR# Short title : Description\n```\n\n> Should be numbered based on their \u2794 priority \n> Phrased in **imperative mood** (verb + noun) \n> The description should not include implementation details\n\n**[Example]** \n`FR7 View Map:` The user can view a map that displays their current location and any historic landmarks around them, within a 5 mile radius.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8bd3240a-47b5-4a05-ae24-3ea8daa969b6": {"__data__": {"id_": "8bd3240a-47b5-4a05-ae24-3ea8daa969b6", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d333ef46-2cbe-44c7-8cd2-7d22ef295230", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "77eb5080390d37f8c78e8f9b30c241a193b3871fde2a9b6754af8a2f9be5501b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Functional Requirements\n\n* Describe the essential functionality of the system\n* Define one requirement per function (feature)\n* They should be phrased in a general manner\n\n```\nFR# Short title : Description\n```\n\n> Should be numbered based on their \u2794 priority \n> Phrased in **imperative mood** (verb + noun) \n> The description should not include implementation details\n\n**[Example]** \n\u274c `\"FR1 Select location: The user can select a button to zoom in Google Maps and look at a red and green-colored heat map of popular areas.\"`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 533, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bdc9d362-8f2c-434a-9e92-09a5bfd224f6": {"__data__": {"id_": "bdc9d362-8f2c-434a-9e92-09a5bfd224f6", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d5899192-847d-48b4-8348-1000d74a02e0", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "14e11cecf9789e68a642f9ed790223dc6202f0db10aa094ad6e05fe56d662df4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is functionality?\n\n* Describes specific tasks the system performs to achieve an intended goal \n e.g., processing data, user interactions, or system operations\n* Focuses on how the system responds to inputs and deliver outputs\n* Defines **features and services the user can invoke / system provides** \n e.g., login, view a report, create a report, \u2026\n\n> Functionality does not describe qualities, e.g., response time, platform type, etc!\n\n## [Example]\n\n* Functionality: \"The user can upload files.\"\n* Quality attributes \n - \"The system can upload files with minimal delay of max. 15 seconds, even with the maximum supported file size.\" \n - \"The system can store uploaded files with a size of up to 2GB.\" \n - \"The system supports files of the types .pdf, .jpg, and .txt\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 785, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0487618e-03c2-4e67-b652-56f46ad28697": {"__data__": {"id_": "0487618e-03c2-4e67-b652-56f46ad28697", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "00dff377-29bc-4669-8075-bfab96c2ca66", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "697b1b890496d59a69c52f4a808c5774c2a33e6b8b5ecb3bb90bc85a4e6cc58f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is functionality? (cont.)\n\n* **Single purpose:** Each functional requirement should represent one logical unit of work (one operation or one step from the actor\u2019s/user\u2019s perspective)\n* **Low complexity:** Complex requirements should be split into separate requirements (or grouped as sub-requirements)\n* **Unified testing & maintenance:** Each functional requirement should be treated as one unit during testing and maintenance\n* An **atomic requirement** is a requirement that cannot be further broken down into individual tasks\n\n> Splitting complex requirements into smaller, manageable requirements helps in system design to better identify reusable parts", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 666, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7aa3a21f-8102-4da9-ba10-7ee71283fb95": {"__data__": {"id_": "7aa3a21f-8102-4da9-ba10-7ee71283fb95", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bf4d503a-d04e-42cd-8153-0ab8786dba05", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b82793a3fe1c4ca420c69dfa18e7cad10ec7a0020921d45e82a305a97f45da48", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Defining requirements\n\n**FR3 Login:** Students can login to the system using their email address and password.\n\n> User\u2019s perspective: Single operation/single purpose \n> Sequential dependency & low complexity \n> Testing & maintenance will most likely be treated as a single unit\n\n**FR4 Control room temperature automatically:** The system automatically controls the temperature for each room.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 406, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "38b8eef2-7afd-48f4-8f75-8b0a020124e6": {"__data__": {"id_": "38b8eef2-7afd-48f4-8f75-8b0a020124e6", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5332aef8-8ef3-4fa0-b8ca-cdfbd77c062e", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "2b0bdad8d206165168c7646223520e2b1ae50f16069327ff052cda58691b7976", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Defining requirements\n\n> User\u2019s perspective: viewing and downloading an account statement are two distinct actions \n> Each has its own functionality and does not depend on each other \n> Testing & maintenance will most likely be treated separately\n\n**FR4 Access account statements:** The customer can access account statements. \n **FR4.1 View Monthly Statements:** The customer can view their past transactions in their account statement, updated monthly. \n **FR4.2 Download Statements:** The customer can download their statements as a PDF file. \n **FR4.3 Receive statements via email:** The customer can choose to receive their account statement automatically via email automatically each month.\n\n> Sub-steps indicate a logical categorization", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 770, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a926350a-786b-45fd-aa91-6adfe4fb3def": {"__data__": {"id_": "a926350a-786b-45fd-aa91-6adfe4fb3def", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "979f47ee-e5bb-433d-a991-5b92cb40f992", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "a5aea25000e3eb556f8433c9a52dcad985bac4062e07a5971ca60952ecc4d537", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Deriving requirements: FURPS+ Model\n\n* FURPS+ is a model used to categorize features and attributes\n* **F**unctional Requirements \n > What functionalities/features should the system provide?\n* Non-functional Requirements \n - **U**sability \n - **R**eliability \n - **P**erformance \n - **S**upportability \n - \u2026 \n > E.g., robustness, maintainability, \u2026\n* Constraints (pseudo-requirements) \n > E.g., standards, physical limitations, software limitations, dependencies, \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 486, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "113352a7-c106-4583-8bb2-06d6c0fbf89a": {"__data__": {"id_": "113352a7-c106-4583-8bb2-06d6c0fbf89a", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4281f524-bc7b-4554-b8b9-a13b304bc605", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "3e23934de083decc93b7e5713acb6a49276fb34099215caad2168417e6ed706d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Abbott\u2019s textual analysis (technique)\n\n* Methodology used to identify and specify objects in a software system based on natural language\n* Review the natural language requirements / problem statement:\n 1. **Identify nouns** \u2192 actors / objects (or entities)\n 2. **Group and categorize** the nouns \u2192 define the objects\u2019 tasks/services\n 3. **Determine the relationships** between the identified objects\n - Adjectives \u2192 describe characteristics/attributes of objects\n - Verbs \u2192 correspond to methods or operations that objects perform\n - Relationships \u2192 describes how objects interact\n\n> Introduced by Russell J. Abbott (1983) as a way to systematically extract objects, attributes, and behavior from an (informal) textual description of a system", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 760, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64187f61-a927-45ef-baef-2a35c3f136bb": {"__data__": {"id_": "64187f61-a927-45ef-baef-2a35c3f136bb", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6a0515f2-807e-4b4b-ac9a-376f6efe938c", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "06224eebd7ad2af11066fc5cb97a31eb151d7086712c913bfc0f93fd3d361d6d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Actor vs entity\n\n* **Actor** is anyone who interacts with the system from outside its boundaries \n - **[Example]** \n **Customer** who browses and purchases items \n Payment Processing System (external system)\n\n* **Entity** is a core object or concept within the boundaries of the system \n - **[Example]** \n Order, Product, Customer within an e-commerce system \n _e.g., system tracks Products (e.g., name, price, inventory count)_", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "44558ddc-be83-4265-b51a-d45e16a8caae": {"__data__": {"id_": "44558ddc-be83-4265-b51a-d45e16a8caae", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "de4298f5-fbc9-41a6-a59d-7c5f671d60a6", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "550fe6b4d78972ce9848ef5556d04beca28ffa9ba436a1c8be13bd25bd403da3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Abbott\u2019s technique\n\nHomeowners want a system to control the temperature in different rooms of a house. The system should: \n* Keep track of the temperature in each room \n* Adjust heating or cooling to keep the rooms comfortable \n* Set different temperatures for each room \n* Be controlled through a mobile app \n* Send an alert if a room's temperature goes too far from the set point \n\n*simplified*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 417, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ee4d1527-accb-4dd6-9838-4c44408a2af9": {"__data__": {"id_": "ee4d1527-accb-4dd6-9838-4c44408a2af9", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0c36b890-20db-4625-88fe-dc89dd530421", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "689036fa73dfa6e867df1454c8032dea1443accee6c2b6d7ff2e1fc4da1a132c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique \u2014 Identifying Actors ![University of Pittsburgh logo]\n\n**Homeowners** want a system to control the temperature in different rooms of a house. The **system** should: \n* Keep track of the temperature in each room \n* Adjust heating or cooling to keep the rooms comfortable \n* Set different temperatures for each room \n* Be controlled through a mobile app \n* Send an alert if a room's temperature goes too far from the set point \n\nRelevant **Actors**: \n* (End)`user` = *Homeowner* or *Occupant* \n> An actor is an entity that interacts with a system\n\n* *Home* (or *Heating and cooling system*) \n> At this stage, the system to be built can be seen as an actor, as the system boundaries still need to be defined.\n\n* *System* (to be built) \n\n*simplified*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 790, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1e7aa0a3-2aea-4491-8d56-57c784e9f604": {"__data__": {"id_": "1e7aa0a3-2aea-4491-8d56-57c784e9f604", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8e43b393-8712-4bd4-90e5-4e9f272248b2", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b5d2025b10520a50c2a6531c0c247ff9bb3c0c8835ecc8d974464899cf66b977", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Abbott\u2019s technique \u2014 Identifying Actors ![University of Pittsburgh logo]\n\nHomeowners want a system to control the temperature in different rooms of a house. The system should:\n\n* **Keep track of the temperature** in each room \n* **Adjust heating or cooling** to keep the rooms comfortable \n* **Set different temperatures** for each room \n* Be controlled through a mobile app \n* **Send an alert** if a room's temperature goes too far from the set point \n\n*simplified*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 489, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2fd8ee16-da22-4e9d-9936-c0c22d8e1ba1": {"__data__": {"id_": "2fd8ee16-da22-4e9d-9936-c0c22d8e1ba1", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0a2cac94-e3ae-430e-853e-96e87c7c4076", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "dc30bb108aef1e560a7be1860d0cda1f265dd254f10f8e4f4915a918f930ace9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique \u2014 Identifying Actors\n\nHomeowners want a system to control the temperature in different rooms of a house. The system should:\n\n* **Keep track of the temperature** in each room \n* **Adjust heating or cooling** to keep the rooms comfortable \n* **Set different temperatures** for each room \n* Be controlled through a mobile app \n* **Send an alert** if a room's temperature goes too far from the set point \n\nActors/_Entities_: \n* **HomeOwner:** View and set temperatures, receive alerts \n* **HeatingCoolingSystem:** Change the temperature in the rooms \n* ~~TemperatureSensor: Detect the temperature in each room~~", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 647, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "67e1cb8b-5256-48c1-a90e-ca6003f5c620": {"__data__": {"id_": "67e1cb8b-5256-48c1-a90e-ca6003f5c620", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "563600d9-22df-4913-9ee8-0d844699b933", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b546987de0fa89d692f467b6ab28ebf0df900e32d1b18050cfd75ce717a7f5bc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Abbott\u2019s technique \u2014 Identifying Actors University of Pittsburgh\n\n```mermaid\ngraph LR\n HomeOwner(( )) -->|controls| HomeControl[HomeControl]\n HomeControl -->|monitor
read temperature| TemperatureSensor(( ))\n```\n\nHomeOwner \nTemperatureSensor", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 269, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "18dd071c-a3e0-44cd-af83-15e2cde938fc": {"__data__": {"id_": "18dd071c-a3e0-44cd-af83-15e2cde938fc", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "18c99039-ee9f-4928-8f54-809ac322b639", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "95a81b9e8ea6389d830731524c0f20aadcd072582337a4d6838564b58d5c2ac5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique *simplified\n\n*The enduser or user of the system is defined as the home owner or occupant.*\n\n- FR1 View room temperature: The user can view the current temperature of each room.\n- FR2 Monitor room temperature: The system monitors the temperature of each room.\n - FR2.1 Sense temperature: The temperature sensor senses the room\u2019s current temperature.\n - FR2.2 Read temperature: The system reads the temperature sensor\u2019s temperature readings once a minute.\n- FR3 Control room temperature manually: The user can control the temperature for each room.\n- FR4 Control room temperature automatically: The system automatically controls the temperature for each room.\n- FR5 Send temperature alerts: The system sends alerts to the user if the temperature in a room deviates from the set preference by more than 4\u00b0F.\n- FR6 Set room temperature preferences: The user can set a desired temperature for each room.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 933, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5cd3fc98-b977-4d9c-b7c6-4d3b25857ff1": {"__data__": {"id_": "5cd3fc98-b977-4d9c-b7c6-4d3b25857ff1", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f846fa69-fbba-4bc4-b518-1fce147a6f1e", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "a5151ad9b12d6ccf90a5b147b2ee43b65b20f7ab6d0b8e6a4044822e299f29b4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique - alternative *simplified* \n\n*The enduser or user of the system is defined as the home owner or occupant.* \n*The software system to be developed is hereafter referred to as HomeControl.*\n\nFR1 View room temperature: The user can view the current temperature of each room. \nFR2 Monitor room temperature: HomeControl monitors the temperature in each room. \n- FR2.1 Sense temperature: The temperature sensor senses the room\u2019s current temperature. \n- FR2.2 Read temperature: HomeControl reads the temperature sensor\u2019s temperature readings once a minute. \nFR3 Control room temperature manually: The user can control the temperature for each room and set it to a specified temperature value. \nFR4 Control room temperature automatically: HomeControl automatically controls the temperature for each room and set it to a specified temperature value using a learning-based schedule (\u2192 FR8). \nFR5 Send temperature alerts: HomeControl sends alerts to the user if the temperature in a room deviates from the set preference by more than 4\u00b0F. \nFR6 Set room temperature preferences: The user can set a desired temperature for each room.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1160, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a14086b3-9ff6-43da-a005-0537ec346656": {"__data__": {"id_": "a14086b3-9ff6-43da-a005-0537ec346656", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a38742a5-fa61-4ae4-8eb4-a33df82b70dc", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "22322cfcff119cafefc974bb06f16a85b59e06659233d64121518a73db88d043", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System vs external system\n\n* **Software system** is a system/component that is being developed \n - Has specified boundaries \n* **External system** is a system/component outside of the boundary of the software system being developed that interacts with it \n - E.g., API, database, sensor, hardware, third-party system \n\n> **Boundaries** define what is inside the system (internal components) and what interacts with it from the outside (external actors, systems/components)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 481, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9072d78b-a77a-4797-8cd8-92fe4ee426fb": {"__data__": {"id_": "9072d78b-a77a-4797-8cd8-92fe4ee426fb", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "23480e28-694a-410e-8c32-c1564b42eb4b", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "ef223873d41edf800992fb806e84e62350b7b29fbc562101cb116353f7d9f08e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\n[The image shows three photographs related to sinkholes and road collapses:\n- The first photo (top left) shows a bus partially fallen into a large sinkhole on a city street, with police caution tape around the area.\n- The second photo (top right) shows a large sinkhole on a paved road, also cordoned off with police caution tape.\n- The third photo (bottom center) shows a smaller sinkhole on a paved surface.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 432, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c3d67f7c-f583-4e4d-b107-2555d2b17450": {"__data__": {"id_": "c3d67f7c-f583-4e4d-b107-2555d2b17450", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "904cc442-d779-4828-9fb7-2b83100b2806", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "f5a742398a90932f81a00e5cf3d2c345d72e2856b2783d119d9fbe83a36a4271", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\n## Background\n\nPittsburgh is facing an increasing number of potholes and sinkholes that pose a threat to public safety and infrastructure. These sudden ground collapses can cause considerable damage to roads, disrupt supply lines, and endanger human lives. Current methods of monitoring and responding to sinkholes are reactive and inefficient. There is an urgent need for a proactive, technology-based solution to detect, track, and predict sinkholes. This solution would enable municipal authorities to respond quickly to potential hazards, deploy resources more efficiently, and take preventative measures to mitigate the impact of sinkholes on the community and infrastructure.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 703, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93cfc5ca-d795-40cb-a027-a8bb477e988f": {"__data__": {"id_": "93cfc5ca-d795-40cb-a027-a8bb477e988f", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "905c92b8-d357-4515-b79e-5bff0111919b", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "1b6944291962aa8a889d2c5bc5c242af221ae74ee49e46389dd2211013831c59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System (SiMCity) to address the issue of sinkholes within the city. The first version of SiMCity should enable residents and city officials to report sinkhole occurrences and track their locations.\n\nThe system should be easy to use, accessible through web and mobile platforms, and track sinkholes in real-time.\n\nResidents should be able to view sinkholes on a map, helping them to avoid such areas. It should also allow residents to report new sinkholes by sending in their location and photographic evidence for verification, or call for help. City officials can remove sinkholes from the map after they have been re-filled and repaired.\n\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and improve the city\u2019s ability to manage and mitigate the impact of these geohazards.\n\n> **Let\u2019s develop this system!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 935, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "81f08320-54e0-4b34-8ba1-2353b3a272cb": {"__data__": {"id_": "81f08320-54e0-4b34-8ba1-2353b3a272cb", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "38cd58e3-b09e-44e0-94b1-3423dce4b9f8", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "cdf1fd97ab65aeb50067f0aa89d781ede4a0685fafc25f76c5c301c2fe085e5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I06 \u2014 Define functional requirements \u23f3 15 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nBased on the problem statement, define **functional requirements** for the SiMCity system\n\n
\ncontinued in L07!\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 288, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3106406f-8920-4dc2-a1de-29e4aae6c3e8": {"__data__": {"id_": "3106406f-8920-4dc2-a1de-29e4aae6c3e8", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a795fad3-2212-4e02-9e00-514efac487c5", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "79cdad4aee34ccd5e70c0630f42832e3e28d74e298e2b851db001bb3f14d3b87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Take-Away: Overview of requirements elicitation\n\n* User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and stakeholders\n* Effective Communication: Establish clear and open channels of communication to gather accurate requirements\n* Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving project needs\n* Documentation: Thoroughly document gathered requirements to ensure clarity and alignment throughout the project lifecycle\n\n| YOUR USER REQUIREMENTS INCLUDE FOUR HUNDRED FEATURES. | DO YOU REALIZE THAT NO HUMAN WOULD BE ABLE TO USE A PRODUCT WITH THAT LEVEL OF COMPLEXITY? | GOOD POINT. I'D BETTER ADD \"EASY TO USE\" TO THE LIST. |\n|--------------------------------------------------------|------------------------------------------------------------------------------------------|--------------------------------------------------------|\n| | | |", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1129, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99896596-fae0-4b23-85d7-3ba9a58ee859": {"__data__": {"id_": "99896596-fae0-4b23-85d7-3ba9a58ee859", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2e108bd3-c332-42da-98dd-21c0e7067bc3", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "f6fee3f79b3378dfa594ba5d4f3fb8e1be81b93c9729db371f175df76d3d64ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L06 Requirements Elicitation I\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 178, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f14295c5-8bc8-4bd7-a3a4-ea435710e33c": {"__data__": {"id_": "f14295c5-8bc8-4bd7-a3a4-ea435710e33c", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "390775b7-73ca-4a1b-b432-7883309453e9", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "076466310f14ae7b9c22d778965d073a71d9e1909d3696d05f6df695c5a7b423", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 04\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "990b7cf1-8db1-491f-96d9-bc316d7ef66d": {"__data__": {"id_": "990b7cf1-8db1-491f-96d9-bc316d7ef66d", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c75a9774-4709-4ab1-8b53-6fd84730cc34", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "29d504f7f8309daf72ffcd5f87ef33a1e6f886955dd138322b94f5f2ee58f03d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions\n\n* A **regular expression** can be constructed using the following rules:\n 1. \\( a \\) is a regular expression for some \\( a \\) in the alphabet \\(\\Sigma\\),\n 2. \\(\\varepsilon\\) is a regular expression\n 3. \\(\\emptyset\\) is a regular expression\n 4. If \\( R_1 \\) and \\( R_2 \\) are regular expressions, \\( R_1 \\cup R_2 \\) is a regular expression\n 5. If \\( R_1 \\) and \\( R_2 \\) are regular expressions, \\( R_1 \\circ R_2 \\) or \\( R_1 R_2 \\) is a regular expression\n 6. If \\( R \\) is a regular expression, \\( R^* \\) is a regular expression\n\n* Note that to use rules 4, 5, or 6, you need to have regular expressions \\( R_1 \\), \\( R_2 \\), or \\( R \\) first which can only be constructed from rules 1, 2, or 3\n\n* This is a recursive definition\n - Once you get regular expressions, you can apply rules 4, 5, or 6 multiple times to obtain more and more regular expressions", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 887, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2bce2a9f-d74d-45a7-92b4-4ccb7eba8457": {"__data__": {"id_": "2bce2a9f-d74d-45a7-92b4-4ccb7eba8457", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e1979233-032d-48a1-9317-03d767fc53fb", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "8abbba596e938fef5bd984877e46ec246122c0d869ad8048f0c15654d0dfab56", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression Examples\n\n* Suppose $$\\Sigma = \\{0, 1\\}$$\n - From rule 1, we have:\n * `0` is a regular expression\n * `1` is a regular expression\n - From rule 2, we have:\n * $$\\varepsilon$$ is a regular expression\n - From rule 3, we have:\n * $$\\emptyset$$ is a regular expression\n* So far, we have four regular expressions, `0`, `1`, $$\\varepsilon$$, and $$\\emptyset$$\n - From rule 4, $$0 \\cup 1$$ is a regular expression\n - From rule 5, `11` is a regular expression\n - From rule 6, `0*` is a regular expression\n* We can keep building larger and larger regular expressions by applying rules 4, 5, and 6 multiple times", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 640, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "57340b14-86eb-4bdc-97af-48ac997391e4": {"__data__": {"id_": "57340b14-86eb-4bdc-97af-48ac997391e4", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5fb1ee39-5090-4b07-90e9-c5bf71da6ed8", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "26e08ade6422621fff3c3db13a484a5ea286cfdc39a20c5c0be5ccf9c4d935d8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression Examples\n\n* Suppose $$\\Sigma = \\{0, 1\\}$$\n - From rule 1, 0 and 1 are regular expressions\n - From rule 4, $$0 \\cup 1$$ is a regular expression\n - From rule 6, $$(0 \\cup 1)^*$$ is a regular expression\n - From rule 5, 01 is a regular expression\n - From rule 5, 011 is a regular expression\n - From rule 5, $$(0 \\cup 1)^*011$$ is a regular expression\n - From rule 5, $$(0 \\cup 1)^*011(0 \\cup 1)^*$$ is a regular expression", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 447, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e8c3f3ed-be45-4647-98c9-358ed28703c8": {"__data__": {"id_": "e8c3f3ed-be45-4647-98c9-358ed28703c8", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "319077a3-2c6a-438d-90e4-63ebef919951", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "f94ec1b1e1cf5dd2756901dcd9f7b632339070ff14fd2815af55bec48f98794b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions\n\n* In arithmetic, an arithmetic expression can be used to represent its object (number) \n - \\(5 + 12\\) is an arithmetic expression \n - \\(5 + 12\\) can be used to represent 17 \n - We usually write \\(5 + 12 = 17\\) \n\n* In theory of computation, a regular expression can be used to express a language \n - Let \\(\\Sigma = \\{0, 1\\}\\) \n - The regular expression \\(0 = \\{0\\}\\) \n - The regular expression \\(1 = \\{1\\}\\) \n - The regular expression \\(\\varepsilon = \\{\\varepsilon\\}\\) \n - The regular expression \\(\\emptyset = \\{\\}\\) \n - Suppose regular expressions \\(R_1 = A\\) and \\(R_2 = B\\) for languages \\(A\\) and \\(B\\), the regular expression \\(R_1 \\cup R_2 = A \\cup B\\) \n - Suppose regular expressions \\(R_1 = A\\) and \\(R_2 = B\\) for languages \\(A\\) and \\(B\\), the regular expression \\(R_1 R_2 = AB\\) \n - Suppose the regular expression \\(R = A\\) for a language \\(A\\), \\(R^* = A^*\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 916, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a4d924fe-d2ea-4bc1-8159-2aaea4423b79": {"__data__": {"id_": "a4d924fe-d2ea-4bc1-8159-2aaea4423b79", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "897cb987-6286-42d6-b2d0-c654a3c061e6", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "2412a99583c3976d403c29fa19d98a43a38a36efaa492bf9c7e008f940d97859", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (Other Notations)\n\n* $R^{+}$ is a shorthand notation for $RR^{*}$ for a regular expression $R$\n - All strings that are 1 or more concatenations of strings from $R$\n - Examples:\n * $1^{+} = 11^{*}$\n * $(0 \\cup 1)^{+} = (0 \\cup 1)(0 \\cup 1)^{*}$\n* $R^{k}$ is a shorthand notation for the concatenation of $k$ $R$\u2019s with each other\n - Examples:\n * $1^{5} = 11111$\n * $(0 \\cup 1)^{3} = (0 \\cup 1)(0 \\cup 1)(0 \\cup 1)$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "04fc9317-5a4e-4fe6-bae2-a8f0afcf9e62": {"__data__": {"id_": "04fc9317-5a4e-4fe6-bae2-a8f0afcf9e62", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2aa3b17d-72bc-48ba-b8ad-88ac5076cf8e", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "14fcc4c14939fcca748602c5a155ba0b3d7064cce1a2c0037bd5b507ed14bd69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (By Examples)\n\n* A regular expression expresses a language:\n * \\(0 \\cup 1\\)\n * \\(0 \\cup 1 = \\{0\\} \\cup \\{1\\} = \\{0, 1\\}\\)\n * A language that consists of two strings, 0 and 1\n * \\(0^*\\)\n * \\(0^* = \\{0\\}^*\\)\n * Recall that \\(A^* = \\{x_1 x_2 \\ldots x_k \\mid k \\geq 0 \\text{ and each } x_i \\in A\\}\\)\n * \\(\\{0\\}^* = \\{\\varepsilon, 0, 00, 000, 0000, 00000, \\ldots\\}\\)\n * \\(0^*\\) expresses the language that consists of all strings that contain nothing but 0s including the empty string\n * \\((0 \\cup 1)0^*\\)\n * \\((0 \\cup 1)0^* = \\{0, 1\\} \\circ 0^* = \\{0, 1\\} \\circ \\{\\varepsilon, 0, 00, 000, \\ldots\\}\\)\n * Recall that \\(A \\circ B = \\{xy \\mid x \\in A \\text{ and } y \\in B\\}\\)\n * \\(\\{0, 1\\}0^* = \\{0, 1, 00, 10, 000, 100, 0000, 1000, \\ldots\\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 788, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fb2bf04c-4060-4c87-871a-5ada3b605c4c": {"__data__": {"id_": "fb2bf04c-4060-4c87-871a-5ada3b605c4c", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "54d904ed-21db-48a1-8a45-b3ba7ba64f72", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e94016f79adfadc9323b79f142cd89cdc9641ac08ded3866ed5263807bbb8256", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (By Examples)\n\n* A regular expression expresses a language:\n * $ (0 \\cup 1)^* $\n * $ (0 \\cup 1)^* = \\{0,1\\}^* = \\{\\varepsilon, 0, 1, 00, 01, 10, 11, 000, 001, \\ldots \\} $\n * This is the set of all strings over 0 and 1\n * We generally use $\\Sigma^*$ instead of $ (0 \\cup 1)^* $\n* $0^* 1 0^*$\n * $0^* 1 0^* = \\{0\\}^* \\circ \\{1\\} \\circ \\{0\\}^*$\n * $\\{0\\}^*$ is a language consisting of all strings containing zero or more 0s ($\\{\\varepsilon, 0, 00, 000, \\ldots \\}$)\n * $0^* 1 0^* = \\{ w \\mid w \\text{ contains a single } 1 \\}$\n* $\\Sigma^* 1 \\Sigma^*$\n * $\\Sigma^* 1 \\Sigma^* = \\Sigma^* \\circ \\{1\\} \\circ \\Sigma^*$\n * $\\Sigma^*$ is the language consisting of all strings over $\\Sigma$\n * $\\Sigma^* 1 \\Sigma^* = \\{ w \\mid w \\text{ has at least one } 1 \\}$\n* $\\Sigma^* 001 \\Sigma^*$\n * $\\Sigma^* 001 \\Sigma^* = \\Sigma^* \\circ \\{001\\} \\circ \\Sigma^*$\n * $\\Sigma^* 001 \\Sigma^* = \\{ w \\mid w \\text{ contains the string } 001 \\text{ as a substring} \\}$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 984, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3530f9dc-adf6-46b8-8a48-8fea3a2e1f2c": {"__data__": {"id_": "3530f9dc-adf6-46b8-8a48-8fea3a2e1f2c", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5e74b34b-eb5a-4b6b-af4a-803a3ee3ff6f", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "26c35128ef6962ea9c3e8434a574a7484f3af733767ff60a0a97cd2045aa860d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (By Examples)\n\n* A regular expression expresses a language:\n * $$1^*(01^+)^*$$\n * $$1^*(01^+)^* = \\{1\\}^* \\circ (01^+)^*$$\n * $$\\{1\\}^*$$ is a language consisting of all strings containing zero or more 1s \n $$(\\{\\varepsilon, 1, 11, 111, \\ldots\\})$$\n * $$01^+ = \\{0\\} \\circ \\{1\\}^+ = \\{0\\} \\circ (\\{1\\} \\circ \\{1\\}^*) = \\{01, 011, 0111, \\ldots\\}$$\n * $$(01^+)^* = \\{01, 011, 0111, \\ldots\\}^* = \\{\\varepsilon, 01, 0101, 01011, 01101, 011011, \\ldots\\}$$\n * $$1^*(01^+)^* = \\{w \\mid \\text{every } 0 \\text{ in } w \\text{ is followed by at least one } 1\\}$$\n\n* $$(\\Sigma \\Sigma)^*$$\n * $$\\Sigma \\Sigma = \\Sigma \\circ \\Sigma = \\{0,1\\} \\circ \\{0,1\\} = \\{00, 01, 10, 11\\}$$\n * $$(\\Sigma \\Sigma)^* = \\{00, 01, 10, 11\\}^*$$\n * $$(\\Sigma \\Sigma)^* = \\{w \\mid w \\text{ is a string of even length}\\}$$\n\n* $$(\\Sigma \\Sigma \\Sigma)^*$$\n * $$\\Sigma \\Sigma \\Sigma = \\{0,1\\} \\circ \\{0,1\\} \\circ \\{0,1\\} = \\{000, 001, 010, 011, 100, 101, 110, 111\\}$$\n * $$(\\Sigma \\Sigma \\Sigma)^* = \\{000, 001, 010, 011, 100, 101, 110, 111\\}^*$$\n * $$(\\Sigma \\Sigma \\Sigma)^* = \\{w \\mid \\text{the length of } w \\text{ is a multiple of } 3\\}$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1156, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a99b20ee-a088-4330-b194-5e3a4c333303": {"__data__": {"id_": "a99b20ee-a088-4330-b194-5e3a4c333303", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "80270694-d82f-438e-8c5d-83d03b0453fa", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "a66ed61138c2f87837e733ec2ee7948f33f55bde9b908fe138b93bf37668bccc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions (By Examples)\n\n* A regular expression expresses a language:\n * \\(01 \\cup 10\\)\n * \\(01 \\cup 10 = (\\{0\\} \\circ \\{1\\}) \\cup (\\{1\\} \\circ \\{0\\}) = \\{01\\} \\cup \\{10\\} = \\{01, 10\\}\\)\n * \\(0\\Sigma^*0 \\cup 1\\Sigma^*1 \\cup 0 \\cup 1\\)\n * \\(0\\Sigma^*0 = \\{0\\} \\circ \\Sigma^* \\circ \\{0\\}\\) is a set of all strings that start and end with 0\n * \\(1\\Sigma^*1\\) is a set of all strings that start and end with 1\n * \\(0\\Sigma^*0 \\cup 1\\Sigma^*1 \\cup 0 \\cup 1 = \\{ w \\mid w \\text{ starts and ends with the same symbol} \\}\\)\n * \\((0 \\cup \\varepsilon)1^*\\)\n * \\(0 \\cup \\varepsilon = \\{0\\} \\cup \\{\\varepsilon\\} = \\{0, \\varepsilon\\}\\)\n * \\(1^* = \\{\\varepsilon, 1, 11, 111, \\ldots\\}\\)\n * \\((0 \\cup \\varepsilon)1^* = \\{0, \\varepsilon\\} \\circ \\{\\varepsilon, 1, 11, 111, \\ldots\\}\\)\n * \\((0 \\cup \\varepsilon)1^* = \\{\\varepsilon, 0, 01, 011, \\ldots, 1, 11, 111, \\ldots\\}\\)\n * \\((0 \\cup \\varepsilon)1^* = 01^* \\cup 1^*\\)\n * \\((0 \\cup \\varepsilon)(1 \\cup \\varepsilon) = \\{0, \\varepsilon\\} \\circ \\{1, \\varepsilon\\} = \\{\\varepsilon, 0, 1, 01\\}\\)\n * \\(1^*\\emptyset = \\{1\\}^* \\circ \\emptyset = \\emptyset\\)\n * \\(\\emptyset^* = \\{\\varepsilon\\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1164, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "59d2d095-7ff9-444f-9171-bc1d4a3b84a1": {"__data__": {"id_": "59d2d095-7ff9-444f-9171-bc1d4a3b84a1", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9b5cad84-0d77-47bd-9483-4c8d13e17508", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "0e932856d50b38c3c655c645f2f4a1f8be385712ba415496769640511623a352", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Operator Precedences and Identities\n\n* Operator Precedences:\n - `*` has the highest precedence.\n - `\u222a` has the lowest precedence.\n\n* Some properties:\n - $$R \\cup \\emptyset = R$$ \n Adding the empty language to any other language will not change it\n - $$R \\circ \\varepsilon = R$$ \n Joining the empty string to any string will not change it\n - $$R \\cup \\{\\varepsilon\\} \\neq R$$ \n If $$R = \\{0, 1\\}, R \\cup \\{\\varepsilon\\} = \\{0, 1, \\varepsilon\\} \\neq R$$\n - $$R \\circ \\emptyset \\neq R$$ \n If $$R = \\{0, 1\\}, R \\circ \\emptyset = \\{0, 1\\} \\circ \\emptyset$$ \n $$\\{0, 1\\} \\circ = \\{xy \\mid x \\in \\{0, 1\\} \\text{ and } y \\in \\emptyset\\} = \\emptyset$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "13c833dc-1fb7-4089-abc8-53f7de8563ce": {"__data__": {"id_": "13c833dc-1fb7-4089-abc8-53f7de8563ce", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5c8c757b-3a1b-4444-807f-ceb985abe70e", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "c0b3e7609600c2eb0d6059dd3efffdd6d2cd5cb06c898cc496ea7a00266df302", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: Regular Expression\n\n* **Problem:** Write a program to evaluate a string representing a floating-point number\n * `72` \u219d true\n * `35.9` \u219d true\n * `20 67` \u219d false\n * `+7.` \u219d true\n * `71a3` \u219d false\n * `-.29` \u219d true\n\n* **Solution**\n * Create a DFA that recognize a set of all strings that are valid floating-point numbers and turn it into a program\n * It would be great if there is an easy way to do this\n * For now, can we create a regular expression that express the set of all valid floating-point representations?\n\n $$\n (+ \\cup - \\cup \\varepsilon)(D^{+} \\cup D^{+} . D^{*} \\cup D^{*} . D^{+})\n $$\n\n where \\( D = \\{0, 1, 2, \\ldots, 9\\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 663, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "acb56be8-9a1b-4c3b-bed6-d852c6597435": {"__data__": {"id_": "acb56be8-9a1b-4c3b-bed6-d852c6597435", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4eece4c0-4d4c-4693-836f-573dcc71cd53", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "1723e9cfef4509a164f4e712065e0f66b250d167d208254f3a803989f887bbee", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression and Finite Automata\n\n* Now we know that a regular expression can be used to express a language \n* **Question:** Is language expressed by a regular expression regular? \n - Let\u2019s try to prove that a regular expression expresses a regular language \n* Recall a regular expression: \n - A regular expression is defined **recursively** (those 6 rules) \n - So, we need to show that a regular expressions constructed from those rules expresses a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 483, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5905125e-58c9-4361-ac68-5601addcf354": {"__data__": {"id_": "5905125e-58c9-4361-ac68-5601addcf354", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "50cb0eff-5ff3-46f3-9aad-b9a3c3f6a225", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "db3b2b0c02eebcd2c59b33cd1851af8b853f071d91181e02be027faacd678f27", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lemma 1.55\n\n* From rule 1: \\(a\\) for some \\(a\\) in the alphabet \\(\\Sigma\\) is a regular expression\n - We need to show that a language expressed by a regular expression generated from this rule is regular\n - Given a symbol \\(a \\in \\Sigma\\), according to this rule, \\(a\\) is a regular expression\n - \\(a\\) expresses the language \\(\\{a\\}\\)\n - Is \\(\\{a\\}\\) regular?\n - Can we construct a DFA that recognizes the language \\(\\{a\\}\\)?\n - This is an NFA that recognizes \\(\\{a\\}\\)\n\n \n\n\n \n \n\n\n \n\n \n\n\n \n
\\(a\\)
\\(q_1\\)\u2192\\(q_2\\)
\n\n* For every NFA, there is an equivalent DFA\n* Thus \\(\\{a\\}\\) is a regular language\n* Therefore, \\(a\\) expresses a regular language\n\n* A regular expression constructed by rule 1 expresses a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 840, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "538818db-d6d0-4ac6-8997-48e8bf90a63a": {"__data__": {"id_": "538818db-d6d0-4ac6-8997-48e8bf90a63a", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f7a69ada-233a-4113-ba6f-ad5324c5000b", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "837c96d10ad30929fb231917a8a643dcb3df60e35eded73f1ada18fd36a7f617", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lamma 1.55\n\n* From rule 2: \\( \\varepsilon \\) is a regular expression\n - Again, we need to show that a language expressed by \\( \\varepsilon \\) is regular\n - Recall that \\( \\varepsilon \\) expresses the language \\(\\{\\varepsilon\\}\\)\n - Is \\(\\{\\varepsilon\\}\\) regular?\n - Can we construct a DFA that recognizes the language \\(\\{\\varepsilon\\}\\)?\n - This is an NFA that recognizes \\(\\{\\varepsilon\\}\\)\n\n \n\n\n \n \n\n \n
\n \n\n\n \n \n \n
q1
\n\n
\n\n - For every NFA, there is an equivalent DFA\n - Thus, \\(\\{\\varepsilon\\}\\) is a regular language\n - Therefore, \\( \\varepsilon \\) expresses a regular language\n\n* A regular expression constructed by rule 2 expresses a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 817, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "44c3fd5f-3a8d-4790-8196-b48e8a7912a4": {"__data__": {"id_": "44c3fd5f-3a8d-4790-8196-b48e8a7912a4", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "da18c6d0-9e9d-40ee-b7fa-e9b2ca3f0909", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "7439491767f199acb00c7abf0a906477e71f492c8f91d3929da1081c0b79f1c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lamma 1.55\n\n* From rule 3: \u2205 is a regular expression\n - Again, we need to show that a language expressed by \u2205 is regular\n - Recall that \u2205 expresses the language $\\{\\}$\n - Is $\\{\\}$ regular?\n - Can we construct a DFA that recognizes the language $\\{\\}$?\n - This is an NFA that recognizes $\\{\\}$\n\n \n\n\n \n \n \n
q
\n\n - For every NFA, there is an equivalent DFA\n - Thus, \u2205 is a regular language\n - Therefore, \u2205 expresses a regular language\n\n* A regular expression constructed by rule 3 expresses a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 565, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "68ff64d1-f772-4140-a8bc-ce1aff2a7cf9": {"__data__": {"id_": "68ff64d1-f772-4140-a8bc-ce1aff2a7cf9", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4f14144a-bbcd-454f-a287-be3319c91fe5", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "f656fd24e84579dcc7ce09bf9845f1e930cea6d2ef932c3326cce837ed4798ab", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lemma 1.55\n\n* Recall that you cannot use rules 4, 5, and 6 to create a new regular expressions unless you already have some regular expressions created by rules 1, 2, or 3\n* We already prove that each regular expression created by rules 1, 2, or 3 expresses a regular language\n* For rule 4:\n - \\( R_1 \\) and \\( R_2 \\) are regular expressions that express regular languages (from rules 1, 2, or 3)\n - Recall that \\( R_1 = A \\) and \\( R_2 = B \\) for some languages \\( A \\) and \\( B \\), \n \\( R_1 \\cup R_2 = A \\cup B \\)\n - We already prove that if \\( A \\) and \\( B \\) are regular languages, \\( A \\cup B \\) is regular (regular language is closed under union operation)\n - Thus, a regular expression obtain by rule 4 express a regular language\n* Same for rules 5 and 6\n - Regular language is closed under concatenation and star operations", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 844, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "95b96890-c2e0-4a0d-b1f5-825cbec81892": {"__data__": {"id_": "95b96890-c2e0-4a0d-b1f5-825cbec81892", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1255c252-46f3-4dcd-873e-0107ad97ed4b", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "2999436c4bcf44955e99217fddd17bf90195aee99a50a19363744fe3269636e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Lemma 1.55\n\n> **Lemma 1.55** \n> If a language is described by a regular expression, then it is regular.\n\n* We just proved the above lemma \n* By proving the above lemma, it gives us a tool to construct an NFA that recognizes the language expressed by a regular expression \n - Based on how we prove that regular language is closed under union, concatenation, and star operations", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 383, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d72d2be-dd7d-4497-a15b-5ba2afe3c678": {"__data__": {"id_": "5d72d2be-dd7d-4497-a15b-5ba2afe3c678", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "91a516d9-cd79-4482-ba5b-4c0bcc201abc", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "369dd1695cb6d11d3b94f7111ec7535d2696df75975a5b1898fc61f29c55a141", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions to NFA\n\n* Suppose we want to construct an NFA that recognizes the language expressed by the regular expression \n $$(ab \\cup a)^*$$ \n where \n $$\\Sigma = \\{a, b\\}$$\n\n* We need to apply those 6 rules to obtain the regular expression \n - This will be a guideline step-by-step to construct an NFA\n\n* Here are steps to construct the regular expression $$(ab \\cup a)^*$$ \n 1. \\(a\\) is a regular expression (rule 1) \n 2. \\(b\\) is a regular expression (rule 1) \n 3. \\(ab\\) is a regular expression (rule 5 with (1) and (2)) \n 4. \\(ab \\cup a\\) is a regular expression (rule 4 with (3) and (1)) \n 5. \\((ab \\cup a)^*\\) is a regular expression (rule 6 with (4))", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 688, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8fc6e945-90cf-47ec-b4b6-7d80e049d8bb": {"__data__": {"id_": "8fc6e945-90cf-47ec-b4b6-7d80e049d8bb", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f696f574-a0b5-40c4-ae6b-597d1cb86c47", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "50e76f2ddc7f14a111edc5a329ea189ded0d4e6b029556fa009622d6f6963cc6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n* a\n\n* b\n\n* ab\n\n* $$ ab \\cup a $$\n\n* $$ (ab \\cup a)^* $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 151, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "096b2c11-b7a0-4d08-939e-f88845f147c3": {"__data__": {"id_": "096b2c11-b7a0-4d08-939e-f88845f147c3", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d1f5ec44-598e-4805-a737-446d3782b359", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "4559251253f675872405a6faef145a64e562960c298ef03b3a2902e6228014c5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \\((ab \\cup a)^*\\) to an NFA.\n\n----\n\n### Step 1: NFA for \\(a\\)\n\n- A start state with an arrow pointing to it.\n- A transition labeled \\(a\\) to a double circle (accepting state).\n\n```\n(start) --a--> (accept)\n```\n\n----\n\n### Step 2: NFA for \\(b\\)\n\n- A start state with an arrow pointing to it.\n- A transition labeled \\(b\\) to a double circle (accepting state).\n\n```\n(start) --b--> (accept)\n```\n\n----\n\n### Step 3: NFA for \\(ab\\)\n\n- A start state with an arrow pointing to it.\n- A transition labeled \\(a\\) to an intermediate state.\n- A transition labeled \\(b\\) from the intermediate state to a double circle (accepting state).\n\n```\n(start) --a--> (state) --b--> (accept)\n```\n\n----\n\n### Step 4: NFA for \\(ab \\cup a\\)\n\n- Two branches from a new start state:\n - One branch for \\(ab\\) as above.\n - One branch for \\(a\\) as above.\n- Both branches lead to a new accepting state.\n\n----\n\n### Step 5: NFA for \\((ab \\cup a)^*\\)\n\n- Add a new start/accepting state.\n- Add epsilon transitions from this new state to the start of the NFA for \\(ab \\cup a\\).\n- Add epsilon transitions from the accepting states of \\(ab \\cup a\\) back to the new start/accepting state.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1281, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "85cff011-36b1-45e5-929b-1355b41729e8": {"__data__": {"id_": "85cff011-36b1-45e5-929b-1355b41729e8", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "93892016-49e0-4ee5-8eb1-600130690e97", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e4b45018a265af562ce0b8d84abf5743b069b74ba55dfd38ce57b6d35f7d0234", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n----\n\n* For symbol **a**:\n\n (Diagram of an NFA with two states, an initial state with an arrow pointing to it, and a transition labeled \"a\" to a double circled accepting state.)\n\n* For symbol **b**:\n\n (Diagram of an NFA with two states, an initial state with an arrow pointing to it, and a transition labeled \"b\" to a double circled accepting state.)\n\n* For **ab**:\n\n (No diagram shown in the image, but presumably a concatenation of the above two NFAs.)\n\n* For $$ ab \\cup a $$:\n\n (No diagram shown in the image, but presumably a union of the NFAs for \"ab\" and \"a\".)\n\n* For $$ (ab \\cup a)^* $$:\n\n (No diagram shown in the image, but presumably the Kleene star applied to the union NFA.)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 860, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bcdc8e12-a386-42bd-9bab-60ab41b7472a": {"__data__": {"id_": "bcdc8e12-a386-42bd-9bab-60ab41b7472a", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1a3d9013-8129-4b59-affd-4bf6d3c3b30d", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "3531e4f1260cbfea19ce42065e5f94d03a514088167a2eee7e793b12ca39a7c6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (ab \\cup a)^* $ to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (circle) \u2014a\u2192 (double circle)\n\n### NFA for `b`\n\n- Start state \u2192 (circle) \u2014b\u2192 (double circle)\n\n### NFA for `ab`\n\n- Start state \u2192 (circle) \u2014a\u2192 (circle) \u2014b\u2192 (double circle)\n\n----\n\n### NFA for $ ab \\cup a $\n\n(Missing diagram, presumably combining the above NFAs with epsilon transitions for union)\n\n----\n\n### NFA for $ (ab \\cup a)^* $\n\n(Missing diagram, presumably adding star operation with epsilon transitions looping back)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 626, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7c2d66cd-60d3-4fbf-9078-6d24f7e529c2": {"__data__": {"id_": "7c2d66cd-60d3-4fbf-9078-6d24f7e529c2", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "88039fb6-0435-4027-ac96-952b87d3461c", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "43b2182fdbe6c85c1f64ac6b8f4677ea6e9a366130c6d3a37ef4e7bf7855734e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \\((ab \\cup a)^*\\) to an NFA.\n\n* NFA for \\(a\\):\n\n (start) --a--> (accept)\n\n* NFA for \\(b\\):\n\n (start) --b--> (accept)\n\n* NFA for \\(ab\\):\n\n (start) --a--> (intermediate) --b--> (accept)\n\n* NFA for \\(ab \\cup a\\):\n\n (start) \n \u2199 \u2198 \n NFA for \\(ab\\) NFA for \\(a\\) \n (both leading to accept states)\n\n* NFA for \\((ab \\cup a)^*\\):\n\n (start) --\u03b5--> (NFA for \\(ab \\cup a\\)) --\u03b5--> (accept) \n with loops and \u03b5-transitions to allow repetition and empty string\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 604, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "af0be530-21ff-48b7-8529-efecd6bf9053": {"__data__": {"id_": "af0be530-21ff-48b7-8529-efecd6bf9053", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8565e127-64fd-4e8e-87b1-a62c4e0a4087", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "66f4f0fbf7374dbf1bd0cdc045af457b8e47a98039e3989f8d7c885ff1223fcc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (a) \u2192 Accept state\n\n### NFA for `b`\n\n- Start state \u2192 (b) \u2192 Accept state\n\n### NFA for `ab`\n\n- Start state \u2192 (a) \u2192 Accept state \u2192\u03b5\u2192 (next state) \u2192 (b) \u2192 Accept state\n\n----\n\n### NFA for $$ ab \\cup a $$\n\n*(Not fully drawn in the image, but implied to be a union of the above NFAs for `ab` and `a`)*\n\n----\n\n### NFA for $$ (ab \\cup a)^* $$\n\n*(Not fully drawn in the image, but implied to be the Kleene star applied to the union NFA)*\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 635, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "22451f25-82f7-4b91-8668-b55d6feec00d": {"__data__": {"id_": "22451f25-82f7-4b91-8668-b55d6feec00d", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d8636770-184e-4456-bf21-7c0ed65ac51b", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e7f5e586b548153eba3380e83129d8fbab61a096a6654030d553a9e84506e84e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \\((ab \\cup a)^*\\) to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (a) \u2192 Accept state\n\n### NFA for `b`\n\n- Start state \u2192 (b) \u2192 Accept state\n\n### NFA for `ab`\n\n- Start state \u2192 (a) \u2192 \u03b5-transition \u2192 (b) \u2192 Accept state\n\n----\n\n### NFA for \\(ab \\cup a\\)\n\n- This is the union of the two NFAs for `ab` and `a`.\n\n----\n\n### NFA for \\((ab \\cup a)^*\\)\n\n- This is the Kleene star applied to the union NFA above.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 536, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f15790b5-5a4c-44ad-b951-95d751207ac6": {"__data__": {"id_": "f15790b5-5a4c-44ad-b951-95d751207ac6", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "25ffc98c-2146-4ccc-8af6-4d0f1c035148", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "6409f47f95dd6b604320468f640b9bf20b7b4956b56fd6de0ca78c0e803c1e80", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \\((ab \\cup a)^*\\) to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (circle) \u2014a\u2192 (double circle)\n\n### NFA for `b`\n\n- Start state \u2192 (circle) \u2014b\u2192 (double circle)\n\n### NFA for `ab`\n\n- Start state \u2192 (circle) \u2014a\u2192 (circle) \u2014\u03b5\u2192 (circle) \u2014b\u2192 (double circle)\n\n### NFA for \\(ab \\cup a\\)\n\n- Start state \u2192 (circle) \u2014a\u2192 (circle) \u2014\u03b5\u2192 (circle) \u2014b\u2192 (double circle)\n- Also includes the NFA for `a` as above (implied union)\n\n----\n\n### NFA for \\((ab \\cup a)^*\\)\n\n- (Not fully drawn in the image, but implied as the Kleene star applied to the union NFA above)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 677, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "92944ee2-8bb9-40ba-933f-96c4760a53aa": {"__data__": {"id_": "92944ee2-8bb9-40ba-933f-96c4760a53aa", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "55ec8e21-69b2-4774-b3c3-25617312f725", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e03467bb3fa646c63b0b5f450ffc428b6d0eb452ea63988a2d99102501bf418e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n\n \n\n \n \n\n \n\n\n \n \n\n \n \n \n \n
ExpressionNFA Diagram Description
a\n Start state → (a) → double circle (accepting state)\n
b\n Start state → (b) → double circle (accepting state)\n
ab\n Start state → (a) → (\u03b5) → (b) → double circle (accepting state)\n
ab \u222a a\n Start state → (a) → (\u03b5) → (b) → double circle (accepting state)\n \n Start state → (a) → double circle (accepting state)\n
$$ (ab \\cup a)^* $$\n (Diagram not fully shown, but implies the Kleene star applied to the union of \"ab\" and \"a\")\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "68a758c9-67a4-49ab-8480-0dc610a7a50c": {"__data__": {"id_": "68a758c9-67a4-49ab-8480-0dc610a7a50c", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7ee03cff-3537-4e6f-b56d-a8c68697da5e", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "c7ef1d384045c08c7197e27e469a00a06b45301b270ff62a6612b4038ba186df", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n\n \n\n \n \n\n \n\n\n \n \n \n
ExpressionNFA Diagram
a\n \u25cb --a--> \u25ce\n
b\n \u25cb --b--> \u25ce\n
ab\n \u25cb --a--> \u25cb --\u03b5--> \u25cb --b--> \u25ce\n
ab \u222a a\n \u25cb --\u03b5--> \u25cb --a--> \u25cb --\u03b5--> \u25cb --b--> \u25ce\n \n \u25cb --\u03b5--> \u25cb --a--> \u25ce\n
\n\n* The final NFA for $$ (ab \\cup a)^* $$ is constructed by applying the Kleene star to the above NFA.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu | Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 897, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "533e926d-ee75-4d15-aa72-f636551be196": {"__data__": {"id_": "533e926d-ee75-4d15-aa72-f636551be196", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ff7673b3-65a8-4ce1-b4a5-8ae68668275b", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "4a71079cd9afda96eb8d9dba2a9298b781ca167944ea25ac0f21007b933ca4d8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (ab \\cup a)^* $ to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (a) \u2192 Accept state\n\n### NFA for `b`\n\n- Start state \u2192 (b) \u2192 Accept state\n\n### NFA for `ab`\n\n- Start state \u2192 (a) \u2192 \u03b5 \u2192 (b) \u2192 Accept state\n\n### NFA for `ab \\cup a`\n\n- Start state\n - \u03b5 \u2192 (a) \u2192 \u03b5 \u2192 (b) \u2192 Accept state\n - \u03b5 \u2192 (a) \u2192 Accept state\n\n### NFA for $(ab \\cup a)^*$\n\n- Start state\n - \u03b5 \u2192 (a) \u2192 \u03b5 \u2192 (b) \u2192 Accept state\n - \u03b5 \u2192 (a) \u2192 Accept state\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "09ba93b3-53b8-45e1-a067-abfd9e60fbb7": {"__data__": {"id_": "09ba93b3-53b8-45e1-a067-abfd9e60fbb7", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2fb1e7b9-2df7-488c-a17d-2ea45d6ed82f", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "35798eca427bb6dc8670b5bad0bdc48fa78c28979ad86f0566d1f92a58788a8d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (ab \\cup a)^* $ to an NFA.\n\n----\n\n### NFA for `a`\n- Start state \u2192 (a) \u2192 Accept state\n\n### NFA for `b`\n- Start state \u2192 (b) \u2192 Accept state\n\n### NFA for `ab`\n- Start state \u2192 (a) \u2192 \u03b5 \u2192 ( ) \u2192 (b) \u2192 Accept state\n\n### NFA for `ab \\cup a`\n- Start state \u2192 \u03b5 \u2192 (a) \u2192 \u03b5 \u2192 ( ) \u2192 (b) \u2192 Accept state\n- Start state \u2192 \u03b5 \u2192 (a) \u2192 Accept state\n\n### NFA for $(ab \\cup a)^*$\n- Start state (accepting) \u2192 \u03b5 \u2192 (start of `ab \\cup a` NFA)\n - \u03b5 \u2192 (a) \u2192 \u03b5 \u2192 ( ) \u2192 (b) \u2192 Accept state\n - \u03b5 \u2192 (a) \u2192 Accept state\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "376477e8-24fe-46a5-87b4-63b466c105f3": {"__data__": {"id_": "376477e8-24fe-46a5-87b4-63b466c105f3", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "856ec17e-c35a-4961-8813-bc73be85ba28", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "c7506400eaf108a0215fe1da67ff8dd455736132db472db07245db9944e325b1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (ab \\cup a)^* $$ to an NFA.\n\n----\n\n- NFA for **a**:\n\n (start) --a--> (accept)\n\n- NFA for **b**:\n\n (start) --b--> (accept)\n\n- NFA for **ab**:\n\n (start) --a--> (state) --\u03b5--> (state) --b--> (accept)\n\n- NFA for **ab \u222a a**:\n\n (start) --\u03b5--> (NFA for ab) \n (start) --\u03b5--> (NFA for a)\n\n- NFA for **(ab \u222a a)\\***:\n\n (start, accept) --\u03b5--> (state) --\u03b5--> (NFA for ab) \n (state) --\u03b5--> (NFA for a) \n (NFA for ab) --\u03b5--> (state) \n (NFA for a) --\u03b5--> (state) \n (state) --\u03b5--> (start, accept)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 634, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e43ed44b-4c53-4fb7-a89d-50a3c917d88f": {"__data__": {"id_": "e43ed44b-4c53-4fb7-a89d-50a3c917d88f", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a4788d3a-7d86-4c74-a97b-f660c85ba81e", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "9ac4d6122f7adc64de012f5014ffbddec1d6c878ccbb181c9a388b4ac5797a6e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expressions to NFA\n\n* Suppose we want to construct an NFA that recognizes the language expressed by the regular expression \n $$(a \\cup b)^* aba$$ \n where $$\\Sigma = \\{a, b\\}$$\n* Again, we need to apply those 6 rules to get a guideline\n* Here are steps to construct the regular expression $$(a \\cup b)^* aba$$\n 1. \\(a\\) is a regular expression (rule 1)\n 2. \\(b\\) is a regular expression (rule 1)\n 3. \\(a \\cup b\\) is a regular expression (rule 4 with (1) and (2))\n 4. \\((a \\cup b)^*\\) is a regular expression (rule 6 with (3))\n 5. \\(ab\\) is a regular expression (rule 5 with (1) and (2))\n 6. \\(aba\\) is a regular expression (rule 5 with (5) and (1))\n 7. \\((a \\cup b)^* aba\\) is a regular expression (rule 5 with (4) and (6))", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 744, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "25a77643-4be6-4bb9-9397-2a1a026050cb": {"__data__": {"id_": "25a77643-4be6-4bb9-9397-2a1a026050cb", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1135ba6a-9c20-4df1-ad71-ee3456f0192e", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "6f58884d687eefc9ac06ed1eb0bdbcf476c41b5900ce9b113b9f96c4b3c08aac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n* a\n\n* b\n\n* $a \\cup b$\n\n* $(a \\cup b)^*$\n\n* $aba$\n\n* $(a \\cup b)^* aba$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f2e498bc-f37c-4d4e-90f7-07af7a0a7977": {"__data__": {"id_": "f2e498bc-f37c-4d4e-90f7-07af7a0a7977", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "47c5fa76-12bb-422a-8b91-9e19ea224364", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "eb55ec986a7c2bed3aa5d198ca4f1df87fe9466a6ca90e17bf900468c2bd15c2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n* Diagram components shown in the image:\n\n - NFA for symbol `a`:\n \n (start) --a--> (accept)\n \n - NFA for symbol `b`:\n \n (start) --b--> (accept)\n \n - NFA for union $a \\cup b$:\n \n ```\n (start)\n | \\\n a b\n | \\\n (accept)\n ```\n \n - NFA for Kleene star $(a \\cup b)^*$:\n \n ```\n (start) --\u03b5--> (a \u222a b NFA) --\u03b5--> (accept)\n ^ |\n |--------------------------------|\n ```\n \n - NFA for concatenation $aba$:\n \n ```\n (start) --a--> --b--> --a--> (accept)\n ```\n \n - Final NFA for $(a \\cup b)^* aba$:\n \n ```\n (start) --(a \u222a b)^*--> --a--> --b--> --a--> (accept)\n ```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 839, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "907e77f2-dbab-4bd1-9278-bd47a754380b": {"__data__": {"id_": "907e77f2-dbab-4bd1-9278-bd47a754380b", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b9c2efa5-79fa-4ce2-b2d4-2f6d1250e449", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "961298b66681486f527a9c18c76ec72cb2b2f1d1f8b5ab9bb46c9749b74e5462", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n* NFA for symbol **a**:\n\n (start) --a--> (accept)\n\n* NFA for symbol **b**:\n\n (start) --b--> (accept)\n\n* NFA for $$ a \\cup b $$:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: a\n S0 --> S2: b\n S1 --> [*]\n S2 --> [*]\n```\n\n* NFA for $$ (a \\cup b)^* $$:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: a\n S0 --> S2: b\n S1 --> S0\n S2 --> S0\n S0 --> [*]\n```\n\n* NFA for $$ aba $$:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: a\n S1 --> S2: b\n S2 --> S3: a\n S3 --> [*]\n```\n\n* NFA for $$ (a \\cup b)^* aba $$:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: a\n S0 --> S2: b\n S1 --> S0\n S2 --> S0\n S0 --> S3: a\n S3 --> S4: b\n S4 --> S5: a\n S5 --> [*]\n```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 912, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0850307-e8d2-4c5a-9251-0248f5f7aa26": {"__data__": {"id_": "c0850307-e8d2-4c5a-9251-0248f5f7aa26", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d9709f5c-98f8-4a21-beec-02fb4704be0e", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "7d8ea44f577c9f11374b45219d976f3c40e949b3cededae3e4e38be246f8c1a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n----\n\n### Step 1: NFA for individual symbols\n\n- For symbol `a`:\n\n ( ) \u2014a\u2192 (\u2299)\n\n- For symbol `b`:\n\n ( ) \u2014b\u2192 (\u2299)\n\n----\n\n### Step 2: NFA for union $a \\cup b$\n\n- Combine the above two NFAs for `a` and `b` into one NFA for $a \\cup b$:\n\n ( ) \u2014a\u2192 (\u2299) \n ( ) \u2014b\u2192 (\u2299)\n\n----\n\n### Step 3: NFA for Kleene star $(a \\cup b)^*$\n\n- Construct the NFA for $(a \\cup b)^*$ based on the union NFA.\n\n----\n\n### Step 4: NFA for concatenation $aba$\n\n- Construct the NFA for the sequence `aba`.\n\n----\n\n### Step 5: Final NFA for $(a \\cup b)^* aba$\n\n- Concatenate the NFA for $(a \\cup b)^*$ with the NFA for `aba`.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 760, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "59af2193-22a5-4da7-9c8c-ea0f41752d83": {"__data__": {"id_": "59af2193-22a5-4da7-9c8c-ea0f41752d83", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "209dca3e-1c5f-4525-9320-993732fad42a", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "3aa1e5f5827a0616458cb5588bbae4476a1f060b0aaa7efb8c2033df8a657d17", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n* Automata for single characters:\n\n - For **a**:\n\n \n\n\n \n \n\n\n\n \n
\u2192\u25cba\u25cb\u25cf
\n\n - For **b**:\n\n \n\n\n \n \n\n\n\n \n
\u2192\u25cbb\u25cb\u25cf
\n\n* Automata for union \\(a \\cup b\\):\n\n \n\n\n \n \n\n\n\n \n\n \n\n\n\n \n
\u2192\u25cba\u25cb\u25cf
\u2192\u25cbb\u25cb\u25cf
\n\n* Automata for \\((a \\cup b)^*\\)\n\n* Automata for **aba**\n\n* Automata for \\((a \\cup b)^* aba\\)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 735, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1efd72ea-78e8-448e-aeca-b5778e3f4b04": {"__data__": {"id_": "1efd72ea-78e8-448e-aeca-b5778e3f4b04", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "549eb705-0596-4651-b3d1-26e743c1a7d2", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "cc2015839963d9dfd66b3d41183dedc3c1e29491341e3e65925db646c6af6f75", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n----\n\n### NFA for `a`\n\n- Start state \u2192 (circle) \u2014a\u2192 (double circle)\n\n### NFA for `b`\n\n- Start state \u2192 (circle) \u2014b\u2192 (double circle)\n\n### NFA for `a \\cup b`\n\n- Start state \u2192 (circle) \u2014\u03b5\u2192 (circle) \u2014a\u2192 (double circle)\n- Start state \u2192 (circle) \u2014\u03b5\u2192 (circle) \u2014b\u2192 (double circle)\n\n----\n\n### NFA for $(a \\cup b)^*$\n\n*(Diagram not fully shown, but implies Kleene star construction on the union NFA)*\n\n----\n\n### NFA for `aba`\n\n*(Diagram not shown, but implies concatenation of a, b, a transitions)*\n\n----\n\n### NFA for $(a \\cup b)^* aba$\n\n*(Final NFA combining the Kleene star of union with the concatenation aba)*\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 772, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "248e33bf-88a0-4a73-ac62-e269450f3051": {"__data__": {"id_": "248e33bf-88a0-4a73-ac62-e269450f3051", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f851805c-0de5-46b3-84dd-ca001c4b7a87", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "1c7bb284ef4a077b5c95f83743c7bde02ae8b4fe6480a1de9486cf7e63ebdc08", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n- (start) \u2192 (state) \u2014a\u2192 (accepting state)\n\n### NFA for symbol `b`\n\n- (start) \u2192 (state) \u2014b\u2192 (accepting state)\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n- (start) \u2014\u03b5\u2192 (state) \u2014a\u2192 (accepting state)\n- (start) \u2014\u03b5\u2192 (state) \u2014b\u2192 (accepting state)\n\n----\n\n### NFA for Kleene star \\((a \\cup b)^*\\)\n\n- (start) \u2014\u03b5\u2192 (state) \u2014a\u2192 (accepting state)\n- (start) \u2014\u03b5\u2192 (state) \u2014b\u2192 (accepting state)\n- (accepting states) have \u03b5-transitions back to (start) to allow repetition\n\n----\n\n### NFA for concatenation `aba`\n\n- (start) \u2014a\u2192 (state) \u2014b\u2192 (state) \u2014a\u2192 (accepting state)\n\n----\n\n### NFA for full expression \\((a \\cup b)^* aba\\)\n\n- Combine the NFA for \\((a \\cup b)^*\\) followed by the NFA for `aba` in sequence.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 885, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0b520c7e-b477-48a3-bd46-c8757100f8ab": {"__data__": {"id_": "0b520c7e-b477-48a3-bd46-c8757100f8ab", "embedding": null, "metadata": {"page_number": 41, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "86b63677-0291-41a0-a0d9-2406faa8046f", "node_type": "4", "metadata": {"page_number": 41, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "234c1e08cd0ad19a810f1d9cced7efe385ad0f54b35b39c99f60c9be3fb68e99", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n- Start state \u2192 (on input `a`) \u2192 Accept state\n\n### NFA for symbol `b`\n\n- Start state \u2192 (on input `b`) \u2192 Accept state\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n- Start state \u2192 (\u03b5) \u2192 state for `a` \u2192 Accept state\n- Start state \u2192 (\u03b5) \u2192 state for `b` \u2192 Accept state\n\n----\n\n### NFA for Kleene star \\((a \\cup b)^*\\)\n\n- Start state (also accept state) \u2192 (\u03b5) \u2192 union NFA start state\n- Union NFA start state \u2192 (\u03b5) \u2192 state for `a` \u2192 Accept state\n- Union NFA start state \u2192 (\u03b5) \u2192 state for `b` \u2192 Accept state\n- Accept states of `a` and `b` \u2192 (\u03b5) \u2192 union NFA start state (loop back)\n\n----\n\n### NFA for concatenation `aba`\n\n- Start state \u2192 (on input `a`) \u2192 state \u2192 (on input `b`) \u2192 state \u2192 (on input `a`) \u2192 Accept state\n\n----\n\n### Final NFA for \\((a \\cup b)^* aba\\)\n\n- Concatenate the NFA for \\((a \\cup b)^*\\) with the NFA for `aba` in sequence.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1029, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1b916caf-54ed-4890-9fba-d9fa6647ed34": {"__data__": {"id_": "1b916caf-54ed-4890-9fba-d9fa6647ed34", "embedding": null, "metadata": {"page_number": 42, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "47208838-32d0-4a89-93dc-33610e133da1", "node_type": "4", "metadata": {"page_number": 42, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "d063b691f292623050766ccba7eda1c0b0e0a3648604e0a1c9aa08fdf571d28c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n(o) --a--> ((o))\n\n----\n\n### NFA for symbol `b`\n\n(o) --b--> ((o))\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n(o) --\u03b5--> (o) --a--> ((o))", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 259, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc431c00-b433-49aa-b989-234c35ceb779": {"__data__": {"id_": "dc431c00-b433-49aa-b989-234c35ceb779", "embedding": null, "metadata": {"page_number": 43, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8c56baff-f625-4ec4-8843-40ba82c47f3b", "node_type": "4", "metadata": {"page_number": 43, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "a25a2bacfe76a32e4db0b5a6b56d194ad81bfd61d76c9cd21ef465c3d51a8243", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\nThe construction is shown step-by-step:\n\n- NFA for symbol `a`:\n\n (start) --a--> (accept)\n\n- NFA for symbol `b`:\n\n (start) --b--> (accept)\n\n- NFA for union \\(a \\cup b\\):\n\n (start) --\u03b5--> (state) --a--> (accept) \n (start) --\u03b5--> (state) --b--> (accept)\n\n- NFA for Kleene star \\((a \\cup b)^*\\):\n\n (start, accept) --\u03b5--> (state) --a--> (accept) \n (start) --\u03b5--> (state) --b--> (accept) \n (accept) --\u03b5--> (start) \n (start) --\u03b5--> (accept)\n\n- NFA for concatenation `aba`:\n\n (start) --a--> (state) --\u03b5--> (state) --b--> (state) --\u03b5--> (state) --a--> (accept)\n\n- Final NFA for \\((a \\cup b)^* aba\\):\n\n Concatenate the NFA for \\((a \\cup b)^*\\) with the NFA for `aba`.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 843, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ba08c877-faab-4163-b4cb-964157b9845b": {"__data__": {"id_": "ba08c877-faab-4163-b4cb-964157b9845b", "embedding": null, "metadata": {"page_number": 44, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "622a7326-69ec-4c97-ad9e-ac8a53b67172", "node_type": "4", "metadata": {"page_number": 44, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "e60c4bf352e94568c1a854b44dbde447b07d33c0563f3c4686e54adaddb99abb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $$ (a \\cup b)^* aba $$ to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n- Start state \u2192 (on input `a`) \u2192 Accept state\n\n### NFA for symbol `b`\n\n- Start state \u2192 (on input `b`) \u2192 Accept state\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n- Start state \u2192 (\u03b5) \u2192 state for `a` \u2192 Accept state\n- Start state \u2192 (\u03b5) \u2192 state for `b` \u2192 Accept state\n\n----\n\n### NFA for Kleene star \\((a \\cup b)^*\\)\n\n- Start state (also accept state)\n- \u03b5-transition to union NFA start state\n- From union NFA accept states, \u03b5-transition back to union NFA start state and to the overall accept state\n\n----\n\n### NFA for concatenation `aba`\n\n- Start state \u2192 (on `a`) \u2192 state \u2192 (\u03b5) \u2192 state \u2192 (on `b`) \u2192 state \u2192 (\u03b5) \u2192 state \u2192 (on `a`) \u2192 Accept state\n\n----\n\n### Final NFA for \\((a \\cup b)^* aba\\)\n\n- Start state (also accept state)\n- \u03b5-transition to Kleene star NFA start state\n- From Kleene star NFA accept states, \u03b5-transition back to Kleene star NFA start state and to the concatenation NFA start state for `aba`\n- Concatenation NFA for `aba` as above\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1139, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fc552436-dca4-48ad-aa55-83c4ce4b443f": {"__data__": {"id_": "fc552436-dca4-48ad-aa55-83c4ce4b443f", "embedding": null, "metadata": {"page_number": 45, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dbb582f0-9ec9-4f89-b643-df55518f9c6c", "node_type": "4", "metadata": {"page_number": 45, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "f0e1ffc5f1e0376ee800472f5b12d85fe6c4b98f6a0f0f9bca6947d45e5af392", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression $ (a \\cup b)^* aba $ to an NFA.\n\n----\n\n### NFA for symbol `a`\n- (start) --a--> (accept)\n\n### NFA for symbol `b`\n- (start) --b--> (accept)\n\n### NFA for union $a \\cup b$\n- (start) --\u03b5--> (state1) --a--> (accept)\n- (start) --\u03b5--> (state2) --b--> (accept)\n\n### NFA for Kleene star $(a \\cup b)^*$\n- (start, accept) --\u03b5--> (state)\n- (state) --\u03b5--> (state1) --a--> (accept1)\n- (state) --\u03b5--> (state2) --b--> (accept2)\n- (accept1) --\u03b5--> (state)\n- (accept2) --\u03b5--> (state)\n\n### NFA for concatenation `aba`\n- (start) --a--> (state1) --\u03b5--> (state2) --b--> (state3) --\u03b5--> (state4) --a--> (accept)\n\n### NFA for full expression $(a \\cup b)^* aba$\n- (start, accept) --\u03b5--> (state)\n- (state) --\u03b5--> (state1) --a--> (accept1)\n- (state) --\u03b5--> (state2) --b--> (accept2)\n- (accept1) --\u03b5--> (state)\n- (accept2) --\u03b5--> (state)\n- (accept) --a--> (state1) --\u03b5--> (state2) --b--> (state3) --\u03b5--> (state4) --a--> (accept)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1036, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "44a40ffb-3a1b-40e4-8318-c92add56ee94": {"__data__": {"id_": "44a40ffb-3a1b-40e4-8318-c92add56ee94", "embedding": null, "metadata": {"page_number": 46, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9a9528dd-8360-4fe0-9b1f-3a0b63b0b69f", "node_type": "4", "metadata": {"page_number": 46, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "14f3d5f87ee1a4999931b85ea0ee177702b38976f30061acac6b0c7ea0d92198", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \n $$(a \\cup b)^* aba$$ \n to an NFA.\n\n----\n\n### NFA for symbol `a`\n\n- Start state \u2192 (on input `a`) \u2192 Accept state\n\n### NFA for symbol `b`\n\n- Start state \u2192 (on input `b`) \u2192 Accept state\n\n----\n\n### NFA for union \\(a \\cup b\\)\n\n- Start state \u2192 (\u03b5) \u2192 state with transition `a` \u2192 accept state \n- Start state \u2192 (\u03b5) \u2192 state with transition `b` \u2192 accept state\n\n----\n\n### NFA for Kleene star \\((a \\cup b)^*\\)\n\n- Start state (also accept state) \u2192 (\u03b5) \u2192 state with two \u03b5-transitions: \n - one to NFA for `a` \n - one to NFA for `b` \n- Both `a` and `b` states transition to their respective accept states \n- Accept states have \u03b5-transitions back to the start of the union NFA and to the overall accept state\n\n----\n\n### NFA for concatenation `aba`\n\n- Start state \u2192 (on `a`) \u2192 state \u2192 (\u03b5) \u2192 state \u2192 (on `b`) \u2192 state \u2192 (\u03b5) \u2192 state \u2192 (on `a`) \u2192 accept state\n\n----\n\n### Final NFA for \\((a \\cup b)^* aba\\)\n\n- Start state (also accept state) \u2192 (\u03b5) \u2192 NFA for \\((a \\cup b)^*\\) \n- NFA for \\((a \\cup b)^*\\) has \u03b5-transitions to NFA for `a` and `b` as above \n- From the accept state of \\((a \\cup b)^*\\), \u03b5-transition to the start of NFA for `aba` \n- NFA for `aba` as described above \n- Accept state at the end of `aba`\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ff3ae762-1abd-44d9-84f2-a0e8a77be634": {"__data__": {"id_": "ff3ae762-1abd-44d9-84f2-a0e8a77be634", "embedding": null, "metadata": {"page_number": 47, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b602f896-d8aa-45b6-bac9-c6f20193a9c4", "node_type": "4", "metadata": {"page_number": 47, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "ee471815c0b8a4dfb6cad914370d66117222541a1e5c97ff7bbd9d94214d2b50", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Expression to NFA\n\n* Convert the regular expression \n $$(a \\cup b)^* aba$$ \n to an NFA.\n\n----\n\n- NFA for symbol **a**:\n\n (start) --a--> (accept)\n\n- NFA for symbol **b**:\n\n (start) --b--> (accept)\n\n----\n\n- NFA for union **a \u222a b**:\n\n (start) --\u03b5--> (state) --a--> (accept) \n (start) --\u03b5--> (state) --b--> (accept)\n\n----\n\n- NFA for Kleene star **(a \u222a b)\\***:\n\n (start, accept) --\u03b5--> (state) \n (state) --\u03b5--> (state) --a--> (accept) \n (state) --\u03b5--> (state) --b--> (accept) \n (accept) --\u03b5--> (start, accept)\n\n----\n\n- NFA for concatenation **aba**:\n\n (start) --a--> (state) --\u03b5--> (state) --b--> (state) --\u03b5--> (state) --a--> (accept)\n\n----\n\n- NFA for full expression **(a \u222a b)^* aba**:\n\n (start) --\u03b5--> (state) \n (state) --\u03b5--> (state) --a--> (accept) \n (state) --\u03b5--> (state) --b--> (accept) \n (accept) --\u03b5--> (state) --a--> (state) --\u03b5--> (state) --b--> (state) --\u03b5--> (state) --a--> (accept)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 04", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1000, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bcaa8d2b-098e-4fd8-b20f-6a19b1b3bc69": {"__data__": {"id_": "bcaa8d2b-098e-4fd8-b20f-6a19b1b3bc69", "embedding": null, "metadata": {"page_number": 48, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e7f34dc9-d3db-4e14-8224-e3f94ea79a6e", "node_type": "4", "metadata": {"page_number": 48, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "691ce43542a2c24e930b62724d8cecf26f9321b59e7737fabadfda145cdc9d6c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Useful Tool\n\n* Recall that the set of all valid floating-point representation is expressed by a regular expression\n\n$$\n(+ \\cup - \\cup \\varepsilon)(D^{+} \\cup D^{+}.D^{*} \\cup D^{*}.D^{+})\n$$\n\nwhere \n* \\( D = \\{0, 1, 2, 3, 4, 5, 6, 7, 8, 9\\} \\)\n\n* Now, we can easily convert the above regular expression into an NFA, construct an equivalent DFA, and turn the DFA into a program \n - This process is done by computer \n - Often used in compiler", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c209a8bb-a3f4-4f96-a693-49a3e44ab17a": {"__data__": {"id_": "c209a8bb-a3f4-4f96-a693-49a3e44ab17a", "embedding": null, "metadata": {"page_number": 49, "file_name": "data/finite_automata_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "91ab1f46-f481-43c3-8d2b-fd91860138ae", "node_type": "4", "metadata": {"page_number": 49, "file_name": "data/finite_automata_04_handout.pdf"}, "hash": "6c7176dda93216a6415d57df0cbcbe0e6a1b997710052a084341b6a826e5a549", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Conclusion\n\n* A regular expression expresses a regular language \n* We have a tool to convert a regular expression into an equivalent NFA \n* What is next? \n - We still do not know whether every regular language can be expressed by a regular expression", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 257, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "330f1faa-1546-49ff-8e97-4bfcd61dd7d7": {"__data__": {"id_": "330f1faa-1546-49ff-8e97-4bfcd61dd7d7", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "91dc68ee-0783-4b9e-a937-147f9a0c2063", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "6fee2cf05a776496b13c8b3ed159c37a793a362471ab244e4e804791ca7a6206", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L14 Dynamic Modeling\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 157, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eedc18c6-6ea7-4e44-934b-17ddcd50ab75": {"__data__": {"id_": "eedc18c6-6ea7-4e44-934b-17ddcd50ab75", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "35c5ab7b-3271-4f14-adb3-8ab6a7021f12", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "ffeab17bfd67aec32881b660864fbbf87f92764877cd09bf4b7d33d858ddaead", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7942043c-2a19-403d-92b3-4252da50c885": {"__data__": {"id_": "7942043c-2a19-403d-92b3-4252da50c885", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "90fddeca-16f4-4209-a617-245cee723795", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "9732273dfeb3edccb4ee4e1ce2ebcd215314f87964c01e15bd187cf6a0b49c28", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You can model an UML activity diagram \n* You can model an UML state chart diagram \n* You understand the purpose of a UML communication diagram", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 165, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ca68525-acca-432a-b07a-67b0f6882344": {"__data__": {"id_": "9ca68525-acca-432a-b07a-67b0f6882344", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "55fcaa92-ab8b-4693-8779-0b64f9a81759", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "bedfefed02abe8c17c4e423d6369f8d116539cc1ea0906eb74630138242c7e1e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Battery\n\n* Design Goal 1: Battery Capacity (Range) \n - Maximize the battery capacity to provide an extended driving range for electric vehicles, allowing users to travel longer distances on a single charge.\n\n* Design Goal 2: Battery Weight and Size (Efficiency) \n - Minimize the weight and size of the battery pack to improve vehicle efficiency and reduce energy consumption.\n\n* Design Goal 3: Battery Lifespan (Longevity) \n - Design the battery to have a long lifespan, reducing the frequency and cost of battery replacements for EV owners.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e51d87ed-d0ed-4879-a40e-4bc7d861d6ab": {"__data__": {"id_": "e51d87ed-d0ed-4879-a40e-4bc7d861d6ab", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4b9a3583-7636-4200-827c-c08babd56c54", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "a84c0952d17a090760b49a34e99d0f15c2cf8bb1f5add7dc54754efcbda20352", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] SIMCity\n\n* DG Usability: After completing a 10-minute tutorial, \u2265 80% of users can independently navigate the main menu and recall the core functions of the system.\n* DG2 Reliability: The system ensures end-to-end data integrity by synchronizing verified sinkhole status changes across all clients within 5 minutes.\n* NFRs\n - NFR1 Usability (Learnability): The system should provide a 10min tutorial to help users understand its core features (\u2026).\n - NFR2 Usability (Navigation): Users should be able to access the menu within two steps.\n - NFR3 Usability (Accessibility): The system should support text-to-speech for improved accessibility.\n - NFR4 Robustness: The system should handle increased traffic (+ 60%) during rush hours, with higher loads in winter than in summer (+ 70%).\n - NFR5 Performance: The map should reflect new and updated reports within five minutes.\n - NFR6 Reliability: The sinkhole status should be updated within five minutes after verifying a sinkhole and after removing a sinkhole.\n - NFR7 Portability: The system should be available as a mobile app.\n - NFR8 Availability: The system should require and verify Internet connectivity for (\u2026) functionality.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1203, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "250acb03-d118-4007-b9ef-88a0b285a1c0": {"__data__": {"id_": "250acb03-d118-4007-b9ef-88a0b285a1c0", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aff86d27-7984-4b85-aa38-855a4f775804", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "3a3a37c3719553f8f8064ef752ab0a10f64b21154f9dda0500fc6fb8edbf9779", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System design concepts \u2014 Overview\n\n[x] Design goals \n\u2192 Control flow \n* Subsystem decomposition \n* HW/SW mapping \n* Data management \n* Access control \n* Boundary conditions", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 180, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "06a4982b-3d9a-4aa6-881f-bc2d3802d80a": {"__data__": {"id_": "06a4982b-3d9a-4aa6-881f-bc2d3802d80a", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e1a6446d-497b-4011-a12d-4cf542371059", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "3eb82c627805228cfed6a3eeb1f55597dc10c820f06d200c5b61a9bf4a7956fe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Please complete the \n## **Midterm Survey** \nThank you!\n\nCS 1530 - SOFTWARE ENGINEERING - 1000 - Lecture \nStudents \nhttps://go.blueja.io/XXDCWA7Ltkii1npCrtobcA\n\n[The image shows a QR code next to the text above.]\n\nUniversity of Pittsburgh (logo)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 251, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d65fce8a-f657-4f8d-bbc3-bd14b5ee1500": {"__data__": {"id_": "d65fce8a-f657-4f8d-bbc3-bd14b5ee1500", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d636c721-b4c3-4311-8e6c-72d6035413ad", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "17fcb4b87efa1671a1c8cc7153a273a85d73da3e7ceca1e6ee36473862810511", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* **Dynamic modeling**\n - Overview\n - Modeling workflows (UML Activity Diagram)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 101, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c36f4f78-ae09-43c4-b5b0-1a7e689ff498": {"__data__": {"id_": "c36f4f78-ae09-43c4-b5b0-1a7e689ff498", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "83be7494-9cef-49c1-b7fc-e674f1023213", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "8fad5cf96a7d0614fa4040b5ec724138f91662a269f1a0c612c0b433d9c7dd2d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Dynamic modeling\n\n* Describes the **dynamic behavior** of parts (components) of the system\n* Typically, we focus on **interesting behavior**\n - e.g., specific workflows involving the user/system with many actions\n* Dynamic model can be described in many ways\n - An entity\u2019s state\n - An entity\u2019s internal behavior / behavior with the system / behavior with other entities", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 376, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "422ba458-794c-4cf4-b36a-d1ce852f7ee6": {"__data__": {"id_": "422ba458-794c-4cf4-b36a-d1ce852f7ee6", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "88d9fd90-4a10-4b66-a41a-2e47fa286831", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "de4197e5df4d7c5c830b8e232c61892a55526ea8a3fd59fde6d15fb5b17cdc26", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Dynamic modeling tools\n\n* **Activity Diagram** \n - Purpose: Represent workflows within use cases \n - Usage: Visualize complex user interactions with multiple actions/decision points\n\n* **State Chart Diagram** \n - Purpose: Model the dynamic states and transitions of a single entity or object \n - Usage: Effective for illustrating how an object changes states in response to events\n\n* **Communication Diagrams** \n - Purpose: Illustrate the interactions and messages exchanged among multiple entities \n - Usage: Useful for modeling collaboration and communication patterns in a system\n\n* **Sequence Diagrams** \n - Purpose: Visualize the interactions between objects in a system over time \n - Usage: Show message sequence exchanged between objects to perform a specific function", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 794, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e73dca09-83a1-44b4-a42d-c4b17a7257ce": {"__data__": {"id_": "e73dca09-83a1-44b4-a42d-c4b17a7257ce", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "04b72893-0a89-4468-94d0-90c16f2fcc3b", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "40a6c1909cfcd6365c1af43901b8f1d1bff53665b97011a9627acbaadb0e8a59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML activity diagrams\n\n* Organize and represent the flow of activities and actions, grouping them by the interacting system or actor\n* Help to more easily understand complex workflows\n* Show the order of execution, enabling modeling of both simple and complex behaviors", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 272, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5260150f-11b8-423e-81c9-b64f7e413e8e": {"__data__": {"id_": "5260150f-11b8-423e-81c9-b64f7e413e8e", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "feb489a1-2f51-4638-ab25-e5a46b98728f", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "d13e97d778df5117faaaca2e636bc929d41a779fafcdde2919784fba920756c4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML activity diagrams\n\n* Consist of nodes and edges\n* **Nodes** describe activities and objects\n - Control nodes\n - Executable nodes\n - Object nodes (an object, e.g., a document, a SLF)\n* An **edge** is a directed connection between nodes\n\n----\n\n### Diagram (University of Pittsburgh)\n\n- **Start node** \n (black filled circle)\n\n- **Action node** \n Rectangle with rounded corners labeled: \n `View Calendar`\n\n- **Object node** \n Rectangle labeled: \n `Calendar`\n\n- Rectangle with rounded corners labeled: \n `View available appointments`\n\n- Rectangle with stacked rectangles labeled: \n **Available appointments** \n (Multiple objects)\n\n- **Edge** \n Directed arrows connecting the nodes in the order shown above\n\n- **End node** \n (black filled circle with surrounding ring)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 793, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0450ace0-1b52-4dc8-bd40-3be6ee69ee5c": {"__data__": {"id_": "0450ace0-1b52-4dc8-bd40-3be6ee69ee5c", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ba4014f8-75e7-46d8-8d38-7e513709d626", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "355836ac4d48d59370e34485410bfdebbf328df1a348a340b2f2d5aaba0f288f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML activity diagram syntax\n\n* **Start or initial node** \n \u25cf (solid black circle)\n\n* **End or final node** \n \u25ef (black circle with white center)\n\n* **Action node** \n Describes an action \n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \n \u2502 Action node \u2502 \n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n* **Object node** \n Describes an object \n (often hints at data) \n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \n \u2502 Object node \u2502 \n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n* **Control flow:** action A is followed by action B \n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2192 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \n \u2502 Action node A \u2502 \u2502 Action node B \u2502 \n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n----\n\n## Decision node \n**Decide on the control flow** \n- Diamond shape \n- Example: \n ```\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2192 \u25c7 \u2500\u2500\u25ba\u2502 Action node\u2502\n \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2502\n \u2514\u2500[true condition]\n ```\n\n## Merge node \n**If the different control flows merge again** \n- Diamond shape with multiple incoming arrows and one outgoing arrow\n\n## Fork node \n**Concurrent actions (order is not important)** \n- Thick vertical bar splitting into multiple parallel flows \n- Example: \n ```\n \u2503\n \u2503 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2503 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2503 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2503 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n ```\n\n## Join node \n**Indicates the end of the concurrent actions** \n- Thick vertical bar joining multiple parallel flows into one\n\n----\n\n### Diagram example combining decision and merge nodes:\n\n```\n\u2192 \u25c7 \u2500\u2500[true condition]\u2500\u25ba \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2500\u2500\u25ba \u25c7 \u2500\u25ba\n \u2502 \u2502 Action node \u2502\n \u2514\u2500[false condition]\u2500\u25ba \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 Action node \u2502\n```\n\n### Diagram example combining fork and join nodes:\n\n```\n\u2192 \u2503 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2500\u2500\u25ba \u2503 \u2500\u25ba\n \u2503 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2500\u2500\u25ba \u2503 \u2500\u25ba\n```\n\n----\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L14 Dynamic Modeling \nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1731, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1b32da85-5ac7-44df-a548-9be81b351032": {"__data__": {"id_": "1b32da85-5ac7-44df-a548-9be81b351032", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f5c65637-70c3-4feb-be73-2cc8e1b6d78c", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "68a491638195f12d2e95d57f766cb2758635f061fe1191885850cd90f26d1b68", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Activity diagrams can use **swimlanes**\n\n* Purpose: **Group actions** by viewpoint/role to indicate **responsibilities within a process or workflow**\n* A swimlane within an activity diagram represents a **boundary**\n - Helps in separating responsibilities and interactions\n* Swimlanes combine the system's high-level logic with responsibilities and interactions\n\n\n \n \n\n \n
PatientThe Patient\u2019s (actor) actions
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fd15c25c-146d-4bb1-b40a-0d7d4a790e3e": {"__data__": {"id_": "fd15c25c-146d-4bb1-b40a-0d7d4a790e3e", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a91c9f32-ad03-4a92-9798-4f11279ce83e", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "d45ab8e8b340625ae20c22b29cfe60aceb89e135cc7f44b7546a151a3d08ce8f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Swimlanes\n\n> \"Depth\" of the model depends on the context!\n\n----\n\n\n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n \n \n
PatConnect
System\u2019s responsibilityPatient
Actor\u2019s responsibility\n
\n
\n Check for next available date\n
\n
\n
\n Possible Appointment\n
\n
\n
\n [reject appointment]\n
\n
\n
\n
\n
\n Select new appointment\n
\n
\n
\n [select appointment]\n
\n
\n
\n Confirm appointment\n
\n
\n
\n Appointment\n
\n
\n
\n\n----\n\n> **Swimlane:** Describe the activities from one actor\u2019s or system\u2019s point of view", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1670, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e9c58e0f-38ba-421a-ae42-2528e04a0063": {"__data__": {"id_": "e9c58e0f-38ba-421a-ae42-2528e04a0063", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "430bc2d3-166c-4aaa-93bd-93baa7616694", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "c1101dae229600b849cbebab4fc66e514e5dabef247741d5fd540e4316a06fc4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Dynamic model - activity diagram\n\n> **Activity**\n\n\u25cf (Initial node / start) \n\u2192 Receive feedback \n\u2192 Occupant feedback \n\u2192 Sense thermal environment \n\u2192 Thermal environment sensation \n\u2192 Update occupant model \n\u2192 Updated occupant model \n\u2192 (Decision node) \n\u2003\u2003- [occupant feedback != comfortable] \u2192 Change thermal actuator state \n\u2003\u2003\u2003\u2003\u2192 (Merge node) \n\u2003\u2003\u2003\u2003\u2003\u2003\u2192 (Final node / end) \n\u2003\u2003- [occupant feedback == comfortable] \u2192 (Merge node) \n\u2003\u2003\u2003\u2003\u2192 (Final node / end) \n\n> **Initial node / start** \n> **Condition** \n> **Decision node** \n> **Object node** \n> **Merge node** \n> **Final node / end**\n\nUniversity of Pittsburgh \n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L14 Dynamic Modeling", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 700, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d1441c46-b745-418c-9592-33d162505ee6": {"__data__": {"id_": "d1441c46-b745-418c-9592-33d162505ee6", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8b90d55a-4de2-48b6-88fe-9d158b21c344", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "f1ee1573cbb6569fcd9958ba42a42f804c4c0cddad9e562e496f9322f08750ab", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to model an activity diagram\n\n* Activity diagrams serve to illustrate various workflows, such as:\n - User-specific workflows\n - System workflows\n - Logical workflows\n - \u2026\n* These workflows are frequently derived from:\n - The flow of events within use cases\n - Associations found in the analysis object model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 320, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4ebd56cc-4925-42fb-b349-9801db902f75": {"__data__": {"id_": "4ebd56cc-4925-42fb-b349-9801db902f75", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dd135064-4e06-4cd8-b179-5dbebc859e00", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "753390fb0be38f433bd8f93beb711095ded0dfae31e19470f413f299529eb6cb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Login Activity\n\n```mermaid\nflowchart TD\n Start(( ))\n Start --> A[Enter username]\n A --> B[Enter password]\n B --> C[Submit login details]\n C --> D[User Login]\n D --> E{Login details match user record?}\n E -- yes --> F[Approved Login]\n F --> End(( ))\n E -- no --> G{Try again?}\n G -- yes --> A\n G -- no --> End(( ))\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 365, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf82333d-c011-431b-a1e2-6ecc1fc0fef1": {"__data__": {"id_": "bf82333d-c011-431b-a1e2-6ecc1fc0fef1", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b1432dda-71c1-44b2-8ac8-20abf6c9e766", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "70028510582b21d844ae8213bc89cf26d3611d56dc0a8a03eb4ee9a1573a08b4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Login Activity\n\n```mermaid\nflowchart TD\n Start(( ))\n A[Enter username]\n B[Enter password]\n C[Submit login details]\n D{Login details valid?}\n E[Valid Login Details]\n F[Send 2FA notification]\n G[2FA Notification]\n H{Login approved?}\n I{Try again?}\n J[Approved Login]\n End(( ))\n\n Start --> A --> B --> C --> D\n D -- no --> A\n D -- yes --> E --> F --> G --> H\n H -- no --> I\n H -- yes --> J --> End\n I -- no --> End\n I -- yes --> A\n F --> E\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 513, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "25687547-5520-41d0-b642-e33221c1dfa1": {"__data__": {"id_": "25687547-5520-41d0-b642-e33221c1dfa1", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a3b08b90-8731-40ce-b423-ade4fc508431", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "f7dc581419842caf724e7a694edefe6276c151c3e72d3c5dc5823e36838bd5a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Login Activity (2FA)\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
Authentication-DeviceUser
\u25cf
Enter username
Enter password
Submit login details
Login Details
\n \n\n\n \n \n\n \n
yesno
\n\n Login details valid?\n
Request authentication code
Generate authentication code
Authentication CodeEnter authentication code
User Authentication Code
\n \n\n\n \n \n\n \n
yesno
\n\n Login valid?\n
Approved Login
\n \n\n\n \n \n \n\n \n \n
no
yes
\n\n Try again?\n
\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L14 Dynamic Modeling", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1389, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aebc80a1-aa97-4b32-8426-7b50709597e6": {"__data__": {"id_": "aebc80a1-aa97-4b32-8426-7b50709597e6", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2aef485a-8f4c-4454-acc6-e62dd6fcbe7f", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "c7cae95ccf74ede004df06b3bbea805dfe5934a77a6a59d566693d0ea49a0f36", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L14 \u2014 In-class: Activity diagram \u23f3 20 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nModel a UML activity diagram to describe an **interesting**, non-trivial workflow, e.g.:\n\n* The enduser\u2019s workflow to submit a report\n* The city official\u2019s workflow to confirm a report\n* \u2026 (pick your own workflow!)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 271, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c535073b-fbc0-48c6-ace6-ba58a9813dcc": {"__data__": {"id_": "c535073b-fbc0-48c6-ace6-ba58a9813dcc", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bf7ec57a-ec3b-416c-93bb-006869e86321", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "e96fd4b308ac10b43f1506c7c96d36732a73268be108308c31b2ccb69cdd6dce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7be49e43-790f-4de9-ac1e-3f826838d606": {"__data__": {"id_": "7be49e43-790f-4de9-ac1e-3f826838d606", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5b5569d5-f294-47c8-b391-1fea11204b82", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L14 Dynamic Modeling.pdf"}, "hash": "0fb4f06299c012231661ec1d5159ba7c35cd4496dccd80ffccea60d79ff52323", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L14 Dynamic Modeling\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 77, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b2fab268-16aa-40b0-8c61-ed6e349b7937": {"__data__": {"id_": "b2fab268-16aa-40b0-8c61-ed6e349b7937", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4915e440-17f3-43c2-bb7a-397d302cb337", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "f22915a71411ecb40ad50e82ffee7b440ffb2e9e70f46adf5ceb14d55901e4f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine 02\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 71, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca31f95b-b902-4829-9083-00f50d7727a9": {"__data__": {"id_": "ca31f95b-b902-4829-9083-00f50d7727a9", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "03868c16-a5bb-4b3f-99cb-fedef8f2348d", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "5c0a7539395a10c7d7beb6fe0c98f08cbdd7d1c7d093a287e1afe1ab6dcb8f81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine Example\n\n* Design a Turing machine that recognizes the language \\( B \\) where \n $$\n B = \\{ w \\# w \\mid w \\in \\Sigma^* \\}\n $$\n\n* On input string \\( w \\):\n 1. Zig-zag across the tape to corresponding positions on either side of the \\# symbol to check whether those positions contain the same symbol. If they do not, or if no \\# is found, *reject*. Cross off symbols as they are checked to keep track of which symbols correspond.\n 2. When all symbols to the left of the \\# have been crossed off, check for any remaining symbols to the right of the \\#. If any symbols remain, *reject*; otherwise, *accept*.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 626, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dce2dd2b-6fdc-4d2b-b211-f8316dc618f0": {"__data__": {"id_": "dce2dd2b-6fdc-4d2b-b211-f8316dc618f0", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0318d49a-342a-4ca4-9449-2436cf1f0ccc", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "4d0f923147637515724486f6114dbe2314bd363c645c0d6495079bfeb95f1526", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n* A Turing machine that decides \n $$\n B = \\{ w \\# w \\mid w \\in \\Sigma^* \\}.\n $$\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q2: 0 \u2192 x, R\n q1 --> q3: 1 \u2192 x, R\n q1 --> q8: # \u2192 R\n\n q2 --> q2: 0,1 \u2192 R\n q2 --> q4: # \u2192 R\n\n q4 --> q4: x \u2192 R\n q4 --> q6: 0 \u2192 x, L\n\n q3 --> q3: 0,1 \u2192 R\n q3 --> q5: # \u2192 R\n\n q5 --> q5: x \u2192 R\n q5 --> q6: 1 \u2192 x, L\n\n q6 --> q6: 0,1,x \u2192 L\n q6 --> q7: # \u2192 L\n\n q7 --> q7: 0,1 \u2192 L\n q7 --> q2: x \u2192 R\n\n q8 --> q8: x \u2192 R\n q8 --> qaccept: \u2423 \u2192 R\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 549, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1946a552-c35d-4c7d-ba81-135d6a1c4c8b": {"__data__": {"id_": "1946a552-c35d-4c7d-ba81-135d6a1c4c8b", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b87810de-cc1e-41d9-bb44-a72f685dcbc6", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "7729c1e027cd51f26ecb28a1b58fdf60920e3c9c80b008d6f0473de1edb38c4a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n* \\( \\Sigma = \\{0, 1, \\#\\} \\)\n* \\( \\Gamma = \\{0, 1, \\#, x, \\sqcup\\} \\)\n* \\( 1 \\to x, R \\) \n - Read 1, write x, and move the tape head to the right direction\n* \\( \\# \\to R \\) \n - A shorthand notation for \\( \\# \\to \\#, R \\) \n - Read \\(\\#\\), write \\(\\#\\), and move the tape head to the right direction\n* \\( 0, 1 \\to L \\) \n - A shorthand notation representing two transitions: \n - \\( 0 \\to L \\) which is \\( 0 \\to 0, L \\) \n - \\( 1 \\to L \\) which is \\( 1 \\to 1, L \\)\n* \\( q_{\\text{reject}} \\) is **omitted** \n - All missing exiting arrows go to \\( q_{\\text{reject}} \\) \n - Assume that it moves the tape head to the right direction before entering \\( q_{\\text{reject}} \\) without writing a symbol (writing the same symbol it read)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 772, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1b114976-ad8c-4404-863c-2d9c0611c3ea": {"__data__": {"id_": "1b114976-ad8c-4404-863c-2d9c0611c3ea", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cc2d5143-9eb7-4818-8521-2da64743047a", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "25c8060b926d3533aaef7265ceae1c4e936b60b53cef952cd1f59acffdfa1c3f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n## Computing `01#01`\n\n```mermaid\nstateDiagram-v2\n [*] --> q_1\n q_1 --> q_2: 0 \u2192 x, R\n q_1 --> q_3: 1 \u2192 x, R\n q_1 --> q_8: # \u2192 R\n\n q_2 --> q_2: 0, 1 \u2192 R\n q_2 --> q_4: # \u2192 R\n\n q_4 --> q_4: x \u2192 R\n q_4 --> q_6: 0 \u2192 x, L\n\n q_6 --> q_6: 0, 1, x \u2192 L\n q_6 --> q_7: # \u2192 L\n\n q_7 --> q_7: 0, 1 \u2192 L\n q_7 --> q_1: x \u2192 R\n\n q_3 --> q_3: 0, 1 \u2192 R\n q_3 --> q_5: # \u2192 R\n\n q_5 --> q_5: x \u2192 R\n q_5 --> q_6: 1 \u2192 x, L\n\n q_8 --> q_accept: \u2294 \u2192 R\n q_8 --> q_8: x \u2192 R\n```\n\n### Computation trace for input `01#01`\n\n```\nq_1 01#01\nx q_2 1#01\nx 1 q_2 #01\nx 1 # q_4 01\nx 1 q_6 # x 1\nx q_7 1 # x 1\nq_7 x 1 # x 1\nx q_1 1 # x 1\nx x q_3 # x 1\nx x # q_5 x 1\nx x # x q_5 1\nx x # q_6 x x\nx x q_6 # x x\nx q_7 x # x x\nx x q_1 # x x\nx x # q_8 x x\nx x # x q_8 x\nx x # x x q_8 \u2294\nx x # x x \u2294 q_accept\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 842, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eef15daa-4182-42c2-908c-db3a26e122ae": {"__data__": {"id_": "eef15daa-4182-42c2-908c-db3a26e122ae", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ccd1bbef-a1f9-40bb-843f-749a1c7dd4ba", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "e0bfa06f27ab3504b87dabc5277edb908cf02bf87a2214ec1bad81c098055174", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n## Computing `01#10`\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q2: 0 \u2192 x, R\n q1 --> q3: 1 \u2192 x, R\n q1 --> q8: # \u2192 R\n q2 --> q2: 0,1 \u2192 R\n q2 --> q4: # \u2192 R\n q4 --> q4: x \u2192 R\n q4 --> q6: 0 \u2192 x, L\n q3 --> q3: 0,1 \u2192 R\n q3 --> q5: # \u2192 R\n q5 --> q5: x \u2192 R\n q5 --> q6: 1 \u2192 x, L\n q6 --> q6: 0,1,x \u2192 L\n q6 --> q7: # \u2192 L\n q7 --> q7: 0,1 \u2192 L\n q7 --> q1: x \u2192 R\n q8 --> q8: x \u2192 R\n q8 --> qaccept: \u2423 \u2192 R\n```\n\n### Computation trace for input `01#10`:\n\n- \\( q_1 01\\#10 \\)\n- \\( x q_2 1\\#10 \\)\n- \\( x 1 q_2 \\#10 \\)\n- \\( x 1 \\# q_4 10 \\)\n- \\( x 1 \\# 1 q_{reject} 0 \\)\n\n----\n\nThumrongsak Kosiyatrakul `tkosiyat@cs.pitt.edu` \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 710, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "de3c4d0c-6406-4fd2-9896-782b4d2e2674": {"__data__": {"id_": "de3c4d0c-6406-4fd2-9896-782b4d2e2674", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7ce7fd8d-7fa6-4b47-bd30-0adf46568376", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "c242b486713aaa5ccec6c194995df820535e4c4e604f40724abb31e2ede2cbc9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_1 \\)\n\n## Computing 01 (no \\# symbol)\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q2: 0 \u2192 x, R\n q1 --> q3: 1 \u2192 x, R\n q1 --> q8: # \u2192 R\n\n q2 --> q2: 0,1 \u2192 R\n q2 --> q4: # \u2192 R\n\n q4 --> q4: x \u2192 R\n q4 --> q6: 0 \u2192 x, L\n\n q3 --> q3: 0,1 \u2192 R\n q3 --> q5: # \u2192 R\n\n q5 --> q5: x \u2192 R\n q5 --> q6: 1 \u2192 x, L\n\n q6 --> q6: 0,1,x \u2192 L\n q6 --> q7: # \u2192 L\n\n q7 --> q7: 0,1 \u2192 L\n q7 --> q1: x \u2192 R\n\n q8 --> q8: x \u2192 R\n q8 --> qaccept: \u2423 \u2192 R\n```\n\n### Tape configurations during computation of input `01`:\n\n- \\( q_1 0 1 \\)\n- \\( x q_2 1 \\)\n- \\( x 1 q_2 \\sqcup \\)\n- \\( x 1 \\sqcup q_{reject} \\)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 715, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "268da651-ae3a-4df9-ae31-b5d4239fe728": {"__data__": {"id_": "268da651-ae3a-4df9-ae31-b5d4239fe728", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1e149010-c0ef-45e3-a48a-3f4fb63925de", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "6599c114ea96aaa1f558ae56385a8921df3087a22d627d529a346657ae426694", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine Example\n\n* Design a Turing machine that recognizes the language \\( A \\) where \n $$\n A = \\{0^{2^n} \\mid n \\geq 0\\}\n $$\n\n* On input string \\( w \\): \n 1. Sweep left to right across the tape, crossing off every other 0 \n 2. If in stage 1 the tape contained a single 0, *accept* \n 3. If in stage 1 the tape contained more than a single 0 and the number of 0s was odd, *reject* \n 4. Return the head to the left-hand end of the tape \n 5. Go to stage 1", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 476, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "55f8e941-d0a7-419c-8399-788d88809a03": {"__data__": {"id_": "55f8e941-d0a7-419c-8399-788d88809a03", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c55b4077-d252-4f49-92dd-f4c38e06feb5", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "ca11fa1ee9035bdec449d8ba2feac1627787a9406f7dbe6d1f42eba120e71d41", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Moving the Tape Head Back\n\n* Suppose we want to move the tape head back to the left most end of the tape\n - Need a state to do that\n\n ```\n 0, 1, x \\to L\n ```\n\n - This will result in an infinite loop\n\n* Recall that if the tape head is at the left-most square and the transition is \\( L \\), it will stay at the same place\n - There is no signal telling a TM that its tape head is currently at the left-most square\n\n* The trick is to mark the left-most symbol (depending on \\(\\Gamma\\))\n - Turn 0 or 1 to \\(\\sqcup\\)\n - Turn 0 to \\(\\dot{0}\\) or \\(x\\)\n - Turn 1 to \\(\\dot{1}\\) or \\(\\sqcup\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 600, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b4eba33f-9464-42c5-9b1f-f143df051e2d": {"__data__": {"id_": "b4eba33f-9464-42c5-9b1f-f143df051e2d", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "96d95bfb-09c6-446a-9c3a-f360e339af06", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "8dcf1557ae0d54431aff4bb0e6b3c276c50aaa4128a7f2edbde2c8017365c11f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_2 \\)\n\n* A Turing machine that decides \n $$\n A = \\{0^{2^n} \\mid n \\geq 0\\}.\n $$\n\n```mermaid\nstateDiagram-v2\n [*] --> q_1\n q_1 --> q_2: 0 \u2192 \u2423, R\n q_1 --> q_{reject}: \u2423 \u2192 R, x \u2192 R\n q_2 --> q_5: \u2423 \u2192 L, \u2423 \u2192 R\n q_2 --> q_3: 0 \u2192 x, R\n q_2 --> q_{accept}: \u2423 \u2192 R\n q_3 --> q_4: 0 \u2192 x, R\n q_3 --> q_3: x \u2192 R\n q_3 --> q_2: \u2423 \u2192 L\n q_4 --> q_3: 0 \u2192 R\n q_4 --> q_4: x \u2192 R\n q_4 --> q_{reject}: \u2423 \u2192 R\n q_5 --> q_5: 0 \u2192 L, x \u2192 L\n q_5 --> q_2: \u2423 \u2192 R\n```\n\n- States:\n - \\(q_1\\) is the start state.\n - \\(q_{reject}\\) is the reject state.\n - \\(q_{accept}\\) is the accept state.\n- Transitions:\n - From \\(q_1\\):\n - On reading `0`, write blank (\u2423), move right, go to \\(q_2\\).\n - On reading blank (\u2423) or `x`, move right, go to \\(q_{reject}\\).\n - From \\(q_2\\):\n - On reading blank (\u2423), move right, go to \\(q_{accept}\\).\n - On reading `0`, write `x`, move right, go to \\(q_3\\).\n - On reading blank (\u2423), move left, go to \\(q_5\\).\n - From \\(q_3\\):\n - On reading `0`, write `x`, move right, go to \\(q_4\\).\n - On reading `x`, move right, stay in \\(q_3\\).\n - On reading blank (\u2423), move left, go to \\(q_2\\).\n - From \\(q_4\\):\n - On reading `0`, move right, go to \\(q_3\\).\n - On reading `x`, move right, stay in \\(q_4\\).\n - On reading blank (\u2423), move right, go to \\(q_{reject}\\).\n - From \\(q_5\\):\n - On reading `0` or `x`, move left, stay in \\(q_5\\).\n - On reading blank (\u2423), move right, go to \\(q_2\\).\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "73c6fa6d-c2fc-4a54-9768-ffee5a41c080": {"__data__": {"id_": "73c6fa6d-c2fc-4a54-9768-ffee5a41c080", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a12781a4-59d7-4ae5-9f1c-3971c7694b96", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "b5e8886c72d4944447a58816edcaa179c9de3edf4f75ae9301b26e9554cd3080", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_2 \\)\n\n## Computing 0000\n\nMermaid diagram representing the Turing machine states and transitions:\n\n```mermaid\nstateDiagram-v2\n [*] --> q_1\n q_1 --> q_reject: \u2423 \u2192 R, x \u2192 R\n q_1 --> q_2: 0 \u2192 \u2423, R\n q_2 --> q_accept: \u2423 \u2192 R\n q_2 --> q_2: x \u2192 R\n q_2 --> q_5: 0 \u2192 x, R\n q_3 --> q_3: 0 \u2192 R\n q_3 --> q_4: 0 \u2192 x, R\n q_3 --> q_5: x \u2192 R\n q_4 --> q_4: x \u2192 R\n q_4 --> q_3: 0 \u2192 R\n q_4 --> q_reject: \u2423 \u2192 R\n q_5 --> q_5: 0 \u2192 L, x \u2192 L\n q_5 --> q_2: \u2423 \u2192 R\n q_5 --> q_3: \u2423 \u2192 L\n```\n\n### State transitions and tape configurations during computation of input `0000`:\n\n```\nq_1 0000\n\u2423 q_2 000\n\u2423 x q_3 00\n\u2423 x 0 q_4 0\n\u2423 x 0 x q_3 \u2423\n\u2423 x 0 q_5 x\n\u2423 x q_5 0 x\nq_5 \u2423 x 0 x\n\u2423 q_2 x 0 x\n\u2423 x q_2 0 x\n\u2423 x x q_3 x\n\u2423 x x x q_3 \u2423\n\u2423 x x q_5 x\n\u2423 x q_5 x x\n\u2423 q_5 x x x\nq_5 \u2423 x x x\n\u2423 q_2 x x x\n\u2423 x q_2 x x\n\u2423 x x q_2 x\n\u2423 x x x q_2 \u2423\n\u2423 x x x \u2423 q_accept\n```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 951, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bb7487ca-3805-47f5-97d0-c2964dfbbe51": {"__data__": {"id_": "bb7487ca-3805-47f5-97d0-c2964dfbbe51", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9cb6dd0e-83b2-4b00-ae98-c4fa330284bb", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "5dac4826e5bca226750489621d7749eddcb88ab096808b0634b9dc10ffc9da75", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine \\( M_2 \\)\n\n## Computing 000\n\n```mermaid\nstateDiagram-v2\n [*] --> q_1\n q_1 --> q_{reject} : \\sqcup \\to R, x \\to R\n q_1 --> q_2 : 0 \\to \\sqcup, R\n\n q_2 --> q_{accept} : \\sqcup \\to R\n q_2 --> q_5 : x \\to R\n q_2 --> q_2 : x \\to R\n\n q_5 --> q_5 : 0 \\to L, x \\to L\n q_5 --> q_2 : \\sqcup \\to R\n q_5 --> q_3 : \\sqcup \\to L\n\n q_3 --> q_4 : 0 \\to R\n q_3 --> q_3 : x \\to R\n q_3 --> q_5 : \\sqcup \\to L\n\n q_4 --> q_4 : x \\to R\n q_4 --> q_3 : 0 \\to x, R\n q_4 --> q_{reject} : \\sqcup \\to R\n```\n\n### Computation steps (partial):\n\n- \\( q_1 000 \\)\n- \\( \\sqcup q_2 00 \\)\n- \\( \\sqcup x q_3 0 \\)\n- \\( \\sqcup x 0 q_4 \\sqcup \\)\n- \\( \\sqcup x 0 \\sqcup q_{reject} \\)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nTuring Machine 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 777, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7d09607c-3274-4142-91bc-e65b80cf252e": {"__data__": {"id_": "7d09607c-3274-4142-91bc-e65b80cf252e", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4abee0cc-815a-4d6f-8ffb-bf25daa10ac3", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "245ddc3a4a27ae395285996799a9b54464607b379796ed7303038f10f3a0b8d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing a TM\n\n* Designing a TM in a form of a state diagram is hard\n - Need to keep in mind out the content of the tape\n - Need to worry about moving tape head\n* But for a simple problem, it is not that bad\n* Let\u2019s create a TM that shift all symbols on the tape to the right by one square by inserting the blank symbol at the left-most square and move the tape head back to the left-most square\n - Let $$ \\Sigma = \\{0,1\\} $$ and $$ \\Gamma = \\{0,1,\\sqcup\\} $$\n - Here are some input/output (on the tape)\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
InputOutput
01101\u242301101
0\u24230
111\u2423111
\u03b5\u03b5
\n\n* Note that this TM always accepts all strings over $$ \\Sigma $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 890, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b0ae7c0-c278-423d-b2e4-4a1b9836994d": {"__data__": {"id_": "3b0ae7c0-c278-423d-b2e4-4a1b9836994d", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/turing_machine_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1475f156-f228-4de9-b99b-f729f15d5807", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/turing_machine_02_handout.pdf"}, "hash": "e6249cb0c7ed3468f681784ff6c426c0574f06b83a35a81080607caf2befd608", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing a TM\n\n* Solution\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q1: 0 \u2192 \u2423, R\n q0 --> q2: 1 \u2192 \u2423, R\n q0 --> qaccept: \u2423 \u2192 L\n q1 --> q1: 0 \u2192 R\n q1 --> q2: 1 \u2192 0, R\n q2 --> q2: 1 \u2192 R\n q2 --> q1: 0 \u2192 1, R\n q1 --> q3: \u2423 \u2192 0, L\n q2 --> q3: \u2423 \u2192 1, L\n q3 --> q3: 0, 1 \u2192 L\n q3 --> qaccept: \u2423 \u2192 L\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 338, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0bd2d91c-4d79-4909-b820-5595e341d082": {"__data__": {"id_": "0bd2d91c-4d79-4909-b820-5595e341d082", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "388c1da4-8c9b-45d7-8e80-4abfb946d9af", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "a08f286b0773f5d109e3db630ffb427a60545f09f4a765e42020ed69e585d90c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 01\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 72, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6fcc3f14-98ea-4a68-8d0e-335105513b44": {"__data__": {"id_": "6fcc3f14-98ea-4a68-8d0e-335105513b44", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a28e4b84-1ce1-4fd1-b95f-bd501611d125", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "a79dc509484f525c53fb8a4a2725b8fa13ed6ffedd4d7b7ecaa0f9bf513e68be", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata\n\n* Suppose you are asked to write a software to control an automatic door as shown below:\n\n```\n \u25cf\n +---------+ +---------+\n | front | | rear |\n | pad | | pad |\n +---------+ +---------+\n door\n```\n\n* Assume we have the following methods:\n - `getFrontPad()`: returns true if there is a person standing on the front pad. Otherwise, it returns false.\n - `getRearPad()`: returns true if there is a person standing on the rear pad. Otherwise, it returns false.\n - `openDoor()`: when called it will open the door.\n - `closeDoor()`: when called it will close the door.\n\n* How the write the program in Java?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 670, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8f07caa3-dd39-4fca-8d0b-924e31e2f334": {"__data__": {"id_": "8f07caa3-dd39-4fca-8d0b-924e31e2f334", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "298673f3-fe23-441b-9ce3-ba4f564659df", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "cf7fd3b198b69643d0b457211ebe406f0e6b01cbe678dfab6fada2513e6393c6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata\n\n* Program to control the automatic door:\n\n```java\npublic class DoorController {\n public static void main(String[] args) {\n boolean isDoorOpen = false;\n\n while(true) {\n if(getFrontPad() && !getRearPad() && !isDoorOpen) {\n openDoor();\n isDoorOpen = true;\n }\n if(!getFrontPad() && !getRearPad() && isDoorOpen) {\n closeDoor();\n isDoorOpen = false;\n }\n }\n }\n}\n```\n\n* The variable `isDoorOpen` of type boolean is used to record the status of the door (1 bit of memory is required).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 626, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d9dd97ca-f8e6-4c1a-9e99-a448cacda8ff": {"__data__": {"id_": "d9dd97ca-f8e6-4c1a-9e99-a448cacda8ff", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8f3b69c2-36e9-4aed-8c98-dc3602c04af4", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "962562e9802ab9642dd6c1ded1da128abcd2a8a7e81305d41d3f0604fb87310f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata\n\n* `getFrontPad()` and `getRearPad()` together acts as external input to the program:\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
getFrontPad()getRearPad()Input
truetrueBoth
truefalseFront
falsetrueRear
falsefalseNeither
\n\n* We can define the behavior of our program based on its input as well as the status of the door whether it is current open or close", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 659, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3f89d198-6577-41af-832e-e0776c41423f": {"__data__": {"id_": "3f89d198-6577-41af-832e-e0776c41423f", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "49af145a-e1f6-4024-bdbd-539b2531ef2d", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "63bc6f8c1259341e5679b7e765db93f665b9a993c84bb9151428606f9754c7f0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Representations\n\n* The program can be represented in two standard ways \n * State Diagram:\n\n Rear Rear\n\n Both Closed Open Both\n\n Front\n\n Neither\n\n Neither Front\n\n * State Transition Table:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n \n\n \n\n\n\n\n \n \n
NeitherFrontRearBoth
ClosedClosedOpenClosedClosed
OpenClosedOpenOpenOpen
\n\n* But how to represent these in a mathematical way?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 843, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e02315a8-fad9-44ff-81e7-92f9e837829e": {"__data__": {"id_": "e02315a8-fad9-44ff-81e7-92f9e837829e", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3e7097a5-25d1-4b64-a03e-e5e29f23dce3", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "9d04fef5852b323ffcc70b2186cff1f6cebfd56e545ebd0044a1b5215cadb8ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite State Machine\n\n* Consider the following finite state machine \\( M_1 \\):\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q1: 1\n q1 --> q2: 0\n q2 --> q1: 0,1\n state q1 {\n <>\n }\n```\n\n* Machine \\( M_1 \\) consists of:\n - Three **states**: \\( q_0 \\), \\( q_1 \\), and \\( q_2 \\)\n - The **start state** \\( q_0 \\) (arrow pointing to it from nowhere)\n - An **accept state** \\( q_1 \\) (double circle)\n * All single circle states are called non-accept state\n - Arrows represent **transition functions**\n - The label 0, 1 represents two transitions\n\n```mermaid\nstateDiagram-v2\n q1 --> q2: 0\n q2 --> q1: 1\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 687, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7f3bff10-9bff-46af-ae3a-f8583759fd87": {"__data__": {"id_": "7f3bff10-9bff-46af-ae3a-f8583759fd87", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "09042b00-d6d7-41a4-879c-ff905fdd131e", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "d6cc70a455fa54ccc00f57b0aed20f419fc800d751397a0b057e10d2f4952faa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite State Machine\n\n* Consider the following finite state machine \\( M_1 \\):\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0: 0/0, 1/1\n q1: 0/0, 1/1\n q2: 0/0, 1/1\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q1: 1\n q1 --> q2: 0\n q2 --> q1: 0,1\n state q1 <>\n```\n\n* When an input string is given to this machine, it returns either **accept** or **reject**.\n\n * `1101`: accept \n $$\n q_0 \\xrightarrow{1} q_1 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2 \\xrightarrow{1} q_1 \\quad \\text{(an accept state)}\n $$\n\n * `0010`: reject \n $$\n q_0 \\xrightarrow{0} q_0 \\xrightarrow{0} q_0 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2 \\quad \\text{(a non-accept state)}\n $$\n\n * `0100`: accept \n $$\n q_0 \\xrightarrow{0} q_0 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2 \\xrightarrow{0} q_1 \\quad \\text{(an accept state)}\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 834, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7330047-ad52-4fba-9b12-b35d32eaa7ac": {"__data__": {"id_": "e7330047-ad52-4fba-9b12-b35d32eaa7ac", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5c85fe46-4f4b-475b-b4ab-f15fb29f98c8", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "636503e106a205dd0b718407deb2b634fb98d1dfaacfd1ac9ec0c41867935479", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite State Machine\n\n* Consider the following finite state machine \\( M_1 \\):\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0: \\(q_0\\)\n q1: \\(q_1\\)\n q2: \\(q_2\\)\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q1: 1\n q1 --> q2: 0\n q2 --> q1: 0,1\n```\n\n* Can we define the set of inputs that is accepted by the above machine?\n - \\( M_1 \\) accepts any strings that end with a 1\n - \\( M_1 \\) also accepts a string that ends with a 0 but it needs to have even number of 0s after the last 1\n\n* The set of all strings accepted by this machine is\n\n $$\n \\{ x \\mid x \\text{ ends with a } 1 \\text{ and } x \\text{ is a string that ends with an even number of 0s following the last } 1 \\}\n $$\n\n* The above set is called the **language** of the machine \\( M_1 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 767, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b6864e42-c368-4ee3-8f83-946fa183dd0c": {"__data__": {"id_": "b6864e42-c368-4ee3-8f83-946fa183dd0c", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4e9e77e7-b3a7-4a2b-81ce-a0b8945a0d1f", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "d19dc9f2fda933982741926d84b257e6f443189762202b440af373a70c29d56f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite-State Automaton\n\n* A finite state machine \\( M \\) can be defined as five tuple\n\n$$\nM = (Q, \\Sigma, \\delta, q_0, F)\n$$\n\n* \\( Q \\) is a non-empty finite set of states \n - \\( M \\) must have at least one state \n* \\( \\Sigma \\) is an alphabet (a finite set of symbols) \n* \\( \\delta : Q \\times \\Sigma \\to Q \\) is the transition functions \n - We generally use a table to represent \\( \\delta \\) \n* \\( q_0 \\in Q \\) is the starting state \n - A finite automata can only have **exactly one** start state \n* \\( F \\subseteq Q \\) is the set of accept states \n - \\( F \\) can be \\(\\emptyset\\) \\(\\Rightarrow\\) \\( M \\) can have no accept state (rejects all strings) \n - \\(|F|\\) can be more than 1 \\(\\Rightarrow\\) \\( M \\) has more than one accept states", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 756, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5aa50165-04f9-4b30-a938-d9c46955a4f9": {"__data__": {"id_": "5aa50165-04f9-4b30-a938-d9c46955a4f9", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b621c161-c769-4f48-a1f0-39716952e53f", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "87240bd0566810f4dc2c5ef2580d3bd4f40773cfbeefbb28dd1c2f9bee741d97", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: Machine \\( M_1 \\)\n\n```\n 0 1\n\n q_0 1 q_1 0 q_2\n 0, 1\n```\n\n* \\( M_1 = (Q, \\Sigma, \\delta, q_0, F) \\)\n * \\( Q = \\{ q_0, q_1, q_2 \\} \\)\n * \\( \\Sigma = \\{0, 1\\} \\)\n * \\( \\delta \\) can be defined using the table below:\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
\\(\\delta\\)01
\\(q_0\\)\\(q_0\\)\\(q_1\\)
\\(q_1\\)\\(q_2\\)\\(q_1\\)
\\(q_2\\)\\(q_1\\)\\(q_1\\)
\n\n* \\( q_0 \\) is the start state\n* \\( F = \\{ q_1 \\} \\)\n\n* The state diagram and its formal definition are equivalent", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 828, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ff473386-015d-4d01-95ad-f687b0ccd9a9": {"__data__": {"id_": "ff473386-015d-4d01-95ad-f687b0ccd9a9", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ac08d9c3-95b2-4436-96ce-a85b1a5cced4", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "247267b6bf5f7f70f7621c4724b7608fa849193df89c0ca86c4d5354e5c183a5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formal Definition of Machine \\( M_1 \\)\n\n* \\( M_1 = (\\{q_0, q_1, q_2\\}, \\{0,1\\}, \\delta, q_0, \\{q_1\\}) \\) where \\(\\delta\\) is as follows:\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\\(\\delta\\)01
\\(q_0\\)\\(q_0\\)\\(q_1\\)
\\(q_1\\)\\(q_2\\)\\(q_1\\)
\\(q_2\\)\\(q_1\\)\\(q_1\\)
\n\n* The above formal definition allows use to precisely answer questions about \\( M_1 \\):\n\n - Is 0101 a valid input for this machine?\n - Yes. \\(0 \\in \\{0,1\\}\\) and \\(1 \\in \\{0,1\\}\\).\n - Is 01a0 a valid input for this machine?\n - No. \\(a \\notin \\{0,1\\}\\).\n - Is input 010 accepted by this machine?\n - No. \\(q_0 \\xrightarrow{0} q_0 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2\\) and \\(q_2 \\notin \\{q_1\\}\\).\n - Is input 101 accepted by this machine?\n - Yes. \\(q_0 \\xrightarrow{1} q_1 \\xrightarrow{0} q_2 \\xrightarrow{1} q_1\\) and \\(q_1 \\in \\{q_1\\}\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 988, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b0c44be1-a37a-4caf-9017-5f29cb807740": {"__data__": {"id_": "b0c44be1-a37a-4caf-9017-5f29cb807740", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c8de334e-306e-4a41-90d4-65da2e252d33", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "04af448cb3c58cce22d9538e4ca661de610bd9c965677a7a8acdc29c82a9ad7d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Language Recognized\n\n* A string \\( w = w_1 w_2 \\ldots w_n \\) is **accepted** by \\( M \\) if and only if after processing each symbol \\( w_i \\) of \\( w \\), where \\( 1 \\leq i \\leq n \\), \\( M \\) finds itself in an accept state (a state belonging to \\( F \\)). Otherwise, we say \\( w \\) is rejected by \\( M \\).\n\n* If \\( A \\) is the set of **all strings** accepted by \\( M \\), we say \\( A \\) is the **language of finite-state machine** \\( M \\), denoted by\n\n$$\nL(M) = A\n$$\n\nWe say that \\( M \\) **recognizes** \\( A \\).\n\n* A machine may accept several strings but it always recognizes only one language.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 596, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "02198f83-6a75-4b3a-a567-907c86ca8197": {"__data__": {"id_": "02198f83-6a75-4b3a-a567-907c86ca8197", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6bdcc7fa-935f-4039-8ed4-9f423a99370b", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "909f794864631ad28069a12d92ff4a7be2c07a7e4f29c649f75b2393be6735fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\nThe diagram shows a finite automaton with two states:\n\n- States: \\( q_1 \\) and \\( q_2 \\)\n- Alphabet: \\( \\{0, 1\\} \\)\n- Transitions:\n - From \\( q_1 \\):\n - On input 0, stay in \\( q_1 \\)\n - On input 1, go to \\( q_2 \\)\n - From \\( q_2 \\):\n - On input 0, go to \\( q_1 \\)\n - On input 1, stay in \\( q_2 \\)\n- Start state: \\( q_1 \\)\n- Accept state: \\( q_2 \\)\n\n$$\nM_2 = (Q, \\Sigma, \\delta, \\text{start state}, F)\n$$\n\nWhat is the formal definition of the above machine and the language that it recognises?\n\n* \\( Q = \\{ q_1, q_2 \\} \\)\n* \\( \\Sigma = \\{ 0, 1 \\} \\)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\\(\\delta\\)01
\\(q_1\\)\\(q_1\\)\\(q_2\\)
\\(q_2\\)\\(q_1\\)\\(q_2\\)
\n\n* The start state is \\( q_1 \\)\n* \\( F = \\{ q_2 \\} \\)\n* \\( L(M_2) = \\{ w \\mid w \\text{ ends in a } 1 \\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 910, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "994a1bcd-0425-4ec3-91f3-d916016fbc41": {"__data__": {"id_": "994a1bcd-0425-4ec3-91f3-d916016fbc41", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ee6010c0-8bdf-4e7f-8f94-2b399585946c", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "14dd6b4258b705a3d02ba854c31ee9b91ade4bc84c67a2de6e3e5e98f9410d02", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n$$\nM_3 = (Q, \\Sigma, \\delta, \\text{start state}, F)\n$$\n\nWhat is the formal definition of the above machine and the language that it recognises?\n\n* \\( Q = \\{ q_1, q_2 \\} \\)\n* \\( \\Sigma = \\{ 0, 1 \\} \\)\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n \n
\\(\\delta\\)01
\\(q_1\\)\\(q_1\\)\\(q_2\\)
\\(q_2\\)\\(q_1\\)\\(q_2\\)
\n\n* Start state is \\(q_1\\)\n* \\( F = \\{ q_1 \\} \\)\n* \\( L(M_3) = \\{ w \\mid w \\text{ is the empty string } \\varepsilon \\text{ or ends in a } 0 \\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 643, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0fc7b4e1-fa2d-47f1-a8d2-8860789844a5": {"__data__": {"id_": "0fc7b4e1-fa2d-47f1-a8d2-8860789844a5", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b34d648e-db66-4a0d-90f4-b0a95b73a9af", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "a58ccc59ad7ed66edad3ce057ab0bdecd3344a4cde8557a8f0fa29a605d05022", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n$$Q = \\{s, q_1, q_2, r_1, r_2\\}$$ \n$$\\Sigma = \\{a, b\\}$$ \n**Transition Functions:**\n\n\n\n \n \n \n \n \n\n\n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n
\u03b4ab
sq_1r_1
q_1q_1q_2
q_2q_1q_2
r_1r_2r_1
r_2r_2r_1
\n\n$$M_4 = (Q, \\Sigma, \\delta, \\text{start state}, F)$$\n\n* Start state is \\(s\\) \n* \\(F = \\{q_1, r_1\\}\\) \n* \\(L(M_2) = \\{ w \\mid w \\text{ starts and ends with the same symbol} \\}\\)\n\nWhat is the formal definition of the above machine and the language that it recognises?\n\n[The diagram shows a finite automaton with states \\(s, q_1, q_2, r_1, r_2\\). The start state is \\(s\\). The accepting states are \\(q_1\\) and \\(r_1\\). Transitions are labeled with input symbols \\(a\\) and \\(b\\) as follows:\n\n- From \\(s\\):\n - on \\(a\\) to \\(q_1\\)\n - on \\(b\\) to \\(r_1\\)\n- From \\(q_1\\):\n - on \\(a\\) loops to itself\n - on \\(b\\) to \\(q_2\\)\n- From \\(q_2\\):\n - on \\(a\\) to \\(q_1\\)\n - on \\(b\\) loops to itself\n- From \\(r_1\\):\n - on \\(a\\) to \\(r_2\\)\n - on \\(b\\) loops to itself\n- From \\(r_2\\):\n - on \\(a\\) loops to itself\n - on \\(b\\) to \\(r_1\\)]\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 01", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1393, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cf2850c5-67ab-4cf1-a1cd-bf24bfc00f68": {"__data__": {"id_": "cf2850c5-67ab-4cf1-a1cd-bf24bfc00f68", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7cc20e1d-a658-49ec-b62c-91ec7855b24c", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "ba2d6a0d5113648c76a8aa3113168f8980791941f1bcc5868d6af154b44041f5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n$$\nM_5 = (Q, \\Sigma, \\delta, \\text{start state}, F)\n$$\n\nWhat is the formal definition of the above machine and the language that it recognises?\n\n----\n\n### Formal definition:\n\n* \\( Q = \\{ q_0, q_1, q_2 \\} \\)\n* \\( \\Sigma = \\{ 0, 1, 2, \\langle \\text{RESET} \\rangle \\} \\)\n* Transition Functions:\n\n\n\n \n \n \n \n \n \n \n\n\n \n \n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n\n
\\(\\delta\\)012<RESET>
\\(q_0\\)\\(q_0\\)\\(q_1\\)\\(q_2\\)\\(q_0\\)
\\(q_1\\)\\(q_1\\)\\(q_2\\)\\(q_0\\)\\(q_0\\)
\\(q_2\\)\\(q_2\\)\\(q_0\\)\\(q_1\\)\\(q_0\\)
\n\n* Start state is \\( q_0 \\)\n* \\( F = \\{ q_0 \\} \\)\n* Language recognized by \\( M_2 \\):\n\n$$\nL(M_2) = \\{ w \\mid w \\text{ is the empty string } \\varepsilon \\text{ or ends with } \\langle \\text{RESET} \\rangle \\text{ or sum of input is multiple of 3 after the last } \\langle \\text{RESET} \\rangle \\}\n$$\n\n----\n\n### State diagram description (from image):\n\n- States: \\( q_0, q_1, q_2 \\)\n- Arrows labeled with input symbols 0, 1, 2, and showing transitions between states.\n- Self-loops on states for certain inputs.\n- transitions from \\( q_1 \\) and \\( q_2 \\) back to \\( q_0 \\).\n- Start state \\( q_0 \\) is double circled indicating it is also the accepting state.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 01", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1516, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "075fcc1b-5fd8-4220-a252-0d7efe93be6d": {"__data__": {"id_": "075fcc1b-5fd8-4220-a252-0d7efe93be6d", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4162601f-e4f5-48d7-8f9d-48a8731e802e", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "f89033abfd9abfc1f2d8d28469f954c85d24878e42677b46003cfdec2638c664", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing a Finite-State Machine\n\n* A computation model simulates a set of algorithms \n* Designing a finite-state machine is the same as writing a program \n - Use states to capture state-of-minds \n * I just see a 1 \n * I just see two consecutive 0s \n * I already saw 00 or 11 \n* Do not force yourself to use the least number of states \n - Nobody asks you to write a shortest possible program \n - Unless you are asked to do so", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1bb1df32-4e75-48e1-af89-3b651572ed11": {"__data__": {"id_": "1bb1df32-4e75-48e1-af89-3b651572ed11", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f42f0d86-6789-4853-b1e8-e052fd81e81b", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "00b110c9342217e686824bc2b679637ff557dffbe9d5496c098d71da66c24c00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Finite Automata\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0,1\\}\\). Create a machine such that its language is the set of all strings that contain either 11 or 00 as a substring.\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q1: 1\n q0 --> q2: 0\n q1 --> q3: 1\n q1 --> q2: 0\n q2 --> q3: 0\n q2 --> q1: 1\n q3 --> q3: 0,1\n note right of q3\n (accepting state)\n end note\n```\n\n* Common mistakes:\n * \\(\\delta(q_1, 0) = q_0\\)\n * \\(\\delta(q_2, 1) = q_0\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 494, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d6784fa-3fa7-434b-8a02-50b698ac6ab5": {"__data__": {"id_": "5d6784fa-3fa7-434b-8a02-50b698ac6ab5", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3a09cda0-0770-43f6-8889-1e3ac2225644", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "598f0794110564d8b0b40b1fabc7c9963dc58067443e93975913f4e4b9e0e64c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Finite Automata\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0,1\\}\\). Create a machine such that its language is the set of all strings that contain 011 as a substring.\n\n```mermaid\nstateDiagram-v2\n [*] --> qs\n qs --> qs: 1\n qs --> q0: 0\n q0 --> q0: 0\n q0 --> q01: 1\n q01 --> q0: 0\n q01 --> q011: 1\n q011 --> q011: 0\n q011 --> q011: 1\n```\n\n* Common mistakes:\n - \\(\\delta(q_0, 0) = q_s\\)\n - \\(\\delta(q_{01}, 0) = q_s\\)\n\n* **Hint:** Name of a state can be used to indicate a state-of-mind\n - \\(q_{01}\\) means \u201cI just see a 0 immediately followed by a 1\u201d", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 590, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5fa51d73-17c9-4ba7-985e-50404eb9ab1e": {"__data__": {"id_": "5fa51d73-17c9-4ba7-985e-50404eb9ab1e", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cda44dee-a432-427e-b89e-82d8b90605c6", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_01_handout.pdf"}, "hash": "039ba7aa5d20247c37f5788c5b84f0a8175a56b29cf81db48a24ac5acd1e1193", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Finite Automata\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0,1\\}\\). Create a machine such that its language is the set of all strings that ends with 0110.\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q1: 0\n q1 --> q1: 0\n q1 --> q2: 1\n q2 --> q1: 0\n q2 --> q3: 1\n q3 --> q4: 0\n q4 --> q1: 0\n q4 --> q2: 1\n```\n\n* Common mistakes:\n * \\(\\delta(q_2, 0) = q_0\\)\n * \\(\\delta(q_4, 0) = q_0\\)\n * \\(\\delta(q_4, 1) = q_0\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 456, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0e8e9878-7be9-4dfd-89b7-268e73dbb836": {"__data__": {"id_": "0e8e9878-7be9-4dfd-89b7-268e73dbb836", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a35eca81-4b00-4041-a670-6481a4efa8e6", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "44a77232a58a1c16eebe1329b975dca8eacbcda30afaec732dfe03d76e28b151", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 02\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 72, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "27ea65bc-0c19-4a70-93d3-417dd71e0899": {"__data__": {"id_": "27ea65bc-0c19-4a70-93d3-417dd71e0899", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a3cf92aa-179e-4dcf-b05f-d45694669387", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "840076912dcf93a2d873fc396b6fcc8f3ac4fb704948d493a9e77a111ddbcf87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata\n\n* The computational model called finite automata can be used to simulate a set of **simple** algorithms\n - Check whether a string starts with 010\n - Check whether a string ends with 111\n - Check whether a string contains 0101 as a substring\n - Check whether a string contains substrings 000 and 111 where 000 comes before 111\n\n* It is a powerful tool in compiler\n - Accept or reject your source code based on a programming syntax\n - Example: the `for` statement:\n * starts with `for`\n * followed by `(`\n * followed by assignment statement(s)\n * followed by `;`\n * followed by conditional statement(s)\n * followed by `;`\n * followed by assignment statement(s)\n * followed by `)`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 727, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e2ce2571-9f45-4e5b-b2ce-4b58030eb2e8": {"__data__": {"id_": "e2ce2571-9f45-4e5b-b2ce-4b58030eb2e8", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ee064636-e607-4a66-b77d-d671ef4242b6", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "9b96cc32b444a7667e5e381b3ded8cafcc11b15ff2d02d275a073c559f0c43de", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formal Definition of Computation\n\n* Let \\( M = (Q, \\Sigma, \\delta, q_0, F) \\) be a finite automaton and let \n \\( w = w_1 w_2 \\ldots w_n \\) be a string where each \\( w_i \\) is a member of the alphabet \\( \\Sigma \\). \n * \\( M \\) accepts \\( w \\) if a sequence of states \\( r_0, r_1, \\ldots, r_n \\) in \\( Q \\) exists with three conditions: \n 1. \\( r_0 = q_0 \\) \n 2. \\( \\delta(r_i, w_{i+1}) = r_{i+1} \\), where \\( i = 0, \\ldots, n-1 \\) \n 3. \\( r_n \\in F \\) \n\n* Think in terms of processing the input string \\( w \\):\n\n$$\nr_0 \\xrightarrow{w_1} r_1 \\xrightarrow{w_2} r_2 \\xrightarrow{w_3} r_3 \\xrightarrow{w_4} r_4 \\xrightarrow{w_5} \\ldots \\xrightarrow{w_{n-1}} r_{n-1} \\xrightarrow{w_n} r_n\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 705, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d5d081f-db49-45aa-bc30-2e8c292deac4": {"__data__": {"id_": "5d5d081f-db49-45aa-bc30-2e8c292deac4", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8ff2cc43-0dc9-4a0c-880d-1a06a1c14516", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "cf6491dd96e7dbd33f536c4bebe10d2a0d64f165683524fcf4fc823ecea87d69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Languages\n\n* A language \\( L \\) over an alphabet \\(\\Sigma\\) is said to be a **regular language** if some finite-state automaton recognizes it.\n* Consider the following machine \\( M \\):\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0: q0\n q1: q1\n q0 --> q0: 0\n q1 --> q1: 0\n q0 --> q1: 1\n q1 --> q0: 1\n state q1 {\n <>\n }\n```\n\n* What is the language of this machine?\n * \\( L(M) = \\{ w \\mid w \\text{ contains an odd number of 1s} \\} \\)\n* \"The set of all strings consisting of an odd number of 1s\" is a **regular language**\n* \\( L(M) \\) is a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 602, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6d0dda9b-bd75-4796-808e-f27e37e1369c": {"__data__": {"id_": "6d0dda9b-bd75-4796-808e-f27e37e1369c", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7837205b-874c-40ef-9674-dd122ce79e8b", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "546f4746c096a6a662aa9c906e3c008dabc920d03b0fd5ef7b9d0f96b95f2df5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Languages\n\n* Why regular language is important in our discussion?\n * **Definition**: A language is regular if some finite-state machines recognize it.\n * If we can prove that a language is **regular**\n - We must be able to construct a finite-state machine to recognize it\n - It maybe hard to build but I know that it exists\n * If we can prove that a language is **not regular**\n - We cannot construct a finite-state machine to recognize it\n* This is an example of a limitation of this computational model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 527, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "131db4b6-7fd9-40a8-8079-69e12df26f35": {"__data__": {"id_": "131db4b6-7fd9-40a8-8079-69e12df26f35", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e229179d-d08a-452e-9dfd-aaaeb4bb1394", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "12a47552f187dbb0504e90b3631288b4c9249be834bcd68d06a5f156e53fcc7d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem and Language\n\n* In theory of computation, a problem is represented as a language \n - A problem of determining whether a string contains 011 as a substring \n\n $$\n L(M) = \\{ x \\mid x \\text{ contains } 011 \\text{ as a substring} \\}\n $$\n\n* We already see a Deterministic Finite Automaton (DFA) \\( M \\) that accepts all strings that contain 011 as a substring and reject those that do not contain 011 as a substring \n* It means this problem is **solvable** by the algorithm captured by the previous DFA \n* In case of algorithm in a form of DFA (not all algorithms) \n - if \\( L(M) \\) is regular, the problem represented by \\( L(M) \\) is solvable \n - if \\( L(M) \\) is not regular, no DFA exists, the problem represented by \\( L(M) \\) is unsolvable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a34f8e48-3e87-44fa-aa5a-c3865c65cc0b": {"__data__": {"id_": "a34f8e48-3e87-44fa-aa5a-c3865c65cc0b", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b734bedb-fbd7-4923-affe-033a97f421a4", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "6ec0bffd7c05d0c5c287795f4100a2dbcd04230f7ab4817e0bf6b565f28f3c74", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problems and Languages\n\n* Solvable problems that we see so far\n * The problem of determining whether a string ends with a 1\n\n $$\n \\{ x \\mid x \\text{ ends with a } 1 \\}\n $$\n\n * The problem of determining whether a string is an empty string or ends in a 0\n\n $$\n \\{ x \\mid x \\text{ is an empty string or ends in a } 0 \\}\n $$\n\n * The problem of determining whether a string starts and ends with the same symbol\n\n $$\n \\{ x \\mid x \\text{ starts and ends with the same symbol} \\}\n $$\n\n * The problem of determining whether a string contains either 11 or 00 as a substring\n\n $$\n \\{ x \\mid x \\text{ contains either } 11 \\text{ or } 00 \\text{ as a substring} \\}\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 674, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "67cd5c93-1882-405a-a914-7eec9594af3d": {"__data__": {"id_": "67cd5c93-1882-405a-a914-7eec9594af3d", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5e74573a-1dbc-4881-a1aa-89fe5019fc22", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "45255ea7181f88747297783f83d06cbbdb5b48e8087a47a44ace4a618d34c8d2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problems and Languages\n\n* Solvable problems that we see so far (continue) \n * The problem of determining whether a string contains 011 as a substring \n $$\\{ x \\mid x \\text{ contains } 011 \\text{ as a substring} \\}$$ \n * The problem of determining whether a string ends with 0110 \n $$\\{ x \\mid x \\text{ ends with } 0110 \\}$$ \n * The problem of determining whether a string contains an odd number of 1s \n $$\\{ x \\mid x \\text{ contains an odd number of } 1s \\}$$ \n\n* Each of the above languages is regular since we can construct a DFA that recognizes it. \n * But if a language is very complicate, it will be difficult to construct a DFA that recognizes it \n\n* We need tools to help us to determine whether a language is regular or not", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 756, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0333160b-15c0-4c8b-b0e1-08f542e129e2": {"__data__": {"id_": "0333160b-15c0-4c8b-b0e1-08f542e129e2", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d1ae296a-6f19-49ba-a3c8-29ab82140c7f", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "eed3aca9e1d09dd4bff19ed7481b31b1b0d11690313d6a06447c32183f7d5e81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Regular Operations\n\n* In arithmetic:\n - Objects are numbers\n - Tools are operations for manipulating numbers (e.g., \\(+\\) and \\(\\times\\))\n * \\(1 + 1\\) gives you a new number which is 2\n\n* In the theory of computation,\n - Objects are languages (sets of strings)\n - Tools are operations for manipulating languages\n\n> **Definition 1.23** \n> Let \\(A\\) and \\(B\\) be languages. We define the regular operations as follows: \n> * **Union:** \n> \\[\n> A \\cup B = \\{ x \\mid x \\in A \\text{ or } x \\in B \\}\n> \\]\n> * **Concatenation:** \n> \\[\n> A \\circ B = \\{ xy \\mid x \\in A \\text{ and } y \\in B \\}\n> \\]\n> * **Star:** \n> \\[\n> A^* = \\{ x_1 x_2 \\ldots x_k \\mid k \\geq 0 \\text{ and each } x_i \\in A \\}\n> \\]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 707, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a0667c18-3ef4-4c34-85b0-142ceae12655": {"__data__": {"id_": "a0667c18-3ef4-4c34-85b0-142ceae12655", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1bbd62e3-aaba-4fa5-a152-804ae52cd12a", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "8bb7fc808ff1f21a8a023e6134075c71b28551efea0cef8d12e2807a1ce87b65", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Examples (Union)\n\n* Let \\(\\Sigma = \\{0, 1\\}\\)\n* Consider the following languages \\(A\\) and \\(B\\)\n - \\(A = \\{00, 11\\}\\)\n - \\(B = \\{010, 101\\}\\)\n* The union operation is identical to the set\u2019s union operation:\n\n$$\nA \\cup B = \\{ x \\mid x \\in A \\text{ or } x \\in B \\}\n$$\n\n* From the above definition:\n\n$$\nA \\cup B = \\{00, 11, 010, 101\\}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 340, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b93b119b-e9aa-4590-ab41-a961bbc3844b": {"__data__": {"id_": "b93b119b-e9aa-4590-ab41-a961bbc3844b", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a9a7cdcf-82ec-4b18-9aff-6e826cc74a42", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "585cd94647e5923d3fbaef12cb48caadf263269d3ac2358205df462094b96906", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Examples (Concatenation)\n\n* Let \\(\\Sigma = \\{0, 1\\}\\)\n* Consider the following languages \\(A\\) and \\(B\\)\n - \\(A = \\{00, 11\\}\\)\n - \\(B = \\{010, 101\\}\\)\n* The definition of concatenation is defined as\n\n$$\nA \\circ B = \\{ xy \\mid x \\in A \\text{ and } y \\in B \\}\n$$\n\n* From the above definition:\n\n$$\nA \\circ B = \\{00010, 00101, 11010, 11101\\}\n$$\n\n* For simplicity, sometimes we write \\(AB\\) instead of \\(A \\circ B\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 415, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "391d073f-9257-4d7f-8c31-6e596ef4f43b": {"__data__": {"id_": "391d073f-9257-4d7f-8c31-6e596ef4f43b", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "24834713-4167-49dd-be55-784f6878f4db", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "002a8050657c749a47eb3af9d63813fc80020f2f6456a7a19548044c7a85408d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Examples (Star)\n\n* Let \\(\\Sigma = \\{0, 1\\}\\)\n* Consider the following language \\(A\\)\n - \\(A = \\{00, 11\\}\\)\n* The definition of star is defined as\n\n$$\nA^* = \\{x_1 x_2 \\ldots x_k \\mid k \\geq 0 \\text{ and } x_i \\in A \\}\n$$\n\n* If \\(k = 0\\), the above definition becomes\n\n$$\n\\{ \\mid 0 \\geq 0 \\} = \\{\\varepsilon\\}\n$$\n\n* If \\(k = 1\\), the above definition becomes\n\n$$\n\\{ x_1 \\mid 1 \\geq 0 \\text{ and } x_i \\in A \\} = \\{00, 11\\}\n$$\n\n* If \\(k = 2\\), the above definition becomes\n\n$$\n\\{ x_1 x_2 \\mid 2 \\geq 0 \\text{ and } x_i \\in A \\} = \\{0000, 0011, 1100, 1111\\}\n$$\n\n* If \\(k = 3\\), the above definition becomes\n\n$$\n\\{ x_1 x_2 x_3 \\mid 3 \\geq 0 \\text{ and } x_i \\in A \\} = \\{000000, 000011, \\ldots, 111111\\}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 705, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "76ca7758-009f-431d-8a50-c1f1e0d349dc": {"__data__": {"id_": "76ca7758-009f-431d-8a50-c1f1e0d349dc", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6e5d2228-8b1d-460a-a784-6a986bafb824", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "bf82ee5bd6b8e6e71b2595157fff32de71d9090a3beeaf4ed827ccde0afcc38c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Examples (Star)\n\n* Let \\(\\Sigma = \\{0, 1\\}\\)\n* Suppose \\(A = \\{00, 11\\}\\), what is \\(A^*\\)?\n\n $$\n A^* = \\{\\varepsilon, 00, 11, 0000, 0011, 1100, 1111, 000000, \\ldots \\}\n $$\n\n* Suppose \\(A = \\{011\\}\\), what is \\(A^*\\)?\n\n $$\n A^* = \\{\\varepsilon, 011, 011011, 011011011, 011011011011, \\ldots \\}\n $$\n\n* Suppose \\(A = \\{0, 1\\}\\), what is \\(A^*\\)?\n\n $$\n A^* = \\{\\varepsilon, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, \\ldots \\}\n $$\n\n This is the set of all strings over \\(\\{0, 1\\}\\)\n\n* Suppose \\(A = \\emptyset\\), what is \\(A^*\\)?\n\n $$\n A^* = \\{\\varepsilon\\}\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 576, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e3bd8fae-822d-4c25-b057-8f11e5856c2e": {"__data__": {"id_": "e3bd8fae-822d-4c25-b057-8f11e5856c2e", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "71c71302-870e-4a74-85d6-02170aef8831", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "5d10d6d53637d169226f18761040ba49fee382cd5c41fe103559b06ec60db00b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Definition of Closed Under Operations\n\n* Let \\( A \\) be a set of objects (a collection of object) \n* We say that \\( A \\) is closed under operation \\(\\triangle\\) if for any \\( x \\in A \\) and \\( y \\in A \\), \\( x \\triangle y \\) is also in \\( A \\). \n* Example: Let \\(\\mathbb{N}\\) be the set of natural number \n - \\(\\mathbb{N}\\) is closed under addition \n * For any two natural numbers \\( x \\) and \\( y \\), \\( x + y \\) is a natural number \n - \\(\\mathbb{N}\\) is closed under multiplication \n * For any two natural numbers \\( x \\) and \\( y \\), \\( x \\times y \\) is a natural number \n - \\(\\mathbb{N}\\) is **not** closed under subtraction \n * \\( 5 - 7 \\) is not a natural number", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 691, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9cb92825-eedf-4f38-b87c-58ac8c3c371e": {"__data__": {"id_": "9cb92825-eedf-4f38-b87c-58ac8c3c371e", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5e6f636f-5dd2-41e8-9725-d2377da4d912", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "07dd99af9f00630532e63bb72cfd3cb70e44640cdf7d0c22cb7d5ecd4afdfe3b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Definition of Closed Under Operations\n\n* Let \\(\\mathbb{L}\\) be the set of all **regular languages**\n - This is a set of sets\n* Recall that we have three operations, union, concatenation, and star\n* Is \\(\\mathbb{L}\\) closed under **union** operation?\n - For any regular languages \\(A\\) and \\(B\\), is \\(A \\cup B\\) a regular language?\n* Is \\(\\mathbb{L}\\) closed under **concatenation** operation?\n - For any regular languages \\(A\\) and \\(B\\), is \\(A \\circ B\\) a regular language?\n* Is \\(\\mathbb{L}\\) closed under **star** operation?\n - For any regular language \\(A\\), is \\(A^*\\) a regular language?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 602, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b61fe6c-4b08-4931-9253-1765b0cf01cc": {"__data__": {"id_": "6b61fe6c-4b08-4931-9253-1765b0cf01cc", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c9c546aa-edd2-482a-bb08-95fc3ebbb66f", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "f617e6a3c1b13a435eb229c3380f99507af4130c75b5f426b95ee85617b54997", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \\( \\mathcal{L} \\) is regular under union operation\n\n* Let \\( A \\) be a set of strings over \\(\\{0,1\\}\\) that contain a **00** as a substring \n* Is \\( A \\) a regular language? \n* Can you construct a DFA that recognizes the language \\( A \\)? \n* One of the machines that recognizes \\( A \\) can be as follows:\n\n```mermaid\nstateDiagram-v2\n [*] --> q_a\n q_a: qa\n q_b: qb\n q_c: qc (accepting)\n q_a --> q_a: 1\n q_a --> q_b: 0\n q_b --> q_a: 1\n q_b --> q_c: 0\n q_c --> q_c: 0,1\n```\n\n* Because there exists a DFA that recognizes \\( A \\), \\( A \\) is a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 588, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7801e29-6084-4c09-b14f-f36c2ef53cc7": {"__data__": {"id_": "e7801e29-6084-4c09-b14f-f36c2ef53cc7", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7e1e4c2c-7963-4e44-bde1-441f67db048a", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "b7abd3ceea753cb1994f24ff45caca3c06168d7f999b79c29dbf0dd21cd5ed18", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* Let \\( B \\) be a set of strings over \\(\\{0, 1\\}\\) that end with a 1 \n* Is \\( B \\) a regular language? \n* Can you construct a DFA that recognizes the language \\( B \\)? \n* One of the machines that recognizes \\( B \\) can be as follows:\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q0: 0\n q1 --> q1: 1\n state q1 {\n <>\n }\n```\n\n* Because there exists a DFA that recognizes \\( B \\), \\( B \\) is a regular language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 519, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b2f6924-5058-4f92-9e89-4b4a1af8b637": {"__data__": {"id_": "3b2f6924-5058-4f92-9e89-4b4a1af8b637", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a7a7d8e7-0d75-4428-9cee-f3539180de27", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "d85c393142d728202bbea539da4a9656156f3b2f76bc04c5fb1fb64d35a42a72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* We have \\( A = \\{ x \\mid x \\text{ contains } 00 \\text{ as a substring} \\} \\) is regular \n* We have \\( B = \\{ x \\mid x \\text{ ends with a } 1 \\} \\) is regular \n* How about \\( A \\cup B \\)? \n \\[\n A \\cup B = \\{ x \\mid x \\text{ contains } 00 \\text{ as a substring or } x \\text{ ends with a } 1 \\}\n \\] \n* It is quite straightforward to construct a machine that recognizes \\( A \\cup B \\) (try to build one yourself)\n\nMermaid diagram representing the finite automaton:\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0 --> S1: 1\n S0 --> S2: 0\n S1 --> S1: 1\n S1 --> S2: 0\n S2 --> S3: 0\n S2 --> S0: 1\n S3 --> S3: 0,1\n state S1 {\n <>\n }\n state S3 {\n <>\n }\n```\n\n* This does not prove that if \\( A \\) and \\( B \\) are regular, \\( A \\cup B \\) is regular \n - This is just one example out of infinite many instances of regular languages", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 928, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "45c73c5f-fac3-4ab7-9f4b-c1c12e8e17a7": {"__data__": {"id_": "45c73c5f-fac3-4ab7-9f4b-c1c12e8e17a7", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "00f57648-3df8-4ef6-bd53-926decec2597", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "e11ce36a8a44d06d4ec9be762ae424356c73e01da85432b8e3eb12465cf60544", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* We need to show that for any two regular languages \\( A \\) and \\( B \\), \n \\( A \\cup B \\) is regular \n* Given a regular language \\( A \\) over a \\(\\Sigma\\), what do we know about the language \\( A \\)? \n - There exists a DFA \\( M_A \\) that recognizes \\( A \\) \\((L(M_A) = A)\\) \n - \\( M_A = (Q_A, \\Sigma, \\delta_A, q_A, F_A) \\) for some \\( Q_A, \\delta_A, q_A, \\) and \\( F_A \\) \n* Similarly, given a regular language \\( B \\) over a \\(\\Sigma\\): \n - There exists a DFA \\( M_B \\) that recognizes \\( B \\) \\((L(M_B) = B)\\) \n - \\( M_B = (Q_B, \\Sigma, \\delta_B, q_B, F_B) \\) for some \\( Q_B, \\delta_B, q_B, \\) and \\( F_B \\) \n* To show that \\( A \\cup B \\) is regular for any regular languages \\( A \\) and \\( B \\), we need to construct a DFA that recognizes \\( A \\cup B \\) from \\( M_A \\) and \\( M_B \\) \n - To understand the process, we are going to work on a specific example", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 916, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4a0f1799-f1f6-4e37-a32c-a983f81b3eac": {"__data__": {"id_": "4a0f1799-f1f6-4e37-a32c-a983f81b3eac", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6da110ac-aff3-442a-b0da-d7882dbfbd28", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "028ae8a4cac2a20539e368c16c999a93469de3c197c435ded161512ddafdd3f0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \\( L \\) is regular under union operation\n\n* Recall the previous two regular languages and its DFAs where \n \\[\n \\Sigma = \\{0, 1\\}\n \\]\n\n* \\( A = \\{ x \\mid x \\text{ contains } 00 \\text{ as a substring} \\} \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> q_a\n q_a --> q_a: 1\n q_a --> q_b: 0\n q_b --> q_c: 0\n q_b --> q_a: 1\n q_c --> q_c: 0,1\n state q_c {\n <>\n }\n```\n\n\\[\nM_A = (Q_A, \\Sigma, \\delta_A, q_A, F_A) \\quad \\text{and} \\quad L(M_A) = A\n\\]\n\n* \\( B = \\{ x \\mid x \\text{ ends with a } 1 \\} \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> q_0\n q_0 --> q_0: 0\n q_0 --> q_1: 1\n q_1 --> q_0: 0\n q_1 --> q_1: 1\n state q_1 {\n <>\n }\n```\n\n\\[\nM_B = (Q_B, \\Sigma, \\delta_B, q_B, F_B) \\quad \\text{and} \\quad L(M_B) = B\n\\]\n\n* Given a string \\( w \\) and these two DFAs, how to check whether \n \\( w \\in A \\cup B \\)?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 862, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80ee4351-d2e3-4313-8db7-cc44c5baa56f": {"__data__": {"id_": "80ee4351-d2e3-4313-8db7-cc44c5baa56f", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8757f5e2-2c13-46af-8844-6a837ac6c620", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "44ee3adc2702ebcd6bf40899cad9b7be852ed7b3da02dc8300cc62ba1f768c8e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* Recall that \\( A = L(M_A) \\) and \\( B = L(M_B) \\) \n - Thus, \\( A \\cup B = L(M_A) \\cup L(M_B) \\)\n\n* \\( w \\in A \\cup B \\) \n iff \\( w \\in A \\) or \\( w \\in B \\) \n iff \\( w \\in L(M_A) \\) or \\( w \\in L(M_B) \\) \n iff \\( M_A \\) accepts \\( w \\) or \\( w \\in L(M_B) \\) \n iff \\( M_A \\) accepts \\( w \\) or \\( M_B \\) accepts \\( w \\)\n\n* In other words, \n $$\n w \\in A \\cup B \\text{ if and only if } M_A \\text{ accepts } w \\text{ or } M_B \\text{ accepts } w\n $$\n\n* To check whether \\( w \\in A \\cup B \\): \n - Run both \\( M_A \\) and \\( M_B \\) on input \\( w \\) \n - If one of them or both accepts \\( w \\), then \\( w \\in A \\cup B \\) \n - If both reject \\( w \\), then \\( w \\notin A \\cup B \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 728, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "15dc59b7-ab2a-40cb-9d83-95b4b884fe46": {"__data__": {"id_": "15dc59b7-ab2a-40cb-9d83-95b4b884fe46", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8f2b7f50-2bf1-4e7d-9619-aacfe7afc768", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "4fd0b3635e772156121868d75985336c698c11c545a5e92355a2bc6a1e8028f6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* We can run both machines simultaneously\n\n Diagram of two automata:\n\n - First automaton:\n \n States: \n - \\( q_a \\) (initial) \n - \\( q_b \\) \n - \\( q_c \\) (accepting) \n \n Transitions: \n - \\( q_a \\xrightarrow{0} q_b \\) \n - \\( q_b \\xrightarrow{0} q_c \\) \n - \\( q_a \\xrightarrow{1} q_a \\) (loop) \n - \\( q_b \\xrightarrow{1} q_a \\) \n - \\( q_c \\xrightarrow{0,1} q_c \\) (loop) \n\n - Second automaton:\n \n States: \n - \\( q_0 \\) (initial) \n - \\( q_1 \\) (accepting) \n \n Transitions: \n - \\( q_0 \\xrightarrow{0} q_0 \\) (loop) \n - \\( q_0 \\xrightarrow{1} q_1 \\) \n - \\( q_1 \\xrightarrow{0} q_0 \\) \n - \\( q_1 \\xrightarrow{1} q_1 \\) (loop) \n\n* Let state \\((p, q)\\) represent the situation where \n - The current state of \\( M_A \\) is \\( p \\) \n - The current state of \\( M_B \\) is \\( q \\) \n\n* With the new notion of states, we have the combined automaton:\n\n States and transitions:\n\n - \\((q_a, q_0)\\) (initial) \n - \\(\\xrightarrow{0} (q_b, q_0)\\) \n - \\(\\xrightarrow{1} (q_a, q_1)\\) \n\n - \\((q_b, q_0)\\) \n - \\(\\xrightarrow{0} (q_c, q_0)\\) \n - \\(\\xrightarrow{1} (q_a, q_1)\\) \n\n - \\((q_c, q_0)\\) (accepting) \n - \\(\\xrightarrow{0} (q_c, q_0)\\) (loop) \n - \\(\\xrightarrow{1} (q_c, q_1)\\) \n\n - \\((q_a, q_1)\\) (accepting) \n - \\(\\xrightarrow{0} (q_b, q_1)\\) \n - \\(\\xrightarrow{1} (q_a, q_1)\\) (loop) \n\n - \\((q_b, q_1)\\) (accepting) \n - \\(\\xrightarrow{0} (q_c, q_1)\\) \n - \\(\\xrightarrow{1} (q_a, q_1)\\) \n\n - \\((q_c, q_1)\\) (accepting) \n - \\(\\xrightarrow{0} (q_c, q_1)\\) (loop) \n - \\(\\xrightarrow{1} (q_c, q_1)\\) (loop) \n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 02", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1746, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0dbce0f9-b2e7-4a89-8e27-d51ae17f87d3": {"__data__": {"id_": "0dbce0f9-b2e7-4a89-8e27-d51ae17f87d3", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d6ece9ca-b727-485e-bed7-dada89314586", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "6a9fe84d5c7549189b80a2941dc5d6938863a4d60e203c95f1637bd32f90ec1b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud835\udcdb is regular under union operation\n\n* Let \\( M_A \\) recognizes \\( A \\), where \\( M_A = (Q_A, \\Sigma, \\delta_A, q_A, F_A) \\) \n* Let \\( M_B \\) recognizes \\( B \\), where \\( M_B = (Q_B, \\Sigma, \\delta_B, q_B, F_B) \\) \n* Machine \\( M = (Q, \\Sigma, \\delta, q_0, F) \\) that recognizes \\( A \\cup B \\) can be constructed as follows: \n 1. \\( Q = \\{(r_1, r_2) \\mid r_1 \\in Q_A \\text{ and } r_2 \\in Q_B \\} \\) \n 2. For each \\((r_1, r_2) \\in Q\\) and \\(a \\in \\Sigma\\) \n $$\n \\delta((r_1, r_2), a) = (\\delta_A(r_1, a), \\delta_B(r_2, a))\n $$ \n 3. \\( q_0 = (q_A, q_B) \\) \n 4. \\( F = \\{(r_1, r_2) \\mid r_1 \\in F_A \\text{ or } r_2 \\in F_B \\} \\) \n\n* To recognize \\( A \\cap B \\), simply change the set of accept states to \n$$\nF = \\{(r_1, r_2) \\mid r_1 \\in F_A \\text{ and } r_2 \\in F_B \\}\n$$\n\n* If \\( A \\) and \\( B \\) are regular languages, \\( A \\cup B \\) is regular", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 861, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b925801a-dc3c-49fb-b706-12aa3eddce41": {"__data__": {"id_": "b925801a-dc3c-49fb-b706-12aa3eddce41", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/finite_automata_02_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "266d2c3c-b80a-4cb3-bba4-e080351b7183", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/finite_automata_02_handout.pdf"}, "hash": "5dd972e802556fab0775f26360267cc53a05b2c2222006c2fb084cb5cc5758aa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Conclusions\n\n* A language is regular if it is recognized by some finite-state machines \n - If you can prove that a language is regular: \n * there exists a finite-state machine that recognizes it \n - If you can prove that a language is **not** regular: \n * there is no finite-state machine that recognizes it \n* In formally, we show that if \\( A \\) and \\( B \\) are regular languages, \n \\( A \\cup B \\) is a regular language \n* To prove the closure of concatenation and star operators, we need a sightly different computational model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 549, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ccdbcf9c-1d21-4f6c-a325-cba488bcba28": {"__data__": {"id_": "ccdbcf9c-1d21-4f6c-a325-cba488bcba28", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5967aa4b-bab7-4a0f-aff3-dc3d21eb8392", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "2ee956496f717e8e2b7440f1efb581fbc75d219f574d239ec543b9b13cd3a2c5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L13 Intro to System Design\n\nCS 1530 Software Engineering \nNadine von Frankenberg \n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 165, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f20ae3d-8eaa-450c-bf2b-9adc4bbe320e": {"__data__": {"id_": "9f20ae3d-8eaa-450c-bf2b-9adc4bbe320e", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "af587276-2133-4a42-93ea-3a96f3fa59b8", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "e3aa022a4aa5ac4c39b3b978b39521cacde57835cbc7994f32e5fe17c5f613fe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "39ee6b94-e6be-4b39-873e-786fa919f6e8": {"__data__": {"id_": "39ee6b94-e6be-4b39-873e-786fa919f6e8", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fb137286-c8b8-4a9f-96e7-78bd6bc76ca1", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "24ee041541c5c61d1338f30bfda13897bf542e2135f6c2e5230048e118f7e04e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* Understand the purpose of system design \n* You can formulate design goals \n* You understand the purpose of modeling a workflow", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 149, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "829f4ba2-1b03-4379-bfc3-c178cd2092ee": {"__data__": {"id_": "829f4ba2-1b03-4379-bfc3-c178cd2092ee", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a140bb0c-ee7e-425c-b53a-a2562764016b", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "1b3fd721fcf6c0f698a078f96547b34a19fbd316a1d496ef6503efbca16080d4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Recap: Analysis\n - Analysis object model\n - Modeling access\n* System design overview\n* Design goals\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 149, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d822a0a1-769c-41aa-bc2c-cf433b31caae": {"__data__": {"id_": "d822a0a1-769c-41aa-bc2c-cf433b31caae", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8f82b6fc-066d-444e-98c3-0d5c603f6c4c", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "b596d601e15e3b601806544930b2ba95534d1ce3feb3913d8d5422cfdd90a839", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I12 Pizza ordering system \ud83d\udc40 Review\n\n**Problem statement \u2014 Design a pizza ordering system**\n\n> \u201cStudents can order pizzas with varying sizes and choose from various toppings. After selecting their pizzas, they confirm the delivery type (pickup or dorm delivery) and pay. Once an order is placed, the pizza baker receives it and confirms the order. Students can then check the expected time until the pizza is ready (for pickup) or until delivery. In addition to regular pizzas (Margherita, Pepperoni, Mushroom), the pizza baker can also prepare two special types of pizzas: Hawaiian or Yinzer.\"\n\n**Your task:** Model this system using a UML class diagram.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 657, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99dd902b-c2cc-4849-8038-f098727ae79e": {"__data__": {"id_": "99dd902b-c2cc-4849-8038-f098727ae79e", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1d5b0f39-f7ee-412f-b4b3-7b907701769e", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "4e40f6490850e2b5b60844285f64c643e8b95f01b8f1c16908db4d0a5395671a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Pizza ordering system\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n \n\n \n\n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n\n \n\n \n\n\n\n\n\n \n\n \n\n\n\n\n\n \n \n
BakerPizzaTopping
nameanchovyLoversizename
makePizza()priceamount
bake()isVegetarian()
StudentcalculateExpectedTime()
nameisHungryorder()
isVegetarian
eat()
\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
HawaiianPizzaYinzerPizza
addExtraPineapple()addExtraFries()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1257, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "015e052f-b219-47e2-83a5-6aa14e383218": {"__data__": {"id_": "015e052f-b219-47e2-83a5-6aa14e383218", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "961d2857-1b3f-4615-a14a-a550306070ac", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "2d66c7e680afd3f57b4bdac9eecb29012951c3de66cb12fa128091d2d0ba5f58", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Pizza ordering system\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n\n \n\n \n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
BakerOrderPizza
name*totalPrice\n \n\n\n \n \n\n\n\n\n\n\n\n \n
name
description
size
toppings[]: Topping
isVegetarian()
addTopping()
removeTopping()
\n\n
anchovyLoverdeliveryType
makePizza()
Student*complete()
namecalculateExpectedTime()
emailcreate()
address
notify()
\n\n\n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
Payment
methodHawaiianPizzaYinzerPizza
amountaddExtraPineapple()addExtraFries()
status
processPayment()
\n\n* Relationships and multiplicities:\n - Baker to Order: *\n - Student to Order: *\n - Order to Pizza: 1..10\n - Student to Payment (paymentMethods): 0..3", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1784, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bd1206e1-6854-4d58-a884-214344c5c753": {"__data__": {"id_": "bd1206e1-6854-4d58-a884-214344c5c753", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d69116b3-cdcc-4f30-adf8-510a55217076", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "e7bedc25f36d8613bb4d46e56bc7a6f3f80e383a4cd461856b42eac7d49eaee2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying access\n\n\n \n \n \n \n \n \n \n \n\n \n \n
InvestmentManager
nameaddress
\n\n> Owner and InvestmentManager can view the balance. Owner can withdraw money.\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
OwnerBankAccount
namewithdraw() >number
addressbalance
creditScoreviewBalance()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3c574f05-08e9-4c0b-8906-ecdeeaadf914": {"__data__": {"id_": "3c574f05-08e9-4c0b-8906-ecdeeaadf914", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fbde05cb-f208-4694-8d09-9fb34fe02218", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "cd33f2968b18302f6e7ea6ceb03a3272467d50c9b2d2d26dc92a4c665532cc1d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying access - Detailed\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
OwnerInvestmentManager
BankAccountviewBalance()
withdraw()
viewBalance()
\n\n> Access matrix\n\n----\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
InvestmentManager
name
address
\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n \n
OwnerBankAccount
name
address
creditScore
number
balance
viewBalance()
withdraw(): Money
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 876, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ac87b2da-5bc3-47a0-98ad-684eae496914": {"__data__": {"id_": "ac87b2da-5bc3-47a0-98ad-684eae496914", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "40f0fc8b-abbd-4d21-9662-147bd61869f6", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "deab65b02a737161b573f80796191716b8c6fc2440a19a9c8924675247377d72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Access Matrix\n\n* Access control: Defines access permissions for entities and objects \n* Permissions: Provides detailed, fine-grained access control \n* Security: Forms the basis for system security analysis and policies \n* The rows of the matrix represents the actors of the system \n* The column represent classes whose access we want to control \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OwnerInvestmentManager\n
\n An entry in the access matrix represents an **access right** \n Lists the operations that can be executed by the actor on instances of the class\n
\n
BankAccount\n viewBalance()
\n withdraw()\n
viewBalance()
SupportDeskcontact()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 866, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "91ace2d0-0eae-465e-a7cd-d96d081ecfa1": {"__data__": {"id_": "91ace2d0-0eae-465e-a7cd-d96d081ecfa1", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3006742a-dd04-4e2f-b4e0-f3745c5dbb1b", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "61c25cabda3f2b7e78f5d7b41016e68ae0b9c1571d42c8be6ecb2a456cceb8b9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Recap: Analysis\n* System design overview\n* Design goals", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 77, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6fe40d8a-f21f-4be7-86d8-4a3cc9d5896e": {"__data__": {"id_": "6fe40d8a-f21f-4be7-86d8-4a3cc9d5896e", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5d109cc2-54f1-4cc1-a882-f6ad37ce29bd", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "9cec7b62cb943fa693965166fde883dd465cd8262b77d5bb7a5f0062eab8a356", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing software systems\n\n> *There are two ways of constructing a software design.* \n> *One way is to make it so simple* \n> *that there are obviously no deficiencies.* \n> *And the other way is to make it so complicated* \n> *that there are no obvious deficiencies.* \n> \u2014 C.A.R. Hoare", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d9cf26e-ccda-467f-8367-f591a9fdc671": {"__data__": {"id_": "8d9cf26e-ccda-467f-8367-f591a9fdc671", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5678a189-d277-4bce-8ccc-281672b34472", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "2cb6eb21a63d0fa9603ccc61ea36dc1bab62afdb394ab5e46cd511da6c566239", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing software systems\n\n* Design is a dynamic and creative problem-solving activity\n* It is difficult - there is no concrete recipe or one-size-fits-all approach\n* It requires adaptability and tailoring to the specific context\n* The quality of a system's design and its designer directly impacts the system's performance, longevity, and overall success", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 359, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ad2a513e-8eb6-4926-919b-9f25c6c9e78e": {"__data__": {"id_": "ad2a513e-8eb6-4926-919b-9f25c6c9e78e", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d659a1be-6a06-4184-9187-15fcd85995a9", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "cc87d8939e06b517c72245cda9dfb4bc0b5d5fe84edf730eb8e258da2c99e449", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System Design\n\n* For each feature, there are many variants to accomplish the desired behavior\n - What are the differences between the variants?\n - Which variant should we choose?\n\n**Example** \nFR11 Search for Product: The consumer can search for a product.\n\n> Which one to pick?\n\nSimple Search\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003Search Engine \n\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003\u2003(e.g., ElasticSearch)\n\n**It depends!** on the goals \non the context", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 437, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a1ffeec3-f726-4f06-9f75-5d141d1e384d": {"__data__": {"id_": "a1ffeec3-f726-4f06-9f75-5d141d1e384d", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c72b244e-621e-4335-8f3d-3b94be606a44", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "308f0c3cc5807a9ef89af7b435a20ffd452f9a57773ed67bb1301f9ba6160c91", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to implement a system?\n\n* System design bridges the gap between requirements analysis and implementation\n* Goal: Allocate the requirements to hardware and software components\n - It helps to translate abstract ideas into concrete, organized systems\n* Comprises three main steps:\n 1. Choose a **high-level strategy for solving-problem**\n 2. Decide how to **organize the system** into subsystems\n 3. **Map subsystems to** HW and SW **components**\n - Decide on the \"tech stack\"\n - Decide on \"build or buy\"\n - \u2026\n\n----\n\n**Diagram:**\n\nProblem", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 558, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "da7b68b4-e618-41fe-9e89-c521c9e666f7": {"__data__": {"id_": "da7b68b4-e618-41fe-9e89-c521c9e666f7", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "87355608-b928-4694-a4bf-38528e393dae", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "e34e2bb2863000d0f683e839d62036aa2a0341344eb9e611f44cfa9a2b445176", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Software Systems\n\n* Object-Oriented Requirements **Analysis**\n - Understand the problem\n - Identify the key concepts and their relationships\n - Build a (visual) vocabulary\n - Create an application domain model (conceptual model) ![Analysis Object Model]\n\n* Object-Oriented **Design**\n - Assign responsibilities (attributes, methods)\n - Explore behavior with interaction diagrams\n - Explore design alternatives\n\n* **Implementation**\n - Map designs to code, implementing classes and methods", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 509, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "34c36b38-266f-4670-922b-9d0ceb35e88a": {"__data__": {"id_": "34c36b38-266f-4670-922b-9d0ceb35e88a", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6c81bad8-3008-4d78-b184-ff30eff78cbf", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "79c778afc6dec75d40cb69ff02c10e6ec2880fb0cec8a0f82188b72845cad9ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Important system design principles\n\n1. **Separation of concerns** \n * Divide the system into separate aspects or concerns \n * Helps to keep the system organized\n\n2. **Abstraction** hides complex implementation details, simplified interfaces\n\n3. **Modularity** promotes code reusability and simplifies maintenance\n\n4. **Encapsulation** restricts direct access to data (data integrity) \n * Makes changes to the implementation easier without affecting other parts of the system\n\n5. **Consistency** promotes readability, maintainability, integrity\n\n6. **Simplicity** reduces complexity", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 593, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa912051-4e1b-4d23-bc65-f0260f288fca": {"__data__": {"id_": "fa912051-4e1b-4d23-bc65-f0260f288fca", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a092e841-f6f7-4721-90ef-6acdd6dd05f2", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "05eca7e35569e929614a597ee1043f34831b085b9967c8f8163076bdbce379e7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System design concepts \u2014 Overview\n\n* Design goals \n* Control flow \n* Subsystem decomposition \n* HW/SW mapping \n* Data management \n* Access control \n* Boundary conditions", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 178, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e46d527d-f53c-4e33-b3dc-14ea2b85973e": {"__data__": {"id_": "e46d527d-f53c-4e33-b3dc-14ea2b85973e", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1a613961-8e1a-4c3a-9b65-1c3d18e86e11", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "9a79dd4b16340a7830099dee6d6693e5d23e8933cc4c571818b1f999086e1145", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Recap: Analysis\n* System design\n* Design goals\n - Types\n - Trade-offs", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 93, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4a3e33da-b45a-4b8b-8e38-1f42e4f43080": {"__data__": {"id_": "4a3e33da-b45a-4b8b-8e38-1f42e4f43080", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2b351626-476d-4488-a10e-775b12360a42", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "9d1b2e574a13148b300d9b5af6a0634b4ad1013c2f3a082a9be5bd953d52fbad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# So far \u2026\n\n* Identified requirements\n* Analysis object model (domain model)\n\n* Now, define the concrete messages and behavior of/between objects\n* How?\n - How should concepts be implemented by classes? \n - How should the objects interact exactly? Time-frame?\n\n> This is a critical, important, and non-trivial task!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 319, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1171bf29-bb3b-4657-a2a0-274fafd9e20a": {"__data__": {"id_": "1171bf29-bb3b-4657-a2a0-274fafd9e20a", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d1b81d8d-a3bc-490f-b97d-2d8144ab6dd7", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "712994a3ad6a0a1242651c166d96d7a958db06a458b3a1051e9a8581c7275063", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Goal of Software (Software Quality)\n\n* Functional correctness\n* Robustness\n* Flexibility\n* Reusability\n* Efficiency\n* Scalability\n* Security", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 143, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf715c94-25db-4622-a8a6-a7a1715b9889": {"__data__": {"id_": "bf715c94-25db-4622-a8a6-a7a1715b9889", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a798e670-54b2-4490-9817-31a9b82bc6bc", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "a66c311348c35c885fce6e003efc556cf8426c2557295551ec2dccaee18157a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing for change\n\n* *\u2026 accept the fact of change as a way of life, rather than an untoward and annoying exception* \n \u2013 Brooks, 1974\n* *Software that does not change becomes useless over time* \n \u2013 Belady and Lehman\n\n* The biggest cost is typically not building the system but evolving the system! \n - Reducing the cost of change is important when designing software systems\n\n\n \n \n\n\n\n\n \n\n \n \n
implementation & maintenance by single personcomprehensible by a single personcomplex system
Design for division of labor
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 679, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49a34094-c998-42e2-be9c-36500503ae78": {"__data__": {"id_": "49a34094-c998-42e2-be9c-36500503ae78", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "322047ab-a946-4e0c-88de-02cbd1f5622b", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "018c3f40cf83fb1495d598bc78c4762ac780bcd432696f93f25ac2c1b16ac807", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Design goals\n\nDesign goals identify and describe the **qualities the system should focus on**\n\n* Often phrased as statements a team makes about the quality of experience they would like a system to attain\n* Design goals can be **inferred from the non-functional requirements** or from the application domain\n - Design goals are often generalized non-functional requirements\n - Active Elicitation: Some design goals must be actively elicited through conversations with clients or stakeholders; metrics, design methodologies, and implementation goals are valuable sources", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 574, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c1f988af-d816-4d7d-ba12-8bb3edec13b0": {"__data__": {"id_": "c1f988af-d816-4d7d-ba12-8bb3edec13b0", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f995764e-0ceb-4141-96ca-af3004349f66", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "4504dc772b48f8ba8004994fc569a7db0d9ce65bdcf8e78106ab0d0f78df7029", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Design goals (cont.)\n\n* Typically non-prescriptive and more abstract\n* Focus on the concerns of designers, architects, and developers\n* Often a prioritization of non-functional requirements: **trade-offs** guide the development\n* Design goals describe the overarching objectives for the system's architecture and design", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 322, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "44500bbf-15f2-4b98-b713-77b6bc2cc40b": {"__data__": {"id_": "44500bbf-15f2-4b98-b713-77b6bc2cc40b", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b9c54d02-220d-4d6b-bffe-67a782db3268", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "8ac0ed3169f2b35bcfd29d6407bcf27fbb098d03ccfa64a763d175c5cb8acc33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of design goals \u2014 Customer\n\n* Cost\n - **Development cost** \u2014 Cost of developing the (initial) system\n - **Deployment cost** \u2014 Cost of installing the system and training the users\n - **Upgrade cost** \u2014 Expenses associated with data migration and backward compatibility requirements\n - **Maintenance cost** \u2014 Resources needed to handle future bug fixes and enhancements to the system\n - **Administration cost** \u2014 Cost required for administering and managing the system", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 480, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c5d28357-4171-4bfa-8e9d-1db2f30a158f": {"__data__": {"id_": "c5d28357-4171-4bfa-8e9d-1db2f30a158f", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b27bb8b0-02cf-4c85-ad7d-0a664c22d1ef", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "5c9e4c3ca41cdedeeb5b579f3c885461b3cd6d43f70619a1addb5659d27e7c2d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of design goals \u2014 Customer\n\n* Maintenance\n - **Extensibility** \u2014 How easy is it to add functionality or new classes to the system?\n - **Modifiability** \u2014 How easy is it to change the functionality of the system?\n - **Adaptability** \u2014 How easy is it to port the system to different application domains?\n - **Portability** \u2014 How easy is it to port the system to different platforms?\n - **Readability** \u2014 How easy is it to understand the system from reading the code?\n - **Traceability of requirements** \u2014 How easy is it to map the code to specific requirements?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 574, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6c07ff97-99cc-4d91-8526-8d7922ddf6c2": {"__data__": {"id_": "6c07ff97-99cc-4d91-8526-8d7922ddf6c2", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d5c919ab-0f03-4f9f-be11-2c1472e815bf", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "f8e27d73f9c3be1898f7ce222b5126cbd11a6adda96c8ccae9e29ca4d7200892", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of design goals \u2014 End-user\n\n* **Utility** \u2014 How well does the system support user tasks and goals? \n* **Usability** \u2014 How easy is it for the user to interact with the system? \n* **Cost** \u2014 How much does it cost to use the system? (free vs one-time payment vs future costs)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 283, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "518be595-5ea8-4e62-9423-47401abd6683": {"__data__": {"id_": "518be595-5ea8-4e62-9423-47401abd6683", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2c9ed2cc-c769-4de2-9012-4f0023e82ec0", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "bfa34e30b870043f94ee68c68ce55dc01cadc558afd1277d3813c5370414437c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of design goals \u2014 Developer\n\n* Performance \n - **Response time** \u2014 How quickly does the system respond after receiving a user requests? \n - **Throughput** \u2014 How many tasks can the system accomplish within a fixed time frame? \n - **Memory** \u2014 How much space is necessary for the system to operate efficiently? \n\n* Dependability \n - **Robustness** \u2014 Ability to handle invalid user input \n - **Reliability** \u2014 Difference between specified and actual behavior \n - **Availability** \u2014 Percentage of time the system is available for normal tasks without downtime \n - **Fault tolerance** \u2014 Ability to continue operating in the presence of errors or failures \n - **Security** \u2014 Ability to protect against malicious attacks, unauthorized access, data breaches \n - **Safety** \u2014 System's ability to prevent endangering human lives, even in the presence of errors and failures", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 891, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7886d762-cffa-4e27-b133-6f81186d23b8": {"__data__": {"id_": "7886d762-cffa-4e27-b133-6f81186d23b8", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b974d3ca-ca7d-4d98-be7e-14c4c2e34031", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "7ee17a241574c5ad349236dc30377d528f726a06f5d8719e0063df6b90f6c59d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Design goals interests overlap University of\n (Example) Pittsburgh\n\n Portability\n Portability\n Customer Developer\n\n Reliability\n Reliability\n Reliability\n\n Usability Consistency\n Usability Consistency\n\n End-user\n\n\u00a9 2025 Nadine von Frankenberg CS 1530 - L13 Intro to System Design 29", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4647ae00-8cf2-4bd4-ba67-abe38c8fb375": {"__data__": {"id_": "4647ae00-8cf2-4bd4-ba67-abe38c8fb375", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c96f5f55-4236-49f4-9378-8c4ec1df75da", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "55a88f98a58c5822106a49c22a77681431af887dfebda5f99960129ab3d05abe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements vs design goals\n\n**Requirements** define **what the software system must do** \n* \"What does the system need to accomplish in terms of functionality, features, and constraints?\" \n* Typically detailed and specific, providing clear instructions on how the system should behave \n* Focus on addressing the needs and expectations of stakeholders, including end-users, clients, and regulators \n* Early stage definition (requirements elicitation, analysis) \n\n**Design goals** identify and describe the **qualities the system should focus on** \n* What should be prioritized? \n* What is the overarching goal of the entire system?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 642, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d5dff5d-872d-4b22-854d-682a97e6d38c": {"__data__": {"id_": "8d5dff5d-872d-4b22-854d-682a97e6d38c", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "27af1bb3-df49-4d55-8d6c-aa02e0d9eabd", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "25fc0ecc774db5e1a2ae575bd1c7a561daeb415d840f9ddcadd2a0c832469889", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example]\n\n* Functional Requirements *simplified\n - **FR1 Access Lab Result:** Patients should be able to securely access their lab test results.\n - **FR2 Book Appointment:** Patients should be able to book an appointment with their healthcare provider.\n - **FR3 Authenticate:** Patients and doctors must authenticate themselves to protect patient data.\n\n* Non-functional Requirements *simplified\n - **NFR 1 Security:** Ensure patient data privacy and compliance with healthcare data regulations (HIPAA).\n - **NFR 2 Usability:** Design an intuitive and user-friendly interface for patients of all technical skill levels, so that they can navigate it without needing a manual.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 683, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1a2123f9-d05e-4639-8971-343b22eac214": {"__data__": {"id_": "1a2123f9-d05e-4639-8971-343b22eac214", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1e77117e-93db-49e4-a612-38b0e2d12601", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "147e4a46d341a0409745f570cc6708d6fac0af9888eea485fe2c1d9507603d58", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example]\n\n## Design Goals\n\n* **DG1 Usability and User Experience:** Ensure the app is easy to navigate, with a clean and intuitive user interface to provide a positive user experience for patients, reducing the learning curve and frustration.\n* **DG2 Security and Privacy:** Implement robust security measures to protect patient data to maintain patient trust and comply with healthcare data privacy regulations.\n* **DG3 Scalability:** Design a scalable architecture to handle increased user loads to accommodate the number of patients using the system without performance degradation.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 589, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1b4b2385-313c-4a44-b081-ac433ac0efeb": {"__data__": {"id_": "1b4b2385-313c-4a44-b081-ac433ac0efeb", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "efe08df7-6807-4b11-a8a5-f2b12ca98214", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "7f1bf49f5e9db23a4a225afd10023cedd2d7bb821b22c43cc8124e5ecbbafb8d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Designing Software Systems\n\n* Object-Oriented Requirements **Analysis**\n - Understand the problem\n - Identify the key concepts and their relationships\n - Build a (visual) vocabulary\n - Create an application domain model (conceptual model)\n\n* Object-Oriented **Design**\n - Assign responsibilities (attributes, methods)\n - Explore behavior with interaction diagrams\n - Explore design alternatives\n\n* **Implementation**\n - Map designs to code, implementing classes and methods", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 484, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c5b26799-40c7-46cc-adc0-7fea818919b0": {"__data__": {"id_": "c5b26799-40c7-46cc-adc0-7fea818919b0", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ec38d52f-c79a-419e-9854-5e7d812ff39d", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "28d95d76f2c2e5fcf95c781fccc28c45035f839875b7f8df939b74e6c0fd7ea6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Design vs Architecture\n\n**Architecture questions** \n* How does the user choose to view a map? \n* How should the user\u2019s location data be protected? \n* What other functionalities are connected to viewing a map? \n* What are the interfaces between objects? \n\n**Design questions** \n* How do I include the Google Maps API? \n* How does the device\u2019s built-in encryption work? \n* What threads exist and how do they coordinate? \n* What are the interfaces between subsystems and third-party systems? \n\n> **Architecture** defines what the system\u2019s major components are and how they interact. \n> **Design** defines how each component is implemented and behaves internally.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 673, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d262c34a-44f0-4b58-bec6-b841ae7b520b": {"__data__": {"id_": "d262c34a-44f0-4b58-bec6-b841ae7b520b", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b3e21805-40e6-4640-a602-b99493a93619", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "b6a154d84fa90f26325e672f3890d2ad369fa392fb558f0a81fa63a0a5d0cb51", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying design goals\n\n* **Analyze requirements** \u2014 identify implicit design goals within these requirements \n* **Stakeholder input** \u2014 insights and expectations regarding system quality and performance \n* **Benchmark existing systems** \u2014 industry standards and best practices \n* **Risk assessment** \u2014 potential risks and challenges associated with the project", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 369, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0601cc23-c604-4970-a8dc-56e351ba29cb": {"__data__": {"id_": "0601cc23-c604-4970-a8dc-56e351ba29cb", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "899716dd-0f52-445c-999e-f6401f82e53a", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "99319ce6d5c51a91fb8dc5dc14dbbbc393de9fd6079df5ce99c2c2f8420ea282", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying design goals (cont.)\n\n* **Technical feasibility** \u2014 design goals need to align with the chosen technology stack and infrastructure\n* Prioritize and refine design goals based on their importance to stakeholders: specific, measurable, achievable, relevant, and time-bound (**SMART**)\n* **Iterate and collaborate**\n - Involve **cross-functional teams** in goal derivation and validation\n - **Iterate on design goals** as the project progresses and new insights emerge", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 481, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cda5aa5f-b6d7-4e19-a872-2f1905bc622c": {"__data__": {"id_": "cda5aa5f-b6d7-4e19-a872-2f1905bc622c", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7accf737-7dff-4c23-974f-fae835d06bfe", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "952f05a63a7a385cd47f6b74946d58383d7f84639d6a5fd75123d0564fe0269d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# SMART\n\n* Specific \n* Measurable \n* Achievable \n* Relevant \n* Time-bound", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 78, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "66d5d72f-8b14-4092-abd2-3ae331f97fdc": {"__data__": {"id_": "66d5d72f-8b14-4092-abd2-3ae331f97fdc", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a7a292c8-0442-49c3-a555-f1fbbced5a11", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "704e3c0df134e822d4504fc391fe090806f74bbf27fdab01a840e3ee6759213b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Design goal trade-offs\n\n* Design goals are often conflicting\n* Typical trade-offs\n - Functionality vs. usability\n - Cost vs. robustness\n - Efficiency vs. portability\n - Rapid development vs. functionality\n - Cost vs. reusability\n - Backward compatibility vs. readability", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 279, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a49367b5-8166-4ef8-9c51-11e24bb9bae6": {"__data__": {"id_": "a49367b5-8166-4ef8-9c51-11e24bb9bae6", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "29a044f2-0d32-449a-abf2-0bb89fbed685", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "cf272c733dc4fc341e6958e4819c6a43514ba3d3d7a9b4f2ea99c2fe6675cf5c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Battery\n\n* Design Goal 1: Battery Capacity (Range) \n - Maximize the battery capacity to provide an extended driving range for electric vehicles, allowing users to travel longer distances on a single charge.\n\n* Design Goal 2: Battery Weight and Size (Efficiency) \n - Minimize the weight and size of the battery pack to improve vehicle efficiency and reduce energy consumption.\n\n* Design Goal 3: Battery Lifespan (Longevity) \n - Design the battery to have a long lifespan, reducing the frequency and cost of battery replacements for EV owners.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3cf29be9-7ec8-4227-a7c0-b7540f6f80ce": {"__data__": {"id_": "3cf29be9-7ec8-4227-a7c0-b7540f6f80ce", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2e15443d-680a-450d-bf76-28bbb9ba5c58", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "83686128cec12613b31f9e96b5028e0393b0e94413a93a45f5332287cb40c601", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] SIMCity\n\n* DG Usability: Any user (regardless of skill level) can navigate through the system and recall the main features (...) of the system after following a tutorial.\n* DG2 Reliability: The system should ensure data integrity by accurately reflecting sinkhole status updates in a timely manner.\n* NFRs\n - NFR1 Usability (Learnability): The system should provide a 10min tutorial to help users understand its core features (...).\n - NFR2 Usability (Navigation): Users should be able to access the menu within two steps.\n - NFR3 Usability (Accessibility): The system should support text-to-speech for improved accessibility.\n - NFR4 Robustness: The system should handle increased traffic (+ 60%) during rush hours, with higher loads in winter than in summer (+ 70%).\n - NFR5 Performance: The map should reflect new and updated reports within five minutes.\n - NFR6 Reliability: The sinkhole status should be updated within five minutes after verifying a sinkhole and after removing a sinkhole.\n - NFR7 Portability: The system should be available as a mobile app.\n - NFR8 Availability: The system should require and verify Internet connectivity for (\u2026) functionality.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1188, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0591449b-bc1d-49aa-adf0-1afe69862ed3": {"__data__": {"id_": "0591449b-bc1d-49aa-adf0-1afe69862ed3", "embedding": null, "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5067daf4-ce26-44a9-9f57-593e48801f7d", "node_type": "4", "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "90c5a1eb9a1444f475e3c68369ec2fcefc59b77b0618fdfa179bfbce32ddcd76", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Take Away: Designing good systems is hard!\n\n* Typically, systems are divided into smaller, manageable pieces to deal with complexity\n* Design goals guide decisions made by developers\n* Design goals encompass the entire system to be able to realize the different parts independently\n* Trade-offs between design goals need to be addressed\n - E.g., \"a user can navigate to every functionality using at most 2 clicks from the home page\" vs. \"a user must be able to use the system without needing a manual\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 505, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8554c5c7-6204-4441-ad1b-72b3cb869b87": {"__data__": {"id_": "8554c5c7-6204-4441-ad1b-72b3cb869b87", "embedding": null, "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "39e82b4c-2eea-4d5f-b363-8e5851a8e173", "node_type": "4", "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "00a478db4aae89eb67ce9b00b5c1448252f7c8468d0dad945b1806fedabbe84d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b4832df7-1a00-4374-b378-da0c65660647": {"__data__": {"id_": "b4832df7-1a00-4374-b378-da0c65660647", "embedding": null, "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2976cae5-17fe-4e97-90a1-ccbbd4affb0d", "node_type": "4", "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L13 Intro to System Design.pdf"}, "hash": "889c8027d810280755b1018bad4429cd465dcc7d2b711b1ac255f88e7bfbbb68", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L13 Intro to System Design\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu\n\nFall 2025", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 174, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6f7b327d-e7f0-470d-95c9-e555b324614f": {"__data__": {"id_": "6f7b327d-e7f0-470d-95c9-e555b324614f", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1b78836f-8eb6-4bc9-a070-b721df297f54", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "5d60459967b6dff2301904b9289d0d521a3bf79ff165b68decc552dad476ac3e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine 04\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 69, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80e790e0-36cf-491e-bf66-6c07378fe115": {"__data__": {"id_": "80e790e0-36cf-491e-bf66-6c07378fe115", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f1cc888e-8adf-4fb6-be26-6e8182c86e7c", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "ca14130c6d08fc47158e52d3ebe762fd60c5c2eba3d56a5163f14281c5e0c24d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Recognizable and Decidable\n\n* Given a language \\( R \\), if some Turing machines accept every string \\( s \\in R \\) and **does not accept** (either reject or loop indefinitely) every string \\( s \\notin R \\), we say that **\u201c\\( R \\) is recognizable\u201d**\n - Note that these machines must accept on all input \\( s \\in R \\)\n - However, if \\( s \\notin R \\), these machines either reject or loop infinitely\n\n* Given a language \\( D \\), if some Turing machine accept every string \\( s \\in D \\) and rejects every string \\( s \\notin D \\), we say that **\u201c\\( D \\) is decidable\u201d**\n - Note that these Turing machines must be deciders\n - These machines either accept or reject on all input strings\n - These machines will not loop indefinitely on any strings\n - If \\( D \\) is decidable, \\( D \\) is also recognizable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 806, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "af8eb324-191c-4345-8470-62370db5594d": {"__data__": {"id_": "af8eb324-191c-4345-8470-62370db5594d", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8861fdd5-3a76-48a6-8c4a-7b3b12c7bd76", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "d1f8808ce30a794f979d5059ae550be6584adb26996d0710d59375e1098de0dd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Decidable Language\n\n* Following languages are examples of decidable languages:\n * $$ A = \\{0^{2n} \\mid n \\geq 0\\} $$\n * $$ B = \\{w \\# w \\mid w \\in \\Sigma^* \\} $$\n* We already demonstrated that there exists Turing machines (deciders) that decide above languages\n* There are some languages that are recognizable but not decidable\n * Suppose $$ R $$ is recognizable but not decidable\n * There are TMs that **accept** all strings in $$ R $$ and **does not accept** all strings not in $$ R $$\n * No TM can **accept** all strings in $$ R $$ and **reject** all strings not in $$ R $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 588, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4ac9a2d6-7dc0-4751-b309-3eb75031fb25": {"__data__": {"id_": "4ac9a2d6-7dc0-4751-b309-3eb75031fb25", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dd7f50d9-513a-4172-ac62-dc818f3a77e3", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "e1ba2a40783fff2f56293eec8cf477c0e7d04c6c05a6cb3dc6d670f829f565d4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Consider a polynomial: \n $$6x^3 y z^2 + 3 x y^2 - x^3 - 10$$\n\n * A **root** of a polynomial is an assignment to its variables which results in that value of polynomial is 0 \n * A polynomial has an integral root if all variables are assigned integer values \n * The above polynomial has an integral root \\(x = 5\\), \\(y = 3\\), and \\(z = 0\\)\n\n* Given a polynomial **with an integral root**, can you find out its root? \n - Yes, brute force\n\n* Given a polynomial, can you find out whether it has an integral root? \n - Not always \n - Hilbert\u2019s tenth problem stated that there is no algorithm that tests whether a polynomial has an integral root.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 678, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e46b8c6f-8aa6-4815-b09c-bdaa67f03b47": {"__data__": {"id_": "e46b8c6f-8aa6-4815-b09c-bdaa67f03b47", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "759f0009-a9ab-4ff5-8b0f-4e1eaf337cc5", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "8436cfa258c631b9a7d331688cf145d1495c76f6707889470556fe1fc28e6e40", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Let $\\langle x \\rangle$ be a string representation of the object $x$\n* Let $D$ be the set of all string representations of polynomials that have integral root\n* Formally\n\n$$\nD = \\{\\langle p \\rangle \\mid p \\text{ is a polynomial with an integral root}\\}\n$$\n\n* Given $\\langle p \\rangle$ (a string representation of a polynomial $p$), if a Turing machine can **decide** whether\n - $\\langle p \\rangle \\in D$ (polynomial $p$ has an integral root) or\n - $\\langle p \\rangle \\notin D$ (polynomial $p$ does not have an integral root)\n\n then $D$ is decidable\n\n* Hilbert\u2019s tenth problem simply stated that $D$ is **not** decidable.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 650, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3847a489-078c-4242-8ca4-d3e3e64c0ec5": {"__data__": {"id_": "3847a489-078c-4242-8ca4-d3e3e64c0ec5", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "30541b0d-fb92-4a5e-b098-bb8d4192522c", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "3d047dddcbe3e7773c1f0dbdb1491ee8517970a686251469d6143c4eac15a5ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Consider polynomials with one variable (e.g., \\(2x^2 + x - 7\\))\n* Let \n $$D_1 = \\{\\langle p \\rangle \\mid \\langle p \\rangle \\text{ is a polynomial over } x \\text{ with an integral root}\\}$$\n* Is \\(D_1\\) recognizable? \n - Yes, if there exists a Turing machine that accepts every \\(\\langle p \\rangle \\in D_1\\) and does not accept every \\(\\langle p \\rangle \\notin D_1\\)\n* Example: \\(M_1\\) that recognizes \\(D_1\\) using a brute force algorithm in high-level definition \n \\(M_1 =\\) \"On input \\(\\langle p \\rangle\\) where \\(p\\) is a polynomial over the variable \\(x\\): \n 1. Evaluate \\(p\\) with \\(x\\) set successively to the value 0, 1, -1, 2, -2, 3, -3, \\ldots\\). If at any point the polynomial evaluates to 0, *accept*\"\n* Note that \\(M_1\\) accepts all \\(\\langle p \\rangle \\in D_1\\) and loops indefinitely on all \\(\\langle p \\rangle \\notin D_1\\)\n* Therefore, \\(D_1\\) is recognizable.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 910, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "45b66ae0-348f-4024-9072-b76734054ddf": {"__data__": {"id_": "45b66ae0-348f-4024-9072-b76734054ddf", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0bad938d-a22f-42ee-93eb-faad8e05c6ac", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "340021a9c4a0823bc705c20567ab851865ae0012ce8aec5b08ec8e564abe65f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Consider polynomials with one variable (e.g., \\(2x^2 + x - 7\\))\n* Let \n $$D_1 = \\{\\langle p \\rangle \\mid \\langle p \\rangle \\text{ is a polynomial over } x \\text{ with an integral root}\\}$$\n* Is \\(D_1\\) decidable? \n - Yes, if there exists a Turing machine that accepts every \\(\\langle p \\rangle \\in D_1\\) and rejects every \\(\\langle p \\rangle \\notin D_1\\)\n* Luckily there is an upper/lower bound of the value of \\(x\\) that a machine needs to test: \n $$\n \\pm k \\frac{c_{\\max}}{c_1}\n $$\n where \\(k\\) is the number of terms in the polynomial, \\(c_{\\max}\\) is the coefficient with the largest absolute value, and \\(c_1\\) is the coefficient of the highest order term\n* Change \\(M_1\\) such that it rejects after testing value goes out-of-bound\n* Therefore, \\(D_1\\) is decidable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 806, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c6c7e947-5730-42f1-b9b4-0c149e83cf76": {"__data__": {"id_": "c6c7e947-5730-42f1-b9b4-0c149e83cf76", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cd6e83af-7290-4e76-8ce6-752abd2bf88f", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "1bdfdc123ed6cb88910fba6de621d1fb063c799910df5819531e3e8b6d4f42ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Undecidable Language\n\n* Let \\( D \\) be the set of all polynomials that have integral root \n $$\n D = \\{\\langle p \\rangle \\mid \\langle p \\rangle \\text{ is a polynomial with an integral root}\\}\n $$\n* We can create a machine that tries all possible assignment values starting from 0s \n - For example, in case of two variables \\( x \\) and \\( y \\), try the following values \\([x, y]\\): \n \\[\n [0,0], [0,1], [1,0], [1,1], [0,-1], [-1,0], [-1,-1], [0,2], \\ldots\n \\]\n - If a polynomial \\( p \\) has an integral root, eventually it will be evaluated to 0\n* Therefore, \\( D \\) is recognizable\n* Unfortunately, there is no bound that we can check and machine may loop infinitely \n - If the polynomial \\( p \\) does not have an integral root, we will keep trying new values of \\([x,y]\\) forever (loop indefinitely)\n* \\( D \\) is not decidable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 847, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0986cdb8-8a54-4948-b249-4d01dae7a799": {"__data__": {"id_": "0986cdb8-8a54-4948-b249-4d01dae7a799", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6ffc99ff-aaf6-4a66-8b84-8c4a6895d09d", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "d2678ff6150e18b2081db607a73c348a520d3c8bc36d428b96d73b3b6bc2427d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Describing Turing Machines\n\n* A description of a Turing machine can be huge even for a very simple algorithm\n* Example, compare two strings $$\\{ w \\# w \\mid w \\in \\{0,1\\}^* \\}$$\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q2: 0 \u2192 R\n q1 --> q3: 1 \u2192 x, R\n q1 --> q8: # \u2192 R\n\n q2 --> q2: 0,1 \u2192 R\n q2 --> q4: # \u2192 R\n\n q4 --> q4: x \u2192 R\n q4 --> q6: 0 \u2192 x, L\n\n q3 --> q3: 0,1 \u2192 R\n q3 --> q5: # \u2192 R\n\n q5 --> q5: x \u2192 R\n q5 --> q6: 1 \u2192 x, L\n\n q6 --> q6: 0,1,x \u2192 L\n q6 --> q7: # \u2192 L\n\n q7 --> q7: 0,1 \u2192 L\n q7 --> q2: x \u2192 R\n\n q8 --> q8: x \u2192 R\n q8 --> qaccept: \u2294 \u2192 R\n```\n\n* The above state diagram represents the **formal description** in a form of state diagram of a Turing machine", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 727, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e6afa40-dc69-42b5-a08e-a577a616e454": {"__data__": {"id_": "2e6afa40-dc69-42b5-a08e-a577a616e454", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2a1322b4-4bfa-45d0-a31e-ba66a0cb0aa7", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "6f5dcfb32b38e4d86a81328d305d7098116e9e22817510ecbdee3987c41c8a1e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Describing Turing Machines\n\n* An **implementation description** of the previous Turing machine that decides \n $$\\{ w \\# w \\mid w \\in \\{0,1\\}^* \\}$$ \n is shown below\n* On input string *w*:\n 1. Zig-zag across the tape to corresponding positions on either side of the `#` symbol to check whether those positions contain the same symbol. If they do not, or if no `#` is found, *reject*. Cross off symbols as they are checked to keep track of which symbols correspond.\n 2. When all symbols to the left of the `#` have been crossed off, check for any remaining symbols to the right of the `#`. If any symbols remain, *reject*; otherwise, *accept*.\n* Note that the above description describes the way the Turing machine moves its head and store data (cross off symbols)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 769, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c4f85860-bec4-4ff6-92f3-e8bbc3150172": {"__data__": {"id_": "c4f85860-bec4-4ff6-92f3-e8bbc3150172", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "91b923dd-b727-411d-99d9-81ec6060622f", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "f234fd7e61fe9586682fbf9103b2dd4b2fbfd916450f74dfdf8c1d4123a4e40c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Describing Turing Machines\n\n* An **high-level description** of the previous Turing machine that decides \n $$\\{ w \\# w \\mid w \\in \\{0,1\\}^* \\}$$ \n is shown below:\n\n $$\n M = \\text{\u201cOn input } s \\text{ where } s = x \\# y \\text{ for some string } x \\text{ and } y:\n $$\n\n 1. Compare whether the string \\( x \\) is identical to the string \\( y \\). \n 2. If they are identical, *accept*; otherwise, *reject*.\u201d\n\n* Note that the **where** clause behaves like a filter \n - Any string that does not satisfy the **where** clause will be rejected immediately\n\n* What a TM can do? \n - From the Church-Turing thesis, if there is an algorithm to do something, a TM can do the same thing \n - Examples: \n - Compare two strings \n - Check whether the length of a string is a power of 2 \n - Addition, subtraction, multiplication, division, modulo \n - Any algorithms discussed in Chapter 1", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 898, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3631641e-a89a-4a0f-ac48-8db57f5b38d1": {"__data__": {"id_": "3631641e-a89a-4a0f-ac48-8db57f5b38d1", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6dbfed81-1217-4441-a9dc-f60fdd0439dd", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "275d9d6838b6cb6157d692621f1db778d2d06be248a1f5de6a5ebea52ada1c61", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Describing Turing Machines\n\n* High-level description of a Turing machine is suitable for describing universal Turing machine\n* Consider the following language:\n\n$$\nA = \\{ x_1 \\# x_2 \\# \\ldots \\# x_n \\mid x_i = x_j \\text{ for every } i \\text{ and } j \\}\n$$\n\n* The following machine \\( M' \\) decides \\( A \\) using TM \\( M \\) as a subroutine:\n\n> \\( M' = \\) \"On input \\( s \\) where \\( s = x_1 \\# x_2 \\# \\ldots \\# x_n \\):\n> 1. For every \\( i \\) where \\( 1 \\leq i \\leq n - 1 \\):\n> 2. \\quad Run \\( M \\) on input \\( x_i \\# x_{i+1} \\).\n> 3. \\quad If \\( M \\) rejects, reject.\n> 4. Accept\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 581, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "081615f8-c639-4a8f-b78f-ecc1da04bd8d": {"__data__": {"id_": "081615f8-c639-4a8f-b78f-ecc1da04bd8d", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/turing_machine_04_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8a5479e1-0112-4e61-8aeb-c69f243a3048", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/turing_machine_04_handout.pdf"}, "hash": "dae6a8aaaff4cf118b3c09d7d573fa6800289666a8c09d3af65b8c638133fccb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Conclusions\n\n* Algorithm and Turing Machine are consider equivalent \n - Anything that an algorithm can do, there exists a TM that can do the same thing \n * Simply convert the algorithm to TM \n - Anything that a Turing machine can do, there exists an algorithm that can do the same thing \n * Simply convert the TM to algorithm \n* Because of this, if there is a problem that a TM cannot solve, no algorithm can solve the same thing", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 445, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6e640e24-51ed-4511-b4c5-7a1998ccfcd7": {"__data__": {"id_": "6e640e24-51ed-4511-b4c5-7a1998ccfcd7", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cc231400-7e1f-473f-896c-4b69a8121111", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "4ca7f21cbe2ab0e6486ba4b78a02020cceb6972f1b4a42bc4771a6bbf3ed4125", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L03 Scrum\n\nCS 1530 Software Engineering \nFall 2025 \n\nNadine von Frankenberg \n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 161, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6409862-ce30-4c79-b366-d5f386e6cd74": {"__data__": {"id_": "a6409862-ce30-4c79-b366-d5f386e6cd74", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aa531ed4-128e-4161-bef7-e2d77ca6e3f8", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "0c82830c01be222809c244532be3d97e8e27deb8a7eb74a538aeb3fb22796d7b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - [http://scrum.org/])(http://scrum.org/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1384, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5e3a13fe-1099-4c91-bc48-6980c0740307": {"__data__": {"id_": "5e3a13fe-1099-4c91-bc48-6980c0740307", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1390b0c3-8426-4f96-a059-babc10149e0b", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "eae1f3db76d3557fe0f1c37af333886a452a1c27c202b87fbac479a5c54bbf74", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have a better overview of the software development lifecycle\n* You understand the roles, artifacts, events, and meetings of Scrum", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 154, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "00ea1af3-57f7-43e9-bf62-97ef3fdc33c1": {"__data__": {"id_": "00ea1af3-57f7-43e9-bf62-97ef3fdc33c1", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "14114aac-05f0-435a-8483-9b8dc9ce0edf", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "af3766270ba9d6782044f9d549033cd83df10da5ee508b040f972a50ea6239b4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Software lifecycle overview\n* Scrum", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 57, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a9e680e3-ae45-4ef6-b947-0da06d414459": {"__data__": {"id_": "a9e680e3-ae45-4ef6-b947-0da06d414459", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1687a4dc-2554-4962-9a20-1422ed2a3b37", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "706e22cff5681d668e891de7c5b3bf0e6b04fdfea450234bf2a262fe57d51105", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] SDLC\n\n* A **software (development) life cycle (SDLC)** describes the **process of how software is developed**\n - **Set of activities** and their relationships to each other to support the development of a software system\n - Activities include, e.g., requirements elicitation, requirements analysis, system design, implementation, testing & validation, configuration management, delivery, maintenance\n* Defining a SDLC is necessary:\n - Establish a shared understanding (communication)\n - Creates a plan (releases / delivery)\n - Incorporate all aspects (testing, documentation, maintenance)\n - \u2026\n\n> There will be a more detailed lecture on software lifecycle models!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 681, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7ed148b1-ab3a-40d6-bbab-57d0f04101ee": {"__data__": {"id_": "7ed148b1-ab3a-40d6-bbab-57d0f04101ee", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0da0bf71-3502-49a1-b64f-f2a2d0e9a6f6", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "2b9f69b335d093595821d03b009e66ea1fe4faeee130e6387c050615d4de0810", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Overview of the SDLC\n\n**Planning** \nWhat is the system\u2019s purpose? Who is the enduser? What is the scope?\n\n\u2192\n\n**Requirements Engineering** \nWhat is the problem?\n\n\u2192\n\n**System Design** \nWhat is the solution?\n\n\u2193\n\n**Object Design** \nWhat is the best approach to implement the solution?\n\n\u2193\n\n**Testing & Validation** \nIs the problem solved?\n\n\u2192\n\n**Deployment** \nHow do we deliver the system to the enduser?\n\n\u2192\n\n**Maintenance** \nHow will are updates and bugs fixed in the future?\n\n\u2192\n\nBack to **Planning**\n\n----\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4d2f0e2f-c372-4946-9b4b-6d16e3c7251d": {"__data__": {"id_": "4d2f0e2f-c372-4946-9b4b-6d16e3c7251d", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "67080765-7312-4c6e-8200-725c949f678f", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "f83d4c206b443dbad8c36cbccb45a7366e5a74a1642e204bd7e5fc99333d9a5d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Software lifecycle overview\n* Scrum", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 57, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eafd7453-9967-45f1-a581-a50382b5c28e": {"__data__": {"id_": "eafd7453-9967-45f1-a581-a50382b5c28e", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a3df930e-23d0-4f86-b6f3-85dc14e465ae", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "a5079defc305a95f8ac53c829e4d275a1cd95b0ba9d235dd3de9f46945c82a6f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# History of agile models \u2014 Scrum\n\n* In 1986, Takeuchi and Nonaka published *\"The New New Product Development Game\"* in the *Harvard Business Review*\n* Equates creative processes (e.g., Honda, 3M, HP, ..) to the sport of rugby\n* Describes a scalable, flexible, cross-functional, self-organized team-based approach to product development\n\n> \"shift from a linear to an integrated approach encourages trial and error and challenges the status quo\"\n\n### EXHIBIT 1 \nSequential (A) vs. overlapping (B and C) phases of development\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n \n
Phase123456
Type APhase\u25a0\u25a0\u25a0\u25a0\u25a0\u25a0
Type BPhase\u25e0\u25e0\u25e0\u25e0\u25e0\u25e0
Type CPhase\u25e0\u25e0\u25e0\u25e0\u25e0\u25e0
\n\n[Source: https://hbr.org/1986/01/the-new-new-product-development-game]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1391, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7d65b5f0-9301-4391-b828-34089ceba7a6": {"__data__": {"id_": "7d65b5f0-9301-4391-b828-34089ceba7a6", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8dddb3f2-f88b-43bb-bb84-8047a11ab2f3", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "61d358b3637f64739fd9afe18a1b9010fdbf16687b78079e4b86ff809bf9c767", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "History of agile models \u2014 Scrum University of\n Pittsburgh\n \u2022 In 1986, Takeuchi and Nonaka published \"The New New Product Development\n Game\" in the Harvard Business Review\n \u2022 1987 \"SCRUM development process\"\n \u2022 1995 Jeff Sutherland and Ken Schwaber\n analyzed common software development processes\n \u2022 \"The Scrum development process\" at OOPSLA\n \u2022 \"Systems development [\u2026] is an unpredictable and\n complicated process that can only roughly be described\n as an overall progression\" Jeff Sutherland Ken Schwaber\n \u2022 2001 The Agile Manifesto\n \u2022 2002 Scrum Alliance (Mike Cohn, Esther Derby, Ken Schwaber)\n\n\u00a9 2025 Nadine von Frankenberg CS 1530 - L03 Scrum & intro to abstraction 9", "mimetype": "text/plain", "start_char_idx": 2, "end_char_idx": 845, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "90b7b832-dcd1-4ceb-98c4-d7aca31bfc02": {"__data__": {"id_": "90b7b832-dcd1-4ceb-98c4-d7aca31bfc02", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ea91a3dd-433e-45ca-a0eb-9bb966aac1c5", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "5562aacd976f9c5e096d77e75f9b0a1f02bfb9c863cd0ce8d980585937b2726c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Scrum\n\n* Framework for developing and sustaining complex products \n* Scrum defines roles, events, artifacts, and the rules that bind them together \n* \"The Scrum Guide\" written by Ken Schwaber and Jeff Sutherland \n - First version in 2010, latest updated version 2020 \n\n[Rugby] **Scrum** is a **way to restart the game after an interruption:** Players pack closely together with their heads down to gain possession of the ball \n\u2192 Requires coordination, joint effort, strategic planning", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 493, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a04358d6-0fdc-4a7c-bcbb-514be3466186": {"__data__": {"id_": "a04358d6-0fdc-4a7c-bcbb-514be3466186", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9eef6c47-abe0-4227-aae9-9530ad647ebb", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "4e6bd2cab7ac5480d43c223d473e1fc34f9b287c0ce1d5bf66a85623f504608f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Overview: Scrum as an agile model\n\n* Short, iterative cycles (**Sprints**), typically 2-4 weeks long \n* Emphasizes collaboration, functioning software, and flexibility to changing requirements \n* Roles: **Scrum Master, Product Owner, Development Team** \n* Promotes transparency, inspection, and adaptation throughout the process", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 334, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bba07eca-c91b-4013-a1a0-c4297a35557b": {"__data__": {"id_": "bba07eca-c91b-4013-a1a0-c4297a35557b", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c7d6ebe1-830c-491e-a58a-35706c527888", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "98b1014fd7fe02e3ac946172f07c80c4d5a773141723b7ff4b543588419406c3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Scrum\n\n\n \n \n \n \n \n\n \n \n \n \n\n \n \n
Product BacklogSprint BacklogPotentially Shippable Product Increment
\n
\n
\n
\n
\n
Box
\n
\n
\n Daily Scrum Meeting
\n 24 Hours\n
\n
\n 2-4 Weeks\n
\n
\n\n[The diagram shows the Scrum process flow starting from Product Backlog, moving to Sprint Backlog, then through Daily Scrum Meetings (every 24 hours), and finally resulting in a Potentially Shippable Product Increment after 2-4 weeks.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1064, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "992b030b-6d80-4c1c-825f-3bd4e92d4851": {"__data__": {"id_": "992b030b-6d80-4c1c-825f-3bd4e92d4851", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5013d4fd-1f93-48dd-a92a-acdfe0d40ca0", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "9cb8627cc647e6f7296d058707110ebd4da9a7b0edf910ca8cfb9ba25604920d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Scrum Team - Roles\n\n## Scrum Team\n\n### Scrum Master \n\ud83d\udc51 \n- Responsible for the process \n- Removes impediments \n- Ensures Scrum is followed \n\n### Product Owner \n\ud83d\udccb \n- Accountable for managing the product backlog \n\n### Developers \n\ud83e\uddd1\ud83d\udcbb\ud83d\udc69\ud83d\udcbb\ud83d\udc68\ud83d\udcbb \n- Create the sprint backlog \n- Adhere to the definition of done \n- Adapt their plan each day toward the sprint goal \n\n----\n\n### Customer \n\ud83d\udcac \n\n----\n\n### Other Scrum teams \nScrum team: \n- Scrum Master \ud83d\udc51 \n- Product Owner \ud83d\udccb \n- Developers \ud83e\uddd1\ud83d\udcbb\ud83d\udc69\ud83d\udcbb\ud83d\udc68\ud83d\udcbb \n\n----\n\n*University of Pittsburgh*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6598170e-24a5-4746-aac2-48a808b7bc0a": {"__data__": {"id_": "6598170e-24a5-4746-aac2-48a808b7bc0a", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "554a79a5-ffe5-45ca-8d6a-971f646af1bb", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "3e65c09ad89893ad8171be3f856ae42ec07532821634198dd2f0dae39efecd74", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Scrum Team\n\n* Consists of \n - One Scrum Master \n - One Product Owner \n - Developers \n* No sub-teams or hierarchies \n* Scrum Teams are cross-functional \n* Max. 10 team members \n* Accountable for creating a valuable Increment each Sprint", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 252, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "18dc3aea-4e48-49e5-bde9-976b5fc44c26": {"__data__": {"id_": "18dc3aea-4e48-49e5-bde9-976b5fc44c26", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c847ff92-9dca-4207-9d2e-65f93c06ea24", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "627b3c8285481741d6d5b9fec548c5bc2d70a94870c1f08bcc22b1346dcfd779", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Scrum Team - **Product Owner**\n\n* \"Owns\" the product \n* Accountable for maximizing the product\u2019s value \n* Tasks \n - Manages the Product Backlog \n - Develops and communicates the product goal \n - Creates and communicates Product Backlog Items \n - Orders Product Backlog Items \n - Ensures that the Product Backlog is transparent and understood \n* Can represent the needs of stakeholders in the Product Backlog", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 427, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d29b271d-8dec-4265-bcb1-933a1a03e860": {"__data__": {"id_": "d29b271d-8dec-4265-bcb1-933a1a03e860", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4436ea16-0c7b-4670-96d6-6044c12fb767", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "5621f96148468ae63e31bc3adc877fc737e77d8d85c29160c6530e20b956ec76", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \ud83d\udc51 The Scrum Team - **Scrum Master**\n\n* Accountable for establishing Scrum \n* Serves the Scrum Team \n - Coaches team members \n - Removes impediments \n - Ensures that all Scrum events take place \n* Serves the Product Owner \n - Define Product Goal, Product Backlog definition \n - Establish empirical product planning \n - Facilitate stakeholder collaboration as needed", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 381, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0be0c4dd-13fe-4f7e-8832-62cf540edebe": {"__data__": {"id_": "0be0c4dd-13fe-4f7e-8832-62cf540edebe", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aad66c98-768a-4079-b1a0-f3468339e9fb", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "504fb184c82b70686720fd200caa9376e470f16e3029047f0f096198f9c3946b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Scrum Team - **Developers**\n\n* Committed to creating any aspect of a usable increment each Sprint \n* Skills often vary by domain \n* Developers are accountable for \n - Creating the Sprint Backlog \n - Adhere to a Definition of Done \n - Adapt their plan daily towards the Sprint Goal", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 295, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b50b864-6ca1-49c8-b223-1da7ec69ad85": {"__data__": {"id_": "6b50b864-6ca1-49c8-b223-1da7ec69ad85", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9f3c4dc2-2c7e-4689-99ba-e007f7f45915", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "6616116c75a10dd6005bb14762bb2c904d32e034929352cc186b198e21b76f19", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Artifacts in Scrum represent work or value\n\n* Designed to maximize transparency of key information\n* **Product backlog**: list of requirements for the whole product\n* **Sprint backlog**: list of requirements to be completed in one iteration (sprint)\n* **Increment**: sum of all completed work in a Sprint, \n usable, \"potentially shippable\" piece of the product, \n must meet the DoD, \n each increment builds on the previous one \n release is optional\n\n----\n\n### Diagram of Scrum Artifacts and Flow\n\n```mermaid\nflowchart LR\n A[Product Backlog] --> B[Sprint Backlog]\n B --> C[Potentially Shippable Product Increment]\n C --> D[Daily Scrum Meeting]\n D --> B\n style A stroke:#ff007f,stroke-width:3px\n style B stroke:#ff007f,stroke-width:3px\n style C stroke:#ff007f,stroke-width:3px\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 810, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0d44c4e1-bba9-4d00-b6d4-b4e22e917e54": {"__data__": {"id_": "0d44c4e1-bba9-4d00-b6d4-b4e22e917e54", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fd165a1c-d804-4dff-9caa-7f91a5c9889d", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "005057c8082876fa818f418177a92c18abf4cc7841bca544368e6f0dcc3ffc95", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements in Scrum\n\n* All **requirements** are collected in the product backlog\n* The product owner elicits requirements from external stakeholders & prioritizes them\n* Typical requirements in Scrum\n - \"Technical\"/functional requirements\n - User stories\n - Scenarios\n - Use cases\n\n> More on requirements next lecture", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 326, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4331c831-30c5-4782-a99b-0a6995c656b8": {"__data__": {"id_": "4331c831-30c5-4782-a99b-0a6995c656b8", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "afb57750-d892-44a3-9e44-ff21bd8c5129", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "0ffcd61ae46b27d7514d1bd44f5efdcef6b377105f22dbc0c05b176772a8c120", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** User Story in Scrum\n\n* Sentence that describes what the user can do \n* Often written on a \"card\" \n* Users describe roles of the system \n* Defines a structure and simplifies the prioritization process \n* Facilitates categorization according to user roles \n\nAs ****, \nI can/want/need **** \nso that ****\n\n> \"I\"-perspective: developer can self-identify with the given user role\n\n> **[Example]** \n> As a student, I want to sign up for a course so that I can access course materials and participate in lectures.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 551, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0fb7336b-e30d-4f1d-ac1d-cd3ade4cf822": {"__data__": {"id_": "0fb7336b-e30d-4f1d-ac1d-cd3ade4cf822", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4bc910b8-96e0-4206-967a-7bdb180b0b2c", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "bba52d77acda465db7b4a8854ca9f853fb6813e0850a99a953e71ded7eb2ebdb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Product backlog\n\n* Ordered list of requirements (what is needed to improve the _whole_ product) \n - E.g., Epics, User Stories, Scenarios\n* _\"Single source of work undertaken by the Scrum Team\"_\n* **Product Backlog refinement** is the process of reviewing, updating, and prioritizing items in the product backlog \n - Goal: Ensure clarity, relevance, and value \n - Involves breaking down larger tasks, estimating efforts, and reordering items to align with the project's evolving goals and requirements\n* Commits to the **product goal** \n - The product goal is the long-term objective for the product, provides a target for the Scrum team to work towards", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 663, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e6565ae-32c8-4a26-b9d2-706f455aaf0c": {"__data__": {"id_": "2e6565ae-32c8-4a26-b9d2-706f455aaf0c", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2589c2b6-9943-4ba1-a64b-4b74a57a9f33", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "ecaf5051904f07313096c31ea85efd9903593393cf50d902738915754b67d2b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Product Backlog\n\n* User account creation: As a player, I want to create a personal account, so I can save my progress and scores.\n* Quiz category selection: As a player, I want to select a quiz category before I start the quiz, so I can choose a topic that interest me.\n* Difficulty levels: As a player, I want to choose different difficulty levels, so I can challenge myself appropriately.\n* Answering Questions: As a player, I want to answer multiple-choice questions, so I can engage with the quiz format that is familiar and straightforward.\n* Time-Limited questions: As a player, I want each question to be time-limited (max. 1min per question), so that the game is more challenging and fair.\n* Score tracking: As a player, I want the game to track my scores, so I can see how well I am doing.\n* Leaderboard Functionality: As a player, I want to view a leaderboard, so I can compare my scores with other players.\n* Accessibility: As a player with visual impairments, I need accessibility features (text-to-speech), so I can fully participate in the quizzes.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1077, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2c089c49-2bd8-418f-b6d9-410de832dfdf": {"__data__": {"id_": "2c089c49-2bd8-418f-b6d9-410de832dfdf", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "81a7893d-37f9-42fa-8c5e-5664e742e0cd", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "8524b17e2ba019f9d2c884a2a0c16742dc0f2d92eb6893b8280e469f71b98890", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Two main **events** & five **meeting types** in Scrum\n\n----\n\n| Product Backlog | Sprint Backlog | Potentially Shippable Product Increment |\n|-----------------|----------------|-----------------------------------------|\n| ![stack of blue blocks] | ![stack of blue blocks] | ![box] |\n\n----\n\n### Project **kickoff**\n\n### Sprint **planning**\n\n### Sprint **review**\n\n### Sprint **retrospective**\n\n----\n\n### Events:\n\n- **Sprint** (2-4 weeks)\n- **Daily Scrum** (24 hours)\n\n----\n\n*University of Pittsburgh*\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 577, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "376f1a79-f4c0-4b47-a481-fe50c2dbf7f1": {"__data__": {"id_": "376f1a79-f4c0-4b47-a481-fe50c2dbf7f1", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2fae99c9-572c-438d-846e-ba4721fdb69c", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "f071fd23b664df9d7106601f1959407903987691da075ec381e75a6e73083707", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Main events in Scrum\n\n* **Project kickoff:** Define the product backlog\n* **Sprint** _\"turns ideas into value\"_\n - Fixed length of **one month or less** to create consistency\n - A new sprint starts immediately after concluding the previous sprint\n - A sprint commits to the **sprint goal**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 295, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7947fb2a-178f-4abd-8634-a655f235101f": {"__data__": {"id_": "7947fb2a-178f-4abd-8634-a655f235101f", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d7462afe-e96c-460b-9ef3-ffe39476c7da", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "1d0b2af7ad295a1f49f1523edfcb23f6b5f0647e5e52696d9ee7b13fe6e1e3b8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Sprint\n\n* The development team \n - Realizes the items in the sprint backlog \n - Uses, e.g., a task board to visualize the status of these items \n* The Scrum Master visualizes the progress\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n \n \n
ItemsTodoIn progressIn reviewDone
User Story 1TaskTaskTaskTask
TaskTaskTaskTask
User Story 2TaskTaskTaskTask
Task
User Story 3TaskTask
TaskTask
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1033, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eed5ee0b-1eb7-46c3-8b9b-440f3220dc4c": {"__data__": {"id_": "eed5ee0b-1eb7-46c3-8b9b-440f3220dc4c", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2ec55281-0bc9-4e05-b8a8-c445a6aaac75", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "354c89752189dc502ca640cec2b074643940e050ff742568ddbdf620ac0272e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# During a Sprint \u2026\n\n* Start of the Sprint: Sprint Planning meeting [max. 8h] \n - Create Sprint Backlog\n* Every day: Daily Scrum [max. 15min] \n - Share status, impediments and promises\n* End of each Sprint: Sprint Review [max. 4h] \n - Review the realized Sprint Backlog Items with Product Owner\n* After the Sprint: Sprint Retrospective [max. 3h] \n - Inspect the previous sprint \n - Create a plan for improvement (individuals, interactions, processes, tools, DoD) that will set the basis for the next Sprint", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 517, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eab6b231-b65f-4aa4-8c0a-58ce4f93b13b": {"__data__": {"id_": "eab6b231-b65f-4aa4-8c0a-58ce4f93b13b", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6f8c0c9c-80a1-4a91-8fa6-06a7b8cbef7c", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "e84cba168abc2c4eb676bda8b0be9bf24962500c4d3e39ab98423d1e3f872c08", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Sprint Planning\n\n* Initiates the Sprint \n* Entire Scrum Team \n* Addresses three questions: \n - Why is this Sprint valuable? \n - What can be Done this Sprint? \n - How will the chosen work get done? \n* Often includes activities to estimate the size of a Backlog Item \n - E.g., Story points \n - T-Shirt Sizes", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 321, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f9698ab2-925c-47a7-83b5-bf24df213f1b": {"__data__": {"id_": "f9698ab2-925c-47a7-83b5-bf24df213f1b", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7c33f5b7-633d-4afb-91d7-cd95997c74f9", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "ee5699c0ee6df8ea9464357835928b83d35db06549267ac6fb9930588d54c323", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Definition of Done (DoD)\n\n* Formal description of the state of the Increment\n* Describes when the Increment is \"done\" (meets quality requirements)\n* Whenever a Product Backlog Item meets the DoD, a new Increment is created\n* Creates a shared understanding of what work needs to be completed\n* An Increment cannot be released if the DoD is not met\n* The Scrum Team follows one DoD\n\n> If multiple scrum teams work together, they share a DoD", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 441, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b54c984-07be-4eaf-8743-19fd01c5b12c": {"__data__": {"id_": "6b54c984-07be-4eaf-8743-19fd01c5b12c", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a3071fd2-2d00-4b71-b7f3-d4385766bd85", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "56cfe9ad283b2312032bbbf3d644276bbc84e56d461e3152445e0bc3de7d5c00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Sprint\n\n* During the Sprint:\n - No changes are made that would endanger the Sprint Goal\n - Maintain quality\n - Refine the Product Backlog as needed\n - Scope may be clarified and renegotiated with the Product Owner, based on insights\n* A Sprint may be cancelled if the Sprint Goal is no longer relevant\n - The Product Owner has the sole authority to cancel a Sprint\n\n```mermaid\nflowchart LR\n A[Product Backlog] --> B[Sprint Backlog]\n B --> C[Daily Scrum Meeting]\n C --> B\n B --> D[Potentially Shippable Product Increment]\n\n subgraph Sprint\n direction TB\n B\n C\n end\n\n click C \"24 Hours\"\n click Sprint \"2-4 Weeks\"\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "348aa0a8-5cfd-40f8-8f80-f9b91ac23506": {"__data__": {"id_": "348aa0a8-5cfd-40f8-8f80-f9b91ac23506", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "74de1da1-28ea-4353-971d-cfa838e7af9f", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "cea21c7402f712e3b9dd8a473ece94cfb0a60b12b75a6ebcfc943797b91493d9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Daily Scrum\n\n* Time-boxed event for 15 min \n* Attended by the Developer Team \n* Developer Team sets structure and techniques \n* Typically conducted as a \"standup\", early in the day \n - Status: \"What did I do since the last meeting?\" \n - Impediments: \"Any issues/blockers?\" \n - Promises: \"What do I promise to resolve today?\" \n\n[The image shows a group of people standing in an office space, presumably conducting a daily scrum meeting.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 449, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "565790d9-5038-4830-8aa8-f5b53ba03da5": {"__data__": {"id_": "565790d9-5038-4830-8aa8-f5b53ba03da5", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d22e652b-23b3-4d7b-b35f-e8dc666ef600", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "d04963c0625cda2a6b5a023f5212dc8370e90be869dbb19be3200f50535f293c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Summary: Scrum is an agile framework\n\n* Should be adapted to fit to the project / work culture / team\n* A **Scrum Team** works towards creating product increments\n* Adapts well to **change**\n\n[The image shows a social media post by Dzmitry Liaudanski, Senior .Net Black Ops Developer at Zettabox, with the caption: \"Make your daily stand up meeting shorter :)\" The image depicts a group of people doing planks in a circle in an office setting. Below the post are options: Like \u00b7 Comment \u00b7 Share \u00b7 5216 likes \u00b7 405 comments]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 526, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a943f8e9-5ed3-477b-9ed0-bc4e5f2b747f": {"__data__": {"id_": "a943f8e9-5ed3-477b-9ed0-bc4e5f2b747f", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d569f7cd-7f99-4f6e-981b-e5510a8aefad", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "ff3b5dda320e3f69036fe10900276bc036002e4182585993fa44e796c17ce1d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Optional Readings\n\n* Ken Schwaber & Jeff Sutherland, The Scrum Guide, 2020 \n* Takeuchi & Nonaka, *The New New Product Development Game*, _Harvard Business Review_, 1986 \n* Scrum at scale, [https://www.scrumatscale.com/])(https://www.scrumatscale.com/) \n* Scrum product backlog \n - [https://www.scrum.org/resources/what-is-a-product-backlog])(https://www.scrum.org/resources/what-is-a-product-backlog)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 408, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fd0dfe16-c066-420d-b844-f5136d2c9027": {"__data__": {"id_": "fd0dfe16-c066-420d-b844-f5136d2c9027", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "08eefcaa-7266-482e-bd72-dc39740d6207", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "c388990a2a85c56b78d6b5fcb8277d511063a0a1b84e6c53599c9df74945e788", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "87e72b6d-927b-469d-b7f1-2bd42dfd6936": {"__data__": {"id_": "87e72b6d-927b-469d-b7f1-2bd42dfd6936", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0f1cb1fd-64ac-4e8e-b693-e3a2e57eab81", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L03 Scrum.pdf"}, "hash": "230b0d7fb60ca313b32cf43b4f383dbfb0d8893736d9000f018f4a1307a19e7c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L03 Scrum\n\n**CS 1530 Software Engineering**\n\nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 160, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b927188e-859b-4b23-bc2b-757dad8b64b7": {"__data__": {"id_": "b927188e-859b-4b23-bc2b-757dad8b64b7", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "faaed87a-ac73-4028-abd1-287605f107ed", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "f2ef6cfafb674b5859f55be45053c8db86d7adbd2c379cb0feb890270c6434ad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine 01\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 71, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a96c48b4-0caa-457a-9d1d-98a44d4df424": {"__data__": {"id_": "a96c48b4-0caa-457a-9d1d-98a44d4df424", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7612d31b-4ef9-4640-949c-0d9a28b0ca2b", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "d9c92e5301397113e857fce75913f2060a745d75d2754f225c32fe374c8f04fa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Human Computer\n\n* Imagine a human computer working with a pencil and paper:\n - The only things written on the paper are symbols from some fixed finite alphabet\n - Each step taken by the computer depends only on the symbol he/she is currently examining and on his \u201cstate of mind\u201d at the time\n - His state of mind may change as a result of his examining different symbols, only a finite number of distinct states of mind are possible\n* This sounds like a finite-state machine that has its input string written on the paper\n* Primitive Steps of Human Computation:\n - Examining an individual symbol on the paper\n - Erasing a symbol or replacing it by another\n - Transferring attention from one symbol to another nearby symbol", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 730, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6ba3f0f-195e-4561-a77f-06f4364485c5": {"__data__": {"id_": "a6ba3f0f-195e-4561-a77f-06f4364485c5", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bc1d666d-3217-468c-ab86-c82e94eded59", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "e79ad957e239a2e46aeb41dd08b4da184b4e614e50c435a6fa811a3f02b36400", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machines\n\n* You can think of a **Turing machine** a finite state machine with unlimited amount of memory\n\n\n \n \n \n\n \n\n\n\n\n\n\n\n\n\n \n\n \n \n
Control
011010010\u22ef\u22ef\u22ef
Tape
\n\n* A Turing machine has the following:\n - A control (state diagram/transition functions)\n - An infinite long tape\n - A tape head that can move around on the tape\n * A TM can read input symbols from its tape\n * A TM can write output symbols to its tape", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 669, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "81aebd08-ad3f-42d6-b782-3dfe4a003cca": {"__data__": {"id_": "81aebd08-ad3f-42d6-b782-3dfe4a003cca", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5bce56ea-0443-4947-9c3d-77596d9bf5b6", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "1ddff7de84c616278900fdbd7cecbe47ab4b3d2d11bb052ff7f5d9b6304248cd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machines\n\n* At first, tape contains the input string followed by infinite blank (\u2423) symbols\n * Example: Input: `101`\n\n \n\n\n \n \n \n
101\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u22ef
\n\n * Example: Input: `011010010`\n\n \n\n\n \n \n \n
011010010\u2423\u2423\u22ef
\n\n * Example: Input: `\u03b5`\n\n \n\n\n \n \n \n
\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u2423\u22ef
\n\n* The machine can store information by writing symbols onto the tape\n* The output of a machine is either *accept* or *reject*\n * Output symbols/strings can also be on the tape\n* **A Turing machine may run forever**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 962, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6be68313-a3eb-4002-acab-5f6fa4f857e2": {"__data__": {"id_": "6be68313-a3eb-4002-acab-5f6fa4f857e2", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8f55d63a-b7af-463c-98cb-0acf2e22d030", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "1bd07573fec529db600fd4dc5c79116ccf215e6ccff87d9ea897fe99aaefbb4a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine\n\n```\nControl\n```\n\n| a | b | a | b | \u2423 | \u2423 | \u2423 | ... |\n\n1. A Turing machine can read a symbol from the tape under the tape head \n2. A Turing machine can write a symbol to the tape under the tape head \n3. The tape head can move to the left and to the right one square at a time \n4. The tape is infinite \n5. The special states for rejecting and accepting take effect immediately ($q_{reject}$ and $q_{accept}$) \n * Unlike DFA that needs to process the last input symbol before accepting or rejecting an input string", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b34e9ee9-eb62-42fe-8909-fce4b5b0ab85": {"__data__": {"id_": "b34e9ee9-eb62-42fe-8909-fce4b5b0ab85", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e076ad8c-295f-46b4-84e0-2eb7e29247b0", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "d8816e5fc05fc6469ef2121deb23ed09df8be533b86233b9c948ea737a22c599", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let $$ \\Sigma = \\{0, 1, \\#\\} $$\n* Consider the language $$ B = \\{ w \\# w \\mid w \\in \\{0,1\\}^* \\} $$\n - Example of strings in $$ B $$ are\n * 01101#01101\n * #\n * 01#01\n* This language is not regular\n - Need an infinite states to remember all symbols in $$ w $$\n - We can use the Pumping lemma to prove that it is not regular\n* If the number of # symbol in a string is not exactly 1, the string is not in the language $$ B $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cd23dac7-3110-435a-a425-009e94d6016b": {"__data__": {"id_": "cd23dac7-3110-435a-a425-009e94d6016b", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cde2fe34-3dbc-4a40-bbf7-7e76dc888737", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "fc0d148df8878f1828cd8f79ac269230bfdfe9f268dca4915f93d1079ae3fb55", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let $$\\Sigma = \\{0, 1, \\#\\}$$ and $$B = \\{ w \\# w \\mid w \\in \\{0,1\\}^* \\}$$\n* Imaging what would you do if I give you a very long piece of paper and it contains a string of the form $$x \\# y$$ where $$x, y \\in \\{0,1\\}^*$$ and they are so long that you cannot remember all its symbols\n* One way is to go back and forth across the \\# and compare symbols at the same position one symbol at a time\n* You may need to cross off those that have been compared\n\n```\n0110110101011010111010100101011001100101010#0110110101011010111010100101011001100101010\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 562, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6564d194-bcc7-475d-abba-ba906f67bc99": {"__data__": {"id_": "6564d194-bcc7-475d-abba-ba906f67bc99", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "06fa7d7a-26f5-4678-b4ef-3e4d9a722230", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "12bbdb4b38cc94862a3eae0cd3a2d280a928bdc8a88d2298d57aa6d4d9a2e1d1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formal Definition of a Turing Machine\n\nA **Turing machine** is a 7-tuple, \n$$(Q, \\Sigma, \\Gamma, \\delta, q_0, q_{accept}, q_{reject}),$$ \nwhere \\(Q, \\Sigma, \\Gamma\\) are all finite sets and\n\n1. \\(Q\\) is a set of states, \n2. \\(\\Sigma\\) is the input alphabet not containing the **blank symbol** \\(\\sqcup\\), \n3. \\(\\Gamma\\) is the tape alphabet, where \\(\\sqcup \\in \\Gamma\\) and \\(\\Sigma \\subseteq \\Gamma\\), \n4. \\(\\delta : Q \\times \\Gamma \\to Q \\times \\Gamma \\times \\{L, R\\}\\) is the transition function, \n5. \\(q_0 \\in Q\\) is the start state, \n6. \\(q_{accept} \\in Q\\) is the accept state, and \n7. \\(q_{reject} \\in Q\\) is the reject state.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 644, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "87c5df61-76c4-4d14-b6df-f510e146736d": {"__data__": {"id_": "87c5df61-76c4-4d14-b6df-f510e146736d", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8c535be3-cf42-4e20-a38b-46a3d73544a2", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "20d5b903657fd5f044af8ab63b88b9f57c7d0c816dee5bdf2a4b5e0c5374893a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Transition Function of a Turing Machine\n\n* The transition function of a TM is defined as:\n\n$$\n\\delta : Q \\times \\Gamma \\to Q \\times \\Gamma \\times \\{L, R\\}\n$$\n\n* An assignment \\(\\delta(q, a) = (r, b, L)\\) means if the machine is at state \\(q\\) and the tape head is over a square containing \\(a\\), the machine writes symbol \\(b\\) (replacing \\(a\\)), changes its state to \\(r\\), and moves the tape head to the left one square.\n - This transition can be represented in a state diagram as shown below:\n\n```mermaid\nstateDiagram-v2\n [*] --> q\n q --> r: a \u2192 b, L\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 567, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9b08e1a2-7570-4caf-bd93-446617714985": {"__data__": {"id_": "9b08e1a2-7570-4caf-bd93-446617714985", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "325a70f8-09c0-4acc-8535-a7b663aeae7e", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "1d07685be58e534a127f548eff85a631e0369b9596e53fbf1d41b454d3e32ecf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Computation of a Turing Machine\n\n* The input string \\( w = w_1 w_2 \\ldots w_n \\in \\Sigma^* \\) is on the leftmost \\( n \\) square of the tape and the rest are filled with blank symbols\n* The tape head starts at the leftmost square of the tape\n* The machine processes input according to its transition function\n* If the tape head is at the leftmost square and the transition function indicates \\( L \\), the tape head stays at the same place\n* The machine continues until it enter the \\( q_{accept} \\) or \\( q_{reject} \\) state\n* **The machine may run forever**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "daeebdc0-ea63-46a1-b5f1-8e83e4d5bd0d": {"__data__": {"id_": "daeebdc0-ea63-46a1-b5f1-8e83e4d5bd0d", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dc74e7d5-9572-4f63-9924-8ff432d69ee7", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "7ab0071036d998c37d366c75ca527694e6c42e5193ff08dab35b275726ba4f50", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Tracing a Turing Machine\n\n* To trace whether a DFA accept or reject a string is easy \n* To trace whether an NFA accept or reject a string is harder \n - An NFA can split into multiple copies \n - Each copy has its own current state \n - We use a computational tree to keep track of all copies \n* To trace whether a TM accept or reject a string is even harder \n - We need to keep track or the current state (similar to DFA or NFA) \n - We also need to keep track of the content of the tape \n - The content of the tape is changed over time (TM can write onto the tape) \n - We also need to keep track of the location of its tape head \n - Need to know the symbol under the tape head \n - The tape head needs to move to either left or right direction at every step", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 783, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "95cba21a-d4b1-44e6-a761-a81197f6e89e": {"__data__": {"id_": "95cba21a-d4b1-44e6-a761-a81197f6e89e", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4ae69d03-c6ab-4718-8adb-57792fe1e739", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "b5224b79f545e690de6ea3c26acbe3f703d0431e30ba7487b11dd5d6c3361092", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration\n\n* When a machine process an alphabet, three things change:\n - the state of the machine,\n - the content of the tape, and\n - the location of the tape head\n* The above three items can be represented by a configuration\n* A **configuration** is in the form of \\( u \\; q \\; v \\)\n - \\( u \\) and \\( v \\) are strings that can be empty\n - \\( q \\) is a state that represents the current state of TM\n - The content of the tape is the string \\( uv \\)\n - The tape head is on the first alphabet of the string \\( v \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 526, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "76d389e6-3abb-4c22-9cdb-07ab96538a32": {"__data__": {"id_": "76d389e6-3abb-4c22-9cdb-07ab96538a32", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7b1e35fb-4826-45a7-9249-bef79bbd8b6a", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "02c40a00985576c71d4cb9d8a3718219348ad925117fafeeb73f096e58894f7a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration (Examples)\n\n* Example: The configuration `1011q_7 01111` corresponds to a machine as shown below:\n\n q\u2087\n\n \n\n\n \n \n\n\n\n\n\n\n\n\n\n\n \n
101101111\u2294\u22ef
\n\n* Example: The configuration `q_3 101101111` corresponds to a machine as shown below:\n\n q\u2083\n\n \n\n\n \n \n\n\n\n\n\n\n\n\n\n\n \n
101101111\u2294\u22ef
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e48b9a83-2ab3-483b-9f67-d16080347b1d": {"__data__": {"id_": "e48b9a83-2ab3-483b-9f67-d16080347b1d", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "da13a56d-8fce-4bba-b7ff-fe4e6be10c51", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "c973575f817b161756a57869aadb60d9a9228c765bacf4b4fd32adf77777dd88", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration (Examples)\n\n* Example: The configuration `10110111q_8 1` corresponds to a machine as shown below:\n\n\n \n \n \n \n\n \n\n\n\n\n\n\n\n\n\n\n\n \n
q8
101101111\u2294\u22ef
\n\n* Example: The configuration `101101111q_4` corresponds to a machine as shown below:\n\n\n \n \n \n \n\n \n\n\n\n\n\n\n\n\n\n\n\n \n
q4
101101111\u2294\u22ef
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 670, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b4372a48-da76-4024-8610-8ff9e7dd482a": {"__data__": {"id_": "b4372a48-da76-4024-8610-8ff9e7dd482a", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "113fc94a-e2f3-4f1b-ab15-6c549fe4e6ac", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "9f20749c9678eb898d26686baed5235e4d05d3d66ad093cb7591be1168d18bb4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration\n\n* We say that the configuration \\( C_1 \\) **yields** configuration \\( C_2 \\) if the machine can **legally** go from \\( C_1 \\) to \\( C_2 \\) in one step\n* For example, suppose a TM has the following transition function: \n $$\n \\delta(q_i, 0) = (q_j, 1, L)\n $$\n* Consider the configuration `010010q_i0101` \n - For the above configuration, \\( u = 010010 \\), \\( q = q_i \\), and \\( v = 0101 \\) \n - The current state is \\( q_i \\) \n - The content of the tape is `0100100101` \n - The tape head is on top of the symbol 0 (the first symbol of \\( v \\)) \n* According to the above transition function, the next configuration would be \n `01001q_j01101`\n* We say that the `010010q_i0101` yields `01001q_j01101`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 732, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cf696657-82b7-40d6-a644-cdfff1f5c616": {"__data__": {"id_": "cf696657-82b7-40d6-a644-cdfff1f5c616", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d15ce02a-2818-4ba0-afb2-ed14474a85ec", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "91f13ee3a54e329ae96a3a31baf2859aec74c603ff987d77f004ec52eb919e05", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration\n\nFormally: \n* Let \\(a, b, c \\in \\Gamma\\) and \\(u, v \\in \\Gamma^*\\) \n - \\(a, b,\\) and \\(c\\) are symbols \n - \\(u\\) and \\(v\\) are strings over \\(\\Gamma\\) \n - By concatenating the symbol \\(a\\) to the end of the string \\(u\\), we get the string \\(ua\\) \n\n* We say that \n $$\n ua \\ q_i \\ bv \\quad \\text{yields} \\quad u \\ q_j \\ acv\n $$\n if \n $$\n \\delta(q_i, b) = (q_j, c, L)\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 402, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b9ee4b8-06ce-4fdd-ba28-19be70a516be": {"__data__": {"id_": "6b9ee4b8-06ce-4fdd-ba28-19be70a516be", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1b74419a-3fd5-49cf-9c34-dc9ed76d46cb", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "272b4b6ed4de25ac24950aa0720d7f8dcd52ff1689a6ec3c9faf14c204f77f18", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Starting Configuration\n\n* Given a string $$w = w_0 w_1 w_2 \\ldots w_n$$\n* Suppose the start state of a TM $$M$$ is $$q_0$$\n* When $$M$$ is about to process the string $$w$$:\n\n \n\n\n \n \n \n \n \n \n\n \n \n \n\n \n
$$q_0$$$$w_0$$$$w_1$$$$w_2$$\u22ef$$w_n$$\\(\\sqcup\\)\\(\\sqcup\\)\u22ef
\n\n* The starting configuration of $$M$$ on input $$w$$ is $$q_0 w$$\n* Example: The starting configuration of $$M$$ on input 01101 will be $$q_0 01101$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 965, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "73f85509-7129-4186-9d07-bc5571f06b05": {"__data__": {"id_": "73f85509-7129-4186-9d07-bc5571f06b05", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1591ea00-6029-4901-868d-12718487f37d", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "c33fc31dc0aa8cb1687f70314fd06cc0702fe5ce7a9cda8b477fc508242b53cf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Configuration\n\n* If the state in a configuration is \\( q_{accept} \\), the configuration is called **accepting configuration**\n - \\( 0101 q_{accept} 101 \\)\n - \\( q_{accept} 1111 \\)\n\n* Similarly, if the state in a configuration is \\( q_{reject} \\), it is called **rejecting configuration**\n - \\( q_{reject} 010100 \\)\n - \\( 011 q_{reject} 01 \\)\n\n* Once a machine yields either the accepting or rejecting configuration, the machine will not yield any other configuration (**halting configuration**).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 502, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e8070576-4d56-4c8e-a243-2cd0fe949833": {"__data__": {"id_": "e8070576-4d56-4c8e-a243-2cd0fe949833", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ff36db98-51de-4545-be95-89278b6353e1", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "f67a16f5215479e505dcddeab94544cb2c7b654ac8bbe138712576d848b659bb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Language of a TM\n\n* A machine \\( M \\) accepts a string \\( w \\) if the sequence of configuration \\( C_1, C_2, \\ldots C_k \\) exists, where \n - 1. \\( C_1 \\) is the starting configuration of \\( M \\) on input \\( w \\), \n - 2. each \\( C_i \\) yields \\( C_j \\), and \n - 3. \\( C_k \\) is an accepting configuration \n\n* The set of all strings \\( A \\) accepted by \\( M \\) is **the language of** \\( M \\) \n - \\( M \\) recognizes \\( A \\) or \n - \\( L(M) = A \\) \n\n* **Note:** If \\( L(M) = A \\), it does **not** mean that \\( M \\) rejects all strings that are not in the language \\( A \\) \n - Given a string \\( s \\notin A \\), \\( M \\) may loop indefinitely on input \\( s \\) \n - Unlike a DFA \\( D \\), if \\( L(D) = B \\), \\( D \\) rejects all strings not in the language \\( D \\) \n - DFA \\( D \\) cannot loop indefinitely on any string", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 829, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b4364e7-7c52-4eff-a9fc-83af69226891": {"__data__": {"id_": "3b4364e7-7c52-4eff-a9fc-83af69226891", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/turing_machine_01_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "39d97e15-b263-46d9-a01b-35c642aa0817", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/turing_machine_01_handout.pdf"}, "hash": "96611b201d27581a13fc44213cdd507f78e12db36b54ef3b82596a5f90fec02c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Language of a TM\n\n* A language \\( B \\) is called **Turing-recognizable** if some Turing machine recognize it \n - Sometimes we call \\( B \\) is recognizable \n* Given a string \\( w \\) and a TM \\( M \\) there are three possibilities: \n 1. \\( M \\) accepts \\( w \\) \n 2. \\( M \\) rejects \\( w \\) \n 3. \\( M \\) loops indefinitely on input \\( w \\) \n* Turing machines that never loop indefinitely are called **deciders** \n - These type of TMs will always halt on all inputs \n* A decider that recognizes a language is said to **decide** that language \n* A language is called **Turing-decidable** if some Turing machines decide it \n* Suppose TM \\( M \\) is a decider and \\( L(M) = C \\), we say that \n - \\( M \\) decides \\( C \\) \n - \\( C \\) is decidable", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 757, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ec7a7edb-528d-43a2-8462-edb28ab51181": {"__data__": {"id_": "ec7a7edb-528d-43a2-8462-edb28ab51181", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7b9a644b-c6fd-4dae-a579-e57d0a58931c", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "643509a2c88eecb76a44b3eecc04d34c3d7177d38a4905e50d5d7b47961fda51", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L09 Scenarios & Use Cases\n\nCS 1530 Software Engineering \nNadine von Frankenberg \n\nFall 2025 \n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 177, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93839d3c-727b-4d0f-b764-42f0e751bfb5": {"__data__": {"id_": "93839d3c-727b-4d0f-b764-42f0e751bfb5", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9caeb76e-b863-4703-8716-f08392de7434", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "5bd883d0b7d9cc41f851aa4e559aa881e166fa0f96e97b11b654ab3db87d5efd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "60723f65-59e9-407f-8519-ad6abcf921c1": {"__data__": {"id_": "60723f65-59e9-407f-8519-ad6abcf921c1", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "56e2c99c-5552-41e4-8778-e7d4543d5356", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "a98fc66f9ece9a745b579af63796b6b373a8cca079e15f579d79fb85d7e425f6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You understand the different means of representing requirements \n - Scenarios \n - Use case \n* You can model a use case diagram", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "19e8956f-e6eb-4069-b57b-766a1330fc48": {"__data__": {"id_": "19e8956f-e6eb-4069-b57b-766a1330fc48", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2bb80e4b-b034-4ac1-9d3e-8b0ccdaadbb7", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "ec86a0c88e0abaef88ff3c6851ee5ec966657759ad55cc9d400474ead4ffe022", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Scenarios\n* Use cases\n* User stories", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 58, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79a72844-85ee-47a0-8ac5-6937396e186b": {"__data__": {"id_": "79a72844-85ee-47a0-8ac5-6937396e186b", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2cf6ac9d-5afb-4840-a304-5add74fbc154", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "2a0f92b753a38b0fb508157e7f7d1ea2ea010f8971a84220c45a69e107af4af1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# So far \u2026\n\n* We have defined functional, non-functional requirements, and constraints\n* They form the foundation of the system we want to build\n\n**Problem** \nHow do we ensure every stakeholder understands the system?\n\nHow can we validate the requirements with stakeholders?\n\n> -> We need techniques that make requirements concrete and communicable!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 351, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0b13cc6c-6e49-4290-9177-4ec1c61bea7a": {"__data__": {"id_": "0b13cc6c-6e49-4290-9177-4ec1c61bea7a", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c08a047d-c8e7-426b-8b1f-2d73a5bd7e65", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "2fe1a397ba8a2e1525cf5fa9bb333b4d6d01e4796ec5b1c63e621147a6137f6b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Common techniques\n\n* **Interviews** \n - Structured vs. unstructured, open-ended questions\n* **Surveys**/questionnaires (useful for large groups)\n* **Workshops**/brainstorming\n* **Observation** (shadowing users, contextual inquiry)\n* **Document Analysis:** Legacy system specs, regulations\n* **Prototyping** \u2013 Low-fidelity mockups to elicit feedback\n* **Use Case / Scenario Writing:** Stories of user interaction\n* **User Stories** (agile format)\n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 454, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3971ccae-05e7-426e-8275-04aa01cfaad1": {"__data__": {"id_": "3971ccae-05e7-426e-8275-04aa01cfaad1", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1a67f596-05fa-4a66-ba9d-90e594959bb9", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "b697a55997e60e10b0b091e0135f78c9d5a8e6085086392c20fd2ce69156115b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Validation techniques align requirements with user needs\n\n* **Scenarios:** A concrete story of a user interacting with the system \n* **Use Cases:** A structured description involving generic end-users (actors) and the system, abstraction that covers all possible instances \n* **User Stories:** A short statement of the need from the end-user\u2019s perspective, making it easier to understand and prioritize \n\n> These techniques help validate requirements with stakeholders and identify missing FRs, NFRs, or constraints.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 522, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49fd31d1-35c1-40ee-b0a1-e5fb8d64e0d0": {"__data__": {"id_": "49fd31d1-35c1-40ee-b0a1-e5fb8d64e0d0", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "eb35ec36-bab1-4940-a149-e2197bf3dc3e", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f08dad8486aa31f758038abd49c242e7adb6573bf9cb958776f77ef8dca24554", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying scenarios\n\n* Informal **short** descriptions of specific user interactions in **natural language**\n* They provide a **narrative** of how the system should function through a **sequence of events, actions, or steps**\n - Used for exploring detailed interactions and edge cases\n* Basis for test cases & validation \n - Best case scenario \n - Worst case scenario \n - Average case scenario \n\n> Describe a flow of events with multiple potential outcomes", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 469, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "238da70f-2360-4a2c-bc16-e5a5bd8e639b": {"__data__": {"id_": "238da70f-2360-4a2c-bc16-e5a5bd8e639b", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8c9fc755-998f-45ee-91a7-a4f7e13bd03c", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "8c9def720637ce57753928867004eae33a47bda83f75ac42545971643ad46e5e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example]\n\n**FR3 View Sinkhole:** Residents and city officials should be able to view reported sinkholes on a map.\n\n*Jamie opens the SiMCity app on their phone while walking home. \nThey see visual markers for sinkholes on a street map. \nWhen they select a sinkhole marker, the app shows the sinkhole\u2019s location, date reported, and verification & repair status.*\n\n> Yes, I want to see a detailed status! \n> Residents should not see unverified reports.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 456, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "56d940a0-f071-41c3-9b21-4ec904915bf7": {"__data__": {"id_": "56d940a0-f071-41c3-9b21-4ec904915bf7", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4b70aaf1-ede9-484f-8617-0ffa8a8b7154", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "d42b7c4cbd6a363972ba74fe6c8fb4d54e9f76fdc02da317c7c944459ca8bdbc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Scenarios have a concrete story-line\n\n* Scenarios enhance requirements elicitation by providing a tool that is understandable to stakeholders\n* Concrete, user-centered descriptions of system features used by actors (end-users), often involving informal descriptions\n - Textual representation of how the system is used **written from the** (end)**user\u2019s perspective**\n - Scenarios can incorporate visual elements: e.g., videos, pictures, or storyboards\n - Scenarios can encompass contextual details, e.g., the (physical) environment, social situations, \u2026\n* In **scenario-based design**, scenarios serve as the foundation for designing the hypothetical interaction of end-users with a system", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 695, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4eb7659b-d89a-4b61-ab72-02db40cc9215": {"__data__": {"id_": "4eb7659b-d89a-4b61-ab72-02db40cc9215", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3e9f24e1-8b12-419c-a9a1-988aa0b8706f", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "76055093c16bea5bcc05714436620ca924627cf18184e241805bb32523db0f93", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] As-is scenario\n\n## FR4 Reorder Supplies: The system allows users to reorder supplies.\n\n### STORYBOARD\n\n* WE NEED MORE POST-ITS\n* MAKES NOTE OF SUPPLIES NEEDED ON CLIPBOARD\n* PHYSICAL INVENTORY\n\n### PERSONA:\n* CORPORATE BUYER, JAMES\n\n### SCENARIO:\n* REPLENISH OFFICE SUPPLIES\n\n----\n\n| ![Storyboard panel 1: Person holding clipboard saying \"WE NEED MORE POST-ITS\" in front of shelves] | ![Storyboard panel 2: Computer screen on desk labeled \"JAMES'S DESK\" with a note \"SUPPLY LIST\"] | ![Storyboard panel 3: Computer screen showing \"SUCCESS!\"] |\n|---|---|---|\n\n* SELECTS ITEMS FROM FAVORITES LIST \n* USES DESKTOP & SUPPLY LIST AS TOOL \n\n* RECEIVES SHIPMENT WINDOW W/ ORDER SUBMISSION \n* SETS PLAN FOR RESTOCK \n\nhttps://www.nngroup.com/articles/storyboards-visualize-ideas/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 786, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "00f1fa25-1638-4350-8910-4ef90434996a": {"__data__": {"id_": "00f1fa25-1638-4350-8910-4ef90434996a", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aa72dab5-1dc2-4ea2-9075-5b00e1505098", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "44f968449b06521eaab30015ee8dfe64e3ba9e52d53345070aa2e0d061bd4dde", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example] From Storyboards to Code**\n\n| Scenario | Storyboard |\n|----------------------------------|--------------------------------|\n| **Event 1** | **Frame 1** |\n| *Worker* activates the *emergency transmitter.* | [Sketch of a hand pressing a button labeled \"activate emergency off\"] |\n| **Event 2** | **Frame 2** |\n| *Rescuer* gets a call on his *Phone.* He answers the call. | [Sketch of a phone screen showing an incoming call] |\n| **Event n** | **Frame n** |\n| *Rescuer* captures *emergency drone* on the field. | [Sketch of a drone being captured] |\n\n----\n\nLukas Alperowitz, Constantin Scheuermann, and Nadine von Frankenberg. \"From Storyboards to Code: Visual Product Backlogs in Agile Project Courses.\" SEUH. 2017.\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1017, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ed3e380f-5a63-4e5e-994f-9568efb2e284": {"__data__": {"id_": "ed3e380f-5a63-4e5e-994f-9568efb2e284", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "00740293-5c14-4195-9b5d-9da45586c457", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "ea0323716111a382c07b3df3d7887dff44397ce677b83733f447b78feac8e479", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Scenarios\n\n* A scenario is a textual description that should include:\n - The **name** of the scenario\n - The **user** (\"instantiated\" main actor of the scenario)\n - The **purpose** of the scenario\n - **Steps** of the scenario\n - *Optional:* Assumptions about, e.g., equipment/software", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cd045430-ca5f-4cb6-b5aa-95ff0da36004": {"__data__": {"id_": "cd045430-ca5f-4cb6-b5aa-95ff0da36004", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2a077a1b-1206-4ba8-81c6-1ceedf2c5725", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "5b4fd3ead34ccf0dc546107775c2eb9f05c7192391e7ed046e037151c69baa38", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to write a scenario?\n\n**User** \n**Personas** \nDefine the target user\n\n**Name & Purpose** \n**Goal** \nDefine the goal\n\n**Steps** \n**Paths** \nDefine the task(s), possible paths, and problems\n\n[The page includes three icons above each section: \n- User: A circle with diverse illustrated people inside. \n- Name & Purpose: A circle with a checklist icon inside. \n- Steps: A circle with a flowchart icon inside.]\n\nIcons source\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8f5a0a96-4ff8-4666-a04d-60c1cca8633d": {"__data__": {"id_": "8f5a0a96-4ff8-4666-a04d-60c1cca8633d", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8faaaa9a-00ff-46c5-bb5e-c499e551507f", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "5f3d1e97880f3ecb293d3f10d2feb8b1612893cf5a6818da4405626936317c5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to write a scenario?\n\n* Format can be **informal** or **formalized**\n* The rest is up to the author!\n * E.g., include different formatting to highlight situations or context\n * Names and details should _(somewhat)_ resonate with the audience\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n \n
Informal scenarioFormal scenario
Scenario nameScenario name
\n Scenario description
\n (natural language text)\n
Participating actors
\n Flow of events:
\n 1. Scenario description in bullet points
\n 2. Typically each point describes one step (i.e., event)\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 873, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "22932222-1007-4266-8f37-b778afb0b4fd": {"__data__": {"id_": "22932222-1007-4266-8f37-b778afb0b4fd", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "add62337-df97-4c8e-8621-e6255491f25e", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "56ac5198da343587fa5f4d5caf1e90398f9e906a8b2921565ebd2293f932ca5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Visionary Scenario\n\n## Pizza Cravings: Ordering a Pizza\n\nOn a Wednesday night, Sarah, a CS senior at Pitt, is fully immersed in her study session for 1530. Around 10pm, she suddenly craves a pizza. She opens the pizza ordering app \"CrustRight\", logs in with her Pitt student ID, and selects to have her order delivered.\n\nAfter ordering a small Supreme pizza with extra cheese and a surprise soda, she selects her dorm room as delivery address and pays using her student meal plan.\n\nShe receives a confirmation and an info that her order will be delivered in 15 \u2014 20 minutes.\n\nShe waits patiently. 16 minutes later, she receives a message that her pizza is outside. She buzzes the delivery person in and receives her order at her doorstep. She enjoys her late-night meal, reenergizing her study session.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 815, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b418b2bf-bbcd-468a-9249-4dcae926007e": {"__data__": {"id_": "b418b2bf-bbcd-468a-9249-4dcae926007e", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2ba8096b-ed93-4ec5-bd8b-d3025f371374", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "7f739b6f656f6ceb2cf11005df774cf0ec3f9a1477f717a0eb26e80d5979bfa6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] As-is scenario\n\n> \ud83d\udea8 **[Notation alert]** \n> An instantiated actor is denoted as \n> **Concrete Name : ActorType** \n> (both `:` and _underlining_ the actor indicate that we are dealing with an instance)\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
ScenarioDepositing money
Participating actorsRobin: BankClient
Flow of events\n 1. Robin celebrated their birthday last Wednesday and received birthday money ($300) from their relatives and wants to deposit it to their bank account.
\n 2. Robin visits a bank branch of their bank \"HelloSavings\", a 5 minute walk from their apartment.
\n 3. They queue up at the teller's counter, behind 10 other customers and wait patiently.
\n 4. Finally, when it\u2019s Robin\u2019s turn to talk to an agent, they need to provide physical identification. Robin uses their driver\u2019s license and the agent confirms their identity.
\n 5. Robin hands over the $300. The agent counts it, confirms the amount, and uses the bank\u2019s internal system to schedule the move to Robin\u2019s account.
\n 6. Robin receives a printed receipt for the transaction.
\n 7. Two weeks later, Robin receives their bank statement by mail and checks their balance to confirm that the birthday money transaction has made its wait to their account.\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1481, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0facf28e-5a61-4baf-98e5-707c943cc6d3": {"__data__": {"id_": "0facf28e-5a61-4baf-98e5-707c943cc6d3", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "38988292-1cb1-4b1a-b3a2-5ae8eaf43460", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "417194ff370644b1403321162598e7497b75114995c953f75c14713efcf6465b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Visionary scenario\n\n\n \n \n \n \n\n \n \n \n\n \n \n \n
ScenarioDepositing money
Participating actorsRobin: BankClient
Flow of events\n 1. Robin celebrated their birthday last Wednesday and received birthday money ($300) from their relatives and wants to deposit it to their bank account.
\n 2. Robin opens the \"Coinnect\" app.
\n 3. The \"Coinnect\" app shows a welcome message and asks Robin to log in.
\n 4. Robin logs in with a biometric login.
\n 5. The \"Coinnect\" app shows an overview of Robin\u2019s favorite banks.
\n 6. Robin selects to file a deposit at a physical location with \"HelloSavings\" bank.
\n 7. The \"Coinnect\" app shows all physical locations of Robin\u2019s bank within a 5 mile radius and the current wait times.
\n 8. Robin\u2019s closest bank location (a 5 minute walk away) shows a current wait time of 32 minutes.
\n 9. Robin selects to virtually stand in line.
\n 10. Robin receives a notification 8 minutes before it is their turn in line.
\n 11. Robin leaves their apartment and walks over to the physical location of the \"HelloSavings\" bank.
\n 12. When Robin arrives, the \"Coinnect\" app registers their arrival and confirms their spot in the current queue.
\n 13. Robin receives a number, which the bank teller calls out when it is their turn 2 minutes later.\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1506, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99b84183-91b7-45ac-bc2e-1cce9453a76c": {"__data__": {"id_": "99b84183-91b7-45ac-bc2e-1cce9453a76c", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ef4ddd3a-a366-4d61-94a6-a98c21f2effb", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "cb8317b00629520700ae83579078c8fe3d7af833c21b14d45dceb5d7e61b6608", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Types of scenarios\n\n* **As-is:** Describes the current situation, often focusing on an existing system\n* **Visionary:** Envisions the desired future state, outlining system goals\n* **Demo:** Showcases system functionality to stakeholders\n* **Test:** Specifies steps for quality assurance and validation\n* **Evaluation:** Assesses system effectiveness against criteria\n* **Training:** Guides users in effective system use\n\n\n \n \n \n\n \n \n\n \n \n\n \n \n
Greenfield
&
Re-engineering Projects
Demos
Demos
&
Acceptance Tests
Post delivery
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 681, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aa6c5b6f-bce9-44aa-a66d-faf5aa5f7ef4": {"__data__": {"id_": "aa6c5b6f-bce9-44aa-a66d-faf5aa5f7ef4", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d319dc7d-0846-4e43-af7f-96ed5d2d729a", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "b5cb62d2587d2bce962fad916626863940fadf6bd4f901709f3052440290bca4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Deriving scenarios\n\n* **Client conciseness:** Customers may not provide extensive details for non-existent systems \n* **Domain expertise:** Customers understand the problem domain, not the solution domain \n* **Avoid assumptions:** What is obvious to you may not be apparent to the customer \n* **Dialectic engagement:** Engage in dialogue to help clients formulate scenarios \n* **Dynamic requirements:** Requirements often evolve during scenario formulation \n* **Observation:** For existing systems, insist on task observation, interface engineering, or re-engineering \n* **(End-)user engagement:** Speak to (end-)users for valuable insights", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 649, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f5798380-5897-4c13-b360-6a8fa6d07c78": {"__data__": {"id_": "f5798380-5897-4c13-b360-6a8fa6d07c78", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b048e24d-2a83-4a68-8f68-80ec7faf22cf", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "44f233ed3d2553e111d0eb135868a6293440a348bca882f0a9f54207b21450e4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to write a scenario? (cont.)\n\n* **Starting point:** Begin with the problem statement (if available) \n* Answer the following **questions:** \n - Which actors are involved? \n - What are the core functions that the system must perform? (From the actor\u2019s perspective) \n - What information can the actors access, generate, store, modify, delete, or introduce into the system? \n - Which external changes does the actor need to inform the system about? How often? When? \n - What events should trigger notifications to the actor using the system? \n* Decide on names, contextual circumstances if needed, etc. \n - **Know your audience** \u2014 familiarity with a situation may be relevant", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 693, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1f1cea00-e48b-4455-846e-12c48ae1fdb7": {"__data__": {"id_": "1f1cea00-e48b-4455-846e-12c48ae1fdb7", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7083108e-8415-424b-a96c-2981abddfcb7", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "12c02d612d0d36462095e2e4153d94751e4fbb8c4dd584a2b59a7b1e36ec416a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Scenarios\n* Use cases\n* User stories", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 58, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "54a6d5ff-d3b7-4585-9fd6-d2bcadb95dd2": {"__data__": {"id_": "54a6d5ff-d3b7-4585-9fd6-d2bcadb95dd2", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a4f4b551-74bc-4323-8a9a-02a0f1e6a993", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f725bb18f323c586f2d032058253e151f2d396b425848a3a379a82e490a5bfae", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Deriving functionality\n\n* Scenarios focus on actor identification & the application domain \n - Shortcoming: static, does not adapt to different processes that need to be supported by a (new) feature \n* Next step: **Based on the scenario(s),** identify functionality where an actor interacts with the system \u2192 **use cases** \n - Describe the different ways how a user can interact with the system \n - Are there any conditions tied to a functionality? \n - Any specific qualities that need to be considered?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 515, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2d5ad4ed-5aaa-460b-a201-929d2434f81b": {"__data__": {"id_": "2d5ad4ed-5aaa-460b-a201-929d2434f81b", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6e91554a-885a-4e4a-a777-056e8d5a8c57", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "2588df804622789f62723817ff662bfd01b050e64a4adf04562886430cf6e74b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Use cases\n\nGoal: Define system functions through a series of events, producing observable outcomes for actors\n\n* Use cases are descriptions of interactions between a system and actors (= its users or other systems)\n* Actors initiate use cases to access system functionality\n\n```\n Administrator Occupant\n Resident\n\nAdministrator GIS SiMCity\n Occupant Geminio\n\nSimCity interacts with\nan actor (GIS)\n\nGeminio Sensor\n CityOfficial\n\nUML actor notation:\nTwo actors interact with the system\n\nDeveloper Sensor\n```\n\n[University of Pittsburgh logo]\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 774, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "38cef840-1efd-449e-9eb4-5a9bd20e8906": {"__data__": {"id_": "38cef840-1efd-449e-9eb4-5a9bd20e8906", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a3548692-800b-4fcb-ab46-84c0cb5b9005", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "cb77f4609dd2367a5610fb41f06ef7f61eb26636b99f268c775ec1d952e8a280", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Use cases\n\n* Use cases describe the **system\u2019s behavior** from the **actor\u2019s point of view**\n* Typically, functional requirements should be phrased in a way that their respective short title can be directly derived into a use case\n * Example: \n **FR1 View Hazardous Area:** Pittsburgh\u2019s residents can view hazardous areas where sinkholes are likely to occur.\n\n* Use case - UML representation:\n\n```mermaid\n%% UML Use Case Diagram\nactor Resident\nusecase \"View\\nHazardous Area\" as UC1\nResident --> UC1\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 510, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "565237ec-1949-495b-af0f-3e21cfb8e36e": {"__data__": {"id_": "565237ec-1949-495b-af0f-3e21cfb8e36e", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a7a2ba92-f3cb-4cd4-a3b8-2d1267d23817", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "faea5ef9a061602f11daf80bf0e7369fb27fd0b3fd8860b5c5ec7ebb4bd1322b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Use cases - textual description\n\n* If a use cases has a flow of events that is non-trivial, a textual description helps to identify and document these events\n* Use cases are typically written from the **point of view of the user**\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
Use case nameTrack location of SLFs
Participating actorsCitizens of Pittsburgh (enduser)
Flow of events\n 1. The citizen select a specific area or region on the map where they suspect or want to track Spotted Lantern Flies (SLFs).
\n 2. The system shows the location of spotted lantern flies in the selected area\n
\n\n> An event can also link to another use case. E.g., \n> 3. The system initiates use case \"View location\"\n\n> System steps (i.e., events that the system initiates) should be highlighted.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 997, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6ad23681-9de1-4ab9-b140-37de2062114a": {"__data__": {"id_": "6ad23681-9de1-4ab9-b140-37de2062114a", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "14beb26f-cda7-4ea9-bc85-9710da43e6ac", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "5bc892f9a71202b5ee67c9d7ea3cce4d56e44a8d87c4eac14083ca9c60ad1c05", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formalized use case template\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Use case templateDescription
Use case name\nThe name of the use case should indicate what the user is trying to accomplish
\n(See short title of FRs)\n
Participating actorsActors should be named with noun phrases (e.g, CityOfficial)
Flow of events\nThe boundary of the system should be made clear.
\nActor-initiated steps and system-initiated steps should be distinguished
\nUse case steps in the flow of events should be phrased in the active voice\n
Entry conditionConditions that need to be satisfied before the use case is initiated
Exit conditionConditions satisfied after the completion of the use case
Quality requirementsRequirements that are not (directly) related to the functionality of the system
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1020, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14d0cbf0-7dea-4331-8706-cd0001dc215c": {"__data__": {"id_": "14d0cbf0-7dea-4331-8706-cd0001dc215c", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a6a2986d-afce-484e-a66e-fb5a0f8ac5f6", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f9cb547f782162a77eddc1cc0e0ddf3630f0b33997e40895fa7868035b25e475", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Textual Use Case\n\n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
Use case nameCall for help
Participating actorsResident, PublicSafety
Flow of events\n 1. The Resident sees a sinkhole
\n 2. The Resident opens the SiMCity system.
\n 3. The Resident navigates to the sinkhole help overview
\n 4. The System displays available help options.
\n 5a. The Resident selects to call for help.
\n 6a. The System dials PublicSafety
\n Alternative path:
\n 5b. The Resident does not have cell phone reception, \"No cell phone reception\" extension use case is initiated
\n 4a. The System shows alternatives to calling for help\n
Entry conditionResident has access to SiMCity system
Exit conditionPublicSafety has been called
Quality requirements\n Displayed help options are relevant for resident\u2019s area
\n It should take at most 3 clicks to call PublicSafety\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1263, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5c43a70c-6302-4fad-9134-a78b3123213d": {"__data__": {"id_": "5c43a70c-6302-4fad-9134-a78b3123213d", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "86b61dfa-1138-4166-b8e3-88cc0d13739e", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "7d5dd0778ad1f435ef8dc16a85bc59c35ad50c055562bf38afcc26744f6101c3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML Use Case Elements\n\n- **Actor** \n - Interacts with the system \n - The actor **initiates** the use case\n\n- **Use Case** \n - Can be derived from the FRs (short title)\n\n- **System boundary** \n - Defines the scope of the system \n - Separates the system from external actors \n - Clarifies the boundaries within which use cases operate\n\n```\n+-------------------------------------------------------+\n| |\n| System name |\n| |\n| Use Case |\n| |\n| |\n+-------------------------------------------------------+\n```\n\nActor \u2192 Use Case (arrow indicating initiation)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 868, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f0cc97e0-1d67-4330-8cd6-a522791b2789": {"__data__": {"id_": "f0cc97e0-1d67-4330-8cd6-a522791b2789", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "788eb3b6-5244-4563-9cf1-7aea78dfe1a7", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f06d68e5b0efcc9a5749a08e825519567bfcb8fedabd94378a081ee13680fb9e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] UML Use Case Model\n\n**System name** \nSiMCity\n\n**System boundary**\n\n**Actor** \nResident\n\n**Use cases** \n* View Hazardous Area \n* Call for Help \n - <> Dial First Responder Number \n - <> No Phone Service\n\n**Relationships** \n* Resident \"initiates\" View Hazardous Area \n* Resident \"initiates\" Call for Help \n* Call for Help <> Dial First Responder Number \n* Call for Help <> No Phone Service\n\n----\n\nUniversity of Pittsburgh \n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 579, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "761b4ec3-3622-4a5a-b012-c92280e3a419": {"__data__": {"id_": "761b4ec3-3622-4a5a-b012-c92280e3a419", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1982a36b-a5e5-4468-acd7-b54524f9264c", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "778ee128c1a08732287400d5bef81f398c67ee42ece86929d9958dee58df54eb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML use case elements \u2014 <>\n\n\n \n \n\n\n \n
Use Case
Order Pizza
\u00abincludes\u00bbUse Case
Select Topping
\n\n* Goal: Reduce complexity by identifying commonalities in different use cases\n - Incorporates one use case (the included use case) within another (the including use case)\n - Ensures that the included use case is always part of the main functionality of the including use case\n - Enhances modularity and reusability by breaking down complex use cases into simpler, reusable components", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c93de882-c6fa-4a43-8698-34bc6c8c9bfc": {"__data__": {"id_": "c93de882-c6fa-4a43-8698-34bc6c8c9bfc", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a2142bd0-11cf-4b2c-9ebc-8f44aa906c42", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "6d4f6218bdb8b93025be2d6a17311d7bd8e43d6e68671173aa882b72473066d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML use case elements \u2014 <>\n\n\n \n \n\n\n \n
\n \n\n\n \n \n \n
View Map
\n\n
\u00abextends\u00bb\n \n\n\n \n \n \n
Not connected to the internet
\n\n
\n\n* Goal: Reduce complexity by extending use cases with optional and conditional behavior that occurs within a use case \n* Allows for the inclusion of additional functionality, often triggered by **exceptional** or **rare scenarios** \n* Enhances flexibility and adaptability in system behavior without cluttering the primary use case with exceptional paths", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 677, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "473aac86-8c7a-48c9-af09-95111d1f6f25": {"__data__": {"id_": "473aac86-8c7a-48c9-af09-95111d1f6f25", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "344aafc7-2407-450e-ae54-469ab61d1900", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "c25409fd5056bf5c427d409e0098fa8e0f9257a0595bca1cdd09b7b0c576b853", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** UML Use Case Model\n\n**CourseEnrollment**\n\n- **Student** (actor)\n\n- Use cases inside CourseEnrollment system boundary:\n - **Enroll in course**\n - <> Course is full\n - <> Course not available\n - <> Search for course\n - **Search for course**\n - <> Enter search filter\n\n**Relationships:**\n\n- Student \u2192 Enroll in course (direct association)\n- Student \u2192 Search for course (direct association)\n- Enroll in course <> Search for course (dashed arrow with <>)\n- Enroll in course <> Course is full (dashed arrow with <>)\n- Enroll in course <> Course not available (dashed arrow with <>)\n- Search for course <> Enter search filter (dashed arrow with <>)\n\n----\n\nUniversity of Pittsburgh logo in top right corner.\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 939, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b299084e-9357-4596-b282-b15882acd860": {"__data__": {"id_": "b299084e-9357-4596-b282-b15882acd860", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2e3eacf8-8901-4ea7-b295-bf183c160cf7", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "50cbe7eac9529988f1d61a09d3529bf424c915a61870d9df95c54c0d79cd227b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] UML Use Case Model\n\nSearch for course <> Enter search filter\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
Use case nameSearch for course
Participating actorsStudent
Actor-step
Flow of events\n 1. The student selects to search for a course.
\n 2. The system shows a list of courses. System-step
\n 3. The student enters a filter to search for a course.
\n The use case 'Enter search filter' is invoked.
\n 4. The system displays a list of courses that match the student\u2019s filter.\n
Entry conditionThe student is logged in.
Exit conditionA list of courses that match the search filter is produced.
Quality requirementsIt should take the student at most three clicks to search for a course (NFR5)
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1142, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "70ebc0ac-6b55-402b-b223-8d0876dff4c7": {"__data__": {"id_": "70ebc0ac-6b55-402b-b223-8d0876dff4c7", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aa4940e7-5589-4db1-8fa8-3ed77aa08bf0", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "f8a935dfbd56acec4a99e7f418f0646f07ad776b4c1ac9f9c49e6d77f0491ae8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I09 \u2014 Use case model \u23f3 10 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nBased on your functional requirements, model a use case diagram\n\n----\n\n**continued L10!**\n\n----\n\nUse a modeling tool, e.g., \n**[Commercial]** OmniGraffle, Lucidchart, Visual Paradigm, gleek.io \n**[Free/open-source]** draw.io, Gliffy, StarUML, PlantUML", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1e41604d-cd99-4802-ba42-2392510bc49f": {"__data__": {"id_": "1e41604d-cd99-4802-ba42-2392510bc49f", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "54eaaa6d-90a8-4240-8460-4c1991539627", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf"}, "hash": "08365159e961f3ee3f98e64bd0d2a9c8523313439f01617b45f1d4044ea75eea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L09 Scenarios & Use Cases\n\nCS 1530 Software Engineering \nNadine von Frankenberg \n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu \n\nFall 2025", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 177, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "22929174-27ee-4496-a9eb-fc80e8c624c5": {"__data__": {"id_": "22929174-27ee-4496-a9eb-fc80e8c624c5", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a355a15e-17e2-4b65-ba87-cd6807176452", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "4a2006233950561e54d31abc03f58d2d52a5588cd7525ff0934ccbcd483a0c0f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# 1.1. Geometry and Algebra of Vectors\n\n## Points and Vectors in Space\n\n* Fixing a unit length, and a point \\(O\\) on a straight line, we can use a real number \\(x\\) to represent any point on the line and vice versa:\n\n```\n<-- -\u221e -------- 0 --- 1 --- x -------- +\u221e -->\n | | |\n unit length\n e.g. meter, inch, pencil length, ...\n```\n\n* We denote from now on the set of real numbers by \\(\\mathbb{R}\\) and we write \\(x \\in \\mathbb{R}\\) to mean that \"x is an element in the set of real numbers\", in other words \\(x\\) is a real number.\n\n* A pair of real numbers \\((x,y) \\in \\mathbb{R}^2\\), where \\(\\mathbb{R}^2\\) is the set of pairs of real numbers, represents a point on the plane:\n\n```\ny-axis\n |\n | (x,y)\n | \u2022\n |\n +----|----> x-axis\n 0 x\n```\n\n* A triple of numbers \\((x,y,z) \\in \\mathbb{R}^3\\) represents a point in 3-dimensional space (\u2192 add another axis to \\(\\mathbb{R}^2\\)):\n\n```\n y-axis\n |\n | /\n | / \n |/________ x-axis\n /\n /\n z-axis\n```\n\n* \u2192 Analogously we define a point in an \\(n\\)-dimensional space to be an \\(n\\)-tuple of numbers:\n\n$$\n(x_1, \\ldots, x_n) \\in \\mathbb{R}^n \\quad \\text{where} \\quad n \\in \\mathbb{Z}_+ \\quad \\text{(positive integer)}.\n$$\n\n> **Mental Yoga:** \n> Let's represent your lecturer by a point, e.g. his center of mass. How would you go about describing his position in the lecture room? \n> \u2192 You could go a step further and think of time as an additional dimension, a fourth dimension in addition to the 3 spatial dimensions.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aa1f3d29-3083-4e9f-ada1-f5df1a50ab7f": {"__data__": {"id_": "aa1f3d29-3083-4e9f-ada1-f5df1a50ab7f", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e4524f65-03ac-41f5-93ee-b3929e7167b8", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "ff1b347e2801b80091203d66b9d1ef3d99f4dfd63b1e55cc1e2f039e3dec2748", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\nThere is no reason to limit ourselves to spatial and time dimension. We can use points on \\(\\mathbb{R}^n\\) to represent any quantity taking values in the real numbers. One could for example assign a real-dimension to each one of the big sectors that contribute in the GDP of the US:\n\n- \\(x_1\\)-axis: Finance \n- \\(x_2\\)-axis: Agriculture \n- \\(x_3\\)-axis: Health care \n- \\(x_4\\)-axis: Construction \n- \\(\\vdots\\) \n- \\(x_n\\)-axis: Education \n *(often put at the bottom of the list by politicians)*\n\n> Say we denote the point associated to the 2023 contributions by \\(A \\in \\mathbb{R}^n\\) and the point of 2024 contributions by \\(B \\in \\mathbb{R}^n\\). Each point in this \\(n\\)-dimensional space encodes the information of all of these sectors individually. We will soon introduce the notion of a **vector** which will allow us to compare the contributions between the two years.\n\n----\n\n## Definition 1.1 \"Addition of points in \\(\\mathbb{R}^n\\)\"\n\nLet \\(A = (a_1, \\ldots, a_n) \\in \\mathbb{R}^n\\), \\(B = (b_1, \\ldots, b_n) \\in \\mathbb{R}^n\\), i.e. points in an \\(n\\)-dimensional space, then we define their sum \\(A + B\\) to be the point whose coordinates are\n\n$$\nA + B := (a_1 + b_1, \\ldots, a_n + b_n) \\in \\mathbb{R}^n\n$$\n\n(another point in \\(\\mathbb{R}^n\\)).\n\nE.g. \n\\(A = (-1, \\pi, 3) \\in \\mathbb{R}^3\\) \n\\(B = (\\sqrt{2}, 7, -2) \\in \\mathbb{R}^3\\) \nthen \n$$\nA + B = (-1 + \\sqrt{2}, \\pi + 7, 1) \\in \\mathbb{R}^3\n$$\n\nOne says that addition is defined in a \"component-wise\" manner. Note that:\n\n1. \\((A + B) + C = A + (B + C)\\) \n2. \\(A + B = B + A\\) \n3. For \\(O = (0, \\ldots, 0)\\) we have: \\(A + O = O + A = A\\) for all \\(A \\in \\mathbb{R}^n\\) (we also write \\(\\forall A \\in \\mathbb{R}^n\\)). \n4. For \\(A = (a_1, \\ldots, a_n)\\) we write \\(-A\\) for the point in \\(\\mathbb{R}^n\\) such that \\(A + (-A) = O\\), that is \\(-A = (-a_1, \\ldots, -a_n)\\).\n\nThe reason these properties hold, is that they hold for all components individually and since addition in higher-dimensions is defined componentwise, we follow that the properties of addition are true also in higher dimensions.\n\n----\n\nNow let's see what addition looks like geometrically:\n\n\\[\n\\begin{array}{c|c|c}\n& x & y \\\\\n\\hline\nA & 3 & 1 \\\\\nB & 1 & 2 \\\\\nA + B & 4 & 3 \\\\\n\\end{array}\n\\]\n\n[The table above shows the coordinates of points \\(A\\), \\(B\\), and their sum \\(A+B\\) in 2D space.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2349, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "54d3f433-3f90-480d-9479-7a38f1568e2e": {"__data__": {"id_": "54d3f433-3f90-480d-9479-7a38f1568e2e", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "34dc9f85-ca3b-4157-a4df-b75299068343", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "e90de4d23b7e7c54966af88b40d589733ae783cabb534e7fb0d97c9f74ba7aa9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "A = (3,1) \nB = (1,2) \nO = (0,0) \n\nA + B = (4,3)\n\nWe get a parallelogram by following the coordinates. \nTo obtain B make 1 step on the x-axis and 2 steps on the y. Then to get A + B, start from A instead from O and do again 1 step on x-axis and 2 on y-axis.\n\nNote that since A + B = B + A we can reach the sum of the points in two different ways. Note also that the line segments between O and B, and between A and A + B are the hypotenuses of right triangles whose legs are of the same length and are parallels (red line segments above).\n\n----\n\n### Definition 1.2: Multiplication of points by scalars.\n\nLet \\( c \\in \\mathbb{R} \\), also called a scalar, and let \\( A = (\\alpha_1, \\ldots, \\alpha_n) \\in \\mathbb{R}^n \\) then we define the multiplication:\n\n$$\nc \\cdot A := (c \\cdot \\alpha_1, \\ldots, c \\cdot \\alpha_n)\n$$\n\nThat is \\( c \\) multiplies each component of \\( A \\).\n\n- \\( c (A + B) = c \\cdot A + c \\cdot B \\) \n- \\( c \\cdot A = A \\cdot c \\) \n- If \\( c_1, c_2 \\in \\mathbb{R} \\) two scalars, then \n $$\n (c_1 + c_2) \\cdot A = c_1 A + c_2 A \\quad \\text{(linearity)}\n $$\n and \n $$\n (c_1 c_2) \\cdot A = c_1 (c_2 \\cdot A) = c_2 (c_1 A)\n $$\n\n- Example: Let \\( A = (1,2) \\), and \\( c = 3 \\) then \n $$\n c A = (3,6).\n $$\n\nTwo ways of thinking about multiplication by a scalar: \n1) It stretches the line segment \n2) It \"re-scales\" the unit measurement, sending 1 to \\( c \\).\n\n----\n\n### Vectors (Located Vectors)\n\n**Definition 1.3** \nA (located) vector is an ordered pair of points, which we write \\( \\overrightarrow{AB} \\) (not a product!).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1556, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "13e17dd2-b939-47bc-95d5-e5e9cde74300": {"__data__": {"id_": "13e17dd2-b939-47bc-95d5-e5e9cde74300", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0a81626f-1913-45bd-ab50-53f8c3b45e4d", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "3c85edddc2f98d2f0ef77d44387c2d29c4d3f59f608135c18f693146cb734c48", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Definition 1.4: \"Equivalent Vectors\"\n\nLet \\(\\overrightarrow{AB}\\) and \\(\\overrightarrow{CD}\\) be two located vectors. We shall say that they are equivalent or equal if\n\n$$\\overrightarrow{B} - \\overrightarrow{A} = \\overrightarrow{D} - \\overrightarrow{C}.$$\n\n> \"Same direction \n> same length\"\n\nBefore seeing what this means geometrically, note that every located vector \\(\\overrightarrow{AB}\\) is equal to one whose starting point is at the origin, since\n\n$$\\overrightarrow{B} - \\overrightarrow{A} = (\\overrightarrow{B} - \\overrightarrow{A}) - \\overrightarrow{0}$$\n\n$$\\Longleftrightarrow \\quad \\overrightarrow{AB} = \\overrightarrow{0(B - A)}.$$\n\nThis means that up to equivalence all located vectors start at the origin. This is a very important realisation. From now on, when we say the word vector we will implicitly think of a vector with starting point at the origin unless stated otherwise, or unless is obvious otherwise. (So we drop the terminology \"located\" for brevity.)\n\nNote also that there is a unique vector whose start is at the origin and is equivalent / equal to \\(\\overrightarrow{AB}\\), namely the vector \\(\\overrightarrow{0(B - A)}\\).\n\nIn particular this means that we can describe uniquely any vector up to equivalence with just a single point in \\(\\mathbb{R}^n\\). The vector associated to a point \\(P = (x_1, \\ldots, x_n)\\) is then \\(\\overrightarrow{0P}\\) where \\(0 = (0, \\ldots, 0)\\) the origin in the \\(n\\)-dimensional space.\n\nAll rules on addition of tupels in \\(\\mathbb{R}^n\\) transfer directly to rules on addition of vectors. Similarly with the rules on multiplication by scalars.\n\n> Geometric intuition:\n\n----\n\n### Diagram description:\n\n- Coordinate axes with origin \\(0\\).\n- Points \\(A = (a_1, a_2)\\) and \\(B = (b_1, b_2)\\).\n- Vector \\(\\overrightarrow{AB}\\) shown as an arrow from \\(A\\) to \\(B\\).\n- Vector \\(\\overrightarrow{B} - \\overrightarrow{A}\\) shown as an arrow from origin \\(0\\) to the point \\(B - A\\).\n- Components \\(a_1, a_2, b_1, b_2\\) marked on axes.\n- Vector \\(\\overrightarrow{A}\\) from origin to \\(A\\).\n- Vector \\(\\overrightarrow{B}\\) from origin to \\(B\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2099, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80b3d163-235b-45b7-899e-0196ebb70c78": {"__data__": {"id_": "80b3d163-235b-45b7-899e-0196ebb70c78", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5ec126f6-b6cc-4988-88e1-a152b8c1ecf3", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "1b8d8acdf31894341d8b6bc5fc0e0f3a51713be1bc4be13d9a559e0f22a24645", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Geometric intuition\n\n$$\n\\overrightarrow{AB} = \\overrightarrow{OB} - \\overrightarrow{OA} = \\overrightarrow{OB} + (-\\overrightarrow{OA}).\n$$\n\n$$\n\\overrightarrow{B-A} = (B - A) - 0 = (B - 0) - (A - 0)\n$$\n\nSome more relations:\n\n$$\n\\overrightarrow{OB} = \\overrightarrow{OA} + \\overrightarrow{(B-A)}\n$$\n\n$$\nB - 0 = A - 0 + ((B - A) - 0)\n$$\n\n----\n\n### Example: Please work out the following example:\n\nLet \n$$P = (1, -1, 3), \\quad Q = (2, 4, 1)$$ \n$$A = (4, -2, 5), \\quad B = (5, 3, 3)$$\n\n**Question:** Are the vectors \\(\\overrightarrow{PQ}\\) and \\(\\overrightarrow{AB}\\) equivalent and if so, why?\n\n**Solution:** \n$$\nQ - P = (1, 5, -2) = B - A \\implies \\overrightarrow{PQ} = \\overrightarrow{AB}.\n$$\n\n----\n\n### Notation: \"From points to vectors\"\n\nWhile for points we used the n-tuple notation \n$$\nP = (P_1, \\ldots, P_n) \\in \\mathbb{R}^n,\n$$ \nwhen we talk about vectors with start point the origin \\(O = (0, \\ldots, 0)\\) and end point \\(P\\), i.e. \\(\\overrightarrow{OP}\\), we will write:\n\n$$\n\\overrightarrow{OP} = \\begin{bmatrix} P_1 \\\\ P_2 \\\\ \\vdots \\\\ P_n \\end{bmatrix}\n\\quad \\text{(or sometimes you will see also } \\overrightarrow{OP} = [P_1, \\ldots, P_n] \\text{)}\n$$\n\n- The reason will become clear later, it is mostly better for computations.\n\n----\n\nLet me stress these crucial points in other words:\n\n1. To each point \\(A \\in \\mathbb{R}^n\\), we can associate a **unique** vector \\(\\overrightarrow{OA}\\) that starts from the origin and ends on \\(A\\).\n\n2. Any vector \\(\\overrightarrow{AB}\\) is equivalent to a **unique** vector \\(\\overrightarrow{O(B-A)}\\) that starts at the origin and for which \n$$\n\\overrightarrow{AB} = \\overrightarrow{O(B-A)}\n$$ \nholds. In particular, there is a unique vector associated to \\(\\overrightarrow{AB}\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1738, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14d1d358-0fa1-4589-9677-ed7678535bb5": {"__data__": {"id_": "14d1d358-0fa1-4589-9677-ed7678535bb5", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "878e7b74-cd68-4177-9e20-cde9449b2a7c", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "540116414af82c6b3cb7fc1188b3ebc4f54231a9b7008cd4086749a25dcc790c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "there is a unique vector associated to \\(\\overrightarrow{AB}\\) \nthat is pointing in the same direction and has \nthe same length as \\(\\overrightarrow{AB}\\).\n\n3. From (1) and (2), by transitivity, we have \na set-theoretic 1:1 - correspondence between: \n\n\\[\n\\left\\{\n\\text{points in } \\mathbb{R}^n\n\\right\\}\n\\overset{1:1}{\\longleftrightarrow}\n\\left\\{\n\\begin{array}{c}\n\\text{vectors in n-dim} \\\\\n\\text{space with starting} \\\\\n\\text{point at the origin}\n\\end{array}\n\\right\\}\n\\overset{1:1}{\\longleftrightarrow}\n\\left\\{\n\\begin{array}{c}\n\\text{vectors in an} \\\\\nn\\text{-dim. space} \\\\\n\\text{up to equivalence}\n\\end{array}\n\\right\\}\n\\]\n\n\\[\nA \\in \\mathbb{R}^n \\longleftrightarrow \\overrightarrow{OA}\n\\]\n\n----\n\n**Def. 1.5: \"Parallel Vectors.\"**\n\nTwo vectors \\(\\overrightarrow{AB}, \\overrightarrow{PQ}\\) are said to be parallel \nif there is a scalar \\(c \\in \\mathbb{R}\\) s.t. \\(\\overrightarrow{B} - \\overrightarrow{A} = c \\cdot (\\overrightarrow{Q} - \\overrightarrow{P})\\). \nMoreover, they are said to have the *same direction* if \\(c > 0\\), and have the *opposite direction* if \\(c < 0\\).\n\n----\n\n*Diagram 1:*\n\nCoordinate axes with points \\(A\\), \\(B\\), \\(C\\), \\(P\\), and \\(D\\) marked, and vectors \\(\\overrightarrow{AB}\\), \\(\\overrightarrow{AP}\\), and \\(\\overrightarrow{CD}\\) drawn. \n- Label: \"Parallel vectors\" \n- Equation: \n \\[\n \\overrightarrow{AP} = c \\cdot \\overrightarrow{AB} = \\overrightarrow{CD}\n \\]\n where \n \\[\n c = \\frac{P - A}{B - A}\n \\]\n\n----\n\nTwo vectors are parallel if and only if they are scalar multiples of each other (up to vector-equivalence).\n\n----\n\n*Diagram 2:*\n\nCoordinate axes with three vectors drawn: \n- One vector pointing in one direction labeled \"same direction\" \n- Another vector pointing in the opposite direction labeled \"opposite direction\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1775, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d2d3c724-8cd0-4ff5-adf0-b9b5e179cc23": {"__data__": {"id_": "d2d3c724-8cd0-4ff5-adf0-b9b5e179cc23", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ac454ac9-bc7b-420c-873d-351a766465cb", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "4b91f6072ac227f57cc42a2549a71acb1d4ca4cc1fecc88d729e9492bd47eeda", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Linear Combinations and Co-ordinates\n\n**Definition 1.6:** \nLet \\( v_1, \\ldots, v_n \\in \\mathbb{R}^n \\) be vectors in an \\( n \\)-dimensional space and let \\( c_1, \\ldots, c_n \\in \\mathbb{R} \\) be scalars. \nThen we call the sum: \n$$\n\\sum_{i=1}^n c_i \\cdot v_i = c_1 v_1 + c_2 v_2 + \\cdots + c_n v_n\n$$ \na *linear combination* of the vectors \\( v_1, \\ldots, v_n \\).\n\nWe call the scalars \\( c_i \\) in a linear combination the **coefficients** of the linear combination.\n\nWe call the set of all linear combinations of the given vectors \\( v_1, \\ldots, v_n \\), the *linear span* of \\(\\{v_1, \\ldots, v_n\\}\\):\n\n$$\n\\text{Span}(v_1, \\ldots, v_n) = \\left\\{ \\lambda_1 v_1 + \\cdots + \\lambda_n v_n \\mid \\lambda_1, \\ldots, \\lambda_n \\in \\mathbb{R} \\right\\}.\n$$\n\nI like to write \\(\\langle v_1, \\ldots, v_n \\rangle_{\\mathbb{R}}\\) instead of \\(\\text{Span}(v_1, \\ldots, v_n)\\) \nor just \\(\\langle v_1, \\ldots, v_n \\rangle\\).\n\n**Examples:** \nThe vector \n$$\nv = \\begin{bmatrix} 2 \\\\ -2 \\\\ 1 \\end{bmatrix}\n$$ \nis a linear combination of the following vectors: \n$$\nv_1 = \\begin{bmatrix} 1 \\\\ 0 \\\\ -1 \\end{bmatrix}, \\quad\nv_2 = \\begin{bmatrix} 2 \\\\ 3 \\\\ 1 \\end{bmatrix}, \\quad\nv_3 = \\begin{bmatrix} 5 \\\\ 4 \\\\ 0 \\end{bmatrix}\n$$ \nsince \n$$\nv = 3 \\cdot v_1 + 2 \\cdot v_2 - 1 \\cdot v_3.\n$$\n\nWe also say that the vector \\( v \\) is an element of the span of the set of vectors \\(\\{v_1, v_2, v_3\\}\\) \nor \\( v \\) lies in the span of \\(\\{v_1, v_2, v_3\\}\\), and write: \n$$\nv \\in \\langle v_1, v_2, v_3 \\rangle_{\\mathbb{R}}.\n$$\n\nSo the span \\(\\langle v_1, \\ldots, v_n \\rangle\\) of a set of vectors is the set of all vectors we can obtain by all possible rescalings of \\( v_1, \\ldots, v_3 \\) and sums thereof \u2014 i.e. all possible *linear combinations*.\n\n----\n\n**Definition 1.7:** \nLet \\(\\{v_1, \\ldots, v_n\\}\\) be a set of vectors in \\(\\mathbb{R}^n\\). \nWe say that the set of vectors is *linearly dependent* if there exist scalars \\( c_1, \\ldots, c_n \\), not all zero, such that \n$$\nc_1 v_1 + \\cdots + c_n v_n = 0 = (0, \\ldots, 0).\n$$ \nOtherwise, we call \\(\\{v_1, \\ldots, v_n\\}\\) a set of *linear independent* vectors.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2100, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6ff67467-80f2-4ac6-abcc-8b05f42e1c53": {"__data__": {"id_": "6ff67467-80f2-4ac6-abcc-8b05f42e1c53", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d4037846-a27b-494a-b2c5-1629a4fef24c", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "4c3f928410d7fe615679395c89c2bbaa7381ba044cb51d5565d9caf8b7d3fffe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "such that \\( c_1 v_1 + \\ldots + c_n v_n = \\mathbf{0} = (0, \\ldots, 0) \\). Otherwise we call \\(\\{v_1, \\ldots, v_n\\}\\) a set of linear independent vectors.\n\n----\n\n**Expl.** Take the elementary unit vectors in \\(\\mathbb{R}^3\\):\n\n\\[\n\\left\\{ e_1 = \\begin{bmatrix} 1 \\\\ 0 \\\\ 0 \\end{bmatrix}, \\quad e_2 = \\begin{bmatrix} 0 \\\\ 1 \\\\ 0 \\end{bmatrix}, \\quad e_3 = \\begin{bmatrix} 0 \\\\ 0 \\\\ 1 \\end{bmatrix} \\right\\}\n\\]\n\nThis set is lin. independent, since there is no non-zero solution to the equation:\n\n\\[\nc_1 e_1 + c_2 e_2 + c_3 v_3 = \\mathbf{0}\n\\]\n\n\\[\n\\Leftrightarrow c_1 e_1 + c_2 e_2 = - c_3 v_3\n\\]\n\nSolving this equation would mean that I can write \\(\\begin{bmatrix} 0 \\\\ 0 \\\\ 1 \\end{bmatrix}\\) as a linear combination of \\(e_1, e_2\\), but this is clearly impossible:\n\n\\[\nc_1 \\begin{bmatrix} 1 \\\\ 0 \\\\ 0 \\end{bmatrix} + c_2 \\begin{bmatrix} 0 \\\\ 1 \\\\ 0 \\end{bmatrix} - c_3 \\begin{bmatrix} 0 \\\\ 0 \\\\ 1 \\end{bmatrix}\n\\]\n\n\\[\n\\Leftrightarrow \\begin{bmatrix} c_1 \\\\ 0 \\\\ 0 \\end{bmatrix} + \\begin{bmatrix} 0 \\\\ c_2 \\\\ 0 \\end{bmatrix} = \\begin{bmatrix} 0 \\\\ 0 \\\\ -c_3 \\end{bmatrix}\n\\]\n\n\\[\n\\Leftrightarrow \\begin{bmatrix} c_1 \\\\ c_2 \\\\ 0 \\end{bmatrix} = \\begin{bmatrix} 0 \\\\ 0 \\\\ -c_3 \\end{bmatrix}\n\\]\n\n\\[\n\\Leftrightarrow \\begin{cases} c_1 = 0 \\\\ c_2 = 0 \\\\ c_3 = 0 \\end{cases} \\quad \\text{w.r.t. } c_1, c_2, c_3 \\text{ all zero}\n\\]\n\nso \\(c_1, c_2, c_3\\) lin. ind.\n\n\\(\\Rightarrow\\) This is a first instance of a system of linear equations!\n\n\\(\\Rightarrow\\) We will study this concept in depth later.\n\n----\n\n> This following notion of an equivalence relation we didn't define in class and I don't expect you to know it, but If you really want to know what the term \"equivalence\" means, for example equivalence of vectors or \"equality up to equivalence\", well here is what the definition of an equivalence is... We might do it properly down the line if we decide to talk about congruence relations and modular arithmetic which is extremely important for computer scientists.\n\n**Def. Equivalence Relation:**\n\nIs a binary relation \\(\\sim\\) on a set \\(\\mathcal{U}\\) characterised by the following properties. For all \\(a,b,c \\in \\mathcal{U}\\) we have:\n\ni) \\(a \\sim a\\) \"reflexivity\"\n\nii) \\(a \\sim b \\iff b \\sim a\\) \"symmetry\"\n\niii) If \\(a \\sim b\\) and \\(b \\sim c\\) then \\(a \\sim c\\).\n\n\\(\\Rightarrow\\) we define the equivalence class of an element \\(a \\in \\mathcal{U}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2351, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3bdab8b8-5661-4f28-a5aa-04b4310fa716": {"__data__": {"id_": "3bdab8b8-5661-4f28-a5aa-04b4310fa716", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9ede11bc-6f3a-484c-90c6-74667d534864", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/1.1. Geometry and Algebra of Vectors.pdf"}, "hash": "1e33e3c15ed393c5a50da47a2d30f0ae711f404fb76c92906055f8a875c87331", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "- we define the equivalence class of an element \\(a\\) in \\(\\mathcal{U}\\) with respect to \\(\\sim\\) as: \n\\[\n[a] := \\{ x \\in \\mathcal{U} \\mid x \\sim a \\}.\n\\] \n(i.e. all elements in \\(\\mathcal{U}\\) that are equivalent to \\(a\\)).\n\n\\(\\Rightarrow\\) leads to the concept of an affine space", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 284, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "41d3257d-5b62-47fa-9108-5a668cd0a0b9": {"__data__": {"id_": "41d3257d-5b62-47fa-9108-5a668cd0a0b9", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fe7cf247-c839-4fd1-8b37-ee84fc8fcfdf", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "a030c26c72018275b75cb9257cd666e1718affcb9c9742f1bd0a3f670604081e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 07\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "169e1e10-490b-40e6-95ec-945cd0923375": {"__data__": {"id_": "169e1e10-490b-40e6-95ec-945cd0923375", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1ebcf251-6a6f-4b09-aaa2-74e159a74d0e", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "8b79c4b2451c6b60abd1c67ec24b2160c1a3273b76f5ea7d39227e2a665a84a5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that \\( C = \\{ w \\mid w \\text{ has an equal number of 0s and 1s} \\} \\) is not regular.\n\n* Assume that \\( C \\) is regular \n* Since \\( C \\) is regular, the Pumping lemma says that for any string \\( s \\in C \\) of length at least \\( p \\), \\( s \\) can be divided into \n \\( s = xyz \\) satisfying the following conditions: \n 1. \\( xy^i z \\in C \\) for any \\( i \\geq 0 \\) \n 2. \\( |y| > 0 \\) \n 3. \\( |xy| \\leq p \\) \n* Let \\( s = (01)^p \\) \n - \\( s \\in C \\) \u2014 good \n - \\( |s| = 2p \\geq p \\) \u2014 good", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 519, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9aa731c7-12d6-4982-8b43-4e91452524e3": {"__data__": {"id_": "9aa731c7-12d6-4982-8b43-4e91452524e3", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2ac1b4b5-c959-4be3-bb99-a56f9e944ea1", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "162b73c9b9b78d6e5841cf8f8793ad16a5c300dfc4d6c5b323b0a9bd41abe1a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that \\( C = \\{ w \\mid w \\text{ has an equal number of 0s and 1s} \\} \\) is not regular.\n\n* \\( s = (01)^p \\)\n* Let \\( x = \\varepsilon \\), \\( y = 01 \\), and \\( z = (01)^{p-1} \\) and check all three conditions:\n 1. \\( \\varepsilon (01)^i (01)^{p-1} \\in C \\) for any \\( i \\geq 0 \\) \n - Every time you insert a \\( y \\), you add equal number of 0 and 1\n 2. \\( |01| = 2 > 0 \\)\n 3. \\( |\\varepsilon 01| = 2 \\leq p \\)\n\n* All three conditions can be true (no contradiction)\n* **Important**: No contradiction means nothing \n - You also cannot conclude that \\( C \\) is regular\n* But if we pick \\( s = 0^p 1^p \\), we will get a contradiction \n - Same kind of proof as in previous example but focus on the number of 0s and 1s (no pattern)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 752, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4b2b47c1-6d90-4c1b-a7ff-c8891d489a10": {"__data__": {"id_": "4b2b47c1-6d90-4c1b-a7ff-c8891d489a10", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "42d5c750-c96a-4ecd-a013-f598907a8749", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "6654a1279bdfcd12a5620948d15ed3511a95ae3b0c4a6b74e086a71b2c260095", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Show that \\( C = \\{ w \\mid w \\text{ has an equal number of 0s and 1s} \\} \\) is not regular\n\nAssume that \\( C \\) is regular. Since \\( C \\) is regular, the Pumping lemma says that for any string \\( s \\in C \\) of length at least \\( p \\), \\( s \\) can be divided into \\( s = xyz \\) satisfying the following conditions:\n\n1. \\( xy^i z \\in C \\) for any \\( i \\geq 0 \\) \n2. \\( |y| > 0 \\) \n3. \\( |xy| \\leq p \\) \n\nLet \\( s = 0^p 1^p \\). Since \\( s \\) starts with \\( p \\) 0s, to satisfy the third condition, \\( x \\) and \\( y \\) are strings that contain nothing but 0s. In other words, \\( x = 0^j \\) for any \\( j \\geq 0 \\), and \\( y = 0^k \\) for any \\( k > 0 \\). Note that \\( k \\) must be greater than 0 because \\( |y| = |0^k| = k \\), and the condition 2 says that \\( |y| > 0 \\). Since \\( x = 0^j \\) and \\( y = 0^k \\), \\( z = 0^{p-(j+k)} 1^p \\). Let \\( i = 2 \\). We have\n\n$$\n\\begin{aligned}\nxy^i z &= xy^2 z \\\\\n &= x y y z \\\\\n &= 0^j 0^k 0^k 0^{p-(j+k)} 1^p \\\\\n &= 0^{p+k} 1^p\n\\end{aligned}\n$$\n\nFor the string \\( 0^{p+k} 1^p \\) to be in \\( C \\), the number of 0s must be equal to the number of 1s. In other words, \\( p + k \\) must be equal to \\( p \\). This requires \\( k \\) to be 0. But since \\( k \\) must be greater than 0, \\( xy^2 z \\notin C \\) \u2014 contradiction. Therefore, \\( C \\) is not regular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1308, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "61cbfd59-0d36-4e50-aef1-e5d5c430075b": {"__data__": {"id_": "61cbfd59-0d36-4e50-aef1-e5d5c430075b", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a9587dee-3cb3-4ece-b0ea-3b2f376171c2", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "05651f98c77b67e5edf73277fa3b0212340698cad4974d29a4d5445864a5d726", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that $$D = \\{ w \\mid w \\text{ has more number of 0s than number of 1s} \\}$$ is not regular.\n\n* As usual, assume that \\(D\\) is regular and followed by the statement from the Pumping lemma\n* If you pick \\( s = 0^{2p}1^p \\), you will not get a contradiction\n - \\( x = 0^j \\) for any \\( j \\geq 0 \\)\n - \\( y = 0^k \\) for any \\( k > 0 \\)\n - \\( z = 0^{2p-(j+k)}1^p \\)\n* For \\( i \\geq 2 \\) in \\( xy^iz \\), you add more 0s which makes the result string still have more 0s than 1s\n* For \\( i = 0 \\)\n - \\( xy^0z = xz = 0^j 0^{2p-(j+k)} 1^p = 0^{2p-k} 1^p \\)\n - If \\( k \\) is 1, \\( 2p - 1 > p \\) (the number of 0s is greater than the number of 1s) \u2014 no contradiction\n - If \\( k \\) is \\( p - 1 \\), \\( 2p - (p - 1) = p + 1 > p \\) \u2014 no contradiction\n - Note that \\( 0 < k \\leq p \\) from (2) and (3)\n - If there is a \\( k \\) that works, no contradiction", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 864, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "71493d7e-106b-4e9c-883a-92b1a118af65": {"__data__": {"id_": "71493d7e-106b-4e9c-883a-92b1a118af65", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b2e83e5e-2b85-4e9a-a91b-15c4707616bb", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "f01749674286db15ed580973bcf825c44a2b796063ef9390e81f137d080a7314", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let\u2019s try $$s = 1^p 0^{2p}$$. Note that $$s \\in D$$ and $$|s| \\ge p$$.\n - Again, to satisfy (2) and (3), we have\n - $$x = 1^j$$ for any $$j \\ge 0$$\n - $$y = 1^k$$ for any $$k > 0$$\n - $$z = 1^{p-(j+k)} 0^{2p}$$\n - We have \n $$\n xy^i z = 1^j (1^k)^i 1^{p-(j+k)} 0^{2p} = 1^{p + ki - k} 0^{2p}\n $$\n - If we increase $$i$$, we increase the number of 1s\n - To get a contradiction, we need the number of 1s to be greater than or equal to the number of 0s\n - In other words, \n $$\n p + ki - k \\ge 2p\n $$\n $$\n ki - k \\ge p\n $$\n $$\n k(i - 1) \\ge p\n $$\n $$\n i - 1 \\ge \\frac{p}{k}\n $$\n $$\n i \\ge \\left(\\frac{p}{k}\\right) + 1\n $$\n - $$xy^{(p/k)+1} z = 1^{2p} 0^{2p} \\notin D$$ \u2014 **contradiction**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f150b3f1-82bc-4d41-84bf-662b826242ad": {"__data__": {"id_": "f150b3f1-82bc-4d41-84bf-662b826242ad", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f42795b4-e940-4b2c-b6fd-1b90d8a4fe18", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "79ed0742ea5c2c9afefc4ce24359cc15051053c94e20910d5838d5db765798e8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Show that \n$$D = \\{ w \\mid w \\text{ has more number of 0s than number of 1s} \\}$$ \nis not regular\n\nAssume that \\(D\\) is regular. Since \\(D\\) is regular, the Pumping lemma says that for any string \\(s \\in D\\) of length at least \\(p\\), \\(s\\) can be divided into \\(s = xyz\\) satisfying the following conditions:\n\n1. \\(xy^iz \\in D\\) for any \\(i \\geq 0\\) \n2. \\(|y| > 0\\) \n3. \\(|xy| \\leq p\\) \n\nLet \\(s = 1^p 0^{p+1}\\). Since \\(s\\) starts with \\(p\\) 1s, to satisfy the third condition, \\(x\\) and \\(y\\) are strings that contain nothing but 1s. In other words, \\(x = 1^j\\) for any \\(j \\geq 0\\), and \\(y = 1^k\\) for any \\(k > 0\\). Note that \\(k\\) must be greater than 0 because \\(|y| = |1^k| = k\\), and condition 2 says that \\(|y| > 0\\). Since \\(x = 1^j\\) and \\(y = 1^k\\), \n\\(z = 1^{p-(j+k)} 0^{p+1}\\). Let \\(i = 2\\). We have\n\n\\[\nxy^iz = xy^2z = xyyz = 1^j 1^k 1^k 1^{p-(j+k)} 0^{p+1} = 1^{p+k} 0^{p+1}\n\\]\n\nFor the string \\(1^{p+k} 0^{p+1}\\) to be in \\(D\\), the number of 0s must be greater than the number of 1s. In other words, \\(p + 1\\) must be greater than \\(p + k\\). This requires \\(k\\) to be 0. But since \\(k\\) must be greater than 0, \n\\(xy^2z \\notin D\\) \u2014 contradiction. Therefore, \\(D\\) is not regular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1210, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f896cab0-ca11-4e57-97e1-15a2cc79d2d4": {"__data__": {"id_": "f896cab0-ca11-4e57-97e1-15a2cc79d2d4", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ce60d42f-774c-45be-8f82-8234614b496c", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "b8ab388a86aeb1a3ad85b5801b0c0f94202834fd260ef50ff2d3892ef111c7bc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Rule of Thumb\n\n* If a condition of the language is about inequality ($<, \\leq, >, \\geq$), pick a string that is right at the border line to break the condition \n * $$D = \\{ w \\mid w \\text{ has more number of 0s than number of 1s} \\}$$ \n * $1^p 0^{p+1}$ needs $xy^2z$ to add at least one 1 \n * $0^p 1^{p-1}$ needs $xy^0z$ to take out at least one 0 \n * No need to find a large value of $i$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 399, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "89d08691-b7d4-4c1d-9988-e9bc477dc78c": {"__data__": {"id_": "89d08691-b7d4-4c1d-9988-e9bc477dc78c", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fa4f7cd1-6aaf-4c36-8830-5c1991ce8c46", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "318421686bee4dac15006434f1ba311760e840ee0eeb2b44cf320daf527e7e40", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\nShow that $$E = \\{0^{(i^2)} \\mid i \\geq 0\\}$$ is not regular.\n\n* Let\u2019s try to understand this language first\n - If \\(i = 0\\), \\(0^{(0^2)} = 0^0 = \\varepsilon\\)\n - If \\(i = 1\\), \\(0^{(1^2)} = 0^1 = 0\\)\n - If \\(i = 2\\), \\(0^{(2^2)} = 0^4 = 0000\\)\n - If \\(i = 3\\), \\(0^{(3^2)} = 0^9 = 000000000\\), and so on\n\n* Thus, we have\n\n $$\n E = \\{ w \\mid w \\text{ contains nothing but 0s and} \\\\\n \\quad \\quad \\text{the number of 0s is } i^2 \\text{ for some } i \\geq 0 \\}\n $$\n\n* **Important:** You cannot pick \\(s = 0^p\\)\n - There is nothing to guarantee that \\(p = i^2\\) for some \\(i \\geq 0\\)\n - We need to pick \\(s = 0^{(p^2)}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 638, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "993b0fa1-7b50-411b-9997-526063978c50": {"__data__": {"id_": "993b0fa1-7b50-411b-9997-526063978c50", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ca27478f-f999-4258-95ea-2c39924b819f", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "3569c9829b94c81c7233a53bddd070cb37473565b1901498321c1b4d7e219b46", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that $$E = \\{0^{i^2} \\mid i \\geq 0\\}$$ is not regular.\n\n* As usual, assume that $$E$$ is regular and followed by the statement from the Pumping lemma\n* Let $$s = 0^{p^2}$$\n - Note that $$s \\in E$$ and\n - $$|s| = p^2 \\geq p.$$\n* From the second and third conditions ($|y| > 0$ and $|xy| \\leq p$), we have \n $$0 < |y| \\leq p$$\n* Note that since $$s = xyz$$ and $$|s| = p^2, \\quad |xyz| = p^2.$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 415, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1dc08559-a231-4fe7-8206-b4d80d0359ca": {"__data__": {"id_": "1dc08559-a231-4fe7-8206-b4d80d0359ca", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_07_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2b23393f-70b3-4d44-abde-b9c000d04556", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_07_handout.pdf"}, "hash": "6939a80640fdc7cefd7efea703dea4d6d92c73089d57e9ac47a2e154e14e1a9f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let\u2019s do some analysis about \\( xy^2 z \\)\n * \\( p^2 = |xyz| \\)\n * \\( |xyz| < |xy^2 z| = |xyyz| \\) because \\( |y| > 0 \\)\n * \\( |xyyz| = |xyz| + |y| = p^2 + |y| \\)\n * \\( p^2 + |y| \\leq p^2 + p \\) because \\( |y| \\leq p \\)\n * \\( p^2 + p < p^2 + 2p + 1 = (p + 1)^2 \\)\n\n* Note that the string \\( xy^2 z \\) can in \\( E \\) if \\( |xy^2 z| = q^2 \\) for some \\( q \\)\n\n* Above analysis shows that \\( p^2 < |xy^2 z| < (p + 1)^2 \\)\n\n* But there is no \\( q \\) such that \\( p^2 < q^2 < (p + 1)^2 \\)\n\n* Thus, \\( xy^2 z \\notin E \\) \u2014 contradiction\n\n* \\( E \\) is not regular", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 574, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8af965c1-d008-40bd-b22b-65286d760fd6": {"__data__": {"id_": "8af965c1-d008-40bd-b22b-65286d760fd6", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.5.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5cce898e-c4ba-4fe2-96f2-025fad7ce913", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.5.pdf"}, "hash": "cfc6df2e076de968e2a6fc752b5570ab64d43ff21ae38cf41b309669d12ba8f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Exercises 3.5\n\nIn Exercises 1, 2, 3, and 4, let \\( S \\) be the collection of vectors \n\\[\n\\begin{bmatrix} x \\\\ y \\end{bmatrix}\n\\]\nin \\(\\mathbb{R}^2\\) that satisfy the given property. In each case, either prove that \\( S \\) forms a subspace of \\(\\mathbb{R}^2\\) or give a counterexample to show that it does not.\n\n1. \\( x = 0 \\)\n\n2. \\( x \\geq 0, y \\geq 0 \\)\n\n3. \\( y = 2x \\)\n\n4. \\( xy \\geq 0 \\)\n\nIn Exercises 5, 6, 7, and 8, let \\( S \\) be the collection of vectors \n\\[\n\\begin{bmatrix} x \\\\ y \\\\ z \\end{bmatrix}\n\\]\nin \\(\\mathbb{R}^3\\) that satisfy the given property. In each case, either prove that \\( S \\) forms a subspace of \\(\\mathbb{R}^3\\) or give a counterexample to show that it does not.\n\n5. \\( x = y = z \\)\n\n6. \\( z = 2x, y = 0 \\)\n\n7. \\( x - y + z = 1 \\)\n\n8. \\( |x - y| = |y - z| \\)\n\n9. Prove that every line through the origin in \\(\\mathbb{R}^3\\) is a subspace of \\(\\mathbb{R}^3\\).\n\n10. Suppose \\( S \\) consists of all points in \\(\\mathbb{R}^2\\) that are on the \\( x \\)-axis or the \\( y \\)-axis (or both). (\\( S \\) is called the *union* of the two axes.) Is \\( S \\) a subspace of \\(\\mathbb{R}^2\\)? Why or why not?\n\nIn Exercises 11 and 12, determine whether **b** is in \\(\\mathrm{col}(A)\\) and whether **w** is in \\(\\mathrm{row}(A)\\), as in Example 3.41.\n\n11. \n\\[\nA = \\begin{bmatrix} 1 & 0 & -1 \\\\ 1 & 1 & 1 \\end{bmatrix}, \\quad \\mathbf{b} = \\begin{bmatrix} 3 \\\\ 2 \\end{bmatrix}, \\quad \\mathbf{w} = [-1 \\quad 1 \\quad 1]\n\\]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1431, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c64b6ee7-1e25-47c5-b07e-dabb9bab3006": {"__data__": {"id_": "c64b6ee7-1e25-47c5-b07e-dabb9bab3006", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.5.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1b3e1f01-c706-4ee0-88da-684c66521545", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.5.pdf"}, "hash": "44a068abd8813020ba9e896d01b80dfc79b083a64c2ca2f6af58139f70ac2907", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "12. \n$$\nA = \\begin{bmatrix}\n1 & 1 & -1 \\\\\n1 & 3 & 0 \\\\\n3 & -1 & -5\n\\end{bmatrix}, \\quad\n\\mathbf{b} = \\begin{bmatrix}\n1 \\\\\n2 \\\\\n1\n\\end{bmatrix}, \\quad\n\\mathbf{w} = [1 \\quad -3 \\quad -3]\n$$\n\n13. In Exercise 11, determine whether **w** is in row(\\(A\\)), using the method described in the Remark following Example 3.41.\n\n14. In Exercise 12, determine whether **w** is in row(\\(A\\)), using the method described in the Remark following Example 3.41.\n\n15. \nIf \\(A\\) is the matrix in Exercise 11, is \n$$\n\\mathbf{v} = \\begin{bmatrix}\n-1 \\\\\n3 \\\\\n-1\n\\end{bmatrix}\n$$\nin null(\\(A\\))?\n\n16. \nIf \\(A\\) is the matrix in Exercise 12, is \n$$\n\\mathbf{v} = \\begin{bmatrix}\n7 \\\\\n-1 \\\\\n2\n\\end{bmatrix}\n$$\nin null(\\(A\\))?\n\nIn Exercises 17, 18, 19, and 20, give bases for row(\\(A\\)), col(\\(A\\)), and null(\\(A\\)).\n\n17. \n$$\nA = \\begin{bmatrix}\n1 & 0 & -1 \\\\\n1 & 1 & 1\n\\end{bmatrix}\n$$\n\n18. \n$$\nA = \\begin{bmatrix}\n1 & 1 & -1 \\\\\n1 & 5 & 1 \\\\\n1 & -1 & -2\n\\end{bmatrix}\n$$\n\n19. \n$$\nA = \\begin{bmatrix}\n1 & 1 & 0 & 1 \\\\\n0 & 1 & -1 & 1 \\\\\n0 & 1 & -1 & -1\n\\end{bmatrix}\n$$\n\n20. \n$$\nA = \\begin{bmatrix}\n3 & -6 & -1 & 0 & -2 \\\\\n2 & -4 & 0 & 2 & 1 \\\\\n1 & -2 & 1 & 4 & 4\n\\end{bmatrix}\n$$\n\nIn Exercises 21, 22, 23, and 24, find bases for row(\\(A\\)) and col(\\(A\\)) in the given exercises using \\(A^T\\).\n\n21. \n$$\nA = \\begin{bmatrix}\n1 & 0 & -1 \\\\\n1 & 1 & 1\n\\end{bmatrix}\n$$\n\n22. \n$$\nA = \\begin{bmatrix}\n1 & 1 & -1 \\\\\n1 & 5 & 1 \\\\\n1 & -1 & -2\n\\end{bmatrix}\n$$\n\n23. \n$$\nA = \\begin{bmatrix}\n1 & 1 & 0 & 1 \\\\\n0 & 1 & -1 & 1 \\\\\n0 & 1 & -1 & -1\n\\end{bmatrix}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1526, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6ea020d7-d092-4a18-89c5-108637e539e1": {"__data__": {"id_": "6ea020d7-d092-4a18-89c5-108637e539e1", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.5.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a6802d02-2f18-453b-acda-a82718dbe52e", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.5.pdf"}, "hash": "25bd25a4dd15e21ff0fdbeda44c6ba045c32613dde3781a0e88bff6562ad2d87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "24. \n$$\nA = \\begin{bmatrix}\n3 & -6 & -1 & 0 & -2 \\\\\n2 & -4 & 0 & 2 & 1 \\\\\n1 & -2 & 1 & 4 & 4\n\\end{bmatrix}\n$$\n\n25. Explain carefully why your answers to Exercises 17 and 21 are both correct even though there appear to be differences.\n\n26. Explain carefully why your answers to Exercises 18 and 22 are both correct even though there appear to be differences.\n\nIn Exercises 27, 28, 29, and 30, find a basis for the span of the given vectors.\n\n27. \n$$\n\\begin{bmatrix}\n1 \\\\\n-1 \\\\\n0\n\\end{bmatrix},\n\\quad\n\\begin{bmatrix}\n-1 \\\\\n0 \\\\\n1\n\\end{bmatrix},\n\\quad\n\\begin{bmatrix}\n0 \\\\\n1 \\\\\n-1\n\\end{bmatrix}\n$$\n\n28. \n$$\n\\begin{bmatrix}\n1 \\\\\n1 \\\\\n1\n\\end{bmatrix},\n\\quad\n\\begin{bmatrix}\n2 \\\\\n1 \\\\\n0\n\\end{bmatrix},\n\\quad\n\\begin{bmatrix}\n0 \\\\\n1 \\\\\n1\n\\end{bmatrix},\n\\quad\n\\begin{bmatrix}\n1 \\\\\n2 \\\\\n2\n\\end{bmatrix}\n$$\n\n29. \n$$\n[2 \\quad -3 \\quad 1], \\quad [1 \\quad -1 \\quad 0], \\quad [4 \\quad -4 \\quad 1]\n$$\n\n30. \n$$\n[3 \\quad 1 \\quad -1 \\quad 0], \\quad [0 \\quad -1 \\quad 2 \\quad -1], \\quad [4 \\quad 3 \\quad 8 \\quad 3]\n$$\n\nFor Exercises 31 and 32, find bases for the spans of the vectors in the given exercises from among the vectors themselves.\n\n31. \n$$\n[2 \\quad -3 \\quad 1], \\quad [1 \\quad -1 \\quad 0], \\quad [4 \\quad -4 \\quad 1]\n$$\n\n32. \n$$\n[3 \\quad 1 \\quad -1 \\quad 0], \\quad [0 \\quad -1 \\quad 2 \\quad -1], \\quad [4 \\quad 3 \\quad 8 \\quad 3]\n$$\n\n33. Prove that if \\( R \\) is a matrix in echelon form, then a basis for \\(\\text{row}(R)\\) consists of the nonzero rows of \\( R \\).\n\n34. Prove that if the columns of \\( A \\) are linearly independent, then they must form a basis for \\(\\text{col}(A)\\).\n\nFor Exercises 35, 36, 37, and 38, give the rank and the nullity of the matrices in the given exercises.\n\n35. \n$$\nA = \\begin{bmatrix}\n1 & 0 & -1 \\\\\n1 & 1 & 1\n\\end{bmatrix}\n$$\n\n36. \n$$\nA = \\begin{bmatrix}\n1 & 1 & -1 \\\\\n1 & 5 & 1 \\\\\n1 & -1 & -2\n\\end{bmatrix}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1844, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "455668e0-baed-4f3a-aac7-31e8a08f8ee1": {"__data__": {"id_": "455668e0-baed-4f3a-aac7-31e8a08f8ee1", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.5.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "73152520-c96d-44a3-b318-c7b46f501e6a", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.5.pdf"}, "hash": "86b86fe8ccda24f2fed9431de64908ebf2f91ecba2448dfb2a53fd5499d8a726", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "37. \n$$\nA = \\begin{bmatrix}\n1 & 1 & 0 & 1 \\\\\n0 & 1 & -1 & 1 \\\\\n0 & 1 & -1 & -1\n\\end{bmatrix}\n$$\n\n38. \n$$\nA = \\begin{bmatrix}\n3 & -6 & -1 & 0 & -2 \\\\\n2 & -4 & 0 & 2 & 1 \\\\\n1 & -2 & 1 & 4 & 4\n\\end{bmatrix}\n$$\n\n39. If \\( A \\) is a \\( 3 \\times 5 \\) matrix, explain why the columns of \\( A \\) must be linearly dependent.\n\n40. If \\( A \\) is a \\( 4 \\times 2 \\) matrix, explain why the rows of \\( A \\) must be linearly dependent.\n\n41. If \\( A \\) is a \\( 3 \\times 5 \\) matrix, what are the possible values of \\(\\text{nullity}(A)\\)?\n\n42. If \\( A \\) is a \\( 4 \\times 2 \\) matrix, what are the possible values of \\(\\text{nullity}(A)\\)?\n\nIn Exercises 43 and 44, find all possible values of \\(\\text{rank}(A)\\) as \\( a \\) varies.\n\n43. \n$$\nA = \\begin{bmatrix}\n1 & 2 & a \\\\\n-2 & 4a & 2 \\\\\na & -2 & 1\n\\end{bmatrix}\n$$\n\n44. \n$$\nA = \\begin{bmatrix}\na & 2 & -1 \\\\\n3 & 3 & -2 \\\\\n-2 & -1 & a\n\\end{bmatrix}\n$$\n\nAnswer Exercises 45, 46, 47, and 48 by considering the matrix with the given vectors as its columns.\n\n45. \nDo \n$$\n\\begin{bmatrix} 1 \\\\ 1 \\\\ 0 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 1 \\\\ 0 \\\\ 1 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 0 \\\\ 1 \\\\ 1 \\end{bmatrix}\n$$\nform a basis for \\(\\mathbb{R}^3\\)?\n\n46. \nDo \n$$\n\\begin{bmatrix} 1 \\\\ -1 \\\\ 2 \\end{bmatrix}, \\quad\n\\begin{bmatrix} -2 \\\\ 1 \\\\ -5 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 1 \\\\ 1 \\\\ 4 \\end{bmatrix}\n$$\nform a basis for \\(\\mathbb{R}^3\\)?\n\n47. \nDo \n$$\n\\begin{bmatrix} 1 \\\\ 1 \\\\ 1 \\\\ 0 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 1 \\\\ 1 \\\\ 0 \\\\ 1 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 1 \\\\ 0 \\\\ 1 \\\\ 1 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 0 \\\\ 1 \\\\ 1 \\\\ 1 \\end{bmatrix}\n$$\nform a basis for \\(\\mathbb{R}^4\\)?\n\n48. \nDo \n$$\n\\begin{bmatrix} 1 \\\\ 1 \\\\ 1 \\\\ 1 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 1 \\\\ -1 \\\\ 1 \\\\ 1 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 1 \\\\ 1 \\\\ -1 \\\\ 1 \\end{bmatrix}, \\quad\n\\begin{bmatrix} 1 \\\\ 1 \\\\ 1 \\\\ -1 \\end{bmatrix}\n$$\nform a basis for \\(\\mathbb{R}^4\\)?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1900, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6d1efbd-b938-439f-a17d-f2f3fe98e6ed": {"__data__": {"id_": "a6d1efbd-b938-439f-a17d-f2f3fe98e6ed", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.5.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c5cdd5d4-6cae-4b2c-9b03-e023963379c5", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.5.pdf"}, "hash": "118f2e0ca68591e7444e860e7b56b2ca0749fa2d65444c6d8c640ec6d2386837", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "49. \nDo \n$$\\begin{bmatrix} 1 \\\\ 1 \\\\ 0 \\end{bmatrix}, \\quad \\begin{bmatrix} 0 \\\\ 1 \\\\ 1 \\end{bmatrix}, \\quad \\begin{bmatrix} 1 \\\\ 0 \\\\ 1 \\end{bmatrix}$$ \nform a basis for \\(\\mathbb{Z}_2^3\\)?\n\n50. \nDo \n$$\\begin{bmatrix} 1 \\\\ 1 \\\\ 0 \\end{bmatrix}, \\quad \\begin{bmatrix} 0 \\\\ 1 \\\\ 1 \\end{bmatrix}, \\quad \\begin{bmatrix} 1 \\\\ 1 \\\\ 1 \\end{bmatrix}$$ \nform a basis for \\(\\mathbb{Z}_3^3\\)?\n\nIn Exercises 51 and 52, show that \\(\\mathbf{w}\\) is in \\(\\text{span}(\\mathcal{B})\\) and find the coordinate vector \\([\\mathbf{w}]_{\\mathcal{B}}\\).\n\n51. \n\\[\n\\mathcal{B} = \\left\\{ \\begin{bmatrix} 1 \\\\ 2 \\\\ 0 \\end{bmatrix}, \\quad \\begin{bmatrix} 1 \\\\ 0 \\\\ -1 \\end{bmatrix} \\right\\}, \\quad \\mathbf{w} = \\begin{bmatrix} 1 \\\\ 6 \\\\ 2 \\end{bmatrix}\n\\]\n\n52. \n\\[\n\\mathcal{B} = \\left\\{ \\begin{bmatrix} 3 \\\\ 1 \\\\ 4 \\end{bmatrix}, \\quad \\begin{bmatrix} 5 \\\\ 1 \\\\ 6 \\end{bmatrix} \\right\\}, \\quad \\mathbf{w} = \\begin{bmatrix} 1 \\\\ 3 \\\\ 4 \\end{bmatrix}\n\\]\n\nIn Exercises 53, 54, 55, and 56, compute the rank and nullity of the given matrices over the indicated \\(\\mathbb{Z}_p\\).\n\n53. \n\\[\n\\begin{bmatrix}\n1 & 1 & 0 \\\\\n0 & 1 & 1 \\\\\n1 & 0 & 1\n\\end{bmatrix} \\quad \\text{over } \\mathbb{Z}_2\n\\]\n\n54. \n\\[\n\\begin{bmatrix}\n1 & 1 & 2 \\\\\n2 & 1 & 2 \\\\\n2 & 0 & 0\n\\end{bmatrix} \\quad \\text{over } \\mathbb{Z}_3\n\\]\n\n55. \n\\[\n\\begin{bmatrix}\n1 & 3 & 1 & 4 \\\\\n2 & 3 & 0 & 1 \\\\\n1 & 0 & 4 & 0\n\\end{bmatrix} \\quad \\text{over } \\mathbb{Z}_5\n\\]\n\n56. \n\\[\n\\begin{bmatrix}\n2 & 4 & 0 & 0 & 1 \\\\\n6 & 3 & 5 & 1 & 0 \\\\\n1 & 0 & 2 & 2 & 5 \\\\\n1 & 1 & 1 & 1 & 1\n\\end{bmatrix} \\quad \\text{over } \\mathbb{Z}_7\n\\]\n\n57. If \\(A\\) is \\(m \\times n\\), prove that every vector in \\(\\text{null}(A)\\) is orthogonal to every vector in \\(\\text{row}(A)\\).\n\n58. If \\(A\\) and \\(B\\) are \\(n \\times n\\) matrices of rank \\(n\\), prove that \\(AB\\) has rank \\(n\\).\n\n59. \n(a) Prove that \\(\\text{rank}(AB) \\leq \\text{rank}(B)\\). **[Hint:** Review Exercise 29 in Section 3.1.**]**\n\n(b) Give an example in which \\(\\text{rank}(AB) < \\text{rank}(B)\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1969, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6c73f7b-51e4-479b-8a39-6edbbd67efbd": {"__data__": {"id_": "a6c73f7b-51e4-479b-8a39-6edbbd67efbd", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/linalg-exercise3.5.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "730b7232-7bf9-4779-bbb8-d3aa655008b8", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/linalg-exercise3.5.pdf"}, "hash": "61e9b3541cb8324206e9d885558701ffd44e35cb5243789518f3b0cb5287d080", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "60. \n(a) Prove that \\(\\operatorname{rank}(AB) \\leq \\operatorname{rank}(A)\\). **[Hint:** Review Exercise 30 in Section 3.1 or use transposes and Exercise 59(a).**]**\n\n(b) Give an example in which \\(\\operatorname{rank}(AB) < \\operatorname{rank}(A)\\).\n\n61. \n(a) Prove that if \\(U\\) is invertible, then \\(\\operatorname{rank}(UA) = \\operatorname{rank}(A)\\). **[Hint:** \\(A = U^{-1}(UA)\\).**]**\n\n(b) Prove that if \\(V\\) is invertible, then \\(\\operatorname{rank}(AV) = \\operatorname{rank}(A)\\).\n\n62. Prove that a nonzero \\(m \\times n\\) matrix \\(A\\) has rank 1 if and only if \\(A\\) can be written as the outer product \\(\\mathbf{u}\\mathbf{v}^T\\) of a vector \\(\\mathbf{u} \\neq \\mathbf{0}\\) in \\(\\mathbb{R}^m\\) and \\(\\mathbf{v} \\neq \\mathbf{0}\\) in \\(\\mathbb{R}^n\\).\n\n63. If an \\(m \\times n\\) matrix \\(A\\) has rank \\(r\\), prove that \\(A\\) can be written as the sum of \\(r\\) matrices, each of which has rank 1. **[Hint:** Find a way to use Exercise 62.**]**\n\n64. Prove that, for \\(m \\times n\\) matrices \\(A\\) and \\(B\\), \n\\[\n\\operatorname{rank}(A + B) \\leq \\operatorname{rank}(A) + \\operatorname{rank}(B).\n\\]\n\n65. Let \\(A\\) be an \\(n \\times n\\) matrix such that \\(A^2 = O\\). Prove that \n\\[\n\\operatorname{rank}(A) \\leq \\frac{n}{2}.\n\\] \n**[Hint:** Show that \\(\\operatorname{col}(A) \\subseteq \\operatorname{null}(A)\\) and use the Rank Theorem.**]**\n\n66. Let \\(A\\) be a skew-symmetric \\(n \\times n\\) matrix. (Refer to page 145.)\n\n(a) Prove that \n\\[\n\\mathbf{x}^T A \\mathbf{x} = 0\n\\] \nfor all \\(\\mathbf{x}\\) in \\(\\mathbb{R}^n\\).\n\n(b) Prove that \\(I + A\\) is invertible. **[Hint:** Show that \\(\\operatorname{null}(I + A) = \\{\\mathbf{0}\\}\\).**]**\n\n----\n\nChapter 3: Matrices: Exercises 3.5 \nBook Title: Linear Algebra: A Modern Introduction \nPrinted By: Amir Valizadeh (amv214@pitt.edu) \n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\n\n\u00a9 2025 Cengage Learning Inc. All rights reserved. No part of this work may be reproduced or used in any form or by any means - graphic, electronic, or mechanical, or in any other manner - without the written permission of the copyright holder.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2075, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6a962772-98f0-4acc-a32c-baca453ad7b2": {"__data__": {"id_": "6a962772-98f0-4acc-a32c-baca453ad7b2", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.4.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fce1dc6f-ec26-4afa-a285-686cfc4ca177", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.4.pdf"}, "hash": "174bc8a7f11e928ac35168db0fdb164b968982c42d41637d0919b1b4af23d06b", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "d364f5e0-5e49-43b4-ad39-56ac7b1c0222", "node_type": "1", "metadata": {}, "hash": "ac17104e4624a1041cd2bc52fdee5d550612ed58d44cc869c3c7ea331b586c9e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Exercises 3.4\n\nIn Exercises 1, 2, 3, 4, 5, and 6, solve the system $$\\mathbf{Ax} = \\mathbf{b}$$ using the given \\(LU\\) factorization of \\(A\\).\n\n1. \n$$\nA = \\begin{bmatrix} -2 & 1 \\\\ 2 & 5 \\end{bmatrix} \n= \\begin{bmatrix} 1 & 0 \\\\ -1 & 1 \\end{bmatrix}\n\\begin{bmatrix} -2 & 1 \\\\ 0 & 6 \\end{bmatrix}, \\quad\n\\mathbf{b} = \\begin{bmatrix} 5 \\\\ 1 \\end{bmatrix}\n$$\n\n2. \n$$\nA = \\begin{bmatrix} 4 & -2 \\\\ 2 & 3 \\end{bmatrix} \n= \\begin{bmatrix} 1 & 0 \\\\ \\frac{1}{2} & 1 \\end{bmatrix}\n\\begin{bmatrix} 4 & -2 \\\\ 0 & 4 \\end{bmatrix}, \\quad\n\\mathbf{b} = \\begin{bmatrix} 0 \\\\ 8 \\end{bmatrix}\n$$\n\n3. \n$$\nA = \\begin{bmatrix} 2 & 1 & -2 \\\\ -2 & 3 & -4 \\\\ 4 & -3 & 0 \\end{bmatrix} \n= \\begin{bmatrix} 1 & 0 & 0 \\\\ -1 & 1 & 0 \\\\ 2 & -\\frac{5}{4} & 1 \\end{bmatrix}\n\\begin{bmatrix} 2 & 1 & -2 \\\\ 0 & 4 & -6 \\\\ 0 & 0 & -\\frac{7}{2} \\end{bmatrix}, \\quad\n\\mathbf{b} = \\begin{bmatrix} -3 \\\\ 1 \\\\ 0 \\end{bmatrix}\n$$\n\n4. \n$$\nA = \\begin{bmatrix} 2 & -4 & 0 \\\\ 3 & -1 & 4 \\\\ -1 & 2 & 2 \\end{bmatrix} \n= \\begin{bmatrix} 1 & 0 & 0 \\\\ \\frac{3}{2} & 1 & 0 \\\\ -\\frac{1}{2} & 0 & 1 \\end{bmatrix}\n\\begin{bmatrix} 2 & -4 & 0 \\\\ 0 & 5 & 4 \\\\ 0 & 0 & 2 \\end{bmatrix}, \\quad\n\\mathbf{b} = \\begin{bmatrix} 2 \\\\ 0 \\\\ -5 \\end{bmatrix}\n$$\n\n5. \n$$\nA = \\begin{bmatrix} 2 & -1 & 0 & 0 \\\\ 6 & -4 & 5 & -3 \\\\ 8 & -4 & 1 & 0 \\\\ 4 & -1 & 0 & 7 \\end{bmatrix} \n= \\begin{bmatrix} 1 & 0 & 0 & 0 \\\\ 3 & 1 & 0 & 0 \\\\ 4 & 0 & 1 & 0 \\\\ 2 & -1 & 5 & 1 \\end{bmatrix}\n\\begin{bmatrix} 2 & -1 & 0 & 0 \\\\ 0 & -1 & 5 & -3 \\\\ 0 & 0 & 1 & 0 \\\\ 0 & 0 & 0 & 4 \\end{bmatrix}, \\quad\n\\mathbf{b} = \\begin{bmatrix} 1 \\\\ 2 \\\\ 2 \\\\ 1 \\end{bmatrix}\n$$\n\n6.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d364f5e0-5e49-43b4-ad39-56ac7b1c0222": {"__data__": {"id_": "d364f5e0-5e49-43b4-ad39-56ac7b1c0222", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.4.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fce1dc6f-ec26-4afa-a285-686cfc4ca177", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.4.pdf"}, "hash": "174bc8a7f11e928ac35168db0fdb164b968982c42d41637d0919b1b4af23d06b", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "6a962772-98f0-4acc-a32c-baca453ad7b2", "node_type": "1", "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.4.pdf"}, "hash": "c60661a0842f9751c4a265bdd0faac2f7ac11d50d153cf6b7bfed92bf28dcdb6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\nA = \\begin{bmatrix} 1 & 4 & 3 & 0 \\\\ -2 & -5 & -1 & 2 \\\\ 3 & 6 & -3 & -4 \\\\ -5 & -8 & 9 & 9 \\end{bmatrix} \n= \\begin{bmatrix} 1 & 0 & 0 & 0 \\\\ -2 & 1 & 0 & 0 \\\\ 3 & -2 & 1 & 0 \\\\ -5 & 4 & -2 & 1 \\end{bmatrix}\n\\begin{bmatrix} 1 & 4 & 3 & 0 \\\\ 0 & 3 & 5 & 2 \\\\ 0 & 0 & -2 & 0 \\\\ 0 & 0 & 0 & 1 \\end{bmatrix}, \\quad\n\\mathbf{b} = \\begin{bmatrix} 1 \\\\ -3 \\\\ -1 \\\\ 0 \\end{bmatrix}\n$$", "mimetype": "text/plain", "start_char_idx": 1577, "end_char_idx": 1955, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b354e15f-b3ad-4a67-b892-ee0dac7738dd": {"__data__": {"id_": "b354e15f-b3ad-4a67-b892-ee0dac7738dd", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.4.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f2753149-ca16-467d-891d-375ac1605089", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.4.pdf"}, "hash": "0bce8f0470a474f5db7261cc39c323a6e722c242661db24ed7bdc0ff05bbbffa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "In Exercises 7, 8, 9, 10, 11, and 12, find an \\(LU\\) factorization of the given matrix.\n\n7. \n\\[\n\\begin{bmatrix}\n1 & 2 \\\\\n-3 & -1\n\\end{bmatrix}\n\\]\n\n8. \n\\[\n\\begin{bmatrix}\n2 & -4 \\\\\n3 & 1\n\\end{bmatrix}\n\\]\n\n9. \n\\[\n\\begin{bmatrix}\n1 & 2 & 3 \\\\\n4 & 5 & 6 \\\\\n8 & 7 & 9\n\\end{bmatrix}\n\\]\n\n10. \n\\[\n\\begin{bmatrix}\n2 & 2 & -1 \\\\\n4 & 0 & 4 \\\\\n3 & 4 & 4\n\\end{bmatrix}\n\\]\n\n11. \n\\[\n\\begin{bmatrix}\n1 & 2 & 3 & -1 \\\\\n2 & 6 & 3 & 0 \\\\\n0 & 6 & -6 & 7 \\\\\n-1 & -2 & -9 & 0\n\\end{bmatrix}\n\\]\n\n12. \n\\[\n\\begin{bmatrix}\n2 & 2 & 2 & 1 \\\\\n-2 & 4 & -1 & 2 \\\\\n4 & 4 & 7 & 3 \\\\\n6 & 9 & 5 & 8\n\\end{bmatrix}\n\\]\n\nGeneralize the definition of \\(LU\\) factorization to nonsquare matrices by simply requiring \\(U\\) to be a matrix in row echelon form. With this modification, find an \\(LU\\) factorization of the matrices in Exercises 13 and 14.\n\n13. \n\\[\n\\begin{bmatrix}\n1 & 0 & 1 & -2 \\\\\n0 & 3 & 3 & 1 \\\\\n0 & 0 & 0 & 5\n\\end{bmatrix}\n\\]\n\n14. \n\\[\n\\begin{bmatrix}\n1 & 2 & 0 & -1 & 1 \\\\\n-2 & -7 & 3 & 8 & -2 \\\\\n1 & 1 & 3 & 5 & 2 \\\\\n0 & 3 & -3 & -6 & 0\n\\end{bmatrix}\n\\]\n\nFor an invertible matrix with an \\(LU\\) factorization \\(A = LU\\), both \\(L\\) and \\(U\\) will be invertible and \\(A^{-1} = U^{-1}L^{-1}\\). In Exercises 15 and 16, find \\(L^{-1}\\), \\(U^{-1}\\), and", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1231, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "673b9a54-3e9f-4ba0-a4e3-b04b75b03d37": {"__data__": {"id_": "673b9a54-3e9f-4ba0-a4e3-b04b75b03d37", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.4.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4a444f75-6e18-4482-b589-05a6390afdfe", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.4.pdf"}, "hash": "518e91f0f47a5f3c2a6576b4c6cecf5639523fa5cf590c364e85af57c8f98f9f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "15. \\( A \\) in \n\\[\nA = \\begin{bmatrix} -2 & 1 \\\\ 2 & 5 \\end{bmatrix} = \\begin{bmatrix} 1 & 0 \\\\ -1 & 1 \\end{bmatrix} \\begin{bmatrix} -2 & 1 \\\\ 0 & 6 \\end{bmatrix}, \\quad \\mathbf{b} = \\begin{bmatrix} 5 \\\\ 1 \\end{bmatrix}\n\\]\n\n16. \\( A \\) in \n\\[\nA = \\begin{bmatrix} 2 & -4 & 0 \\\\ 3 & -1 & 4 \\\\ -1 & 2 & 2 \\end{bmatrix} = \\begin{bmatrix} 1 & 0 & 0 \\\\ \\frac{3}{2} & 1 & 0 \\\\ -\\frac{1}{2} & 0 & 1 \\end{bmatrix} \\times \\begin{bmatrix} 2 & -4 & 0 \\\\ 0 & 5 & 4 \\\\ 0 & 0 & 2 \\end{bmatrix}, \\quad \\mathbf{b} = \\begin{bmatrix} 2 \\\\ 0 \\\\ -5 \\end{bmatrix}\n\\]\n\nThe inverse of a matrix can also be computed by solving several systems of equations using the method of Example 3.34. For an \\( n \\times n \\) matrix \\( A \\), to find its inverse we need to solve \n$$\nAX = I_n\n$$ \nfor the \\( n \\times n \\) matrix \\( X \\). Writing this equation as \n$$\nA[\\mathbf{x}_1 \\quad \\mathbf{x}_2 \\quad \\cdots \\quad \\mathbf{x}_n] = [\\mathbf{e}_1 \\quad \\mathbf{e}_2 \\quad \\cdots \\quad \\mathbf{e}_n],\n$$ \nusing the matrix-column form of \\( AX \\), we find that we need to solve \\( n \\) systems of linear equations:\n$$\nA\\mathbf{x}_1 = \\mathbf{e}_1, \\quad A\\mathbf{x}_2 = \\mathbf{e}_2, \\ldots, A\\mathbf{x}_n = \\mathbf{e}_n.\n$$ \nMoreover, we can use the factorization \n$$\nA = LU\n$$ \nto solve each one of these systems.\n\nIn Exercises 17 and 18, use the approach just outlined to find \\( A^{-1} \\) for the given matrix. Compare with the method of Exercises 15 and 16.\n\n17. \\( A \\) in \n\\[\nA = \\begin{bmatrix} -2 & 1 \\\\ 2 & 5 \\end{bmatrix} = \\begin{bmatrix} 1 & 0 \\\\ -1 & 1 \\end{bmatrix} \\begin{bmatrix} -2 & 1 \\\\ 0 & 6 \\end{bmatrix}, \\quad \\mathbf{b} = \\begin{bmatrix} 5 \\\\ 1 \\end{bmatrix}\n\\]\n\n18. \\( A \\) in \n\\[\nA = \\begin{bmatrix} 2 & -4 & 0 \\\\ 3 & -1 & 4 \\\\ -1 & 2 & 2 \\end{bmatrix} = \\begin{bmatrix} 1 & 0 & 0 \\\\ \\frac{3}{2} & 1 & 0 \\\\ -\\frac{1}{2} & 0 & 1 \\end{bmatrix} \\times \\begin{bmatrix} 2 & -4 & 0 \\\\ 0 & 5 & 4 \\\\ 0 & 0 & 2 \\end{bmatrix}, \\quad \\mathbf{b} = \\begin{bmatrix} 2 \\\\ 0 \\\\ -5 \\end{bmatrix}\n\\]\n\nIn Exercises 19, 20, 21, and 22, write the given permutation matrix as a product of elementary (row interchange) matrices.\n\n19.\n\\[\n\\begin{bmatrix}\n0 & 0 & 1 \\\\\n1 & 0 & 0 \\\\\n0 & 1 & 0\n\\end{bmatrix}\n\\]\n\n20.\n\\[\n\\begin{bmatrix}\n0 & 0 & 0 & 1 \\\\\n0 & 0 & 1 & 0 \\\\\n0 & 1 & 0 & 0 \\\\\n1 & 0 & 0 & 0\n\\end{bmatrix}\n\\]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2279, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "02130206-5772-49c0-bd8e-24b1a1c1b1e3": {"__data__": {"id_": "02130206-5772-49c0-bd8e-24b1a1c1b1e3", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.4.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8003e391-f392-42eb-bdc4-e036de0cc1b5", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.4.pdf"}, "hash": "3f3b95efe7846c196e51244cb9424faa3cf222853907177366b25b1b953067b1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\n21. \\quad\n\\begin{bmatrix}\n0 & 1 & 0 & 0 \\\\\n0 & 0 & 0 & 1 \\\\\n1 & 0 & 0 & 0 \\\\\n0 & 0 & 1 & 0\n\\end{bmatrix}\n$$\n\n$$\n22. \\quad\n\\begin{bmatrix}\n0 & 0 & 1 & 0 & 0 \\\\\n1 & 0 & 0 & 0 & 0 \\\\\n0 & 0 & 0 & 1 & 0 \\\\\n0 & 0 & 0 & 0 & 1 \\\\\n0 & 1 & 0 & 0 & 0\n\\end{bmatrix}\n$$\n\nIn Exercises 23, 24, and 25, find a \\( P^T LU \\) factorization of the given matrix \\( A \\).\n\n$$\n23. \\quad A = \\begin{bmatrix}\n0 & 1 & 4 \\\\\n-1 & 2 & 1 \\\\\n1 & 3 & 3\n\\end{bmatrix}\n$$\n\n$$\n24. \\quad A = \\begin{bmatrix}\n0 & 0 & 1 & 2 \\\\\n-1 & 1 & 3 & 2 \\\\\n0 & 2 & 1 & 1 \\\\\n1 & 1 & -1 & 0\n\\end{bmatrix}\n$$\n\n$$\n25. \\quad A = \\begin{bmatrix}\n0 & -1 & 1 & 3 \\\\\n-1 & 1 & 1 & 2 \\\\\n0 & 1 & -1 & 1 \\\\\n0 & 0 & 1 & 1\n\\end{bmatrix}\n$$\n\n26. Prove that there are exactly \\( n! \\) \\( n \\times n \\) permutation matrices.\n\nIn Exercises 27 and 28, solve the system \\( A \\mathbf{x} = \\mathbf{b} \\) using the given factorization \\( A = P^T LU \\). Because \\( PP^T = I \\), \\( P^T LU \\mathbf{x} = \\mathbf{b} \\) can be rewritten as \\( LU \\mathbf{x} = P \\mathbf{b} \\). This system can then be solved using the method of Example 3.34.\n\n$$\n27. \\quad A = \\begin{bmatrix}\n0 & 1 & -1 \\\\\n2 & 3 & 2 \\\\\n1 & 1 & -1\n\\end{bmatrix}\n= \n\\begin{bmatrix}\n0 & 1 & 0 \\\\\n1 & 0 & 0 \\\\\n0 & 0 & 1\n\\end{bmatrix}\n\\begin{bmatrix}\n1 & 0 & 0 \\\\\n0 & 1 & 0 \\\\\n\\frac{1}{2} & -\\frac{1}{2} & 1\n\\end{bmatrix}\n\\times\n\\begin{bmatrix}\n2 & 3 & 2 \\\\\n0 & 1 & -1 \\\\\n0 & 0 & -\\frac{5}{2}\n\\end{bmatrix}\n= P^T LU,\n\\quad\n\\mathbf{b} = \\begin{bmatrix}\n1 \\\\\n1 \\\\\n5\n\\end{bmatrix}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1465, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6516802-0f51-442f-b3d1-67b17610390e": {"__data__": {"id_": "a6516802-0f51-442f-b3d1-67b17610390e", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.4.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5b4f9cdf-d59a-4374-bb7e-9c62710639b6", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.4.pdf"}, "hash": "cce209f748f8dddde728ffc7400ddcd01b796242e354c17d7e7b4db4569c4690", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\n28. \\quad A = \n\\begin{bmatrix}\n8 & 3 & 5 \\\\\n4 & 1 & 2 \\\\\n4 & 0 & 3\n\\end{bmatrix}\n= \n\\begin{bmatrix}\n0 & 1 & 0 \\\\\n0 & 0 & 1 \\\\\n1 & 0 & 0\n\\end{bmatrix}\n\\begin{bmatrix}\n1 & 0 & 0 \\\\\n1 & 1 & 0 \\\\\n2 & -1 & 1\n\\end{bmatrix}\n\\times\n\\begin{bmatrix}\n4 & 1 & 2 \\\\\n0 & -1 & 1 \\\\\n0 & 0 & 2\n\\end{bmatrix}\n= P^T L U,\n$$\n\n$$\n\\mathbf{b} = \n\\begin{bmatrix}\n16 \\\\\n-4 \\\\\n4\n\\end{bmatrix}\n$$\n\n29. Prove that a product of unit lower triangular matrices is unit lower triangular.\n\n30. Prove that every unit lower triangular matrix is invertible and that its inverse is also unit lower triangular.\n\nAn \\textbf{\\textit{LDU factorization}} of a square matrix \\( A \\) is a factorization \\( A = L D U \\), where \\( L \\) is a unit lower triangular matrix, \\( D \\) is a diagonal matrix, and \\( U \\) is a unit upper triangular matrix (upper triangular with 1s on its diagonal). In Exercises 31 and 32, find an \\textit{LDU} factorization of \\( A \\).\n\n$$\n31. \\quad A \\text{ in } A = \n\\begin{bmatrix}\n-2 & 1 \\\\\n2 & 5\n\\end{bmatrix}\n= \n\\begin{bmatrix}\n1 & 0 \\\\\n-1 & 1\n\\end{bmatrix}\n\\begin{bmatrix}\n-2 & 1 \\\\\n0 & 6\n\\end{bmatrix},\n\\quad \\mathbf{b} = \n\\begin{bmatrix}\n5 \\\\\n1\n\\end{bmatrix}\n$$\n\n$$\n32. \\quad A \\text{ in } A = \n\\begin{bmatrix}\n2 & -4 & 0 \\\\\n3 & -1 & 4 \\\\\n-1 & 2 & 2\n\\end{bmatrix}\n= \n\\begin{bmatrix}\n1 & 0 & 0 \\\\\n\\frac{3}{2} & 1 & 0 \\\\\n- \\frac{1}{2} & 0 & 1\n\\end{bmatrix}\n\\times\n\\begin{bmatrix}\n2 & -4 & 0 \\\\\n0 & 5 & 4 \\\\\n0 & 0 & 2\n\\end{bmatrix},\n\\quad \\mathbf{b} = \n\\begin{bmatrix}\n2 \\\\\n0 \\\\\n-5\n\\end{bmatrix}\n$$\n\n33. If \\( A \\) is symmetric and invertible and has an \\textit{LDU} factorization, show that \n$$\nU = L^T.\n$$\n\n34. If \\( A \\) is symmetric and invertible and \n$$\nA = L D L^T\n$$\n(with \\( L \\) unit lower triangular and \\( D \\) diagonal), prove that this factorization is unique. That is, prove that if we also have \n$$\nA = L_1 D_1 L_1^T\n$$\n(with \\( L_1 \\) unit lower triangular and \\( D_1 \\) diagonal), then \n$$\nL = L_1 \\quad \\text{and} \\quad D = D_1.\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1940, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "313aec9a-8acf-4ea8-88d8-fd8839f7ec6a": {"__data__": {"id_": "313aec9a-8acf-4ea8-88d8-fd8839f7ec6a", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8c4aacca-a606-4419-9582-63f7c920afcc", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "0bf1ec91fd74a24763be82adff7a5bae99b5a01c7f62e26a3428c044d49417a2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Turing Machine 03\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 69, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b0eb17d0-2641-49d8-8fc4-06a5fb0f965a": {"__data__": {"id_": "b0eb17d0-2641-49d8-8fc4-06a5fb0f965a", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1745efb8-7677-4aeb-baf8-a0ce8c84d00b", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "08251d995ef9b2918dd9239b5bc642356285b81e4fe35bc4fb6e7aa5265d4324", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Combining Turing Machines\n\n* A Turing machine represents an algorithm \n* Generally an algorithm can be described as a number of smaller algorithms working in combination \n* Similarly, we can combine several Turing machines into a larger one \n* Example, two Turing machines \\( T_1 \\) and \\( T_2 \\) sharing the same tape: \n - When \\( T_1 \\) finishes (either in the accept or reject state), \\( T_2 \\) takes over \n - This new machine is represented by \\( T_1 T_2 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 471, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "064c8e96-5f3a-46ad-aeba-448c97777fc2": {"__data__": {"id_": "064c8e96-5f3a-46ad-aeba-448c97777fc2", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "740a39fd-f3f9-46c6-9b73-87f8e8ae8bd5", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "4a9835112f5336cdb93a8a84f96dc8cbb96d7f4c65d2650bc89b6966631e51ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Combining Turing Machines\n\n* Suppose we have two Turing machines: \n $$T_1 = (Q_1, \\Sigma, \\Gamma, \\delta_1, q^{1}_{start}, q^{1}_{accept}, q^{1}_{reject})$$ and \n $$T_2 = (Q_2, \\Sigma, \\Gamma, \\delta_2, q^{2}_{start}, q^{2}_{accept}, q^{2}_{reject})$$\n\n* Let \n $$T = (Q, \\Sigma, \\Gamma, \\delta, q_{start}, q_{accept}, q_{reject})$$ \n be \\(T_1 T_2\\) which can be constructed as follows: \n - \\(Q = Q_1 \\cup Q_2\\) (states of \\(T_2\\) are relabeled if necessary) \n - Initial state of \\(T\\) is the initial state of \\(T_1\\) \\((q_{start} = q^{1}_{start})\\) \n - \\(\\delta = \\delta_1 \\cup \\delta_2\\) except those of \\(T_1\\) that go to \\(q^{1}_{accept}\\) and \\(q^{1}_{reject}\\)\n\n* A transition \n \\[\n q \\xrightarrow{x \\to y, D} q^{1}_{a}\n \\]\n in \\(T_1\\) becomes \n \\[\n q \\xrightarrow{x \\to y, D} q^{2}_{s}\n \\]\n where \\(q^{1}_{a}\\) is the accept state of \\(T_1\\) and \\(q^{2}_{s}\\) is the start state of \\(T_2\\).\n\n - If \\(T_1\\) enters its accept state, \\(T_2\\) takes over. The moves that cause \\(T\\) to accept are precisely those that cause \\(T_2\\) to accept. \n - However, if \\(T_1\\) enters the reject state and halts, so does \\(T\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1147, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5b8adcf0-21e7-46b8-92db-6cc410bbec68": {"__data__": {"id_": "5b8adcf0-21e7-46b8-92db-6cc410bbec68", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f615f675-b7e8-4a17-ad49-08e88ad98a1b", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "d995989a63536fd73a1cece82bb4472972456d5dd5464883d53354ebaa0a936d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Suppose we want to create a machine that recognize a palindrome (e.g., racecar)\n* Suppose we have the following Turing machines:\n - *Copy*: From \\(\\sqcup x\\) to \\(\\sqcup x \\sqcup x\\)\n - *NB*: Moves tape head to the next blank symbol to the right\n - *PB*: Moves tape head to the next blank symbol to the left\n - *R*: Reverses the content of the tape from \\(\\sqcup x\\) to \\(\\sqcup x^r\\)\n - \\(x^r\\) is the reverse of a string \\(x\\)\n - *Equal*: Compare two strings separated by a blank symbol\n* For simplicity, we put the blank symbol on the first square of the tape to indicate the left-end of the tape.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 622, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9805a311-511a-4b27-bd95-4eb342075d80": {"__data__": {"id_": "9805a311-511a-4b27-bd95-4eb342075d80", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fdaae3d2-5b84-4f71-93d0-c27b16a5197e", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "a331690773a9560eaeed8ee6e0649265196ac6e86bde06360c77002a699a052b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let the content of a tape be $\\sqcup x$ where $x$ is a string\n* The following machine will accept if $x$ is a palindrome: \n $$Copy \\to NB \\to R \\to PB \\to Equal$$\n* Step by Step:\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
MachineTape
Start\u2193 $\\sqcup x$
Copy\u2193 $\\sqcup x \\sqcup x$
NB$\\sqcup x \u2193 \\sqcup x$
R$\\sqcup x \u2193 \\sqcup x^r$
PB\u2193 $\\sqcup x \\sqcup x^r$
Equal$\\sqcup x \\sqcup x^r \u2193 \\sqcup$
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 658, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a2143cdc-e9d2-4908-a7ef-e1a9ba13535e": {"__data__": {"id_": "a2143cdc-e9d2-4908-a7ef-e1a9ba13535e", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "eab7eead-8afe-4734-b370-bdb375c2f381", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "73518efc8605f7ebfdfe2a2d6f13a6eec899452568ed8e65b501d8df7d228c2a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Multitape Turing Machines\n\n* A Turing machine can have multiple tape and tape heads:\n\n\n \n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n \n\n \n\n\n\n\n \n
01010\u25af\u22ef
Maaa\u25af\u22ef
ba\u25af\u22ef
\n\n* All tape heads can read then write and move in a single Turing machine step", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 521, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7d5b5f88-0c9d-4f3e-b726-af02c5a31c25": {"__data__": {"id_": "7d5b5f88-0c9d-4f3e-b726-af02c5a31c25", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ea37d9c1-e0f5-4793-8558-3806f8f8bd2b", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "22df1b49eb4d407f6f4fa406cf4e2858a1643400affce25cff20477b87f2a8f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Multitape Turing Machines\n\n* Transition function need to control/make decision based on symbols read from all tapes \n* Example: A transition function of a three-tape TM:\n\n$$\n\\delta(q, x, y, z) \\to (r, a, b, c, R, L, R)\n$$\n\n - Current state is \\( q \\), the first tape reads \\( x \\), the second tape reads \\( y \\), and the third tape reads \\( z \\) \n - Change the current state to \\( r \\) \n - Write \\( a \\) on to the first tape, write \\( b \\) onto the second tape, and write \\( c \\) onto the third tape \n - Move the first tape head to the right direction, move the second tape head to the left direction, and move the third tape head to the right direction \n\n* Multitape TMs are suitable for algorithms in which several kinds of data are involved", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 755, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "094546fc-9079-45c1-9f0b-add2c310c6fa": {"__data__": {"id_": "094546fc-9079-45c1-9f0b-add2c310c6fa", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e85e602f-37c2-475d-a6eb-393dc47a1d9c", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "c91e01bb9dc3a2988ace3c801e8f137379f6b573fecfdeb6433de9e26736ad59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Multitape to One-Tape\n\nA multitape Turing machine from previous slide, can be convert into one-tape Turing machine as shown below:\n\n```\nS\n# 0 \ud835\udfed 0 \ud835\udfed 0 # a a \u2022 a # \u2022 b a #\n```\n\n* Use `#` symbol to separate content between tapes \n* Use `\u2022` to indicate the current position of each tape head \n* One move of multitape machine will be equal to several moves of one-tape machine \n* For example, \n $$\n \\delta(q, 1, a, b) \\to (r, 0, b, a, L, L, R)\n $$ \n will be \n 1. Move to the next `\u2022` on the right, write `0`, move to the left square, write `\u2022` over the symbol, and move to the right square \n 2. Move to the next `\u2022` on the right, write `b`, move to the left square, write `\u2022` over the symbol, and move to the right square \n 3. Move to the next `\u2022` on the right, write `b`, move to the right square, write `\u2022` over the symbol, and move to the left-end", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 863, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "04471d1a-a7bb-4245-8ec1-5ffeb2a51ab4": {"__data__": {"id_": "04471d1a-a7bb-4245-8ec1-5ffeb2a51ab4", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ca66ac90-4fc3-4b0a-abed-08edce25372b", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "705f2620386d568b01ee082c54de67ee210654f845534bffbad4da95c9f432ff", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Multitape to One-Tape\n\n* Recall that a tape will be filled with blank after the last symbol of the string on the tape\n\n```\n M\n 0 1 0 1 0 \u2423\n a a a \u2423\n b a \u2423\n\n S\n# 0 1 0 1 0 # a a a # b a # \u2423\n```\n\n* From the above multi-tape TM, if the second tape head needs to move to the right direction, it should be on top of a blank symbol\n - But on a single-tape TM, it will be on top of the `#` symbol\n - Single-tape TM must **insert** the blank symbol with a dot at the `#`\n* Every multitape TM has an equivalent single-tape TM (slower)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b12ba6e4-9629-479a-b947-83012986cc97": {"__data__": {"id_": "b12ba6e4-9629-479a-b947-83012986cc97", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dbe39631-bd9d-4a62-932e-8e3a2053bf48", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "00de9bc1a7ca33f1e244201928d2e4ca7d924d42485628217772e60bf5a9554d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Nondeterministic Turing Machine\n\n* Similar to Nondeterministic Finite Automata (NFA) \n - Processing one input symbol results in one or more machine. \n - $$\\delta : Q \\times \\Gamma \\to \\mathcal{P}(Q \\times \\Gamma \\times \\{L, R\\})$$ \n - Computation is a tree similar to NFA\n\n* For a nondeterministic Turing machine (NTM): \n - If a branch is in the accept state, the machine accepts the input string \n - If all branches are in the reject state, the machine rejects the input string \n - If no branch is in the accept state and at least one branch enter an infinite loop, the machine loops indefinitely on the input string\n\n> **Theorem 3.16** \n> Every nondeterministic Turing machine has an equivalent deterministic Turing machine.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 742, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1470dcfd-e56a-45d6-bded-4f611be7aca7": {"__data__": {"id_": "1470dcfd-e56a-45d6-bded-4f611be7aca7", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f7ae5db8-fef5-4fb6-b2ad-afb312cf3c2d", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "d8e7ed760a526f6221db037c2b7c13c2f3e11f9a78e0861af1b37089f070c975", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof Idea\n\n> **Theorem 3.16 Rewording** \n> For every nondeterministic TM \n> $$ T = (Q, \\Sigma, \\Gamma, \\delta, q_{start}, q_{accept}, q_{reject}) $$ \n> there is an ordinary (deterministic) TM \n> $$ T' = (Q', \\Sigma, \\Gamma', \\delta', q'_{start}, q'_{accept}, q'_{reject}) $$ \n> with \n> $$ L(T') = L(T). $$\n\n* Recall that \n $$ \\delta : Q \\times \\Gamma \\to \\mathcal{P}(Q \\times \\Gamma \\times \\{L, R\\}) $$ \n - Processing a tape alphabet at a state may result in multiple machines \n - The upper bound of the number of machines is \n $$ |Q| \\times |\\Gamma| \\times |\\{L, R\\}| $$ \n - For simplicity, assume that for every combination of nonhalting state and tape symbol, there are exactly two moves (split to two machines)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 734, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "35e27975-fd30-4268-96de-0cac6f36a7f8": {"__data__": {"id_": "35e27975-fd30-4268-96de-0cac6f36a7f8", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "93fb6c04-173e-431e-9437-27019e2d30d8", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "6931e97e1b03267624be1c17bc1a9ca01ae6e7f8c4d38f4c5317fe2550180b7f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof Idea\n\n* Computational Tree of a TM on an input\n\n```mermaid\ngraph TD\n A(( )) -->|0| B(( ))\n A -->|1| C(( ))\n B -->|0| D(( ))\n B -->|1| E(( ))\n C -->|0| F(( ))\n C -->|1| G(( ))\n D -->|0| H(( ))\n D -->|1| I(( ))\n E -->|0| J(( ))\n E -->|1| K(( ))\n F -->|0| L(( ))\n F -->|1| M(( ))\n G -->|0| N(( ))\n G -->|1| O(( ))\n H -->|0| P(( ))\n H -->|1| Q(( ))\n I -->|0| R(( ))\n I -->|1| S(( ))\n J -->|0| T(( ))\n J -->|1| U(( ))\n K -->|0| V(( ))\n K -->|1| W(( ))\n L -->|0| X(( ))\n L -->|1| Y(( ))\n M -->|0| Z(( ))\n M -->|1| AA(( ))\n N -->|0| AB(( ))\n N -->|1| AC(( ))\n O -->|0| AD(( ))\n O -->|1| AE(( ))\n P -->|0| AF(( ))\n P -->|1| AG(( ))\n Q -->|0| AH(( ))\n Q -->|1| AI(( ))\n R -->|0| AJ(( ))\n R -->|1| AK(( ))\n S -->|0| AL(( ))\n S -->|1| AM(( ))\n T -->|0| AN(( ))\n T -->|1| AO(( ))\n U -->|0| AP(( ))\n U -->|1| AQ(( ))\n V -->|0| AR(( ))\n V -->|1| AS(( ))\n W -->|0| AT(( ))\n W -->|1| AU(( ))\n X -->|0| AV(( ))\n X -->|1| AW(( ))\n Y -->|0| AX(( ))\n Y -->|1| AY(( ))\n Z -->|0| AZ(( ))\n Z -->|1| BA(( ))\n AA -->|0| BB(( ))\n AA -->|1| BC(( ))\n AB -->|0| BD(( ))\n AB -->|1| BE(( ))\n AC -->|0| BF(( ))\n AC -->|1| BG(( ))\n AD -->|0| BH(( ))\n AD -->|1| BI(( ))\n AE -->|0| BJ(( ))\n AE -->|1| BK(( ))\n click B \"javascript:void(0)\" \"blue branch start\"\n click E \"javascript:void(0)\" \"blue branch\"\n click K \"javascript:void(0)\" \"blue branch\"\n click R \"javascript:void(0)\" \"blue branch\"\n```\n\n* The branch in blue behaves like a deterministic TM \n* The move follows the path in blue can be represented by `0110` \n - Use `0110` as a guideline to simulate a branch", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1740, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ac03c541-18e1-4456-9b9e-7cc261161704": {"__data__": {"id_": "ac03c541-18e1-4456-9b9e-7cc261161704", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b029384c-bc4c-444f-be95-86b3fc5614c6", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "8a78233d4e0b867cfac9a850575c956d09ba7ab89c9e92a75c3c4d4bfcdbdc9c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof Idea\n\n* Suppose a deterministic TM picks a branch and simulate it\n - If that branch ends in the accept state, the NTM accepts the input string\n - If that branch ends in the reject state, no conclusion\n * If another branch is in the accept state, NTM accepts the input string\n * If all other branches are in the reject state, NTM rejects the input string\n * If no branch is in the accept state and at least one branch enter infinite loop, NTM loops indefinitely on the input string\n - If that branch enter infinite loop, the simulation will not end\n * We do not always know that a TM has enter an infinite loop\n * Even if we know that it enters an infinite loop, we still cannot conclude whether NTM accepts or rejects the input string\n\n* Machine \\( T' \\) that simulate an NTM will have to test all possible moves (level order, breadth first search)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 875, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aea2dd2b-066e-4b77-95bd-24f1c2ea5c27": {"__data__": {"id_": "aea2dd2b-066e-4b77-95bd-24f1c2ea5c27", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d170b1e5-96e4-4e84-a7db-c7af7c317b50", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "47540aaa71240ae9920cbbbc7ba0844719dd28dd141abde3ce35a0abf25c2d1a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof Idea\n\n* Machine \\( T' \\) consists of four tapes \n - Tape 1 will be the input string and its contents never change \n - Tape 2 contain the binary string that represents the sequence of moves we are currently testing. (e.g., \\( 0110_{\\sqcup} \\)) \n - Tape 3 is the working tape of a copy of NTM \n - Tape 4 keeps track of all possible reject sequences \n* If a sequence of moves result in the accept state, \\( T' \\) accepts the input string \n* If all possible sequence of the same length end in the reject state, \\( T' \\) rejects the input string \n* If NTM loops indefinitely on the input string, the simulation will also loop indefinitely \n* Since \\( T' \\) is a multitape Turing machine, there is an equivalent single-tape Turing machine", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 753, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "145da6de-e1a9-4c66-801f-94304e939a92": {"__data__": {"id_": "145da6de-e1a9-4c66-801f-94304e939a92", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ad247c6e-989d-456b-a419-17faa183291f", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "8446b7bb3fa07cf5ef6cc6c9245095cc24aeeacb92e8e95bcfde993e4896c1b6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Universal Turing Machine\n\n* A universal TM is a TM that can run another TM on an input string\n* Imagine a multi-tape TM:\n - Tape 1 contains the formal definition of a TM \\( M \\), followed by a # symbol, and an input string \\( w \\)\n - Tape 2 will be a working tape for TM \\( M \\)\n - Tape 3 will be used to keep track of the current state of TM \\( M \\)\n* Initially:\n - Copy input string \\( w \\) to tape 2\n - Put the start state of TM \\( M \\) onto tape 3\n* To run a step, simply search for \\(\\delta(q, a)\\) in the formal definition of TM \\( M \\)\n - \\( q \\) is the current state of tape 3\n - \\( a \\) is the symbol under the second tape head \n and update tapes 2 and 3 until tape 3 contains \\( q_{accept} \\) or \\( q_{reject} \\)\n* A universal TM will loop indefinitely if the TM that it is running loops indefinitely", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 822, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a0dcdd8d-55fb-458f-8312-60e96b156240": {"__data__": {"id_": "a0dcdd8d-55fb-458f-8312-60e96b156240", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/turing_machine_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "556df3eb-5e75-4c12-8f9d-871b41a201c5", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/turing_machine_03_handout.pdf"}, "hash": "016141bb2c7fd9f7cfa8f6d4629658ffb7d94120e0361a121cc94bb547a6c879", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Church-Turing Thesis\n\n* To say that the Turing machine is a general model of computation means that any algorithmic procedure that can be carried out at all, by a human computer or a team of humans or an electronic computer, can be carried out by a Turing machine.\n* Note that a Turing machine depends on low-level operations\n - A complex algorithm is simply a series of simple instruction (e.g., assembly) that involve\n * sophisticated logic (state machine) or\n * complex bookkeeping (tape/memory) strategies\n* **An algorithm is a procedure that can be carried out by a Turing machine.**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 602, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "022dde97-a10d-4dd6-8259-12c832150616": {"__data__": {"id_": "022dde97-a10d-4dd6-8259-12c832150616", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6016b247-2949-49ed-95c3-4928a84a50e0", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "c38fa752f0d11a8ddce12738581bc72806871ac1e795545e297cace794a73524", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L05 Model-based Engineering\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 174, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1fcf48db-498e-411c-9c8f-d69122133465": {"__data__": {"id_": "1fcf48db-498e-411c-9c8f-d69122133465", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8f44c98b-f497-4533-b75f-d9821704864a", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "af7ccc2b463950852af7f566ed3b65c636fea79076d0a85f461b020ab8decbc3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - [http://scrum.org/])(http://scrum.org/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1384, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b9df3f83-eb76-44b8-ab9a-589a52997667": {"__data__": {"id_": "b9df3f83-eb76-44b8-ab9a-589a52997667", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "afea7eb3-328d-4efc-8adf-52fcfb87fd91", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "33cb66f560e9a639548090ebaf9392efdba4362a14ad2bff32ff6db730a8debb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have a better understanding of the user vs enduser \n* You understand how to extract relevant information from a problem statement \n* You have an overview of requirements engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 208, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fded6829-6d93-4b34-9de9-b951e37a5589": {"__data__": {"id_": "fded6829-6d93-4b34-9de9-b951e37a5589", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3cf97fea-2309-4345-8d25-53588bc9586b", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "8854b1f4e1655a65c8c33eb7a8fd459f244d375a9531fad0148de629cf0bb07c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n\u27a1\ufe0f The importance of abstraction \n* Intro to model-based engineering \n* Intro to requirements engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 127, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a1869168-5a40-40ae-bf05-2de24be45cf0": {"__data__": {"id_": "a1869168-5a40-40ae-bf05-2de24be45cf0", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3100c93a-47d4-4f60-ad05-ee2843f4a783", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "d4be91ea8991269ee0736ef1776ebd5e3ad2f0b5e71bc6ee340d2c523703eb2b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Designing software systems\n\n* Internal representation of external reality\n* Typically\n\nDesigner / Developer \n[thought bubble with a snowflake on a smartphone]\n\n\u2192 (smartphone with an ice skate and a red alert symbol) \u2192 \n\nCustomer \n[thought bubble with an ice cream cone on a smartphone]\n\n----\n\nUniversity of Pittsburgh \n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L03 Model-based & intro to Engineering \nCS 1530 - L05 Scrum abstraction", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 447, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f27e688d-6004-4025-b26f-4ddb1ef222fa": {"__data__": {"id_": "f27e688d-6004-4025-b26f-4ddb1ef222fa", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b6f042b7-f885-488b-940d-39e4ce001fd5", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "513961bd4649755f10f7fdb8b1184d1156dfe5a84bd5891a48c345e5bcfdf206", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Problems with system integrations\n\n* Communication issues\n* Wrong usage of available tools\n* Interface miscommunication\n* Antipatterns\n* Physical impossibility\n* Data inconsistencies\n* Dependency conflicts\n* Performance bottlenecks\n* Unforeseen compatibility issues\n* \u2026\n\n> **Holistic Approach:** \n> To solve problems, we need a holistic view of the entire system \n> * Creative thinking \n> * Cross-disciplinary", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 423, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eae233e2-2203-4d50-8f7b-482e8af4def9": {"__data__": {"id_": "eae233e2-2203-4d50-8f7b-482e8af4def9", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "94737efb-cd85-4e8c-89cf-e6c2c21043b3", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "2dd0080a7a030a39b415eb4966b6621cd4fbd4f9d5e742b1f0e35f0f76c5a16a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Understanding the problem\n\n* Engage with the customer about the problem scope and the requirements\n* Identify specific components of the problem to ensure a comprehensive understanding\n* **Divide-&-conquer!**\n - Break down complex problems into manageable, smaller components/pieces\n - Formulate a structured approach to tackle each component/piece individually\n* **Problem statements** aid in recognizing distinct entities and elements\n - They enable the identification of unique objects for effective problem-solving\n\n> \"Unique objects\" are distinct entities or components that have specific roles or attributes within a system. They typically contribute to the overall functionality of the system.\n\n**Basic assumption of software projects: project outcome cannot be produced in a single monolithic activity**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 817, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93562b12-8f81-45f5-ba40-bc6e13d1067f": {"__data__": {"id_": "93562b12-8f81-45f5-ba40-bc6e13d1067f", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ccbd441f-8799-4476-b6a5-3b1353e7a2f9", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "484ed04a349d0d209e8fe05250b798b5f522c32eb425da6cb150dca0037f41e0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\n* A problem statement is our **communication basis**\n* It is a *concise description of the issue that the system aims to address*\n* Usually, problem statements are documents that contain:\n - **Current situation:** What are the existing circumstances, if available\n - **Specification of functionality:** What capabilities are required?\n - **Delivery:** Where and how will the system be deployed?\n - **Customer expectations:** What are the customer\u2019s expectations and deliverables?\n - **Milestones:** Are there concrete delivery dates and project phases?\n - **Acceptance criteria:** What will we use to evaluate the system?\n\n**Problem Statement** \nWe need a way so that people can get from one location to another using multiple means of transport, based on their available options and preferences.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 825, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "78498733-b704-4ffc-aea8-6b7b28efaccc": {"__data__": {"id_": "78498733-b704-4ffc-aea8-6b7b28efaccc", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9aa025b7-5fc8-4b94-a35d-56001617d9f0", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "922ba8b86b4a3208a134fed2f489053692ef759d9de9337ea3062983699de142", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "77c05992-0f8f-4098-9b2c-0225933dc19e", "node_type": "1", "metadata": {}, "hash": "2f022ac24f7d5c92a20211691b551384732db38f66626d6b6ec76ffd82067094", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software systems are often very complex\n\n----\n\n*Privacy* \n- Author: Wassim Tani \n- ServiceType: Privacy aware data storage and processing in cloud \n- Time: 2009 \n- Aliases: PasS (a set of Protocols) \n\n*Value* \n- Author: Jingliang Chen et al. \n- Time: 2014 \n- ServiceType: Big data analysis \n- Aliases: VaaS (Jingliang Chen et al. 2014) \n\n*Education and Learning* \n- Author: Mohssen M. Alabbadi et al. \n- Time: 2011 \n- ServiceType: Education and Learning based on cloud \n- Aliases: ELaaS (Mohssen M. Alabbadi et al. 2011) \n\n*Videoconference* \n- Author: Pedro Rodriguez et al. \n- Time: 2009 \n- ServiceType: Videoconference \n- Aliases: VaaS (Pedro Rodriguez et al. 2009) \n\n----\n\n*Forensics* \n- Author: Anthony Smith et al. \n- Time: 2013 \n\n*Policing* \n- Author: Anthony Smith et al. \n- ServiceType: Cloud security policy \n- Time: 2013 \n\n*Automated Software Testing* \n- Author: George Candea \n- Time: 2010 \n- ServiceType: Automated software testing \n- Aliases: TaaS (Candea et al. 2010) \n\n*Everything* \n- Author: Robison et al. \n- Time: 2008 \n- Aliases: XaaS (Charith Perera et al. 2014) \n\n----\n\n*Virtual Routers* \n- Author: Marcelo R. Nascimento et al. \n- ServiceType: Virtual Routers based on Software Defined Networks \n- Time: 2011 \n\n*Telepresence* \n- Author: Cicic et al. \n- Time: 2014 \n- Aliases: TPaaS (Cicic et al. 2014) \n\n*Business* \n- Author: Rimal et al. \n- Time: 2009 \n\n*Database Management* \n- Author: Divyakant Agrawal et al. \n- ServiceType: Database management \n- Time: 2009 \n- Aliases: CaaS (Hong Cai et al. 2009) \n\n----\n\n*Media Network* \n- Author: Cicic et al. \n- Time: 2014 \n- Aliases: MNaaS (Cicic et al. 2014) \n\n*IP Network* \n- Author: Nascimento et al. \n- Time: 2011 \n\n*Consistency* \n- Author: Qin Liu et al. \n- Time: 2011 \n\n*Networking* \n- Author: Tao Feng et al. \n- Time: 2011 \n- ServiceType: Networking \n\n----\n\n*Cloud Monitoring* \n- Aliases: Monitoring as a service, MONaaS \n\n*Hybrid Network* \n- Author: Jin-ichi Mizusawa et al. \n- Time: 2011 \n- ServiceType: Hybrid network \n- Aliases: HaaS (Mizusawa et al. 2011) \n\n*IDE and Hosting* \n- ServiceType: IDE and code hosting \n- Time: 2011 \n- Author: Timo Aho et al. 2011 \n\n----\n\n*Threat* \n- Author: Tsai et al. \n- Time: 2012 \n\n*Hardware* \n- Author: Aymerich et al. \n- Time: 2008 \n\n*Cloud Services* \n- Author: Gillett et al. \n- Time: 2008 \n- ServiceType: Cloud Services \n\n*Content Delivery* \n- Author: Yichao Jin et al. \n- Time: 2014 \n- Aliases: GoDaaS (Yichao et al. 2014) \n\n----\n\n*General Services* \n- Author: Yichao et al. \n- Time: 2014 \n- Aliases: EaaS, aaS (readOnly) \n- Author: S. Robinson (Hewlett) (readOnly) \n- Description: string (readOnly) \n- ServiceType: string = anything (readOnly) \n- Time: 2008 (readOnly) \n\n*Disaster Tolerance* \n- Author: Shriram Rajagopalan et al. \n- Time: 2012 \n- ServiceType: Disaster Tolerance in cloud \n\n*Risk Assessment* \n- Author: Kaliski et al. \n- Time: 2010 \n- ServiceType: Risk assessment \n\n*Search* \n- Author: A. Singh et al.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 3043, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "77c05992-0f8f-4098-9b2c-0225933dc19e": {"__data__": {"id_": "77c05992-0f8f-4098-9b2c-0225933dc19e", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9aa025b7-5fc8-4b94-a35d-56001617d9f0", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "922ba8b86b4a3208a134fed2f489053692ef759d9de9337ea3062983699de142", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "78498733-b704-4ffc-aea8-6b7b28efaccc", "node_type": "1", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "94f2b4a1edf2aa9a1e657d5669c2d75011b851dc29f22821f985106fd22cf58e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "- Time: 2014 \n- Aliases: GoDaaS (Yichao et al. 2014) \n\n----\n\n*General Services* \n- Author: Yichao et al. \n- Time: 2014 \n- Aliases: EaaS, aaS (readOnly) \n- Author: S. Robinson (Hewlett) (readOnly) \n- Description: string (readOnly) \n- ServiceType: string = anything (readOnly) \n- Time: 2008 (readOnly) \n\n*Disaster Tolerance* \n- Author: Shriram Rajagopalan et al. \n- Time: 2012 \n- ServiceType: Disaster Tolerance in cloud \n\n*Risk Assessment* \n- Author: Kaliski et al. \n- Time: 2010 \n- ServiceType: Risk assessment \n\n*Search* \n- Author: A. Singh et al. \n- Time: 2009 \n- ServiceType: Search \n\n----\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L05 Model-based Engineering \nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 2476, "end_char_idx": 3188, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf510fba-a2bc-4c4f-8c4c-7e822b0bdb5c": {"__data__": {"id_": "bf510fba-a2bc-4c4f-8c4c-7e822b0bdb5c", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9de5ba0b-34b2-40fa-a7f2-011ec63f567a", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "9ebc9a58fc6d7cceffd9d520287b1fb24730d6ceb5b67df98982773275bc3eed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Managing complexity in complex systems \u2014 Abstraction\n\n* Complex systems are difficult or sometimes even impossible to understand \n* *\"The magical number* **_seven, plus or minus two_**\" \n - Human Brain Constraint \n Our immediate memory span covers 7 \u00b1 2 pieces of information at the same time \n - Widely applied in various fields to enhance information retention and usability \n - **[Example]** phone numbers _(not including the area code)_ \n - Miller\u2019s law \n* The **Chunking** technique \n - Group collection of objects to reduce complexity \n - **[Example]** instead of 5-6-5-1-9-7-4 chunk into 565-1974", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 624, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "afa252b6-cbc0-43e9-a469-f5df67841906": {"__data__": {"id_": "afa252b6-cbc0-43e9-a469-f5df67841906", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c41a95b5-bf00-4b26-a9f0-9a345256a65d", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "e66d262c7b8cb74bb1392b86ce065395348022821fdce8609978fc6f1c3ba968", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Abstraction is key\n\n* Allows us to hide unessential details and focus on essential aspects\n* Abstraction is a thought process (activity) where ideas are distanced from objects\n - E.g., We break a system into **layers** (UI, logic, storage) where each layer abstracts away details not necessary for the other layers to function\n* Abstraction is the result (entity) of a thought process\n* Abstractions can be expressed with a **model**\n\n[The image shows a silver espresso machine labeled \"CASABREWS\" with various knobs and two cups of espresso being brewed.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0a1fd5d3-e992-432f-9e02-68985d83b72c": {"__data__": {"id_": "0a1fd5d3-e992-432f-9e02-68985d83b72c", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e0c962c7-baa5-44e3-ab37-f91c53ef93c3", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "f794b4a71b1f11568cd5d91a74b84574c40c429c33c0830ed660442377e9d605", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* The importance of abstraction \n* Intro to model-based engineering \n* Intro to requirements engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 126, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa03d660-2f6d-4246-950a-47db56a8c4b6": {"__data__": {"id_": "fa03d660-2f6d-4246-950a-47db56a8c4b6", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "50e44d53-9560-4d5f-a75f-c8b18a5e9227", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "1c784cd1ba4edd83b9b143a0a7f68d98c2bca8385bef10b448fff178e0dcb851", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Models are abstractions of systems\n\n* An **existing system** \n - **[Example]** Integrate a feature or troubleshooting for Canvas or TopHat \n - Often used in reverse engineering of a system that lacks clear communication\n\n* A **system to be built** \n - **[Example]** Create user workflows/recommendation logic for a restaurant picker app \n - Most common: UML diagrams, wireframes, and state models\n\n* A **system that no longer exists** \n - **[Example]** Modeling legacy systems (Netscape web browser, MacDraw, Facebook Paper, \u2026) could help inform if a modern replacement / support documentation \n - Also useful for data migration, compliance, research", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 665, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3735f76e-7748-48f6-a5b0-adcd169a0e69": {"__data__": {"id_": "3735f76e-7748-48f6-a5b0-adcd169a0e69", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "73db9602-2ee1-4cef-8433-901e5dba4d2b", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "5c2996d3694663f2b2838d73ab6e14e976d1142270b2feb807658c3b14dee423", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Typical models in software engineering\n\n* **Functional model:** What are the functions of the system? (**use cases**)\n* **Object model:** What is the structure of the system? (**entities**)\n* **Dynamic model:** How does the system react to external events? (**activities**)\n\n* **System model:** object model + functional model + dynamic model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 345, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dce40eac-4033-4b74-b735-9b62bc62ad48": {"__data__": {"id_": "dce40eac-4033-4b74-b735-9b62bc62ad48", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2a2a5f27-063c-4db0-8a3d-12fecf8b4110", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "5658a315abf823c7d6d0ce3eacbe8e862db3ba2b259b84443610ce3fd866f831", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is **model-based engineering**?\n\n* Models are **abstract representations** of system behavior and structure \n* **Visual and standardized way** of presenting complex systems \n* Used to **design, analyze**, and **document systems** \n* Supports **iterative development** \n* Can be used as tool for **communication** between stakeholders \n - Also used in other fields, e.g., mechanical engineering \n\n> Models can help guide the development of systems. \n> E.g., the general code structure (important classes) can be derived from class diagrams", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 554, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c1af160c-09d3-4c32-af0c-cc9acc1bcdcd": {"__data__": {"id_": "c1af160c-09d3-4c32-af0c-cc9acc1bcdcd", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aa2731c1-86d5-45b4-8daa-b224bc3eb7b2", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "639accfa340d1e5a4236fbe4cc03a8ec8243ffc918c8e1092e847f83ef698d8b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem with models\n\n**Design Model** \n[Image of a smartphone with a snowflake icon] \n*Designer / Developer*\n\n**System Model** \n(System Image) \n[Image of a smartphone with an ice skate icon]\n\n**User Model** \n[Image of a smartphone with an ice cream cone icon] \n*Customer*\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 306, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9d157d34-052c-47b5-8b04-4b8f99612bca": {"__data__": {"id_": "9d157d34-052c-47b5-8b04-4b8f99612bca", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ac4dac7b-cc44-444d-be84-13ecbfc6b266", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "1701f4a440283865835be4065bfe23c51b18b25490f3b2fb2e1c042527196b91", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem with models\n\n**Design Model** \n[Image of a smartphone with an ice cream cone icon] \n*Designer / Developer*\n\n**User Model** \n[Image of a smartphone with an ice cream cone icon] \n*Customer*\n\n**System Model** \n(System Image) \n[Image of a smartphone with an ice cream cone icon]\n\n> Ideally, design, user, and system model are identical/overlap\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 382, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5136580f-c873-4979-88e1-4115c1964474": {"__data__": {"id_": "5136580f-c873-4979-88e1-4115c1964474", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bf9737d3-4054-4f2f-83d6-5fdcb2925d6b", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "f2ed4cd9de55866c8531b5b99995cabbb678e72c2e684f6960ae4a9566266059", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Mental models\n\n> *What users believe they know about a user interface impacts how they use it. Mismatched mental models are common, especially with designs that try something new.*\n\n* **User model** \u2014 *what the user thinks the system does* \n - The user\u2019s expectations of the system \n - Reflects how users perceive and understand the system \n\n* **Design model** \u2014 *what the developers intended the system to do* \n - Created by designers and developers based on the system\u2019s functionality \n - ~~Typically before coding begins~~ \n\n* **System image** \u2014 *what the system actually does/conveys through UI/behavior*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "02c5a5aa-e24b-43b2-ace7-0d5e6ede6a92": {"__data__": {"id_": "02c5a5aa-e24b-43b2-ace7-0d5e6ede6a92", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6a89546b-c389-4aaa-a279-886a20c9caab", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "5aab814c6452a0f09fb2e800dc95c7a4c80709c68641ed75274b927d30be0486", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] ATM - User Model Assumptions\n\n* Users expect an ATM to dispense cash quickly and securely after they input their PIN and select the amount\n* Assumptions\n - The ATM will process the user\u2019s request without delays\n - User can cancel a transaction at any point if needed\n - User\u2019s card will always be returned after use\n\n[The left image shows an ATM keypad with numbers 1 to 9, 0, and function keys ENTER, CLEAR, CANCEL. The right image shows an ATM dispensing cash with a keypad below it labeled with numbers 1 to 9, 0, 00, and buttons Cancel, Correct, Confirm.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a22299ad-171a-400e-9a2f-b531607ad11d": {"__data__": {"id_": "a22299ad-171a-400e-9a2f-b531607ad11d", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9ae10eef-c25a-4b53-861f-f17028b2402f", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "1f520e1200ede401c0f53ed2d38b3659fce6398c9abe3976656c448b9cbf7f07", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** ATM - Design Model (*simplified*)\n\n* Users will follow on-screen instructions/prompts carefully step-by-step\n* The system includes safeguards \n - (e.g., locks the card if a user inputs the wrong PIN multiple times)\n* Cash dispensing happens only after confirming sufficient account balance\n\n\n \n \n \n\n \n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n \n \n
CASH
[Image of $100 bills dispensing slot with visible serial number LF51713969A]
123Cancel
456Correct
789
000Confirm
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 750, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f9efefe-f719-4de3-92ee-e74dbc6d8fcd": {"__data__": {"id_": "9f9efefe-f719-4de3-92ee-e74dbc6d8fcd", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b31c209d-d66a-438c-afa5-ca4ad9a10f5e", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "bdc871b88f136c17bb248845a279a8d3c952a225d299f2d78e75a241708adbd5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] ATM - System Image (*simplified)\n\n* A series of prompts for language selection, PIN entry, and transaction type \n* A delay between PIN entry and the display of account options due to backend processing \n* A button for canceling a transaction \n\n[The image shows an ATM screen with an orange background and several buttons on the right side. The screen displays the following text and buttons:]\n\n- Text input box with the number: `2000`\n- Button labeled: `Return`\n- Button labeled: `Correct`\n- Button labeled: `Confirm`\n\nAdditional text on the screen: \n\"The commission will be deducted from your account balance by the issuing bank.\"\n\nBelow this text are some numbers and a website: \n`95574` \n`www.nbcb.com.cn`\n\nOn the right side of the screen, there are physical buttons aligned with the on-screen options.\n\nSource: https://languagelog.ldc.upenn.edu/~bgzimmer/atm.jpg", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 885, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c69f5b95-3af2-49a3-aee1-880349451fed": {"__data__": {"id_": "c69f5b95-3af2-49a3-aee1-880349451fed", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5c02af17-4305-4152-ab79-a7714eb348c5", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "5f2f5889ab0b88299333817d6ff0291feffc16f10a155881ab96534b59cf38ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problems with models\n\n* **Problem:** The more stakeholders involved, the more \"mental models\" exist \n - Requires extensive communication \n - Prone to misunderstandings \n\n* **Solution:** Use a **common language** to **abstract and describe problems** \n - Ensures a common understanding \n - Refactor models as needed", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 326, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bd5b07b9-8bb4-4913-872c-04b94267cd86": {"__data__": {"id_": "bd5b07b9-8bb4-4913-872c-04b94267cd86", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "26cf7402-bcbc-444b-a875-b45d91dd48cc", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "83f79136274255470f509974dd7ce944331e9139504183dac61fdbc5c9459cf0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Unified Modeling Language\n\n* Created in the late 1990s by a consortium of software companies \n* Became an official **standard** in 2005 by the Object Management Group (OMG) \n* UML diagrams provide a **visual representation** of an aspect of a system \n* UML includes a variety of diagram types for modeling different aspects of software systems \n - **Structural** diagrams \u2192 static structure \n - **Behavioral** diagrams \u2192 dynamic behavior \n - **Interaction** diagrams \u2192 interactions between objects or components \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n
Car
model
color
year
drive()
\n\n> UML class diagram", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 805, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "75eb406f-4bc3-470d-9385-cb119ae527ca": {"__data__": {"id_": "75eb406f-4bc3-470d-9385-cb119ae527ca", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6a052cab-bf70-4450-af2f-8580e6380cd3", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "fbea3267d497ce68a8dd06f2d5cacb7231625ffdf78bf46dde9d8f027a21096a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Why UML?\n\n* Reduces complexity by focusing on abstractions\n* Allows for a better organization of code\n* Provides a communication basis\n - Common vocabulary\n* Analysis and design\n - Enables to specify a future system without focusing on implementation details", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 263, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "09bd8f55-721c-46e4-966f-ce3c91f3462c": {"__data__": {"id_": "09bd8f55-721c-46e4-966f-ce3c91f3462c", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "40a3e6c1-ec88-4a0d-b1bc-affb95e38bca", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "ac2774d9f264b77b9f7a7d0e6564a0bb26eb6064af1a92be366c3a8d8a71ecf8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Purposes of UML diagram types\n\n* Use case diagram: shows functionality \n* Class diagram: shows class/object structure \n* Activity diagram: shows dynamic behavior (activities & objects) \n* State chart: shows dynamic behavior (states of an object) \n* Communication diagram: shows interaction (messages between objects) \n* Sequence diagram: shows interaction (method invocation & lifespan) \n* Deployment diagram: shows system architecture \n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 450, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3196fe2e-08a4-4a4a-aade-624c43a7ccd8": {"__data__": {"id_": "3196fe2e-08a4-4a4a-aade-624c43a7ccd8", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aceb5e5e-cd6a-4922-9e39-00a5741971f7", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "610c1d2c8b0073d2c009f51d61bc52a078bfc039bdfdf804ee223677de269bc7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML in practice\n\n* Documentation\n - Many companies use UML to document their systems\n * Ensures global understanding\n - Many open-source projects include UML models in their documentation\n* Ideation & design thinking\n - Structured approach in defining ideas\n* Programming\n - Allows to share ideas\n - Helps in defining complex algorithms\n - Provides starting point for writing and organizing code\n* Enhances abstract thinking & builds problem-solving skills", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 468, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1bfc5f3b-0f8c-4c22-a6d5-85f5c95e923a": {"__data__": {"id_": "1bfc5f3b-0f8c-4c22-a6d5-85f5c95e923a", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "eadf4452-062a-4793-bb6e-09dbcda383c6", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "9a0a93fcd881e689b63bf61ed4c9ec93cd526400dcb992b46695e9ad775f54b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] FrequentFlyer \u2014 UML class diagram\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n\n \n\n\n\n \n\n \n\n\n \n \n
FlightFrequentFlyer
numberdurationfirstNameupgrade()
arrivalTimelastName
delayFlight(Minutes)frequentFlyerNumber
\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n
MileageCredit
baseMiles
bonusMiles
\n\n* The association between **Flight** and **FrequentFlyer** is many-to-many (indicated by `*` on both ends).\n* The association roles are labeled as `flights` (from FrequentFlyer to Flight) and `passengers` (from Flight to FrequentFlyer).\n* The **MileageCredit** class is connected to both **Flight** and **FrequentFlyer** with aggregation (diamond symbol).\n\n> This is an example of a UML class diagram of a frequent flyer system. \n> We will talk more about the individual UML elements soon!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1220, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5c7a986d-4731-4245-a0fa-2316eca4b280": {"__data__": {"id_": "5c7a986d-4731-4245-a0fa-2316eca4b280", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "41d0a0d4-9ec0-45dc-88d4-58190e850fb5", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "0e1a0fc7ca5bf2ef5f4740dd5b3b787939a0875cc49087bd25b701583ed01f06", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Two abstraction domains\n\n* **Application domain** (= problem space) \n - Focus is on understanding and analyzing the **problem** \n - Environment where the system is operating\n\n* **Solution domain** (= solution space) \n - Focus is on **design** & **implementation** \n - Technologies used to build the system", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 316, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "281a1774-50a0-4ea9-9e6e-a5dd2ac3d5da": {"__data__": {"id_": "281a1774-50a0-4ea9-9e6e-a5dd2ac3d5da", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7bd0cba3-cee5-4f75-9d26-76c64796f830", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "2c9d756677037229b20c2a51613015e055558e10d0ba332f6311f619b451aa59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Application vs. solution domain\n\n| Application Domain | Solution Domain |\n|-------------------|-----------------|\n| **Reality** | **Reality** |\n| [Image of rocket launch] [Image of mission control room] | [Image of control panel] [Image of astronaut in spacecraft] [Image of lunar lander] |\n\n| **Model** | **Model** |\n|-------------------|-----------------|\n| Rocket | Status |\n| Engine | FAA Reg. |\n| LaunchPlan | `< />` |\n| Mission Control | Peregrine lander |\n\n**Analysis** (under Application Domain) \n**Design & Implementation** (under Solution Domain)\n\n[University of Pittsburgh logo]\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 758, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2daec92b-9af7-40e0-8025-fbeef76a072a": {"__data__": {"id_": "2daec92b-9af7-40e0-8025-fbeef76a072a", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "de3d0e1e-dcda-4c23-be53-5a0f654e7843", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "61f6ba7c6358e88035c72746a42d96044dba3e40297bd80786aed9fa2ca0da69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Overview of Model-based Software Engineering\n\n**Problem**\n\nCommuter App\n\n**Problem Statement**\n\nWe need a way so that people can get from one location to another using multiple means of transport, based on their available options and preferences.\n\n| Requirements | System Design | Object Design & Implementation | Testing & Verification | |\n|--------------------|-----------------------|-------------------------------|-----------------------|---|\n| Functional Model | Structural Model | Behavioral Model | Source Code | Testing Model |\n| **Use case model** | **Class diagram** | **Activity diagram** | **Object model** | **Sequence diagram** |\n| | **Component diagram** | ... | **Dependency graph** | **Activity diagram** |\n| | ... | | ... | ... |\n\n\ud83e\uddd1\ud83e\uddd1\ud83e\uddd1\ud83e\uddb0\ud83d\udc69\ud83e\uddb1\ud83d\udc71\ud83e\uddd3 \n**Enduser**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1002, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f44a7fdd-0ad4-47cf-81bb-eac8511d5931": {"__data__": {"id_": "f44a7fdd-0ad4-47cf-81bb-eac8511d5931", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a65bfeb2-5f1f-4018-9eff-f0660f4f856d", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "4a6098a543cfa1028ffc938704a622cb26a48d5eed21905f00bbf0b57ad6f13a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* The importance of abstraction\n* Intro to model-based engineering\n* Intro to requirements engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 122, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f5c1ec2-0e00-4370-b85b-1408c7791077": {"__data__": {"id_": "9f5c1ec2-0e00-4370-b85b-1408c7791077", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a57f04c9-047c-4b6f-9ba5-1ba2cb0e731d", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "48e9c7ca03d169a7d57a2cd37c68503e612b2ca2ab42e7ceef174d82bb6de2f3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "[Five panels showing different versions of a tree swing, each with a tree and a swing attached in different ways.]\n\nPanel 1: A wooden swing with three horizontal planks and two ropes hanging from a tree branch.\nCaption: How the customer explained it\n\nPanel 2: A wooden swing with a single horizontal plank and two ropes hanging from a tree branch.\nCaption: How the engineer designed it\n\nPanel 3: A wooden swing with a single horizontal plank and two ropes hanging from a tree stump and a tree branch.\nCaption: How the project leader understood it\n\nPanel 4: A wooden swing with a single horizontal plank tied directly around the tree trunk with ropes.\nCaption: How the programmer wrote it\n\nPanel 5: A tire swing hanging from a tree branch by a single rope.\nCaption: What the customer really needed\n\n[In the top right corner, the University of Pittsburgh logo and text.]\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 940, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2a7124b1-f880-4168-9ab2-964ef0ec1ae1": {"__data__": {"id_": "2a7124b1-f880-4168-9ab2-964ef0ec1ae1", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "22575121-ce67-487c-865e-465affb1bd5e", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "a0758a6a2fd7f1cd847c1cadda093b5fc719024d35e035643531bb5b7eff4f87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System requirements\n\n* Requirements describe the purpose of the system \n* They specify the **functionality** and **constraints** of a system \n* **Requirements elicitation** describes the process of identifying requirements \n* The elicited requirements are then analyzed and a system model is created \n\n> **Note:** Requirements are important but not set in stone! \n> Often, during system design or implementation, \n> new requirements arise or existing ones need to be adapted", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 483, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3c297091-df54-4c03-8569-a149c72710f4": {"__data__": {"id_": "3c297091-df54-4c03-8569-a149c72710f4", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dfe1073b-abc4-4f99-8c3a-9f5197fdefc1", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "6c302de9e9debdd11785117dc6d3d3be07ae407c2817d85c2b2088cd56c5c8e8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements Engineering\n\n* Combination of requirements elicitation and requirements analysis\n* An activity that defines the requirements of the system under construction\n* **Requirements elicitation** defines the system from the **view of the** (end)**user**\n - Requirements specification\n - Uses natural language\n* **Requirements analysis** defines the system from the **view of a developer**\n - Technical specification\n - Uses (semi-) formal language, e.g., UML", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 471, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "af252593-92dc-43c9-828e-3c70a912fc5e": {"__data__": {"id_": "af252593-92dc-43c9-828e-3c70a912fc5e", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "986b98fb-80cc-48a7-995d-b37cfa03d2cc", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "1158fa3188b0d61f58ec80da392d41d711033ba60c5d8783e2f735a7f9948772", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements Engineering\n\n**= Process of eliciting requirements and analyzing them**\n\n* Activities \n - Identify actors (different users of the system) \n - Identify scenarios (in natural language describe the functionality of the future system) \n - Identify functional requirements \n - Identify non-functional requirements \n - Derive use cases (generalize functionality, describe their behavior, and identify the relationships among use cases) \n - Derive entities, characteristics, and behavior \n - \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 516, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "546012d4-d6b5-4fc0-b89a-bec2fe90a3b0": {"__data__": {"id_": "546012d4-d6b5-4fc0-b89a-bec2fe90a3b0", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e34dc260-2ec5-453e-8102-7d51164e7081", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "dc4fed671110fc3436700fe5226f2969b39d8abb8a8b21cf46d91f0ec138a62a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Identifying actors\n\n* Actors represent the different users of a system \n - Note that a user is not necessarily just the enduser! \n - Users can also include: system analyst, database admin, another system, \u2026 \n* In UML, actors are represented as a **stick figure**\n\n```\n O\n /|\\\n / \\\n```\nActor\n\n> Should be a concrete user, e.g., \"Student\", \"PizzaBaker\", \"Developer\", \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 378, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3e9ff352-7473-453a-9b2d-18d3a2fa83e2": {"__data__": {"id_": "3e9ff352-7473-453a-9b2d-18d3a2fa83e2", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8c1c73ac-b6f4-4c1d-8f74-5ab1fee36ca5", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "140152bc486884f7a1a471ce5ba789f89b2e52cad3e810efd95a7fc1040924f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Stakeholders in a software project\n\n**Stakeholder** \n*Has an involvement in a software project*\n\n----\n\n\n \n \n \n \n \n \n\n \n \n
\n Internal

\n Project Manager
\n Builds the system\n
\n Developer
\n Builds the system\n
\n User
\n Uses the system\n
\n Customer
\n Sponsors/commissions the system\n
\n External\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 843, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9fc02151-c02b-4f0b-bf6e-3c2299ab7f08": {"__data__": {"id_": "9fc02151-c02b-4f0b-bf6e-3c2299ab7f08", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "063f6dd6-b3e5-4c94-84a1-bd120a2af1f4", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "271ce4dd50abb48a18fae5a6c243594106149cb98eedf54226f2b8d66d3d5a69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Take-Away: Overview of requirements elicitation\n\n* User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and stakeholders \n* Effective Communication: Establish clear and open channels of communication to gather accurate requirements \n* Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving project needs \n* Documentation: Thoroughly document gathered requirements to ensure clarity and alignment throughout the project lifecycle \n\n\n \n \n\n\n\n\n \n
YOUR USER REQUIREMENTS INCLUDE FOUR HUNDRED FEATURES. DO YOU REALIZE THAT NO HUMAN WOULD BE ABLE TO USE A PRODUCT WITH THAT LEVEL OF COMPLEXITY? GOOD POINT. I'D BETTER ADD \"EASY TO USE\" TO THE LIST.
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 821, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c4fda650-591d-4984-9682-efa8a200d78b": {"__data__": {"id_": "c4fda650-591d-4984-9682-efa8a200d78b", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "568d1e42-3052-4ba0-8992-6930ddbe5263", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L05 Model-based Engineering.pdf"}, "hash": "f005a273ffef2d79c59d045bad2de20d0c3acee269762829e29b7eb0b1463581", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L05 Model-based Engineering\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d0b05057-1e9e-400e-85cb-3193f7034848": {"__data__": {"id_": "d0b05057-1e9e-400e-85cb-3193f7034848", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.1.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "62007139-1bc4-4bf0-9844-c6f1454cf5ea", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.1.pdf"}, "hash": "2203e6582a37badc563ad48f4041bcf8a51021c34eb33001fbf39bc5b8ee0884", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Exercises 3.1\n\nLet \n$$\nA = \\begin{bmatrix} 3 & 0 \\\\ -1 & 5 \\end{bmatrix}, \\quad\nB = \\begin{bmatrix} 4 & -2 & 1 \\\\ 0 & 2 & 3 \\end{bmatrix}, \\quad\nC = \\begin{bmatrix} 1 & 2 \\\\ 3 & 4 \\\\ 5 & 6 \\end{bmatrix}, \\quad\nD = \\begin{bmatrix} 0 & -3 \\\\ -2 & 1 \\end{bmatrix},\n$$\n\n$$\nE = [4 \\quad 2], \\quad\nF = \\begin{bmatrix} -1 \\\\ 2 \\end{bmatrix}\n$$\n\nIn Exercises 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, and 16, compute the indicated matrices (if possible).\n\n1. \\( A + 2D \\)\n\n2. \\( 2D - 5A \\)\n\n3. \\( B - C \\)\n\n4. \\( B - C^T \\)\n\n5. \\( AB \\)\n\n6. \\( B^2 \\)\n\n7. \\( D + BC \\)\n\n8. \\( BB^T \\)\n\n9. \\( E(AF) \\)\n\n10. \\( F(AF) \\)\n\n11. \\( FE \\)\n\n12. \\( EF \\)\n\n13. \\( B^T C^T - (CB)^T \\)\n\n14. \\( DA - AD \\)\n\n15. \\( A^3 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 709, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7ffe3683-7898-472c-b7f9-2ff746f3cfde": {"__data__": {"id_": "7ffe3683-7898-472c-b7f9-2ff746f3cfde", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.1.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "42087f5a-55e0-4801-a2f6-003c2b3be3da", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.1.pdf"}, "hash": "6effd08626bd2b334601a3c9aae1162353d26c5c33ff7b24c9fc569e274130b6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "16. \\((I_2 - A)^2\\)\n\n17. Give an example of a nonzero \\(2 \\times 2\\) matrix \\(A\\) such that \\(A^2 = O\\).\n\n18. Let \n\\[\nA = \\begin{bmatrix} 2 & 1 \\\\ 6 & 3 \\end{bmatrix}.\n\\]\nFind \\(2 \\times 2\\) matrices \\(B\\) and \\(C\\) such that \\(AB = AC\\) but \\(B \\neq C\\).\n\n19. A factory manufactures three products (doohickies, gizmos, and widgets) and ships them to two warehouses for storage. The number of units of each product shipped to each warehouse is given by the matrix\n\n\\[\nA = \\begin{bmatrix}\n200 & 75 \\\\\n150 & 100 \\\\\n100 & 125\n\\end{bmatrix}\n\\]\n\n(where \\(a_{ij}\\) is the number of units of product \\(i\\) sent to warehouse \\(j\\) and the products are taken in alphabetical order). The cost of shipping one unit of each product by truck is \\$1.50 per doohickey, \\$1.00 per gizmo, and \\$2.00 per widget. The corresponding unit costs to ship by train are \\$1.75, \\$1.50, and \\$1.00, respectively. Organize these costs into a matrix \\(B\\) and then use matrix multiplication to show how the factory can compare the cost of shipping its products to each of the two warehouses by truck and by train.\n\n20. Referring to Exercise 19, suppose that the unit cost of distributing the products to stores is the same for each product but varies by warehouse because of the distances involved. It costs \\$0.75 to distribute one unit from warehouse 1 and \\$1.00 to distribute one unit from warehouse 2. Organize these costs into a matrix \\(C\\) and then use matrix multiplication to compute the total cost of distributing each product.\n\nIn Exercises 21 and 22, write the given system of linear equations as a matrix equation of the form \\(\\mathbf{A}\\mathbf{x} = \\mathbf{b}\\).\n\n21. \n\\[\n\\begin{cases}\nx_1 - 2x_2 + 3x_3 = 0 \\\\\n2x_1 + x_2 - 5x_3 = 4 \\\\\n-x_1 + 2x_3 = 1\n\\end{cases}\n\\]\n\n22.\n\\[\n\\begin{cases}\nx_1 - x_2 = -2 \\\\\nx_2 + x_3 = -1\n\\end{cases}\n\\]\n\nIn Exercises 23, 24, 25, 26, 27, and 28, let", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1871, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d314deb0-203e-4439-95f3-9992e151dafa": {"__data__": {"id_": "d314deb0-203e-4439-95f3-9992e151dafa", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.1.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dc9e16d1-12de-4b8d-a650-bb2e2345084e", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.1.pdf"}, "hash": "65e6517b29cca62b7137f17e16a7ec084f3066151f41f64cba51f0490e7006e1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\nA = \\begin{bmatrix}\n1 & 0 & -2 \\\\\n-3 & 1 & 1 \\\\\n2 & 0 & -1\n\\end{bmatrix}\n\\quad \\text{and} \\quad\nB = \\begin{bmatrix}\n2 & 3 & 0 \\\\\n1 & -1 & 1 \\\\\n-1 & 6 & 4\n\\end{bmatrix}\n$$\n\n23. Use the matrix-column representation of the product to write each column of \n$$AB$$ \nas a linear combination of the columns of \\(A\\).\n\n24. Use the row-matrix representation of the product to write each row of \n$$AB$$ \nas a linear combination of the rows of \\(B\\).\n\n25. Compute the outer product expansion of \n$$AB$$.\n\n26. Use the matrix-column representation of the product to write each column of \n$$BA$$ \nas a linear combination of the columns of \\(B\\).\n\n27. Use the row-matrix representation of the product to write each row of \n$$BA$$ \nas a linear combination of the rows of \\(A\\).\n\n28. Compute the outer product expansion of \n$$BA$$.\n\nIn Exercises 29 and 30, assume that the product \n$$AB$$ \nmakes sense.\n\n29. Prove that if the columns of \\(B\\) are linearly dependent, then so are the columns of \n$$AB$$.\n\n30. Prove that if the rows of \\(A\\) are linearly dependent, then so are the rows of \n$$AB$$.\n\nIn Exercises 31, 32, 33, and 34, compute \n$$AB$$ \nby block multiplication, using the indicated partitioning.\n\n31. \\(A\\) equals matrix (3, 4 [1, negative 1, 0, 0, 0, 1, 0, 0, 0, 0, 2, 3]). In the matrix, a horizontal dashed line is\n\n32. \\(A\\) equals matrix (2, 4 [2, 3, 1, 0, 4, 5, 0, 1]). In the matrix, a vertical dashed line is drawn", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1436, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ddaf2519-82e7-4493-8009-665ed91e1e0c": {"__data__": {"id_": "ddaf2519-82e7-4493-8009-665ed91e1e0c", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.1.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "607008c7-e44c-48aa-a69c-0108562c7736", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.1.pdf"}, "hash": "fd2f695af818003d49025042ae3012b4f3e24ad381ffae020257ac78dfc0a840", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "33. \\( A \\) equals matrix \\( (4, 4, [1, 2, 1, 0, 3, 4, 0, 1, 1, 0, -1, 1, 0, 1, 1, -1]) \\). In the matrix, a horizontal dashed\n\n34. \\( A \\) equals matrix \\( (4, 4, [1, 0, 0, 1, 0, 1, 0, 2, 0, 0, 1, 3, 0, 0, 0, 4]) \\). In the matrix, a horizontal dashed line is\n\n35. Let \n\\[\nA = \\begin{bmatrix}\n0 & 1 \\\\\n-1 & 1\n\\end{bmatrix}.\n\\]\n\na. Compute \\( A^2, A^3, \\ldots, A^7 \\).\n\nb. What is \\( A^{2025} \\)? Why?\n\n36. Let \n\\[\nB = \\begin{bmatrix}\n\\frac{1}{\\sqrt{2}} & -\\frac{1}{\\sqrt{2}} \\\\\n\\frac{1}{\\sqrt{2}} & \\frac{1}{\\sqrt{2}}\n\\end{bmatrix}.\n\\]\nFind, with justification, \\( B^{2025} \\).\n\n37. Let \n\\[\nA = \\begin{bmatrix}\n1 & 1 \\\\\n0 & 1\n\\end{bmatrix}.\n\\]\nFind a formula for \\( A^n \\) (\\( n \\geq 1 \\)) and verify your formula using mathematical induction.\n\n38. Let \n\\[\nA = \\begin{bmatrix}\n\\cos \\theta & -\\sin \\theta \\\\\n\\sin \\theta & \\cos \\theta\n\\end{bmatrix}.\n\\]\n\na. Show that \n\\[\nA^2 = \\begin{bmatrix}\n\\cos 2\\theta & -\\sin 2\\theta \\\\\n\\sin 2\\theta & \\cos 2\\theta\n\\end{bmatrix}.\n\\]\n\nb. Prove, by mathematical induction, that \n\\[\nA^n = \\begin{bmatrix}\n\\cos n\\theta & -\\sin n\\theta \\\\\n\\sin n\\theta & \\cos n\\theta\n\\end{bmatrix} \\quad \\text{for } n \\geq 1.\n\\]\n\n39. In each of the following, find the \\( 4 \\times 4 \\) matrix \\( A = [a_{ij}] \\) that satisfies the given condition:\n\na. \\( a_{ij} = (-1)^{i+j} \\)\n\nb. \\( a_{ij} = j - i \\)\n\nc. \\( a_{ij} = (i - 1)^j \\)\n\nd. \\( a_{ij} = \\sin \\left( \\frac{(i + j - 1) \\pi}{4} \\right) \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1412, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "89fb24de-5fc3-4ec7-960c-bfacc2c6b021": {"__data__": {"id_": "89fb24de-5fc3-4ec7-960c-bfacc2c6b021", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.1.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0c343d7d-bed8-4d29-8a8b-9f3421460efa", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.1.pdf"}, "hash": "b8edc3dabe7ef62333d8f86a3111d5fa54108c404f06356c2ca3ef5d18448b59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "40. In each of the following, find the \\(6 \\times 6\\) matrix \\(A = [a_{ij}]\\) that satisfies the given condition:\n\na. \n\\[\na_{ij} = \\begin{cases} \ni + j & \\text{if } i \\leq j \\\\\n0 & \\text{if } i > j \n\\end{cases}\n\\]\n\nb. \n\\[\na_{ij} = \\begin{cases} \n1 & \\text{if } |i - j| \\leq 1 \\\\\n0 & \\text{if } |i - j| > 1 \n\\end{cases}\n\\]\n\nc. \n\\[\na_{ij} = \\begin{cases} \n1 & \\text{if } 6 \\leq i + j \\leq 8 \\\\\n0 & \\text{otherwise} \n\\end{cases}\n\\]\n\n41. Prove Theorem 3.1(a).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 456, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5b14c48a-e865-4bc5-9e6f-4ef3f1409031": {"__data__": {"id_": "5b14c48a-e865-4bc5-9e6f-4ef3f1409031", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.3.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "43d84296-44e9-4cc4-912d-491a9f7c7d20", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.3.pdf"}, "hash": "5ccc30b8876762bbf0ffad58f0793e74d07966da5f57c867e2dae19f53a5f79e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Exercises 3.3\n\nIn Exercises 1, 2, 3, 4, 5, 6, 7, 8, 9, and 10, find the inverse of the given matrix (if it exists) using Theorem 3.8.\n\n1. \n$$\n\\begin{bmatrix}\n4 & 7 \\\\\n1 & 2\n\\end{bmatrix}\n$$\n\n2. \n$$\n\\begin{bmatrix}\n1 & 2 \\\\\n3 & 4\n\\end{bmatrix}\n$$\n\n3. \n$$\n\\begin{bmatrix}\n3 & 4 \\\\\n6 & 8\n\\end{bmatrix}\n$$\n\n4. \n$$\n\\begin{bmatrix}\n0 & 1 \\\\\n1 & 0\n\\end{bmatrix}\n$$\n\n5. \n$$\n\\begin{bmatrix}\n\\frac{3}{4} & \\frac{3}{5} \\\\\n\\frac{5}{6} & 2 \\\\\n\\frac{6}{3} & \n\\end{bmatrix}\n$$\n\n6. \n$$\n\\begin{bmatrix}\n\\frac{1}{\\sqrt{2}} & -\\frac{1}{\\sqrt{2}} \\\\\n\\frac{1}{\\sqrt{2}} & \\frac{1}{\\sqrt{2}}\n\\end{bmatrix}\n$$\n\n7. \n$$\n\\begin{bmatrix}\n-1.5 & -4.2 \\\\\n0.5 & 2.4\n\\end{bmatrix}\n$$\n\n8. \n$$\n\\begin{bmatrix}\n3.55 & 0.25 \\\\\n8.52 & 0.60\n\\end{bmatrix}\n$$\n\n9. \n$$\n\\begin{bmatrix}\na & -b \\\\\nb & a\n\\end{bmatrix}\n$$\n\n10. \n$$\n\\begin{bmatrix}\n\\frac{1}{a} & \\frac{1}{b} \\\\\n\\frac{1}{c} & \\frac{1}{d}\n\\end{bmatrix}\n$$\n, where neither \\(a\\), \\(b\\), \\(c\\), nor \\(d\\) is 0.\n\nIn Exercises 11 and 12, solve the given linear system using the method of Example 3.25.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1029, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9e54d555-4392-49ed-8b0d-e3fb38b17bf2": {"__data__": {"id_": "9e54d555-4392-49ed-8b0d-e3fb38b17bf2", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.3.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ab4da2db-e293-4e2f-8842-36cc560736c4", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.3.pdf"}, "hash": "845e4234186007ebacd6d916f6b9eadfb2a0169668e68a31795e4b7f9e1775a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "11. \n$$\n\\begin{cases}\n2x + y = -1 \\\\\n5x + 3y = 2\n\\end{cases}\n$$\n\n12. \n$$\n\\begin{cases}\nx_1 - x_2 = 2 \\\\\nx_1 + 2x_2 = 5\n\\end{cases}\n$$\n\n13. Let \n$$\nA = \\begin{bmatrix} 1 & 2 \\\\ 2 & 6 \\end{bmatrix}, \\quad \n\\mathbf{b}_1 = \\begin{bmatrix} 3 \\\\ 5 \\end{bmatrix}, \\quad \n\\mathbf{b}_2 = \\begin{bmatrix} -1 \\\\ 2 \\end{bmatrix}, \\quad \n\\text{and} \\quad \\mathbf{b}_3 = \\begin{bmatrix} 2 \\\\ 0 \\end{bmatrix}.\n$$\n\na. Find \\( A^{-1} \\) and use it to solve the three systems \n$$\nA\\mathbf{x} = \\mathbf{b}_1, \\quad A\\mathbf{x} = \\mathbf{b}_2, \\quad \\text{and} \\quad A\\mathbf{x} = \\mathbf{b}_3.\n$$\n\nb. Solve all three systems at the same time by row reducing the augmented matrix \n$$\n[A \\mid \\mathbf{b}_1 \\mathbf{b}_2 \\mathbf{b}_3]\n$$ \nusing Gauss-Jordan elimination.\n\nc. Carefully count the total number of individual multiplications that you performed in (a) and in (b). You should discover that, even for this \\( 2 \\times 2 \\) example, one method uses fewer operations.\n\nFor larger systems, the difference is even more pronounced, and this explains why computer systems do not use one of these methods to solve linear systems.\n\n14. Prove Theorem 3.9(b).\n\n15. Prove Theorem 3.9(d).\n\n16. Prove that the \\( n \\times n \\) identity matrix \\( I_n \\) is invertible and that \n$$\nI_n^{-1} = I_n.\n$$\n\n17. \na. Give a counterexample to show that \n$$\n(AB)^{-1} \\neq A^{-1} B^{-1}\n$$ \nin general.\n\nb. Under what conditions on \\( A \\) and \\( B \\) is \n$$\n(AB)^{-1} = B^{-1} A^{-1}?\n$$ \nProve your assertion.\n\n18. By induction, prove that if \\( A_1, A_2, \\ldots, A_n \\) are invertible matrices of the same size, then the product \n$$\nA_1 A_2 \\cdots A_n\n$$ \nis invertible and \n$$\n(A_1 A_2 \\cdots A_n)^{-1} = A_n^{-1} \\cdots A_2^{-1} A_1^{-1}.\n$$\n\n19. Give a counterexample to show that \n$$\n(A + B)^{-1} \\neq A^{-1} + B^{-1}\n$$ \nin general.\n\nIn Exercises 20, 21, 22, and 23, solve the given matrix equation for \\( X \\). Simplify your answers as much as possible. (In the words of Albert Einstein, \u201cEverything should be made as simple as possible, but not simpler.\u201d) Assume that all matrices are invertible.\n\n20. \n$$\nX A^{-1} = A^3\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2101, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "148ed1f9-274d-4078-9083-509448ec75db": {"__data__": {"id_": "148ed1f9-274d-4078-9083-509448ec75db", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.3.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "06e9fc36-c8c5-44a8-b365-1561333227d4", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.3.pdf"}, "hash": "6f695e7b66b950adfe86d1575ade5067d6fdb63fa761e9fad523a12980e4238a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "21. \n$$ A X B = (B A)^2 $$\n\n22. \n$$ (A^{-1} X)^{-1} = (A B^{-1})^{-1} (A B)^2 $$\n\n23. \n$$ A B X A^{-1} B^{-1} = I + A $$\n\nIn Exercises 24, 25, 26, 27, 28, 29, and 30, let\n\n$$\nA = \\begin{bmatrix}\n1 & 2 & -1 \\\\\n1 & 1 & 1 \\\\\n1 & -1 & 0\n\\end{bmatrix}, \\quad\nB = \\begin{bmatrix}\n1 & -1 & 0 \\\\\n1 & 1 & 1 \\\\\n1 & 2 & -1\n\\end{bmatrix},\n$$\n\n$$\nC = \\begin{bmatrix}\n1 & 2 & -1 \\\\\n1 & 1 & 1 \\\\\n2 & 1 & -1\n\\end{bmatrix}, \\quad\nD = \\begin{bmatrix}\n1 & 2 & -1 \\\\\n-3 & -1 & 3 \\\\\n2 & 1 & -1\n\\end{bmatrix}\n$$\n\nIn each case, find an elementary matrix $E$ that satisfies the given equation.\n\n24. \n$$ E A = B $$\n\n25. \n$$ E B = A $$\n\n26. \n$$ E A = C $$\n\n27. \n$$ E C = A $$\n\n28. \n$$ E C = D $$\n\n29. \n$$ E D = C $$\n\n30. Is there an elementary matrix $E$ such that $E A = D$? Why or why not?\n\nIn Exercises 31, 32, 33, 34, 35, 36, 37, and 38, find the inverse of the given elementary matrix.\n\n31. \n$$\n\\begin{bmatrix}\n3 & 0 \\\\\n0 & 1\n\\end{bmatrix}\n$$\n\n32. \n$$\n\\begin{bmatrix}\n1 & 2 \\\\\n0 & 1\n\\end{bmatrix}\n$$\n\n33. \n$$\n\\begin{bmatrix}\n0 & 1 \\\\\n1 & 0\n\\end{bmatrix}\n$$\n\n34. \n$$\n\\begin{bmatrix}\n1 & 0 \\\\\n-\\frac{1}{2} & 1\n\\end{bmatrix}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1117, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "76fbd06f-2597-4c60-af4b-46ebaab317ed": {"__data__": {"id_": "76fbd06f-2597-4c60-af4b-46ebaab317ed", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.3.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5f7cbdc5-f5ea-4e7f-b45b-69b8a9ca61e8", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.3.pdf"}, "hash": "7d07d06084c0ca0f9b37f37e411812133ac40ab6fbb18849581e29f5d3780285", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\n35. \\quad\n\\begin{bmatrix}\n1 & 0 & 0 \\\\\n0 & 1 & -2 \\\\\n0 & 0 & 1\n\\end{bmatrix}\n$$\n\n$$\n36. \\quad\n\\begin{bmatrix}\n0 & 0 & 1 \\\\\n0 & 1 & 0 \\\\\n1 & 0 & 0\n\\end{bmatrix}\n$$\n\n$$\n37. \\quad\n\\begin{bmatrix}\n1 & 0 & 0 \\\\\n0 & c & 0 \\\\\n0 & 0 & 1\n\\end{bmatrix}, \\quad c \\neq 0\n$$\n\n$$\n38. \\quad\n\\begin{bmatrix}\n1 & 0 & 0 \\\\\n0 & 1 & c \\\\\n0 & 0 & 1\n\\end{bmatrix}, \\quad c \\neq 0\n$$\n\nIn Exercises 39 and 40, find a sequence of elementary matrices \n$$E_1, E_2, \\ldots, E_k$$ \nsuch that \n$$E_k \\cdots E_2 E_1 A = I.$$ \nUse this sequence to write both \n$$A$$ \nand \n$$A^{-1}$$ \nas products of elementary matrices.\n\n$$\n39. \\quad A = \\begin{bmatrix} 1 & 0 \\\\ -1 & -2 \\end{bmatrix}\n$$\n\n$$\n40. \\quad A = \\begin{bmatrix} 2 & 4 \\\\ 1 & 1 \\end{bmatrix}\n$$\n\n41. Prove Theorem 3.13 for the case of \n$$AB = I.$$\n\n42. \n- a. Prove that if \\(A\\) is invertible and \\(AB = O\\), then \\(B = O\\).\n\n- b. Give a counterexample to show that the result in part (a) may fail if \\(A\\) is not invertible.\n\n43. \n- a. Prove that if \\(A\\) is invertible and \\(BA = CA\\), then \\(B = C\\).\n\n- b. Give a counterexample to show that the result in part (a) may fail if \\(A\\) is not invertible.\n\n44. A square matrix \\(A\\) is called **idempotent** if \n$$A^2 = A.$$ \n(The word *idempotent* comes from the Latin *idem*, meaning \u201csame,\u201d and *potere*, meaning \u201cto have power.\u201d Thus, something that is idempotent has the \u201csame power\u201d when squared.)\n\n- a. Find three idempotent \\(2 \\times 2\\) matrices.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1438, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "557afe8e-4224-434c-8c00-40f813d74da7": {"__data__": {"id_": "557afe8e-4224-434c-8c00-40f813d74da7", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.3.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4a4536af-b427-4d5c-b08b-ddb1725ab449", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.3.pdf"}, "hash": "cbbeaac0ab6fba9b57cf2c24df58a9002a75209aa911676635943ed0522821ed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "b. Prove that the only invertible idempotent \\( n \\times n \\) matrix is the identity matrix.\n\n45. Show that if \\( A \\) is a square matrix that satisfies the equation \n$$ A^2 - 2A + I = O, $$\nthen \n$$ A^{-1} = 2I - A. $$\n\n46. Prove that if a symmetric matrix is invertible, then its inverse is symmetric also.\n\n47. Prove that if \\( A \\) and \\( B \\) are square matrices and \\( AB \\) is invertible, then both \\( A \\) and \\( B \\) are invertible.\n\nIn Exercises 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, and 63, use the Gauss-Jordan method to find the inverse of the given matrix (if it exists).\n\n48. \n\\[\n\\begin{bmatrix}\n1 & 2 \\\\\n3 & 4\n\\end{bmatrix}\n\\]\n\n49. \n\\[\n\\begin{bmatrix}\n-2 & 4 \\\\\n3 & -1\n\\end{bmatrix}\n\\]\n\n50. \n\\[\n\\begin{bmatrix}\n3 & -4 \\\\\n-6 & 8\n\\end{bmatrix}\n\\]\n\n51. \n\\[\n\\begin{bmatrix}\n1 & a \\\\\n-a & 1\n\\end{bmatrix}\n\\]\n\n52. \n\\[\n\\begin{bmatrix}\n2 & 0 & -1 \\\\\n1 & 5 & 1 \\\\\n2 & 3 & 0\n\\end{bmatrix}\n\\]\n\n53. \n\\[\n\\begin{bmatrix}\n1 & -1 & 2 \\\\\n3 & 1 & 2 \\\\\n2 & 3 & -1\n\\end{bmatrix}\n\\]\n\n54. \n\\[\n\\begin{bmatrix}\n1 & 1 & 0 \\\\\n1 & 1 & 1 \\\\\n0 & 1 & 1\n\\end{bmatrix}\n\\]\n\n55. \n\\[\n\\begin{bmatrix}\na & 0 & 0 \\\\\n1 & a & 0 \\\\\n0 & 1 & a\n\\end{bmatrix}\n\\]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1164, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "728bc04f-1d56-44cd-84d5-8714439b2016": {"__data__": {"id_": "728bc04f-1d56-44cd-84d5-8714439b2016", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/linalg-exercise3.3.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a453b917-08c2-4675-b534-11b42f8500d3", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/linalg-exercise3.3.pdf"}, "hash": "c9aaebcdb5f99b0bcdd0448ec8a09042751574ad7e86c52243ac5484a0d38f3a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\n56. \\quad\n\\begin{bmatrix}\n0 & a & 0 \\\\\nb & 0 & c \\\\\n0 & d & 0\n\\end{bmatrix}\n$$\n\n$$\n57. \\quad\n\\begin{bmatrix}\n0 & -1 & 1 & 0 \\\\\n2 & 1 & 0 & 2 \\\\\n1 & -1 & 3 & 0 \\\\\n0 & 1 & 1 & -1\n\\end{bmatrix}\n$$\n\n$$\n58. \\quad\n\\begin{bmatrix}\n\\sqrt{2} & 0 & 2\\sqrt{2} & 0 \\\\\n-4\\sqrt{2} & \\sqrt{2} & 0 & 0 \\\\\n0 & 0 & 1 & 0 \\\\\n0 & 0 & 3 & 1\n\\end{bmatrix}\n$$\n\n$$\n59. \\quad\n\\begin{bmatrix}\n1 & 0 & 0 & 0 \\\\\n0 & 1 & 0 & 0 \\\\\n0 & 0 & 1 & 0 \\\\\na & b & c & d\n\\end{bmatrix}\n$$\n\n$$\n60. \\quad\n\\begin{bmatrix}\n0 & 1 \\\\\n1 & 1\n\\end{bmatrix} \\text{ over } \\mathbb{Z}_2\n$$\n\n$$\n61. \\quad\n\\begin{bmatrix}\n4 & 2 \\\\\n3 & 4\n\\end{bmatrix} \\text{ over } \\mathbb{Z}_5\n$$\n\n$$\n62. \\quad\n\\begin{bmatrix}\n2 & 1 & 0 \\\\\n1 & 1 & 2 \\\\\n0 & 2 & 1\n\\end{bmatrix} \\text{ over } \\mathbb{Z}_3\n$$\n\n$$\n63. \\quad\n\\begin{bmatrix}\n1 & 5 & 0 \\\\\n1 & 2 & 4 \\\\\n3 & 6 & 1\n\\end{bmatrix} \\text{ over } \\mathbb{Z}_7\n$$\n\nPartitioning large square matrices can sometimes make their inverses easier to compute, particularly if the blocks have a nice form. In Exercises 64, 65, 66, 67, and 68, verify by block multiplication that the inverse of a matrix, if partitioned as shown, is as claimed. (Assume that all inverses exist as needed.)\n\n$$\n64. \\quad\n\\left[\n\\begin{array}{cc}\nA & B \\\\\nO & D\n\\end{array}\n\\right]^{-1}\n=\n\\left[\n\\begin{array}{cc}\nA^{-1} & -A^{-1} B D^{-1} \\\\\nO & D^{-1}\n\\end{array}\n\\right]\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1335, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14e4f700-08dd-4d9f-8633-08b30a4539fc": {"__data__": {"id_": "14e4f700-08dd-4d9f-8633-08b30a4539fc", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/linalg-exercise3.3.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b273ecee-81a3-428c-8099-909a8e4dd220", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/linalg-exercise3.3.pdf"}, "hash": "e4e6849bb5bd7fa1f682871cf0121fe82b5c8ac3276bbab5a1107708c5636fae", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\n\\text{65.} \\quad\n\\begin{bmatrix}\nO & B \\\\\nC & I\n\\end{bmatrix}^{-1}\n=\n\\begin{bmatrix}\n-(BC)^{-1} & (BC)^{-1} B \\\\\nC(BC)^{-1} & I - C(BC)^{-1} B\n\\end{bmatrix}\n$$\n\n$$\n\\text{66.} \\quad\n\\begin{bmatrix}\nI & B \\\\\nC & I\n\\end{bmatrix}^{-1}\n=\n\\begin{bmatrix}\n(I - BC)^{-1} & -(I - BC)^{-1} B \\\\\n-C(I - BC)^{-1} & I + C(I - BC)^{-1} B\n\\end{bmatrix}\n$$\n\n$$\n\\text{67.} \\quad\n\\begin{bmatrix}\nO & B \\\\\nC & D\n\\end{bmatrix}^{-1}\n=\n\\begin{bmatrix}\n-(BD^{-1}C)^{-1} & (BD^{-1}C)^{-1} BD^{-1} \\\\\nD^{-1} C (BD^{-1} C)^{-1} & D^{-1} - D^{-1} C (BD^{-1} C)^{-1} BD^{-1}\n\\end{bmatrix}\n$$\n\n$$\n\\text{68.} \\quad\n\\begin{bmatrix}\nA & B \\\\\nC & D\n\\end{bmatrix}^{-1}\n=\n\\begin{bmatrix}\nP & Q \\\\\nR & S\n\\end{bmatrix},\n\\quad \\text{where} \\quad\nP = (A - BD^{-1} C)^{-1}, \\quad Q = -PBD^{-1},\n$$\n\n$$\nR = -D^{-1} CP, \\quad \\text{and} \\quad S = D^{-1} + D^{-1} CPBD^{-1}\n$$\n\nIn Exercises 69, 70, 71, and 72, partition the given matrix so that you can apply one of the formulas from Exercises 64, 65, 66, 67, and 68, and then calculate the inverse using that formula.\n\n$$\n\\text{69.} \\quad\n\\begin{bmatrix}\n1 & 0 & 0 & 0 \\\\\n0 & 1 & 0 & 0 \\\\\n2 & 3 & 1 & 0 \\\\\n1 & 2 & 0 & 1\n\\end{bmatrix}\n$$\n\n$$\n\\text{70. The matrix in} \\quad\n\\begin{bmatrix}\n\\sqrt{2} & 0 & 2\\sqrt{2} & 0 \\\\\n-4\\sqrt{2} & \\sqrt{2} & 0 & 0 \\\\\n0 & 0 & 1 & 0 \\\\\n0 & 0 & 3 & 1\n\\end{bmatrix}\n$$\n\n$$\n\\text{71.} \\quad\n\\begin{bmatrix}\n0 & 0 & 1 & 1 \\\\\n0 & 0 & 1 & 0 \\\\\n0 & -1 & 1 & 0 \\\\\n1 & 1 & 0 & 1\n\\end{bmatrix}\n$$\n\n$$\n\\text{72.} \\quad\n\\begin{bmatrix}\n0 & 1 & 1 \\\\\n1 & 3 & 1 \\\\\n-1 & 5 & 2\n\\end{bmatrix}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1524, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d27669b2-262f-4ca1-89c1-0b2efd5afd41": {"__data__": {"id_": "d27669b2-262f-4ca1-89c1-0b2efd5afd41", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/linalg-exercise3.3.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6a2585ec-a9ef-4159-93bf-bc7f1b406f14", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/linalg-exercise3.3.pdf"}, "hash": "f27bb239b955db4b98aef2d7b8230cc2b36e706798754e1e1807584c1677da40", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "10/28/25, 9:31 PM Print Preview\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\n\n\u00a9 2025 Cengage Learning Inc. All rights reserved. No part of this work may by reproduced or used in any form or by any means -\ngraphic, electronic, or mechanical, or in any other manner - without the written permission of the copyright holder.\n\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 8/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 551, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ec7959b1-326c-4644-bf65-8614a7d9fa98": {"__data__": {"id_": "ec7959b1-326c-4644-bf65-8614a7d9fa98", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "771266c4-c2f0-43ec-819b-de99af9edc98", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "199bfcc96180115b056f9f7e851182741bda9adc2234990bcdba4429bd7c83a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 05\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b9b7b5fe-84b7-42c0-9ba2-135780349c26": {"__data__": {"id_": "b9b7b5fe-84b7-42c0-9ba2-135780349c26", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4743713b-1897-43f5-ba3b-0ad67f2cb42f", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "6fdb728c1761f60ef018affd30589c19b8dc4b2a0b20c7cab75381c133aba99f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Language\n\n* **Question:** Given a regular language, can it be expressed by a regular expression? \n - There are infinite number of regular languages \n - Luckily, all of them have one thing in common \n - Each of them has some finite-state machines that recognize it \n\n* So, to try to answer the above question, we need to show a way to convert a finite-state machine into a regular expression that expresses the language of the machine", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "98fbb5f3-f44c-493b-b4ce-74b09ae519c8": {"__data__": {"id_": "98fbb5f3-f44c-493b-b4ce-74b09ae519c8", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fc834d20-807b-483f-b70e-d074bc3a1c1c", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "080555054562a8fe7377034234b53f72d2f8d3632d33e3f36396545e09c9a3db", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Generalized Nondeterministic Finite Automaton\n\n* A Generalized Nondeterministic Finite Automaton (GNFA) \\( \\mathcal{N} \\) of a DFA \\( M \\) is\n * a special NFA where \\( L(\\mathcal{N}) = L(M) \\)\n * \\( \\mathcal{N} \\) has exactly one accept state\n * all transitions of \\( \\mathcal{N} \\) are regular expressions\n * To transition from one state to another, you need a string in the language expressed by the regular expression instead of a symbol\n* Example:\n\n\n \n \n \n \n \n
\\( q_2 \\)\\( 0^* \\cup 11^*0 \\)\\( q_5 \\)
\n\nAt \\( q_2 \\), if you encounter a string in the language \\( 0^* \\cup 11^*0 \\), move to state \\( q_5 \\)\n\n$$\n0^* \\cup 11^*0 = \\{\\varepsilon, 0, 00, \\ldots \\} \\cup \\{10, 110, 1110, \\ldots \\}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 845, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a3775415-993c-458a-8661-7e2f69c7ad43": {"__data__": {"id_": "a3775415-993c-458a-8661-7e2f69c7ad43", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "47f5b28a-d72e-4d8b-9a2b-57bffa6f3929", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "a15fd971b95db6bc20d02a2be531c3559953c727787aa5d3658b4435e505c102", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA\n\n1. Start with a DFA \\( M \\) \n2. Add a new start state \\( s \\) with an \\(\\varepsilon\\) arrow to the original start state of \\( M \\) \n3. Add a new accept state \\( a \\) \n * From every accept state of \\( M \\), add an \\(\\varepsilon\\) arrow to the new accept state \n * Change all original accept states of \\( M \\) to non-accept states \n4. Turn transition labels to regular expressions (rule #1 of regular expression) \n5. Add necessary transition arrows \n * Change multiple arrows or multiple labels to a single arrow while label is the union of the previous labels \n\n----\n\nDiagram illustrating the merging of multiple arrows/labels into a single arrow with union of labels:\n\n```mermaid\ngraph LR\n A1(( )) -- a --> B1(( ))\n A1 -- b --> B1\n B1 --> B2(( ))\n A2(( )) -- a \u222a b --> B2\n\n C1(( )) -- \"0, 1\" --> D1(( ))\n D1 --> D2(( ))\n C2(( )) -- \"0 \u222a 1\" --> D2\n```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 05", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 990, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "69467209-6ddd-405a-a876-7d609e3a81d2": {"__data__": {"id_": "69467209-6ddd-405a-a876-7d609e3a81d2", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9cfdff68-8adc-4ecb-b607-a425500ddd9f", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "fb40c3d2992ca8a00f2d689bda4736058f749273f49a73c9f01fd09a254f3686", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* A DFA\n\n```mermaid\nstateDiagram-v2\n [*] --> 1\n 1 --> 2: a\n 2 --> 1: a\n 2 --> 2: b\n 1 --> 3: b\n 3 --> 1: b\n 3 --> 2: a\n state 2 {\n <>\n }\n state 3 {\n <>\n }\n```\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 05", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "85ea7d8a-f538-4d2e-b96e-74c72381c891": {"__data__": {"id_": "85ea7d8a-f538-4d2e-b96e-74c72381c891", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3cf69a79-91af-4678-9048-65efc3bebd8b", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "ac173e10a45493a4d278b9382bd435592a816fb48bb0066bc56902c3787cbf00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* Add a new start state \\( s \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> 1\n state 1 {\n [*] --> 1\n 1 --> 2: a\n 1 --> 3: b\n }\n state 2 {\n 2 --> 2: b\n 2 --> 1: a\n }\n state 3 {\n 3 --> 1: b\n 3 --> 2: a\n }\n 2 --> 3: a\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 337, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8530acb4-603c-4bd1-9262-a92f1ff6c29b": {"__data__": {"id_": "8530acb4-603c-4bd1-9262-a92f1ff6c29b", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2c421db4-d62b-4a01-beb0-a7887462f08b", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "68d6b0b2d6e180e8abb055410df66f645bbba40445560166c5ad312cc0cf658c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* \\( \\varepsilon \\) from \\( s \\) to the original start state\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> 1: \u03b5\n 1 --> 2: a\n 1 --> 3: b\n 2 --> 1: a\n 2 --> 2: b\n 3 --> 1: b\n 3 --> 2: a\n state 2 {\n [*] --> 2\n }\n state 3 {\n [*] --> 3\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 328, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ce6f5be-aee1-4296-abfd-26b3663f140f": {"__data__": {"id_": "9ce6f5be-aee1-4296-abfd-26b3663f140f", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "98d259cd-9f81-453d-bf62-7ff0c957662f", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "d819fb44ab11222cc0709a49f452f4f146f62d87312a2dd372252505900263d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* Add a new accept state \\( a \\)\n\n```\n b\n +-----+\n | |\n v |\ns --\u03b5--> 1 --a--> 2\n | ^ | b\n b | v\n v 3 <--a\n a\n```\n\n* States:\n - \\( s \\) (start state)\n - \\( 1 \\)\n - \\( 2 \\) (accept state)\n - \\( 3 \\)\n - \\( a \\) (new accept state)\n\n* Transitions:\n - \\( s \\xrightarrow{\\epsilon} 1 \\)\n - \\( 1 \\xrightarrow{a} 2 \\)\n - \\( 1 \\xrightarrow{b} 3 \\)\n - \\( 2 \\xrightarrow{a} 1 \\)\n - \\( 2 \\xrightarrow{b} 2 \\) (loop)\n - \\( 3 \\xrightarrow{a} 2 \\)\n - \\( 3 \\xrightarrow{b} 1 \\)\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 05", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 647, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ecbbc5c3-a770-4e60-9a4a-56384c9afc66": {"__data__": {"id_": "ecbbc5c3-a770-4e60-9a4a-56384c9afc66", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0a84be4c-a3fc-4aa6-a26c-491c97d6c982", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "c901eae72497e02e2853ff4b0ba8f849e129e264e42b6249b959ba33329908f6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* \\( \\varepsilon \\) from all accepts state to \\( a \\)\n\n\n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n
b
a
12
\\(\\varepsilon\\)a\\(\\varepsilon\\)
sbb
3\\(\\varepsilon\\)
a
a
\n\n- The diagram shows states \\( s, 1, 2, 3, a \\) with transitions labeled \\( a, b, \\varepsilon \\).\n- State \\( s \\) transitions to state 1 with \\( \\varepsilon \\).\n- State 1 transitions to state 2 with \\( a \\), and to state 3 with \\( b \\).\n- State 2 has a loop on \\( b \\), transitions to state 1 with \\( a \\), and to state \\( a \\) with \\( \\varepsilon \\).\n- State 3 transitions to state 1 with \\( b \\), to state 2 with \\( a \\), and to state \\( a \\) with \\( \\varepsilon \\).\n- State \\( a \\) is an accept state.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1051, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f087958-aae5-4c87-b927-59d19b8bc4c5": {"__data__": {"id_": "9f087958-aae5-4c87-b927-59d19b8bc4c5", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6198b53b-fb1f-40fc-85b4-788f6365adfa", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "020eb4ab7a37302decf35c9a4120442884fe38a43684bfba1cb59c0cc39c0475", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Converting a DFA to a GNFA (Example)\n\n* All original accept states to non-accept state\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> 1: \u03b5\n 1 --> 2: a\n 2 --> 1: a\n 2 --> 2: b\n 1 --> 3: b\n 3 --> 1: a\n 3 --> 2: a\n 2 --> a: \u03b5\n 3 --> a: \u03b5\n\n state s {\n direction LR\n }\n state 1 {\n direction LR\n }\n state 2 {\n direction LR\n }\n state 3 {\n direction LR\n }\n state a {\n direction LR\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 476, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80b2c24c-27dc-4129-b2c6-279c7751f942": {"__data__": {"id_": "80b2c24c-27dc-4129-b2c6-279c7751f942", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bc2859e1-b884-4e96-8b7f-88dd0ec0c20c", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "527c1f43bb72dd8214cb64c3a7038ca050b67c3e9e06dec840889a772eefa0d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# GNFA to Regular Expression\n\n* Note that by converting a DFA and an equivalent GNFA, the language of the machine remain unchanged \n* Next, we are going to remove original states of DFA one at a time until there are only two states left \n - When a state is removed, we have to make sure that the language of the machine is not changed \n - The new start state \\( s \\) and the new accept state \\( a \\) \n\n* Example:\n\n```mermaid\nflowchart LR\n A[\"3-state DFA\"] --> B[\"5-state GNFA\"]\n B --> C[\"4-state GNFA\"]\n C --> D[\"3-state GNFA\"]\n D --> E[\"2-state GNFA\"]\n E --> F((regular expression))\n```\n\n* The transition from \\( s \\) to \\( a \\) is a regular expression that expresses the language of the original DFA", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 723, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "60f2ac86-be8d-4e58-bf3c-53201713cbaa": {"__data__": {"id_": "60f2ac86-be8d-4e58-bf3c-53201713cbaa", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "76f84c99-3bbe-4f61-8908-9715c4ab1485", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "49b4c0c247465294451cc1677cc3f14a6724637e953459e183e373d8da848d22", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Reducing Number of States of GNFA\n\n* Removing \\( q_{rip} \\)\n\n```mermaid\ngraph LR\n qi -->|R_4| qj\n qi -->|R_1| q_{rip}\n q_{rip} -->|R_3| qj\n q_{rip} -->|R_2| q_{rip}\n```\n\n* How to go from \\( q_i \\) to \\( q_j \\)?\n - \\( q_i \\to q_j \\) using a string in \\( R_4 \\)\n - \\( q_i \\to q_{rip} \\to q_j \\)\n - \\( q_i \\to q_{rip} \\) using a string in \\( R_1 \\)\n - \\( q_{rip} \\to q_{rip} \\) using a string in \\( R_2 \\) any number of times \\((R_2^*)\\)\n - \\( q_{rip} \\to q_j \\) using a string in \\( R_3 \\)\n\n* From \\( q_i \\) to \\( q_j \\) by any strings in \\( R_1 R_2^* R_3 \\cup R_4 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 583, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4433fcdb-b224-4ef0-94b9-0377add9c674": {"__data__": {"id_": "4433fcdb-b224-4ef0-94b9-0377add9c674", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "152edc16-c920-437a-b0ba-f35581ef93d8", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "3a204a18cdd4333ffdb38ce975c463d8c59ba02569a25f7e14949644dabda872", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Reducing Number of States of GNFA\n\n* Removing \\( q_{rip} \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> qi\n qi --> q_{rip} : \\(R_1\\)\n qi --> q_j : \\(R_4\\)\n q_{rip} --> q_{rip} : \\(R_2\\)\n q_{rip} --> q_j : \\(R_3\\)\n```\n\n\\(\\Rightarrow\\)\n\n```mermaid\nstateDiagram-v2\n [*] --> qi\n qi --> q_j : \\(R_1 R_2^* R_3 \\cup R_4\\)\n```\n\n* To remove \\( q_{rip} \\)\n 1. Search for all possible paths from a state \\( q \\) to \\( q_{rip} \\) and to a state \\( r \\) \n $$\n q \\to q_{rip} \\to r\n $$\n 2. Turn all paths from previous step to regular expressions \n 3. Remove \\( q_{rip} \\) which results in \\( q \\to r \\) \n 4. Insert paths \\( q \\to r \\) back with their regular expressions", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 692, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2f978a54-0acf-40b0-80f6-5684f06acd25": {"__data__": {"id_": "2f978a54-0acf-40b0-80f6-5684f06acd25", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "93eac258-2d68-424f-9aaf-d72d778453b0", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "a1e4d7be4587b6dca9aec616e6c25712b308f133761366fbaed8ad0113bdf748", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* DFA\n\n```mermaid\nstateDiagram-v2\n [*] --> 1\n state 1 {\n direction LR\n 1 : a\n 1 --> 1 : a\n 1 --> 2 : b\n }\n state 2 {\n direction LR\n 2 : a, b\n 2 --> 2 : a, b\n }\n```\n\n$$\\{ w \\mid w \\text{ contains at least one } b \\}$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3d89c03a-aaee-4768-8242-966922ad3ce5": {"__data__": {"id_": "3d89c03a-aaee-4768-8242-966922ad3ce5", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6e656f5e-02b3-401b-b505-df91fe32ea06", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "4d37fee1f55d7e45825e4a342ece0b9094ea86041a6fb55ff7c0e30fdd60e45f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* DFA to GNFA\n\n```mermaid\nstateDiagram-v2\n direction LR\n %% DFA on the left\n [*] --> 1\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a,b\n 2 --> [*]\n\n %% Arrow to GNFA on the right\n %% GNFA on the right\n [*] --> s\n s --> 1: \u03b5\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a \u222a b\n 2 --> a: \u03b5\n a --> [*]\n```\n\n$$\\{ w \\mid w \\text{ contains at least one } b \\}$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 392, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8ce34de2-1475-4d46-9132-ea21a7202f7b": {"__data__": {"id_": "8ce34de2-1475-4d46-9132-ea21a7202f7b", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3464d2e9-13a0-49d6-99a8-6c6dcf36c2f5", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "32aa82748825cefcf9f178bb00c43617472d37f8ca21bd6f02180c2c1905d163", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 2\n\n```mermaid\nstateDiagram-v2\n [*] --> 1\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a,b\n 2 --> [*]\n\n %% After transformation\n state s {\n [*] --> 1\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a \u222a b\n 2 --> a: \u03b5\n a --> [*]\n s --> 1: \u03b5\n }\n\n %% Final transformation\n state s2 {\n [*] --> 1\n 1 --> 1: a\n 1 --> a: b(a \u222a b)*\n a --> [*]\n s2 --> 1: \u03b5\n }\n```\n\n$$\n\\{ w \\mid w \\text{ contains at least one } b \\}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 530, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49843578-c758-48cd-a44e-4c539c5bb422": {"__data__": {"id_": "49843578-c758-48cd-a44e-4c539c5bb422", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d6516930-e907-4f5a-b0ea-f75ee045e244", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "3fe196a5b424ab55e5fca61dff5b4c19c72b81049d7ba9d1c506e97c1ba235a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 1\n\n```mermaid\nstateDiagram-v2\n [*] --> 1\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a,b\n 2 --> [*]\n\n %% Step 1: Introduce new start and accept states with epsilon transitions\n state s1 {\n [*] --> s\n s --> 1: \u03b5\n 1 --> 1: a\n 1 --> 2: b\n 2 --> 2: a U b\n 2 --> a: \u03b5\n a --> [*]\n }\n\n %% Step 2: Remove state 1 by combining transitions\n state s2 {\n [*] --> s\n s --> a: a* b (a U b)*\n a --> [*]\n }\n```\n\n$$ \\{ w \\mid w \\text{ contains at least one } b \\} $$\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 05", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 641, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5163eae3-c83b-462c-85f6-77ae72c61835": {"__data__": {"id_": "5163eae3-c83b-462c-85f6-77ae72c61835", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0243a187-3d87-4bcd-bb20-126432441bef", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "0f5d61d1be6eb27eaa80863a3eb3bffd85beef18a47ef4f6ac233d99cbcd14bc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* DFA to GNFA\n\n```mermaid\nstateDiagram-v2\n direction LR\n %% DFA on the left\n [*] --> 1\n 1 --> 2: a\n 1 --> 3: b\n 2 --> 2: b\n 2 --> 3: a\n 3 --> 1: b\n 3 --> 2: a\n state 2 {\n <>\n }\n state 3 {\n <>\n }\n\n %% Arrow to GNFA\n 1 --> 2: \" \" %% just to separate visually\n\n %% GNFA on the right\n [*] --> s\n s --> 1: \u03b5\n 1 --> 2: a\n 1 --> 3: b\n 2 --> 2: b\n 2 --> a: \u03b5\n 2 --> 3: a\n 3 --> 1: b\n 3 --> 2: a\n 3 --> a: \u03b5\n state a {\n <>\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 558, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "70bc87f7-acb1-404c-b066-e632d50f9f34": {"__data__": {"id_": "70bc87f7-acb1-404c-b066-e632d50f9f34", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "44a18c7a-1916-4ec4-b88c-ff5ab8794657", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "782e95ba1c21bc94dc30d67bad4b0fde27ac6e532eb494bb4aebd2e51abbcace", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 1\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> 1: \u03b5\n 1 --> 2: a\n 1 --> 3: b\n 2 --> 2: b\n 2 --> 3: a\n 2 --> a: \u03b5\n 3 --> 1: b\n 3 --> a: \u03b5\n 3 --> 2: a\n\n %% After removing state 1\n [*] --> s\n s --> 2: a\n s --> 3: b\n 2 --> 2: aa \u222a b\n 2 --> 3: ab\n 2 --> a: \u03b5\n 3 --> 2: ba \u222a a\n 3 --> 3: bb\n 3 --> a: \u03b5\n```\n\n* Paths that go through state 1 \\((q \\to 1 \\to r)\\)\n - \\(s \\to 1 \\to 2 \\quad \\epsilon a = a\\)\n - \\(s \\to 1 \\to 3 \\quad \\epsilon b = b\\)\n - \\(2 \\to 1 \\to 2 \\quad aa\\)\n - \\(2 \\to 1 \\to 3 \\quad ab\\)\n - \\(3 \\to 1 \\to 2 \\quad ba\\)\n - \\(3 \\to 1 \\to 3 \\quad bb\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 653, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d41604f-ccf3-4720-bb83-47e03db28606": {"__data__": {"id_": "8d41604f-ccf3-4720-bb83-47e03db28606", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7d412a0b-f7b9-46f1-bc62-a0739570e40a", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "056367591d19bdb94b098f048eb6e793095b255284f0259f519986163b3b21fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 2\n\n```\n aa \u222a b\n \u21bb\n +---------+\n | | \u03b5\n s -|-> 2 ---------> a (final)\n a | \u2191 ab \u03b5\n | | ba \u222a a\n | 3 --------->\n b | \u2191 bb \u03b5\n +---------+\n```\n\n```\n a(aa \u222a b)* a\n s ---------------> a -------->\n \\ | (ba \u222a a)(aa \u222a b)* \u222a \u03b5\n \\ |\n \\ v\n \\-> 3 ---------> a\n (ba \u222a a)(aa \u222a b)*ab \u222a b\n \u2191\n (ba \u222a a)(aa \u222a b)*ab \u222a bb\n```\n\n* Paths that go through state 2 \\((q \\to 2 \\to r)\\)\n - \\(s \\to 2 \\to a \\quad a(aa \\cup b)^* \\varepsilon = a(aa \\cup b)^*\\)\n - \\(s \\to 2 \\to 3 \\quad a(aa \\cup b)^* ab\\)\n - \\(3 \\to 2 \\to a \\quad (ba \\cup a)(aa \\cup b)^* \\varepsilon = (ba \\cup a)(aa \\cup b)^*\\)\n - \\(3 \\to 2 \\to 3 \\quad (ba \\cup a)(aa \\cup b)^* ab\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 861, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0bbc0af0-26c9-47aa-95bf-5c02799ecb32": {"__data__": {"id_": "0bbc0af0-26c9-47aa-95bf-5c02799ecb32", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8cda882e-c3ec-423e-b6c6-6cb7b0986f20", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "527166682af951849cd7bfb2337417948e07de619022946f8dd10490a2cea069", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Get rid of state 3\n\n```mermaid\nstateDiagram-v2\n [*] --> s\n s --> a: a(aa \u222a b)*\n s --> 3: a(aa \u222a b)*ab \u222a b\n 3 --> a: (ba \u222a a)(aa \u222a b)* \u222a \u03b5\n 3 --> 3: (ba \u222a a)(aa \u222a b)*ab \u222a bb\n```\n\n$$\n(a(aa \\cup b)^* ab \\cup b) ((ba \\cup a)(aa \\cup b)^* ab \\cup bb)^* ((ba \\cup a)(aa \\cup b)^* \\cup \\epsilon) \\cup a(aa \\cup b)^*\n$$\n\n* Paths that go through state 3 \\((q \\to 3 \\to r)\\)\n - \\(s \\to 3 \\to a\\)\n\n$$\n(a(aa \\cup b)^* ab \\cup b) ((ba \\cup a)(aa \\cup b)^* ab \\cup bb)^* ((ba \\cup a)(aa \\cup b)^* \\cup \\epsilon)\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 530, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6ba662f2-8a46-4641-9d20-03df369170b0": {"__data__": {"id_": "6ba662f2-8a46-4641-9d20-03df369170b0", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e23ea3ab-a4b8-4949-a436-5e59373a7b76", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "866fee241851044b46ae301f4fc0da946c19bab10120d9950ec888d5f6fa68d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Theorem 1.54\n\n* Earlier, we show that every regular expression expresses a regular language \n* We just show that every state diagram of a DFA can be converted into an equivalent regular expression\n\n> **Theorem (1.54)** \n> *A language is regular if and only if some regular expression describes it.*\n\n* **Problem**: If you cannot express a language using a regular expression, it does not mean it is not regular \n - The language is so complicate that it needs a very long and complicate regular expression", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 511, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1293141a-4ed9-4df8-9fe2-bf7f5c8b93df": {"__data__": {"id_": "1293141a-4ed9-4df8-9fe2-bf7f5c8b93df", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9fe088f9-2ef8-4423-a3d5-62436e7fff08", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "14e804ab6c1b5cfeb0d76282ba9256e110265cadd86a0acc29571b4c45160466", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automaton and Algorithm\n\n* For every finite automaton, there is an equivalent algorithm \n* For example, consider a machine where its language is the set of all strings over 0 and 1 that consist of an odd number of 1s.\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0 --> q0: 0\n q0 --> q1: 1\n q1 --> q1: 0\n q1 --> q0: 1\n state q1 {\n <>\n }\n```\n\n* The above machine can be converted into a Java method that \n - Takes a string of 0s and 1s as an argument \n - Returns true (accept) of the input string consisting of an odd number of 1s. Otherwise, returns false (reject).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 613, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0952c587-dcbe-4775-8254-649de5d73d8b": {"__data__": {"id_": "0952c587-dcbe-4775-8254-649de5d73d8b", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "749ed0a1-0e6d-470f-9c78-872325577a9e", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "0d191d03182d36e011b9faa06ed4571a1d98aa810960dce31155b377aa0615a6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata and Algorithm\n\n```java\npublic boolean isAccepted(String input)\n{\n String state = \"q0\";\n int length = input.length();\n\n for(int i = 0; i < length; i++)\n {\n char c = input.charAt(i);\n\n if(state.equals(\"q0\") && c == '0')\n state = \"q0\";\n else if(state.equals(\"q0\") && c == '1')\n state = \"q1\";\n else if(state.equals(\"q1\") && c == '0')\n state = \"q1\";\n else if(state.equals(\"q1\") && c == '1')\n state = \"q0\";\n }\n\n if(state.equals(\"q1\"))\n return true;\n else\n return false;\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 602, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "19750fba-4c0d-46cc-b01c-66c5a3a01144": {"__data__": {"id_": "19750fba-4c0d-46cc-b01c-66c5a3a01144", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/finite_automata_05_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "078502d8-ea4d-451f-89cb-2a4389055b0d", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/finite_automata_05_handout.pdf"}, "hash": "ce7055190f2744685decc24ccf69229a01dafbb56a90fe1f8afada0ddadddeba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Limitation of Finite Automaton\n\n* Finite Automaton only captures a small subset of algorithms \n - Problems that associated with Regular languages \n* Not all language can be recognized by a finite state machine \n - Such languages is called **Nonregular Languages** \n* Example: \n $$ B = \\{0^n 1^n \\mid n \\geq 0\\} $$ \n - $$ B = \\{\\varepsilon, 01, 0011, 000111, \\ldots \\} $$ \n - The machine need to be able to remember how many 0s and how many 1s it sees so far \n - We need an **infinite** number of states \n* If you cannot express a language using regular expression, it does not mean it is not a regular language \n - Too complicate and requires a huge number of states \n* We need a way to determine whether a language is not regular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 752, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9bcff89b-8957-42bf-8ce8-ec024d6dca0d": {"__data__": {"id_": "9bcff89b-8957-42bf-8ce8-ec024d6dca0d", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.2.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b99946d8-1495-43bf-93f5-337eea7ebf34", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/linalg-exercise3.2.pdf"}, "hash": "748132dfc1937dd10477b8947c370b0c9498b9ac505911f10eb28794beb133b0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Exercises 3.2\n\nIn Exercises 1, 2, 3, and 4, solve the equation for \\( X \\), given that \n\\[\nA = \\begin{bmatrix} 1 & 2 \\\\ 3 & 4 \\end{bmatrix}\n\\quad \\text{and} \\quad\nB = \\begin{bmatrix} -1 & 0 \\\\ 1 & 1 \\end{bmatrix}.\n\\]\n\n1. \n$$\nX - 2A + 3B = O\n$$\n\n2. \n$$\n3X = A - 2B\n$$\n\n3. \n$$\n2(A + 2B) = 3X\n$$\n\n4. \n$$\n2(A - B + 2X) = 3(X - B)\n$$\n\nIn Exercises 5, 6, 7, and 8, write \\( B \\) as a linear combination of the other matrices, if possible.\n\n5. \n\\[\nB = \\begin{bmatrix} 2 & 5 \\\\ 0 & 3 \\end{bmatrix}, \\quad\nA_1 = \\begin{bmatrix} 1 & 2 \\\\ -1 & 1 \\end{bmatrix}, \\quad\nA_2 = \\begin{bmatrix} 0 & 1 \\\\ 2 & 1 \\end{bmatrix}\n\\]\n\n6. \n\\[\nB = \\begin{bmatrix} 2 & -1 \\\\ -3 & 2 \\end{bmatrix}, \\quad\nA_1 = \\begin{bmatrix} 1 & 0 \\\\ 0 & 1 \\end{bmatrix}, \\quad\nA_2 = \\begin{bmatrix} 0 & 1 \\\\ 1 & 0 \\end{bmatrix}, \\quad\nA_3 = \\begin{bmatrix} 1 & -1 \\\\ 1 & 1 \\end{bmatrix}\n\\]\n\n7. \n\\[\nB = \\begin{bmatrix} 3 & 1 & 1 \\\\ 0 & 1 & 0 \\end{bmatrix}, \\quad\nA_1 = \\begin{bmatrix} 1 & 0 & -1 \\\\ 0 & 1 & 0 \\end{bmatrix}, \\quad\nA_2 = \\begin{bmatrix} -1 & 2 & 0 \\\\ 0 & 1 & 0 \\end{bmatrix}, \\quad\nA_3 = \\begin{bmatrix} 1 & 1 & 1 \\\\ 0 & 0 & 0 \\end{bmatrix}\n\\]\n\n8. \n\\[\nB = \\begin{bmatrix} 6 & -2 & 5 \\\\ -2 & 8 & 6 \\\\ 5 & 6 & 6 \\end{bmatrix}, \\quad\nA_1 = \\begin{bmatrix} 1 & 0 & 0 \\\\ 0 & 1 & 0 \\\\ 0 & 0 & 1 \\end{bmatrix}, \\quad\nA_2 = \\begin{bmatrix} 1 & 1 & 1 \\\\ 1 & 0 & 1 \\\\ 1 & 1 & 1 \\end{bmatrix}, \\quad\nA_3 = \\begin{bmatrix} 1 & 0 & 1 \\\\ 0 & 1 & 0 \\\\ 1 & 0 & 1 \\end{bmatrix}, \\quad\nA_4 = \\begin{bmatrix} 0 & -1 & 0 \\\\ -1 & 1 & 1 \\\\ 0 & 1 & 0 \\end{bmatrix}\n\\]\n\nIn Exercises 9, 10, 11, and 12, find the general form of the span of the indicated matrices, as in Example 3.17.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1632, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "895b7cb0-029c-4158-be4c-8ceb8eda3f39": {"__data__": {"id_": "895b7cb0-029c-4158-be4c-8ceb8eda3f39", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.2.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3bcb1699-795e-491a-8d46-c4b2107c8145", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.2.pdf"}, "hash": "7ff987e9c8388ce1e990cf2dabe69791af42c41224c84709ab3d6eb3ed98de68", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "5f8842ec-53ca-4559-8590-2d471000e749", "node_type": "1", "metadata": {}, "hash": "cfc59c329923b2072d045a2549e3b39bcd4f605efd40a67ddee96f9ecd52a4d6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9. $$\\text{span}(A_1, A_2) \\text{ in } B = \\begin{bmatrix} 2 & 5 \\\\ 0 & 3 \\end{bmatrix}, \\quad A_1 = \\begin{bmatrix} 1 & 2 \\\\ -1 & 1 \\end{bmatrix}, \\quad A_2 = \\begin{bmatrix} 0 & 1 \\\\ 2 & 1 \\end{bmatrix}$$\n\n10. $$\\text{span}(A_1, A_2, A_3) \\text{ in } B = \\begin{bmatrix} 2 & -1 \\\\ -3 & 2 \\end{bmatrix}, \\quad A_1 = \\begin{bmatrix} 1 & 0 \\\\ 0 & 1 \\end{bmatrix}, \\quad A_2 = \\begin{bmatrix} 0 & 1 \\\\ 1 & 0 \\end{bmatrix}, \\quad A_3 = \\begin{bmatrix} 1 & -1 \\\\ 1 & 1 \\end{bmatrix}$$\n\n11. $$\\text{span}(A_1, A_2, A_3) \\text{ in } B = \\begin{bmatrix} 3 & 1 & 1 \\\\ 0 & 1 & 0 \\end{bmatrix}, \\quad A_1 = \\begin{bmatrix} 1 & 0 & -1 \\\\ 0 & 1 & 0 \\end{bmatrix}, \\quad A_2 = \\begin{bmatrix} -1 & 2 & 0 \\\\ 0 & 1 & 0 \\end{bmatrix}, \\quad A_3 = \\begin{bmatrix} 1 & 1 & 1 \\\\ 0 & 0 & 0 \\end{bmatrix}$$\n\n12. $$\\text{span}(A_1, A_2, A_3, A_4) \\text{ in } B = \\begin{bmatrix} 6 & -2 & 5 \\\\ -2 & 8 & 6 \\\\ 5 & 6 & 6 \\end{bmatrix}, \\quad A_1 = \\begin{bmatrix} 1 & 0 & 0 \\\\ 0 & 1 & 0 \\\\ 0 & 0 & 1 \\end{bmatrix}, \\quad A_2 = \\begin{bmatrix} 1 & 1 & 1 \\\\ 1 & 0 & 1 \\\\ 1 & 1 & 1 \\end{bmatrix}, \\quad A_3 = \\begin{bmatrix} 1 & 0 & 1 \\\\ 0 & 1 & 0 \\\\ 1 & 0 & 1 \\end{bmatrix}, \\quad A_4 = \\begin{bmatrix} 0 & -1 & 0 \\\\ -1 & 1 & 1 \\\\ 0 & 1 & 0 \\end{bmatrix}$$\n\nIn Exercises 13, 14, 15, and 16, determine whether the given matrices are linearly independent.\n\n13. $$\\begin{bmatrix} 1 & 2 \\\\ 3 & 4 \\end{bmatrix}, \\quad \\begin{bmatrix} 4 & 3 \\\\ 2 & 1 \\end{bmatrix}$$\n\n14. $$\\begin{bmatrix} 1 & 2 \\\\ 3 & 4 \\end{bmatrix}, \\quad \\begin{bmatrix} 5 & 6 \\\\ 7 & 8 \\end{bmatrix}, \\quad \\begin{bmatrix} 1 & 1 \\\\ 1 & 1 \\end{bmatrix}$$\n\n15. $$\\begin{bmatrix} 0 & 1 \\\\ 5 & 2 \\\\ -1 & 0 \\end{bmatrix}, \\quad \\begin{bmatrix} 1 & 0 \\\\ 2 & 3 \\\\ 1 & 1 \\end{bmatrix}, \\quad \\begin{bmatrix} -2 & -1 \\\\ 0 & 1 \\\\ 0 & 2 \\end{bmatrix}, \\quad \\begin{bmatrix} -1 & -3 \\\\ 1 & 9 \\\\ 4 & 5 \\end{bmatrix}$$\n\n16.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1846, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f8842ec-53ca-4559-8590-2d471000e749": {"__data__": {"id_": "5f8842ec-53ca-4559-8590-2d471000e749", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.2.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3bcb1699-795e-491a-8d46-c4b2107c8145", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.2.pdf"}, "hash": "7ff987e9c8388ce1e990cf2dabe69791af42c41224c84709ab3d6eb3ed98de68", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "895b7cb0-029c-4158-be4c-8ceb8eda3f39", "node_type": "1", "metadata": {"page_number": 2, "file_name": "data/linalg-exercise3.2.pdf"}, "hash": "92ca1fb8597011bfcf4c0bce141f5f15e268867732a0f0c25dfa29c1eff073a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\\begin{bmatrix} 0 & 1 \\\\ 5 & 2 \\\\ -1 & 0 \\end{bmatrix}, \\quad \\begin{bmatrix} 1 & 0 \\\\ 2 & 3 \\\\ 1 & 1 \\end{bmatrix}, \\quad \\begin{bmatrix} -2 & -1 \\\\ 0 & 1 \\\\ 0 & 2 \\end{bmatrix}, \\quad \\begin{bmatrix} -1 & -3 \\\\ 1 & 9 \\\\ 4 & 5 \\end{bmatrix}$$\n\n16. $$\\begin{bmatrix} 1 & -1 & 2 \\\\ 0 & 2 & 6 \\\\ 0 & 0 & 1 \\end{bmatrix}, \\quad \\begin{bmatrix} 2 & 1 & 3 \\\\ 0 & 4 & 9 \\\\ 0 & 0 & 5 \\end{bmatrix}, \\quad \\begin{bmatrix} 1 & 2 & 1 \\\\ 0 & 3 & 5 \\\\ 0 & 0 & -1 \\end{bmatrix}, \\quad \\begin{bmatrix} -1 & 1 & -1 \\\\ 0 & 0 & -4 \\\\ 0 & 0 & 0 \\end{bmatrix}$$\n\n17. Prove Theorem 3.2(a), 3.2(b), 3.2(c), and 3.2(d).\n\n18. Prove Theorem 3.2(e), 3.2(f), 3.2(g), and 3.2(h).\n\n19. Prove Theorem 3.3(c).", "mimetype": "text/plain", "start_char_idx": 1596, "end_char_idx": 2277, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2226b3f8-9a47-423b-bfb7-9f1c3c19e811": {"__data__": {"id_": "2226b3f8-9a47-423b-bfb7-9f1c3c19e811", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.2.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4e861827-dbc3-4c7c-8acf-0832b29737a8", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/linalg-exercise3.2.pdf"}, "hash": "9794cacd8de3241126dcda03033b8dcd919985828add842c87c451a83eb545f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "20. Prove Theorem 3.3(d).\n\n21. Prove the half of Theorem 3.3(e) that was not proved in the text.\n\n22. Prove that, for square matrices \\( A \\) and \\( B \\), \n\\[\nAB = BA\n\\]\nif and only if\n\\[\n(A - B)(A + B) = A^2 - B^2.\n\\]\n\nIn Exercises 23, 24, and 25, if \n\\[\nB = \\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix},\n\\]\nfind conditions on \\( a \\), \\( b \\), \\( c \\), and \\( d \\) such that \n\\[\nAB = BA.\n\\]\n\n23. \n\\[\nA = \\begin{bmatrix} 1 & 1 \\\\ 0 & 1 \\end{bmatrix}\n\\]\n\n24. \n\\[\nA = \\begin{bmatrix} 1 & -1 \\\\ -1 & 1 \\end{bmatrix}\n\\]\n\n25. \n\\[\nA = \\begin{bmatrix} 1 & 2 \\\\ 3 & 4 \\end{bmatrix}\n\\]\n\n26. Find conditions on \\( a \\), \\( b \\), \\( c \\), and \\( d \\) such that \n\\[\nB = \\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix}\n\\]\ncommutes with both \n\\[\n\\begin{bmatrix} 1 & 0 \\\\ 0 & 0 \\end{bmatrix}\n\\quad \\text{and} \\quad\n\\begin{bmatrix} 0 & 0 \\\\ 0 & 1 \\end{bmatrix}.\n\\]\n\n27. Find conditions on \\( a \\), \\( b \\), \\( c \\), and \\( d \\) such that \n\\[\nB = \\begin{bmatrix} a & b \\\\ c & d \\end{bmatrix}\n\\]\ncommutes with every \\( 2 \\times 2 \\) matrix.\n\n28. Prove that if \\( AB \\) and \\( BA \\) are both defined, then \\( AB \\) and \\( BA \\) are both square matrices.\n\nA square matrix is called **upper triangular** if all of the entries below the main diagonal are zero. Thus, the form of an upper triangular matrix is\n\n\\[\n\\begin{bmatrix}\n* & * & \\cdots & * & * \\\\\n0 & * & \\cdots & * & * \\\\\n0 & 0 & \\ddots & \\vdots & \\vdots \\\\\n\\vdots & \\vdots & & * & * \\\\\n0 & 0 & \\cdots & 0 & *\n\\end{bmatrix}\n\\]\n\nwhere the entries marked * are arbitrary. A more formal definition of such a matrix \\( A = [a_{ij}] \\) is that \n\\[\na_{ij} = 0 \\quad \\text{if} \\quad i > j.\n\\]\n\n29. Prove that the product of two upper triangular \\( n \\times n \\) matrices is upper triangular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1720, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e2472239-ecf0-4729-854e-86369be33f4d": {"__data__": {"id_": "e2472239-ecf0-4729-854e-86369be33f4d", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.2.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6bb28efe-b03f-453e-a3a4-9ca9a3c10dfe", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/linalg-exercise3.2.pdf"}, "hash": "04b8739f65c6563e1cd1c0eec47d3dbc486b6968fe28c7444f631bb0959c3969", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "30. Prove Theorem 3.4(a), 3.4(b), and 3.4(c).\n\n31. Prove Theorem 3.4(e).\n\n32. Using induction, prove that for all \\( n \\geq 1 \\),\n$$\n(A_1 + A_2 + \\cdots + A_n)^T = A_1^T + A_2^T + \\cdots + A_n^T.\n$$\n\n33. Using induction, prove that for all \\( n \\geq 1 \\),\n$$\n(A_1 A_2 \\cdots A_n)^T = A_n^T \\cdots A_2^T A_1^T.\n$$\n\n34. Prove Theorem 3.5(b).\n\n35. \na. Prove that if \\( A \\) and \\( B \\) are symmetric \\( n \\times n \\) matrices, then so is \\( A + B \\).\n\nb. Prove that if \\( A \\) is a symmetric \\( n \\times n \\) matrix, then so is \\( kA \\) for any scalar \\( k \\).\n\n36. \na. Give an example to show that if \\( A \\) and \\( B \\) are symmetric \\( n \\times n \\) matrices, then \\( AB \\) need not be symmetric.\n\nb. Prove that if \\( A \\) and \\( B \\) are symmetric \\( n \\times n \\) matrices, then \\( AB \\) is symmetric if and only if \\( AB = BA \\).\n\nA square matrix is called **skew-symmetric** if \n$$\nA^T = -A.\n$$\n\n37. Which of the following matrices are skew-symmetric?\n\n(a) \n\\[\n\\begin{bmatrix}\n1 & 2 \\\\\n-2 & 3\n\\end{bmatrix}\n\\]\n\n(b) \n\\[\n\\begin{bmatrix}\n0 & -1 \\\\\n1 & 0\n\\end{bmatrix}\n\\]\n\n(c) \n\\[\n\\begin{bmatrix}\n0 & 3 & -1 \\\\\n-3 & 0 & 2 \\\\\n1 & -2 & 0\n\\end{bmatrix}\n\\]\n\n(d) \n\\[\n\\begin{bmatrix}\n0 & 1 & 2 \\\\\n-1 & 0 & 5 \\\\\n2 & 5 & 0\n\\end{bmatrix}\n\\]\n\n38. Give a componentwise definition of a skew-symmetric matrix.\n\n39. Prove that the main diagonal of a skew-symmetric matrix must consist entirely of zeros.\n\n40. (a) Prove that if \\( A \\) and \\( B \\) are skew-symmetric \\( n \\times n \\) matrices, then so is \\( A + B \\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1509, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "32d17c28-a73a-4de7-8dd4-7d4d94907749": {"__data__": {"id_": "32d17c28-a73a-4de7-8dd4-7d4d94907749", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.2.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4d267c78-1ef5-4a18-93eb-cf93685669b9", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/linalg-exercise3.2.pdf"}, "hash": "cf8f71f0e26b92359b113d8998423a6fd2c9349c215e51737a16400caa8056a9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "(b) Prove that if \\( A \\) is a skew-symmetric \\( n \\times n \\) matrix, then so is \\( kA \\) for any scalar \\( k \\).\n\n41. If \\( A \\) and \\( B \\) are skew-symmetric \\( 2 \\times 2 \\) matrices, under what conditions is \\( AB \\) skew-symmetric?\n\n42. Prove that if \\( A \\) is an \\( n \\times n \\) matrix, then \\( A - A^T \\) is skew-symmetric.\n\n43. (a) Prove that any square matrix \\( A \\) can be written as the sum of a symmetric matrix and a skew-symmetric matrix. \n**[Hint:** Consider Theorem 3.5 and Exercise 42.**]**\n\n(b) Illustrate part (a) for the matrix \n\\[\nA = \\begin{bmatrix}\n1 & 2 & 3 \\\\\n4 & 5 & 6 \\\\\n7 & 8 & 9\n\\end{bmatrix}.\n\\]\n\nThe **trace** of an \\( n \\times n \\) matrix \\( A = [a_{ij}] \\) is the sum of the entries on its main diagonal and is denoted by \\(\\operatorname{tr}(A)\\). That is, \n\\[\n\\operatorname{tr}(A) = a_{11} + a_{22} + \\cdots + a_{nn}.\n\\]\n\n44. If \\( A \\) and \\( B \\) are \\( n \\times n \\) matrices, prove the following properties of the trace:\n\n(a) \\[\n\\operatorname{tr}(A + B) = \\operatorname{tr}(A) + \\operatorname{tr}(B)\n\\]\n\n(b) \\[\n\\operatorname{tr}(kA) = k \\operatorname{tr}(A),\n\\]\nwhere \\( k \\) is a scalar.\n\n45. Prove that if \\( A \\) is an \\( m \\times n \\) matrix and \\( B \\) is an \\( n \\times m \\) matrix, then \n\\[\n\\operatorname{tr}(AB) = \\operatorname{tr}(BA).\n\\]\n\n46. If \\( A \\) is any matrix, prove that \\(\\operatorname{tr}(AA^T)\\) is equal to the sum of the squares of the entries of \\( A \\).\n\n47. Prove that there are no \\( n \\times n \\) matrices \\( A \\) and \\( B \\) such that \n\\[\nAB - BA = I_n.\n\\]\n\n----\n\nChapter 3: Matrices: Exercises 3.2 \nBook Title: Linear Algebra: A Modern Introduction \nPrinted By: Amir Valizadeh (amv214@pitt.edu) \n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\n\n\u00a9 2025 Cengage Learning Inc. All rights reserved. No part of this work may be reproduced or used in any form or by any means - graphic, electronic, or mechanical, or in any other manner - without the written permission of the copyright holder.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1977, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c60e9ae1-94b3-4a8f-ac00-108993561cba": {"__data__": {"id_": "c60e9ae1-94b3-4a8f-ac00-108993561cba", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cf9d54e1-c2df-4961-9b91-25c4c54db7ea", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "62265c232d227f19bbcc6252e1d339580ec57040c7318b25c0fd8bcfdd7ff985", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L02 Introduction to SE\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "94c5d420-cece-4681-acfa-00357f41916c": {"__data__": {"id_": "94c5d420-cece-4681-acfa-00357f41916c", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "61633c9d-7881-4c29-a960-1e0db00f6700", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "5ce7c966d78805a1352bdabcfcb59f662a7995e06be5510deccad52d5a7dcbb0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet. \n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes. \n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n\n* Material from these notes is obtained from various sources, including, but not limited to, the following: \n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009. \n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994. \n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011. \n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "569f92d6-1f26-4b58-962e-54f2b7bce4e4": {"__data__": {"id_": "569f92d6-1f26-4b58-962e-54f2b7bce4e4", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ac68996d-f79c-42b8-b138-1351bcbf1f2f", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "2405bed36482e30b75a9a7277e64b9ba6d6bd0ef47c367549fec9bfd58dbfbb1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have an overview of software engineering practices \n* You understand the need for process control when building software \n* You understand the differences between incremental, iterative, and adaptive development approaches", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 249, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ba03d2ec-0d06-425e-a6da-21b577b28d8f": {"__data__": {"id_": "ba03d2ec-0d06-425e-a6da-21b577b28d8f", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8ffd5cf7-5ef6-4e1c-aee5-80d2472b1b93", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "e1eb7a2e8093322b9baa6b2ea21e5b9935ac0cddc8bab61c44f1a1db9228b2be", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* \u27a1\ufe0f A short history of SE\n* Intro to software development lifecycle models\n - AdHoc & Waterfall Model\n - Development Approaches\n - Agile Manifesto", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "860b4059-cdae-4448-8a59-c839916365c4": {"__data__": {"id_": "860b4059-cdae-4448-8a59-c839916365c4", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dfe96f9b-45ec-4b99-93f4-5c9a29b03785", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "084c763a0f697d655890d80da2b3a4cd91c398768bc0700c3336eeaacced9350", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software systems\n\n* Many types of software systems exist:\n - Simple embedded systems\n - Complex search engines\n - Graphics-intensive games\n - \u2026\n* There is no common denominator/universal software to build them\n\n> All these systems need software engineering!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 264, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4362c638-951d-4f4b-bfaa-d1822e60860f": {"__data__": {"id_": "4362c638-951d-4f4b-bfaa-d1822e60860f", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fdd64d34-b5f8-48bf-a526-1bfc739811d3", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "cecd5f312f754600ba65d1b36165ff6a18b98d6ce6d8e74e063a65c9140e60a1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software engineering\n\n> *Software engineering* is an **engineering discipline** that is concerned with **all aspects of software production** from the early stages of system specification through to maintaining the system after it has gone into use. \n> \n> - Ian Sommerville\n\n* SE is a **process** concerned with all aspects of producing software to solve real-world problems: specifying, designing, developing, analyzing, testing, deploying, and maintaining software systems \n* It needs to adhere to a set of engineering **principles** and **best practices** \n* **Involves both technical and non-technical skills**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3d72b014-630b-4897-8107-60eb0f1acf86": {"__data__": {"id_": "3d72b014-630b-4897-8107-60eb0f1acf86", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f27af0db-5d61-4d73-8439-a49ab1b687cd", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "fe7dd1ca8c522405fa2ff5c2f623cc33d2154e136d5ac3caf454cfba691fc0a6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software engineering eras\n\n* \"Early days\" ~1945 \u2014 1950\n * ENIAC \n University of Pennsylvania, 1943 \u2014 1946\n\n[The image shows two black-and-white photographs of women operating the ENIAC computer. The first photo depicts three women working on a large, complex machine with many wires and components. The second photo shows two women standing in front of a large panel filled with numerous switches, dials, and cables.]\n\nhttps://penntoday.upenn.edu/news/eniacs-anniversary-nod-its-female-computers", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 503, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "970c747c-5872-4284-99cc-a989953733e6": {"__data__": {"id_": "970c747c-5872-4284-99cc-a989953733e6", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2310afd9-90fb-4ca7-9fa6-a180b7bc204c", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "95b1e2c3f2c79016495979344e3d0eebc8acd2398f7c1e1965874cabe4c4699f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software engineering eras\n\n* \"Early days\" ~1945 \u2014 1950 \n - ENIAC \n University of Pennsylvania, 1943 \u2014 1946\n\n* **Software crisis** ~mid 1960s \u2014 mid 1980s \n - Very large software projects \n - Start of large commercial software applications \n - E.g., IBM System/360, FORTRAN, COBOL, Apollo \n - Margaret E. Hamilton & Anthony Oettinger coined the term \"Software Engineering\"\n\nMargaret E. Hamilton \nBorn: 1936 \nDeveloped software for NASA\u2019s Apollo program \nFounded two companies \nPresidential Medal of Freedom\n\nAnthony Oettinger \n1929 - 2022 \nWorked on information resources policy (Harvard) \nConsulted on NASA\u2019s Apollo moon-landing program", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 659, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "92b340f9-a62d-4c23-8bd1-5bcea6ed6123": {"__data__": {"id_": "92b340f9-a62d-4c23-8bd1-5bcea6ed6123", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "79d3249d-23bb-44af-b504-04cd52c29379", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "eb9c73a412dbd4e3d3f1e91b75ca7b1b075bbcaa0993abb6bf5cae47fb70762d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Software Crisis \u2014 Causes\n\n* Complexity of software systems \n* Increasing demand \n* Projects ran over-budget & -time \n* Low quality software \n* No standards \n* Lack of formalization \n* Unmanageable, difficult to maintain \n\n1st NATO Software Engineering Conference (1968) \nGarmisch-Partenkirchen, Germany \n\n> \"The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.\" \n> \u2014 **Edsger Dijkstra** (1972, *The Humble Programmer*)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 749, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "60b85182-d6e5-4b96-9fda-0a4833547f99": {"__data__": {"id_": "60b85182-d6e5-4b96-9fda-0a4833547f99", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0ac1af02-820b-4a37-89d1-e073bc6368d6", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "d3e06198cfc571941cc161d65b7de458d71c0828a4b6cc20225a9d6dfff9d9db", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Software Crisis \u2014 Approaches\n\n* Reduce complexity\n* Improve communication\n* Introduce standards\n* CASE tools (computer-aided software engineering)\n* Define processes\n* Model-based engineering\n* Object-oriented programming\n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 232, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b63bd7f6-f324-421b-9c6e-777ddb94f673": {"__data__": {"id_": "b63bd7f6-f324-421b-9c6e-777ddb94f673", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ecf78f4d-7ec9-4bb9-988b-7df436dfc86e", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "58a9137da16061cb1a153227e6ea90d45e03baf3be7f5b4b4186b603b3b3a8e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Software Crisis \u2014 Today\n\n* There has been some progress, but some problems persist\n - Schedule / cost estimates are inaccurate\n - Fast pace\n - Productivity of developers does not keep up with demand\n - Customer expectations are not met\n - \u2026.\n\n\u2b07\ufe0f\n\n**Still a need for \"engineering\" the software process!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 315, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c6bc7b54-dc8d-4b4a-a711-1f5bc596b2d5": {"__data__": {"id_": "c6bc7b54-dc8d-4b4a-a711-1f5bc596b2d5", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "06845a24-060b-442b-8534-d74ff8f75b7c", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "bb40460a169a6d70c19c5152f46fb0d261e26ce98f7ca8bfd5b55802de0406e0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* A short history of SE\n* Intro to software development lifecycle models\n - AdHoc & Waterfall Model\n - Development Approaches\n - Agile Manifesto", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7b2e8681-c142-4677-b713-ceb5945e89e3": {"__data__": {"id_": "7b2e8681-c142-4677-b713-ceb5945e89e3", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "816da3f9-5b41-42dd-88bd-2ea5ac55438d", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "d69083552fea67fe4dbbcd19295734c0b04bf58e75fd7c53618792fbedd05c0a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Challenges in software development\n\n**Problem Statement** \nWe need a way so that people can get from one location to another using multiple means of transport, based on their available options and preferences.\n\n\u27a1\ufe0f ??? \u27a1\ufe0f \ud83e\uddd1\ud83c\udfff \ud83e\uddd1\ud83c\udffb \ud83e\uddd1\ud83c\udffc \ud83e\uddd1\ud83c\udffe \ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb1 \ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb3 \n**Enduser**\n\n\u2b07\ufe0f\n\nNeed for a **process**!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 289, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2888cca9-6403-44d6-a8c7-4a5eaedd17de": {"__data__": {"id_": "2888cca9-6403-44d6-a8c7-4a5eaedd17de", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7ae45023-52d3-42aa-b85e-1f645b677ad6", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "b22d41909227128a92d3120e4479170819008f180d59ad77039ab43ca87c52f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is a process?\n\n* **Series of steps** involving activities that take some **input**, constraints, and resources to produce an intended **output**\n* Involves a **set of techniques and tools**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 197, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "50231e6f-349c-4eae-a150-43ced5e5d842": {"__data__": {"id_": "50231e6f-349c-4eae-a150-43ced5e5d842", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6995170c-9106-4d29-a47a-4ce2a3f4e86b", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "ae1ce83ff3703557f3c751654a667e3f83fee8d2f59b82b4d85f0aed8479b567", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Code & Fix (**Ad hoc Model**)\n\n* Aka. *\"Build & fix model\"*\n* The product is constructed with minimal requirements, minimal or no specification, no attempt at design, and omitting testing\n* An initial product is built and then repeatedly modified until the user is satisfied\n\n```mermaid\nflowchart TD\n A[Build n-th version] --> B[Modify until user is satisfied]\n B --> C[Use]\n C --> B\n C --> D[final product]\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 426, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2af6906d-c13f-48ca-83bd-2aae04bd12ad": {"__data__": {"id_": "2af6906d-c13f-48ca-83bd-2aae04bd12ad", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "195ac748-dbe6-421d-83bb-6986ca46a829", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "9506b7834a38214254baff76d0cddb7daee9bf1a4495ec41d92e91b5b68564a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Ad hoc Model\n\n* Pros\n - Little overhead\n - Quick progress\n - Useful for small, exploratory projects\n - Useful for small teams\n\n* Cons\n - No proper quality assessment\n - Work synchronization is not defined\n - Changes may be hard to incorporate\n - Unclear delivery and timing\n - \u2026\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n \n \n
Doing a lot of work but no real progress towards the goal
100%Productive WorkThrashing
0%Process
Beginning of ProjectEnd of Project
\n\n> Source: https://stevemcconnell.com/articles/the-power-of-process/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 866, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "63193667-7336-4ecb-bba3-9144e2275e97": {"__data__": {"id_": "63193667-7336-4ecb-bba3-9144e2275e97", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "896ba819-470d-42da-ad54-994460cbfe57", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "48a2b1884c17746316246421c0240fd554a5ebf03703be389ba042bc301759cc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# *[Excursion]* Let\u2019s build a house!\n\n* Blueprint and requirements \n \u27a1\ufe0f Project Plan & Requirements\n\n* Foundation and architecture \n \u27a1\ufe0f System Design / Software Architecture\n\n* Construction phases \n \u27a1\ufe0f Development (Object Design)\n\n* Materials \n \u27a1\ufe0f Codebase, Tool Suite\n\n* Quality control and inspection \n \u27a1\ufe0f Testing, Deployment/Delivery\n\n* Interior design & occupant experience \n \u27a1\ufe0f User Interaction & Experience\n\n* Maintenance \n \u27a1\ufe0f Updates, Fixes, \u2026\n\n* Collaboration and Teamwork \n \u27a1\ufe0f Developers, Designers, Testers, Stakeholders, \u2026\n\n> These phases are similar to building a software system!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 609, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "01d86669-adb9-4c8c-b142-31f921e79c79": {"__data__": {"id_": "01d86669-adb9-4c8c-b142-31f921e79c79", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "642d6733-882d-4b31-b1a3-6ac2d039eb2c", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "64f983cbcd4b4bdca65aa97d95dcc0a5777738dd57494a9e8a469709fcd220c0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The software development process\n\n* Structured set of activities required to develop a software system\n* There are many different software processes!\n* Recurring stages:\n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n\n \n\n\n\n\n \n
Requirements specificationDesignImplementationVerification &
Validation
Evolution
What should the system do?How to organize the system?How to implement the system?How to test the system?How to change/maintain the system?
Risk ManagementRationale ManagementDeliveryConfiguration Management
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1183, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3d0181fc-f232-460e-a52c-5e942e54cc92": {"__data__": {"id_": "3d0181fc-f232-460e-a52c-5e942e54cc92", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "16da0020-2364-462d-b933-7ae036657379", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "278146d6b25ae99e2de7cd808f715842d7cb07ac8251a52265ca3a7ee4941fe4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Waterfall Model\n\n\n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n
Project initiation
Concept exploration
Requirements
Analysis
Implementation
Verification & Validation
Deployment
Maintenance
\n\n* \"Introduced\" by Winston Walker Royce, 1970 \n* Early software development process adapted from manufacturing & construction processes \n* An activity needs to be completely finished before the next one begins \n\n**Project timeline** \u2192 \n\n*exemplary, simplified steps*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 901, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8153c5d4-07bf-4d47-b397-770829bb2604": {"__data__": {"id_": "8153c5d4-07bf-4d47-b397-770829bb2604", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "72174a2f-75c8-4f33-b59c-d7238cfa2269", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "f93a5e1834ec2e5067e87a2696dd3b35cccc926c55d9d702c2f3be50994febb0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The Waterfall Model \u2014 Considerations\n\n* Activity-centered lifecycle model \n - Linear and sequential execution of activities (development & management process) \n - All requirements activities are completed before system design activities \n - Goal: Never turn back \n* Simplistic view of software development \n - Progress is measured by the number of completed tasks \n* No overlapping or iterative activities \n* Schedules software development as a step-by-step process \n - Transforms user needs into code \n* The verification activity ensures that each activity does not introduce unwanted or delete mandatory requirements \n* **Suited for short, simple projects with well-understood requirements**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 711, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3d6a1113-dfaa-40f3-934f-1d756b8ea0bd": {"__data__": {"id_": "3d6a1113-dfaa-40f3-934f-1d756b8ea0bd", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5fda9851-09a4-45a9-9932-3c425534ee85", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "755222dc350989c7b33a6dd6416a647e4587ebf67e07a7a06e0af148f550f5c0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* A short history of SE\n* Intro to software development lifecycle models\n - AdHoc & Waterfall Model\n - Development Approaches\n - Agile Manifesto", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "07b948e6-2f87-4ddc-b172-dc81e9514c7a": {"__data__": {"id_": "07b948e6-2f87-4ddc-b172-dc81e9514c7a", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c68617d1-f8f0-4702-85d0-b3afd8ffc724", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "f5a50499b591535a227d2f1ad12fe12d70402f157da1cd57490cdf6c4e5f18a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is change in software projects?\n\n* Deviation from initial project plan \n - Evolving requirements throughout the project \n* New insights \n* Stakeholder feedback \n* Challenges \n - Some problems are easier to solve than others \n - Environment \n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 262, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a41a406c-eb68-4302-aead-cffc922191b9": {"__data__": {"id_": "a41a406c-eb68-4302-aead-cffc922191b9", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "314055b8-7bc4-470f-81f3-3e92b27bdf40", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "2aa92cb8ecc9ed7f47f48064814f25c2a38045494aa5b2c1cfc874c2d22fad7c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Software lifecycle models & change\n\n* Software lifecycle models vary in their ability to address change\n - **Flexibility:** How can change be addressed?\n - **Responsiveness:** When can change be addressed?\n* Lifecycle model choice impacts its ability to handle the frequency of change\n* Frequency of change describes how often change occurs, depends on many factors", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 370, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "52d6b7d2-9032-41f8-b54e-6efda932d479": {"__data__": {"id_": "52d6b7d2-9032-41f8-b54e-6efda932d479", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "50122b4c-c8d6-4a0c-9fcf-5d027871f863", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "bf555388484dd71ae7764b232ddb5951b6154362624d99320ab8614303dec3ff", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Rough estimation of change frequency\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n
RarelySometimesFrequently
\n
\u2193 \u2193
\n
Sequential models
\n
Waterfall, V-Model
\n
\n
\u2193 \u2193 \u2193 \u2193
\n
Iterative models
\n
Spiral Model, Unified Process
\n
\n
\u2193 \u2193 \u2193 \u2193 \u2193 \u2193 \u2193
\n
Agile
\n
Scrum, Kanban, XP
\n
\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 747, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8ab6ac17-f717-4382-92aa-8b0acb620dcf": {"__data__": {"id_": "8ab6ac17-f717-4382-92aa-8b0acb620dcf", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3a515d3b-83da-4cd6-aeb0-a42223e71059", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "e4b4539298c2c64cde06c9078a0ef3edf49150511ab5a85a4fd0f575bcb8465a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n * Build the system in small, usable sections\n * Each increment adds a defined set of functionalities\n * Works well when requirements are well-understood\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n \n
R1R2R3R4
Top down integration\u25a0\u25a0\u25a0\u25a0UI
\u25a0\u25a0\u25a0\u25a0Middleware
\u25a0\u25a0\u25a0\u25a0Data Access
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 737, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "af461c86-afa7-4f98-aa15-b3af34742f54": {"__data__": {"id_": "af461c86-afa7-4f98-aa15-b3af34742f54", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "94c708e0-5040-45a8-94e1-a3fa5eaa49d0", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "a880da4f3f4e21f3f8cec7808409ab2cd51f775161b2f74f4a197073155cd25e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n * Build the system in small, usable sections\n * Each increment adds a defined set of functionalities\n * Works well when requirements are well-understood\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n
R1R2R3R4
UI
Middleware
Data Access
\n\n> Bottom-up integration \u2191", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 742, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "12aabcca-962e-46fd-99a2-b3525d102c78": {"__data__": {"id_": "12aabcca-962e-46fd-99a2-b3525d102c78", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cf1be8e3-f1ae-461a-a11d-d49e09db5ec5", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "4c49dfb19235d957d786f4e11d031073f48ab70c687ba88f44b3d142ddcb849c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n * Build the system in small, usable sections\n * Each increment adds a defined set of functionalities\n * Works well when requirements are well-understood\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n
R1R2R3R4
UI
Middleware
Data Access
\n\n> Vertical integration", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 739, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2be00d2a-9957-4a88-998c-d5e5db173c66": {"__data__": {"id_": "2be00d2a-9957-4a88-998c-d5e5db173c66", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e788a4e4-15e9-47df-8bd4-48fdc2fb0b7b", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "ef01a83f4c061cff99a99feed0b26253418f6df7eed0ef92815800527f30c8d3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n* **Iterative** development (**re-do something**)\n * Repeat development cycles on the same functionalities\n * Each cycle improves and refines the product (prototype)\n * Allows to incorporate stakeholder feedback\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n
R1R2R3R4
UI
Middleware
Data Access
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1067, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d077e62-1044-4535-b6ff-e8808fd97425": {"__data__": {"id_": "8d077e62-1044-4535-b6ff-e8808fd97425", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e9683055-78ac-42fd-845f-1ff50d3d03c7", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "5f2f4da117a97a5d459952dde3617c6ba876b65e58fbd4715d31bc8cac28962c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n* **Incremental** development (**add on to something**)\n* **Iterative** development (**re-do something**)\n* **Adaptive** development (**adjust to change**)\n - Highly flexible to changing requirements\n - Adjust based on learning from previous iterations\n - Works well for projects with high uncertainty and evolving projects\n\n> **First rule of usability:** \n> Don\u2019t listen, watch what people actually do \n> \u2014 Jakob Nielsen\n\n```mermaid\nflowchart TB\n subgraph R1[\"R1\"]\n direction TB\n UI1[\"UI\"]\n Middleware1[\"Middleware\"]\n DataAccess1[\"Data Access\"]\n end\n subgraph R2[\"R2\"]\n direction TB\n UI2[\"UI\"]\n Middleware2[\"Middleware\"]\n DataAccess2[\"Data Access\"]\n end\n subgraph R3[\"R3\"]\n direction TB\n UI3[\"UI\"]\n Middleware3[\"Middleware\"]\n DataAccess3[\"Data Access\"]\n end\n subgraph R4[\"R4\"]\n direction TB\n UI4[\"UI\"]\n Middleware4[\"Middleware\"]\n DataAccess4[\"Data Access\"]\n end\n\n %% Highlight R3 crossed out with text\n click R3 callback \"We don\u2019t need R3!\"\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1119, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8808c8e8-fb0d-432e-9d5e-89c30ee3b43c": {"__data__": {"id_": "8808c8e8-fb0d-432e-9d5e-89c30ee3b43c", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b202c7d3-d116-4f9a-a5c8-38e4cefc5a7d", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "f1f24bdd8a897c05a60f97fdfc2e01f8e87bd1f2f62c614cd83c5ea630bff754", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n\n \n\n\n\n\n \n \n
Delivery Frequency
Degree of Changelowhigh
PredictiveIncremental
low
highIterativeAdaptive (Agile)
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 832, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8ec2d9fa-7673-41b5-a9bc-a252244010ed": {"__data__": {"id_": "8ec2d9fa-7673-41b5-a9bc-a252244010ed", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2bc7caf0-40cc-4dbe-82be-f500dd0fd271", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "3cf6ecfd769f217f231f2c84d20558c6b9a1ed4597b1e59835d4103fbaea3d8e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Development approaches\n\n\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n \n \n \n
Predictive
PlanAnalysisDesignCodeTestDeploy3 to 24 months
\n\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n \n
Iterative
PlanAnalysisDesignCodeTestDeployPlanAnalysis
DesignCodeTestDeployPlanAnalysisDesignCode
TestDeploy1 to 3 months1 to 3 months1 to 3 months1 to 3 months
\n\n\n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n\n \n\n\n\n\n\n\n\n \n \n
Adaptive
IterationIterationIterationIterationIterationIterationIterationIteration
IterationIterationIterationIterationIterationIterationIterationIteration
IterationIterationIterationIterationIterationIterationIterationIteration
\n\n\n \n \n \n \n \n \n \n \n \n \n \n
PlanAnalysisDesignCodeTestDeploy1 - 4 weeks
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1787, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "51189d5e-0c0d-4da8-acbd-c3a6aa0169f9": {"__data__": {"id_": "51189d5e-0c0d-4da8-acbd-c3a6aa0169f9", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "514ea317-c2e7-4a4c-b87e-2818f235e22d", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "a45c2c6eed9bb8308b856410cddb31f2bb652089743dbb715957eaffe8366026", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* A short history of SE\n* Intro to software development lifecycle models\n - AdHoc & Waterfall Model\n - Development Approaches\n - Agile Manifesto", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "43a8200d-5dd1-4f84-878c-ceb6ba62cc49": {"__data__": {"id_": "43a8200d-5dd1-4f84-878c-ceb6ba62cc49", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "84da65eb-0d7c-4813-9e35-39dbf0e2790d", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "31a26074cfc6e2458e829cec88e9859cbe9f6468b84ce1b3dc2f0c5b4235b431", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Agile manifesto (2001)\n\n*We are uncovering better ways of developing software by doing it and helping others do it. \nThrough this work we have come to value:*\n\n**Individuals and interactions** over processes and tools \n**Working software** over comprehensive documentation \n**Customer collaboration** over contract negotiation \n**Responding to change** over following a plan\n\n*That is, while there is value in the items on the right, we value the items on the left more.*\n\nKent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, \nAndrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas\n\nagilemanifesto.org/\n\nBackground story: https://agilemanifesto.org/history.html", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 812, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "17755531-2f7c-4073-9bdb-c13d7a4e5d45": {"__data__": {"id_": "17755531-2f7c-4073-9bdb-c13d7a4e5d45", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f3f33dd3-1faf-42d4-80e2-8620431240a3", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "ed6dbebb8acdc4b47ffa11bb6de29efacd87a16f13c7ffadab2381624da85375", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Agile methodology\n\n* Set of principles and practices for software development \n* Designed to accommodate change \n* Require a collaborative approach among cross-functional teams \n* Examples: \n - Scrum \n - Kanban \n - XP \n - Lean software development \n - Feature-driven development \n\n```mermaid\nflowchart LR\n Plan --> Design\n Design --> Develop\n Develop --> Test\n Test --> Deploy\n Deploy --> Review\n Review --> Plan\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "964eb663-d927-4cb5-a573-0aef8810f2b5": {"__data__": {"id_": "964eb663-d927-4cb5-a573-0aef8810f2b5", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "09f663b3-7ae3-42b6-85f9-f44131912f34", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "e2210c23fa6a3f690490617630b287fff995d31c2dd959b6b5532ac1d5d6a41e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Agile principles\n\n* **Continuously deliver** value to customers with early and frequent software releases \n* **Collaborate daily** across all team members, blending business and technical expertise \n* Foster a supportive environment for self-motivated teams, emphasizing direct communication \n* Focus on **delivering functional software** as a key progress indicator \n* Ensure the **development pace is sustainable** for long-term project health \n* Pursue technical excellence, good design, and simplicity \n* Engage in **regular self-assessment** to improve effectiveness and processes", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 594, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d7a4997b-b460-4b5e-98a8-6e0a0a4f6e6c": {"__data__": {"id_": "d7a4997b-b460-4b5e-98a8-6e0a0a4f6e6c", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9c5da269-4ae3-40fe-9809-a08872ddf5ab", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "77e8b8f11b0ca304bd0dc3861e9d64ce7e42a121e5f4dad55e972c1d38693c7b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Key characteristics\n\n* **Adapt to changing requirements**, even late in a project's development cycle\n* Agile projects are broken down into **small, manageable increments**\n - Each increment goes through multiple steps: planning, design, coding, and testing\n - An increments is usually referred to as a **\"sprint\"** (or an \"iteration\")\n* **Stakeholder involvement is important:** Regular feedback from customers or end-users is integrated into the development process\n* **Self-organizing and cross-functional teams**\n* **Continuous improvement** of the product, the process, and the team\n* **Frequent releases** of the product\n\nRetrospectives", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 647, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "97fbf733-c9f5-4700-9f9e-41a6fabf1b20": {"__data__": {"id_": "97fbf733-c9f5-4700-9f9e-41a6fabf1b20", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4029c6c4-7d7f-452b-8e35-6b88212b0b3b", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "a6ad4afb059cf31747d8cd1a0b29f44ff66b6758c72e2c0de58926fe5cc16d21", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Summary: Need for process control in software development\n\n*Software crisis (~1960s-1980s*)* \n* Cost overruns, delays, and unreliable software due to unstructured development\n\n## Need for Software Development Lifecycle Models:\n* Process control ensures quality, predictability, and scalability in software projects\n* Ad-hoc development: Code & fix model \n - Lack of planning, maintenance, and scalability \n - Suitable for small, well-understood projects\n* Waterfall Model: Sequential, rigid, suitable for stable requirements but not adaptable to changes\n* Incremental (add-on), iterative (re-do) vs adaptive (adjust for change) development approaches\n* Agile Manifesto: Focuses on collaboration, flexibility, and delivering incremental value", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 749, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0d4f797e-9985-4483-8104-fe1927bd8b5c": {"__data__": {"id_": "0d4f797e-9985-4483-8104-fe1927bd8b5c", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e56cd5b5-e39d-4fd4-98f3-2460c2e252ae", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "049cde75307319d7ef74c1e69fac5ffa9456dcfc30485b7c194428d3fad50d5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Optional Readings\n\n* CS History \n - https://www.computerhistory.org/timeline/computers/\n* ENIAC \n - https://www.computerhistory.org/revolution/birth-of-the-computer/4/78 \n - https://spectrum.ieee.org/the-women-behind-eniac\n* Agile Manifesto \n - https://agilemanifesto.org/ \n - https://www.agilealliance.org/agile101/the-agile-manifesto/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 349, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "787d813b-1ab6-4dee-a0e6-49d957f9e274": {"__data__": {"id_": "787d813b-1ab6-4dee-a0e6-49d957f9e274", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a4e6c93c-47cd-4e41-8a78-3dbeeb5c34bf", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "b3bf52015c14804d1e9599028021f1b8ada59809e772bf524bc87528d0fe7abd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017\n* Agile Alliance, [https://www.agilealliance.org/agile101/the-agile-manifesto/])(https://www.agilealliance.org/agile101/the-agile-manifesto/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 335, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3c3f90c1-d851-4f7c-b9d2-350fc5592566": {"__data__": {"id_": "3c3f90c1-d851-4f7c-b9d2-350fc5592566", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e03ca417-2d71-4e1c-a7bc-a25ef548ac2f", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L02 Introduction to SE.pdf"}, "hash": "293edf449526db0d65d9a599be8f70687a64e539026121b8802456e1eb5ddd60", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L02 Introduction to SE\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c3b856e2-7053-4ed1-bf06-4c3d2538b613": {"__data__": {"id_": "c3b856e2-7053-4ed1-bf06-4c3d2538b613", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e0bba792-72c9-4fdb-a0b8-5e3da1913546", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "1303ba7fb01badab0977c6669ceb38b17d7c73efc1ecc6336474e8d8dcbe76c0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L11 Requirements Analysis & OOP Recap\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 185, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "68f2d445-fc60-4725-8eef-911788692de8": {"__data__": {"id_": "68f2d445-fc60-4725-8eef-911788692de8", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "14a5cbb6-7253-4615-8c05-4e79d1fdb30e", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "262adb13d3fa743ccc14c6540e42125e837a4e3259751d6ab5d0e66928942b38", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1f89421a-9671-405a-aba9-a3949ff17da5": {"__data__": {"id_": "1f89421a-9671-405a-aba9-a3949ff17da5", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bf5091ec-4cf1-4144-8886-174d3d0f9af5", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "5dbc80e93541431487ea2e82878ca765948c86159dc144f0e086cc833fbe71ed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You understand the purpose of an analysis object model\n* You can derive entity, boundary, and control objects from requirements / a problem statement", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b1159d31-79ce-4b9e-869f-75cde235395d": {"__data__": {"id_": "b1159d31-79ce-4b9e-869f-75cde235395d", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "adafa2cb-411b-410a-95ec-3069faa7a0af", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "f4c8f0608aa2a393e1bc826fdeef60245df6a8a8689fc1d5a00dcb62a82f977a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to Analysis\n - Recap: OOP\n* Analysis object model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 78, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "471e69ec-4447-4f32-b0e0-6c38124d0b5f": {"__data__": {"id_": "471e69ec-4447-4f32-b0e0-6c38124d0b5f", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "61575fc3-24fa-4f47-8b43-68d8e7fdc638", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "3db94dcbfd84158c7adb42907007f008b5789551e9fbb69acbbb03eb54ba1a64", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Requirements specification?\n\n[Left image: William Ely Hill, 1915, *My Wife and My Mother-in-Law* \u2014 a multi-stable image showing either a young woman or an old woman.]\n\n[Right image: Schr\u00f6der's stairs, 1858 \u2014 an ambiguous staircase drawing labeled with \"A\" and \"B\" indicating two possible perspectives.]\n\n> If these multi-stable images were a requirements specification, which model would you have constructed? \n> \u2192 Specifications contain **ambiguities**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 457, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9d276082-74bf-4feb-a42b-303a4665b7c6": {"__data__": {"id_": "9d276082-74bf-4feb-a42b-303a4665b7c6", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5a63520f-9330-43c1-84cf-67eccac4be74", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "9951d3748542aaf9c55fa28d1f1f9235356df58064fd1ab1a18f8201dc39cd1a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Status in the SDLC\n\n* Requirements: What the system must do (functional + non-functional) \n* **Analysis**: Build models to understand and organize those requirements in the problem domain \n* Design: Translate analysis models into solution models (classes, architecture, code)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 280, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4b613efc-6fe5-4ac7-b6ca-5e557770667c": {"__data__": {"id_": "4b613efc-6fe5-4ac7-b6ca-5e557770667c", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "72a424ee-9763-478d-9508-c753ba6c8c51", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "7b2fe39d5dd43d8c2b6af82743cf6a7c874989719a25ad468623199af7bd31ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Analysis \u2014 First step towards system architecture\n\n* Refine and validate requirements \n - Resolve ambiguities discovered during requirements stage\n\n* Identify analysis objects \n - From problem domain (e.g., Sinkhole, Report, Resident, City Official)\n\n* Define relationships \n - Associations, aggregations, generalizations among analysis objects\n\n* Model system behavior \n - Scenarios \u2192 sequence diagrams, state machines, activity diagrams\n\n* Partition the problem \n - Which responsibilities belong to which objects or subsystems?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 542, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b74cf6d4-de87-4e09-9638-8dbf3f4f8726": {"__data__": {"id_": "b74cf6d4-de87-4e09-9638-8dbf3f4f8726", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "82b44829-a534-4ed8-9b66-60fe47d3e5fd", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "1c84ff6f0c6f3f22333c84fa9e7ac986c35770a576b65f1132f4df9e21b95d4d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to Analysis \n - Recap: OOP \n* Analysis object model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 82, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3244239d-a4aa-4b1c-b19c-750ef7dbd3af": {"__data__": {"id_": "3244239d-a4aa-4b1c-b19c-750ef7dbd3af", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "48c402ad-313c-4181-bc4a-8d2997250b7c", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "af7ce9591c0c2d30c0969226cf3024ae8b1ab23a2d0204d16550def88c097ed0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Object types\n\n> persistent information tracked by the system \nEntity \n**Sinkhole** \n(has location, status, reportedDate)\n\n> interaction between user and system \nBoundary \n**SinkholeReporter** \n(e.g., form; validates user input)\n\n> control tasks performed by the system \nControl \n**SinkholeReportController** \n(creates a new Sinkhole, saves it)\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 381, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2d754c5f-f169-4a3f-8139-95bbecd7c23b": {"__data__": {"id_": "2d754c5f-f169-4a3f-8139-95bbecd7c23b", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b88a3a67-d85a-451c-aac5-77a507f29ce3", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "e6d5a284bb906fda643b4b4b195c4cc615e8ad14bc7f501681cfc49618be0460", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System (SiMCity) to address the issue of sinkholes within the city. The first version of SiMCity should enable **residents** and **city officials** to **report** sinkhole occurrences and **track** their locations.\n\nThe system should be easy to use, accessible through **web and mobile platforms**, and track sinkholes in real-time.\n\nResidents should be able to **view** sinkholes on a **map**, helping them to avoid such areas. It should also allow residents to report new sinkholes by **sending** in their **location** and **photographic evidence** for verification, or **call for help**. **City officials** can **remove** sinkholes from the **map** after they have been re-filled and repaired.\n\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and improve the city\u2019s ability to manage and mitigate the impact of these geohazards.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 957, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0bb3e45-b69e-447d-b5a4-58416d9f8d5c": {"__data__": {"id_": "c0bb3e45-b69e-447d-b5a4-58416d9f8d5c", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "977507ab-d922-453e-a3f2-dcda52e5344d", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "c28eaf34050550de300ec7cdf1f9e67c3cebb1faca8d580ecf56158078044fb9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ExampleGrammatical constructUML element
sinkholeProper nounObject
residentImproper nounClass
trackAction verbOperation
is aBeing verbInheritance
has aHaving (verb)Aggregation
must have aModal verbConstraint
funAdjectiveAttribute
reportTransitive verbOperation
depends onIntransitive verbConstraint, class, association
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 801, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2d156c58-40e5-4710-a013-830b05915263": {"__data__": {"id_": "2d156c58-40e5-4710-a013-830b05915263", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6b68b636-07a0-4f54-93ef-561b1fc63de5", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "84d81bc43f70959975e825e8dedc40d722542ea815ae71b459a10fafc8618dd8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Entity, control, and boundary objects\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
EntityControlBoundary
SinkholeSinkholeReporterWebPlatform
LocationSinkholeVerifierMobilePlatform
AreaAuthenticatorCityAuthority
UserMapControllerMapView
MapPhotoManagerStorage
PhotoNotifier
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 674, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5cd17b0c-0dbd-42c8-8d17-ecb39c8c3588": {"__data__": {"id_": "5cd17b0c-0dbd-42c8-8d17-ecb39c8c3588", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "481f9f36-a631-4fcc-961d-23598cc3a83d", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "7a35141462ca5a6d42bd3d05a9ac4a054ccad0ece355a623fafd3a10605a17ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Encapsulation promotes security & modularity\n\n* **Purpose:** Hide internal details of an object and only expose the necessary functionality through public methods\n* New objects can be identified based on the system\u2019s requirements\n* Encapsulation means creating classes for such objects to define the characteristics by defining attributes and behavior by providing methods\n* Java supports encapsulation by using classes with `attributes for structuring` and `methods for describing functionality`\n\n> **Problem Statement:** \n> \u201cPizza lovers can `bake` pizzas with varying `sizes` and `toppings` and `check the expected time` until the pizza is ready.\u201d\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n
Pizza
size
toppings[ ]
bake()
calculateExpectedTime()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 872, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cc2f60c7-dcc5-4813-9923-5bd2294b88fc": {"__data__": {"id_": "cc2f60c7-dcc5-4813-9923-5bd2294b88fc", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "15cb52a3-6501-4504-924a-e4b2e19e3a58", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "26a581093e7670d0d192e5dc00cc3854366a6da5d3b850254541ce77e248f910", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
Pizza
sizetoppings[]
bake()calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) {\n expectedTime += 5;\n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "622dc20a-3231-4758-b22a-6d77a0dfeee2": {"__data__": {"id_": "622dc20a-3231-4758-b22a-6d77a0dfeee2", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bbd3ae42-f5b3-42e0-b4b1-e2090eef440a", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "c1a74fdb626677a81b80065923616bc53e76e896490b0e14e7245face71f941c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
Pizza
sizetoppings[]
bake()calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) {\n expectedTime += 5;\n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "52324635-1791-4763-9c51-7d077921cc88": {"__data__": {"id_": "52324635-1791-4763-9c51-7d077921cc88", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "791f0259-fe3e-45c6-972e-5e1c252786b0", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "a36fb69c03c0d92c6dbbcb42155bb769eb1faab6f3311192c8543073cc8996a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n
Pizza
size
toppings[]
bake()
calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) {\n expectedTime += 5;\n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 805, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6858370b-12eb-4b6d-8914-206cdc817a40": {"__data__": {"id_": "6858370b-12eb-4b6d-8914-206cdc817a40", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "64c67caf-15b1-4dcd-a046-421762e8a85a", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "097762b0937449004b56b543f22ed32a918c63ba4f3e33cd96f270d3242608ad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n\n \n \n
Pizza
sizetoppings[]
bake()calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) {\n expectedTime += 5;\n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 763, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5e373bf0-aaf1-4de5-89d2-30d911a52869": {"__data__": {"id_": "5e373bf0-aaf1-4de5-89d2-30d911a52869", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bc11e2b6-fe0c-456b-90bb-ed46d44aecba", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "3df5b5c89e3640fcb6559497fe1a8b79ccdc5758053ed30f2cef105543023ad0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# From model to code\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
Pizza
size
toppings[]
bake()
calculateExpectedTime()
\n\n```java\npublic class Pizza {\n private String size;\n private String[] toppings;\n\n public Pizza(String size, String[] toppings) {\n this.size = size;\n this.toppings = toppings;\n }\n\n public void bake() {\n System.out.print(\"\ud83c\udf55\ud83d\udd25\");\n }\n\n public int calculateExpectedTime() {\n int expectedTime = 10; // 10 minutes for baking the crust\n\n if (size.equals(\"large\")) { \n expectedTime += 5; \n }\n\n return expectedTime;\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 849, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "acebda19-b11e-4861-bdd5-c180e1e89079": {"__data__": {"id_": "acebda19-b11e-4861-bdd5-c180e1e89079", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "93c1599b-7d54-44e7-9347-6b746e4d7cb8", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "26a74ac42e4722c5d4ae278c1201a79295cee79963ee5afb0a7dc773ee9a8cc8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Inheritance creates common structure & behavior\n\n* **Purpose:** Create new classes by inheriting attributes & behaviors from existing classes \n* Establishes an inheritance hierarchy (also called a \"**taxonomy**\")\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n
Car
modelSuperclass
color
year
drive()
\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n
SportsCar
modelSubclass
color
year
maxSpeed
drive()
\n\n> Inheritance\n\n```java\nclass Car {\n String model;\n String color;\n int year;\n\n void drive() {\n System.out.print(\"vroom\");\n }\n}\n\nclass SportsCar extends Car {\n int maxSpeed;\n\n @Override\n void drive() {\n System.out.print(\"VROOM \ud83d\udca8\");\n }\n}\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1244, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6a5c7a4-88db-4088-807c-d960df4b0794": {"__data__": {"id_": "a6a5c7a4-88db-4088-807c-d960df4b0794", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ef4b4f75-4a76-4140-85bc-50e25dc262fd", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "d570b4d52b8142c6d0e55549cea5fe974adf6e303b81aad87f70cea92cda055b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Classes vs. abstract classes\n\n* **Class**\n * An abstraction in the context of object oriented programming\n * A class encapsulates state and behavior\n\n* **Abstract class**\n * Cannot be instantiated\n * Define an abstract structure which holds common structure (state) or functionality (behavior)\n * Allows to create a blueprint for other classes without implementing all of the concrete methods and properties themselves \n \u2192 Greater code reusability and modularity\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n\n \n\n \n \n\n \n \n\n \n\n\n \n\n \n \n \n
Abstract superclass (italics)
<<abstract>>
Vehicle
modelcoloryear
drive() (Abstract method)
Inheritance
\n Car
\n numberOfTires
\n drive()
\n numberOfTires
\n drive()\n
\n Boat
\n numberOfSeats
\n drive()
\n numberOfSeats
\n drive()\n
Concrete method
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1301, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d50af42-2b4d-4ace-8838-c09b93e09197": {"__data__": {"id_": "8d50af42-2b4d-4ace-8838-c09b93e09197", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7dd39cad-9633-4b9b-ba63-ac82f4d02aff", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "882ea979dda1e4afa896cbfd80348b7ff9ab7ac15bef176fe0391606ea9a6ac8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Generalization vs Specialization Inheritance\n\n* **Generalization:** A superclass defines common features \n* **Specialization:** Subclasses refine or extend the superclass with more specific features \n\n* An **abstract class** represents generalization: \n - There is shared data (attributes) and shared logic. \n - Subclasses are variations of a \"is-a\" relationship \n\n> \u2194 An **interface** defines shared functionality, role, or a \"contract\" across unrelated hierarchies \n\n**[Example - SiMCity]** Is a CityOfficial a special kind of Resident (specialization)? Or are Resident and CityOfficial both kinds of User (generalization)?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 636, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "88c25460-9466-44db-89ef-c587f87c6377": {"__data__": {"id_": "88c25460-9466-44db-89ef-c587f87c6377", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b3bff095-746f-47f8-af97-095c5038ec1b", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "8dc6276a0906721df58dbce4e5259542a3bf84a57d0448927bc957d044a70a4c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Polymorphism\n\n* *Poly* (= many) + *morph* (= forms) \u2192 \"many forms\"\n* Ability of an object reference to take on many forms\n* A super class reference (compile time) is used to refer to any specific subclass object (runtime)\n* Polymorphism allows us to mix methods and objects of different types in a consistent way\n* The polymorphism the object undergoes depends on the *when* & *what* part of the object is transforming\n - **When:** Compile-time vs dynamic\n - Compile-time polymorphism\n - Runtime polymorphism\n - **What:** Method vs object\n\n[Two images showing a transformation sequence of a character changing dress, illustrating polymorphism conceptually]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 667, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c525ba9c-6067-42d2-8c80-790d4840013d": {"__data__": {"id_": "c525ba9c-6067-42d2-8c80-790d4840013d", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "77ba68ff-937a-4ed2-9c5d-01665ba1f1b7", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "d7b5587bc426e54c3f8849e82ed963729f83e3e55826fa57c6cb32f72c86eb2e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example]\n\n```java\nif (type.equals(\"Cat\")) {\n Cat cat = new Cat();\n cat.makeSound();\n cat.describe();\n cat.showAnimation();\n} else if (type.equals(\"Dog\")) {\n Dog dog = new Dog();\n dog.makeSound();\n dog.describe();\n dog.showAnimation();\n} else {\n Cow cow = new Cow();\n cow.makeSound();\n cow.describe();\n cow.showAnimation();\n}\n```\n\n```java\n// \"Polymorphism\"\nAnimal animal;\nif (type.equals(\"Cat\")) {\n animal = new Cat();\n} else if (type.equals(\"Dog\")) {\n animal = new Dog();\n} else {\n animal = new Cow();\n}\nanimal.makeSound();\nanimal.describe();\nanimal.showAnimation();\n```\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 645, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "50ead9d8-4657-4fa4-b0cb-8840d2a06f05": {"__data__": {"id_": "50ead9d8-4657-4fa4-b0cb-8840d2a06f05", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b0a987dc-d3ca-4ef3-b304-668868c09180", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "8aedc86d77bba47aa63dedb4ca354778c5831ae0558b080317a665d3a6e42e8a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Polymorphism\n\n```java\npublic abstract class Pancake {\n public abstract void cook();\n}\n\npublic class BlueberryPancake extends Pancake {\n @Override\n public void cook() {\n System.out.println(\"\ud83e\uded0\ud83e\udd5e\");\n }\n}\n\npublic class ChocolateChipPancake extends Pancake {\n @Override\n public void cook() {\n System.out.println(\"\ud83c\udf6b\ud83e\udd5e\");\n }\n}\n\npublic class PancakeMaker {\n public static void main(String[] args) {\n Pancake myPancake; // Compile time type\n\n myPancake = receiveOrder();\n myPancake.cook();\n }\n\n public static Pancake receiveOrder(Order order) {\n // Order type is based on user input\n // defined somewhere else\n if (order.getType().equals(\"Blueberry Pancake\")) {\n return new BlueBerryPancake(); // Runtime type\n } else {\n return new ChocolateChipPancake(); // Runtime type\n }\n }\n}\n```\n\n\n\n\n \n\n\n \n\n\n \n \n \n\n\n \n\n\n\n\n
Pancake
cook()
Blueberry PancakeChocolateChip Pancake
cook()cook()
\n\n> **Compile time type** points to the declared type of the variable (`Pancake myPancake;`).\n\n> **Runtime type** is the actual object type created at runtime (`new BlueBerryPancake()` or `new ChocolateChipPancake()`).\n\n----\n\nUniversity of Pittsburgh \n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1524, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d9854c03-7fcb-416e-94ae-8c97bbdc6856": {"__data__": {"id_": "d9854c03-7fcb-416e-94ae-8c97bbdc6856", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "877f7f59-df91-474b-b75c-afcbf2d4b9b7", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "3e7821f6352f3f7d7de129c8dc004dacb1d623a49a13b47f39c176f80bcb87ef", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# OOP principles are tools that help us write better code\n\n* **Encapsulation/Reusability:** Encapsulating data and behavior allows for efficient code reuse across the application \n* **Maintainability:** OOP makes code modification and maintenance easier over time \n* **Scalability:** OOP allows code to scale with increasing complexity and new features can be added without breaking existing ones \n* **Abstraction:** OOP abstracts away complexity and allows developers to focus on essential aspects of the system \n* **Communication & Collaboration:** OOP enables easier collaboration", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 588, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6531b6e3-f81a-4c5d-9863-c6e395414efe": {"__data__": {"id_": "6531b6e3-f81a-4c5d-9863-c6e395414efe", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7051b3dd-4d79-43a6-b1b3-c89d556d2e68", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "2020c3b725b64dc316c1afa5d3971a42e35c0d38d273275d25b3351e6d9040b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Best Practices\n\n* **Aim for high cohesion:** Ensure that each identified object has a well-defined purpose and responsibilities, promoting high cohesion within the classes\n* **Low Coupling:** Minimize dependencies and coupling between objects, aiming for a modular and maintainable system design\n* **Iterative Process:** The process may require multiple iterations to refine and validate the identified objects and their relationships as the requirements evolve\n* **Documentation:** Document the derived objects, their attributes, behaviors, and relationships in a structured manner, e.g., using class diagrams or entity-relationship diagrams\n* **Review and Validation:** Collaborate with stakeholders to review and validate the derived objects, ensuring they accurately represent the requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 800, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "173623bc-35ef-4ad8-a0c0-f9c1bca862d8": {"__data__": {"id_": "173623bc-35ef-4ad8-a0c0-f9c1bca862d8", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fbbc8503-1475-4947-b912-3059e446b2bb", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "5646a3551aecb81a7e51a50ade7a8af6fb34e45ea357dc54ea8e0091a87ff145", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to Analysis \n - Recap: OOP \n* Analysis object model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 82, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dd85f7f1-3f92-4e0e-ad6d-6f918facf12f": {"__data__": {"id_": "dd85f7f1-3f92-4e0e-ad6d-6f918facf12f", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "190a9d68-98f5-4d75-b0d8-b5e165b4694c", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "4900278a18ff83150524d1c174793ef81cbd277ca31ba3c49c44d6e897f9f47f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System model \u2014 overview\n\nSystem model\n\n----\n\n| Functional model \u2714\ufe0f | Analysis object model | Dynamic model |\n|---------------------|-----------------------|---------------|\n| Use case model \u2714\ufe0f | Class diagram | Activity diagram |\n| | | Communication diagram |\n| | | State chart diagram |\n\n----\n\n> **What key functionality can users access / does the system provide?**\n\n> **What are the key objects and their relationships in the problem domain?**\n\n> **How does the system behave over time and respond to events?**\n\n----\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 723, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "97bd0c57-bd33-4c1c-82be-79ef73987bf5": {"__data__": {"id_": "97bd0c57-bd33-4c1c-82be-79ef73987bf5", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ea137193-e93b-440a-a277-b607cafac298", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "b87f2ac440263726809e5d80bfc8542e5f4462267e7a4c87c1099338104fa5cb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# The analysis object model (AOM)\n\n* Helps in **structuring the problem domain**\n - Ensures that the system accurately represents real-world concepts\n - Identify and structure important concepts, attributes, and associations (relevant to the system\u2019s requirements)\n - Bridges the gap between requirements and design\n - Reduces errors\n - Improves communication\n - Facilitates code structure and reusability\n* Often depicted using a **UML class diagram**\n - Typically, visibility is not displayed\n - Focus on the most important elements (7+-2!)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 551, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a86aae8c-ca6c-4a22-a513-e4022181376b": {"__data__": {"id_": "a86aae8c-ca6c-4a22-a513-e4022181376b", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d67ab403-8372-48a9-8776-d300dc869b4c", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "f3db8bb93db64684a0ca79eb6ff6575625dd948cc0d050851a398c3e68a8f8c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to think in an abstract way?\n\n1. What are the main **entities**? \u2192 **Objects** \n2. What **characteristics/properties** does the entity have? \u2192 **Attributes** \n3. What **functionality/behavior** does the entity provide/need? \u2192 **Methods** \n4. How do the entities **communicate** with each other? \u2192 **Associations**\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n\n \n\n \n \n
PizzaTopping
sizeAggregation,
\"consists of/has\"
nameMultiplicity, \"1-to-many\"
bake()amount
calculateExpectedTime()isVegetarian()
\n\n> Association", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 837, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d4c5a479-b3f2-4585-a19a-a89b3b2a75d6": {"__data__": {"id_": "d4c5a479-b3f2-4585-a19a-a89b3b2a75d6", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b1480fe5-791e-45a9-8b8c-0b0b2d4c9191", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "b9e0fc3415f14ed11c88b4c292309846e8d83d110613da3169f2c35cd92386ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Elements I\n\n* UML class diagrams are structural models\n* Focus on the most important entities, their attributes and methods, and their relationships among each other\n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n\n \n \n \n\n \n \n \n
ClassAssociation
\n \n\n\n \n \n \n \n \n\n\n\n \n
Car
model
color
drive()
inspect()
\n\n
Attribute\n \n\n\n \n \n \n \n \n\n\n \n
Degree
name
field
viewRequirements()
\n\n
**\n \n\n\n \n \n \n \n \n\n\n \n
Course
title
isRequired
checkAvailability()
\n\n
Methods
* means \"0..*\"
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1545, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bba72d35-cd5e-440c-b039-9a0ba1a428d3": {"__data__": {"id_": "bba72d35-cd5e-440c-b039-9a0ba1a428d3", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a03b1efe-aac9-4cb9-acf9-277ac12ec752", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "05caa0292d9060b6456d6ca680b2beb9c29813c2cc2095348c063cf3b90de503", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Elements II\n\n| ClassA | \n|:------:| \n| ClassB | \n*ClassB inherits from ClassA* \n(Arrow with hollow triangle pointing from ClassB to ClassA indicating inheritance)\n\n----\n\n| <> | \n|:------------:| \n| ClassA | \n*abstract class*\n\n----\n\n| <> | \n|:-------------:| \n| ClassA | \n*interface*\n\n----\n\n| Notes are used to explain unclear aspects | \n|:-----------------------------------------:| \n| ClassA | \n(Dashed line connecting note to ClassA)\n\n----\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 571, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "37475df3-c871-41a1-a4c8-2ffeb3067560": {"__data__": {"id_": "37475df3-c871-41a1-a4c8-2ffeb3067560", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "203d4f46-f24d-4a0b-b43e-3c428de86a23", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "78e5711190f872941a4e0063d61f687874fc72f36436a96f85ff02db2873d2b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Basic Associations\n\n> **(uni-)directional;** ClassA can access ClassB (not vice-versa)\n\n```\nClassA \u2192 ClassB\n```\n\n> **bi-directional;** ClassA can access ClassB and vice-versa\n\n```\nClassA \u2014 ClassB\n```\n\n> 1 is the **default multiplicity**, does \n> **not** need to be explicitly modeled\n\n```\nClassA * ClassB\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 338, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a2c56ade-147e-4fb3-85c7-c13323d6e6f7": {"__data__": {"id_": "a2c56ade-147e-4fb3-85c7-c13323d6e6f7", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "96b4781d-2e91-42e4-a79b-2fcb4e315d8b", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "2ffa926e05bca8eb814f8710d970bb551398dc133914e254fd31eb69f33baa72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Associations Overview\n\n* Unidirectional association\n* Dependency\n* Bidirectional association\n* Inheritance\n* Aggregation\n* Composition", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 157, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9dcc91c2-a801-4919-b325-4a8f4bfc15bc": {"__data__": {"id_": "9dcc91c2-a801-4919-b325-4a8f4bfc15bc", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "be887a72-739b-47c8-bb4c-35ae9e606b99", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "0d53c42707aa862b5946325b4e0b3bdf1d002d9d37c5ee2d9c32cfca0641cdd9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Unidirectional association\n\n* Represents a (long-term) relationship where one element (client) relies on another element (supplier) in some way to perform its functionality\n* Can be categorized into various types: usage, realization, generalization, and constraint dependencies\n\n> Student has 0..many favorite pizzas \n> Unidirectional association\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
StudentPizza
namefavoritePizza *size
isHungryprice
isVegetarian
eat()bake()
calculateExpectedTime()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 844, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1ab389b6-2115-47bb-aeec-7be32c6a2053": {"__data__": {"id_": "1ab389b6-2115-47bb-aeec-7be32c6a2053", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4d6c8b3f-8932-4f5a-81b6-edd95343572b", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "91ddeb461cf35961c425823aaaeebb7afcc9e7c031a32d75f409eb95952ada90", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Dependency\n\n* Represents a (temporary) relationship where one element (client) relies on another element (supplier) in some way to perform its functionality\n* Can be categorized into various types: usage, realization, generalization, and constraint dependencies\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n \n \n
StudentPizza
name*size
isHungryprice
isVegetarianbake()
eat()calculateExpectedTime()
order()
\n\n> Student can access pizzas \n> dashed line = dependency. \n> solid line = long-time access", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 859, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1a9b4364-f598-447d-a712-772063d6729d": {"__data__": {"id_": "1a9b4364-f598-447d-a712-772063d6729d", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0ac034fb-3054-4d67-a943-46b8389c2984", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "c54147b827fd7e6e4a76e7abb069f6ff72ceaa62525f190e026d980c30140b33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Bidirectional Association\n\n* Mutual relationship between two classes in which both classes have references to each other\n* Enables direct interaction and information exchange between the two classes in both directions\n* Bi-directional associations are used when both classes need to maintain a symmetrical connection and collaborate with each other\n\n\n \n \n\n\n\n \n
Student1*Order
\n\n> A student can place many orders, an order has a reference to one student", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "94aa738d-b63f-4c85-b782-8cbb06c100c6": {"__data__": {"id_": "94aa738d-b63f-4c85-b782-8cbb06c100c6", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a31b2f55-034a-4581-b274-1436e3ca8d0f", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "42f0d7406cb23fca12a5c6232ee2e8c99736f86d9bf98cc2d260ee5299139625", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# UML class diagram \u2014 Multiplicities\n\n* Specifies more details about an association\n* Indicates the number of objects that participate in an association\n* Also indicates whether an association is mandatory\n\n\n \n \n\n\n\n \n\n \n\n\n\n \n
Course1..610..*Student
City*Person
\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
MultiplicityMeaning
1Exactly 1 (default)
*Zero or more (unlimited)
0..*Zero or more (unlimited); same as *
1..*One or more
0..1Zero or one (optional)
2..42Specified range
2, 4, 6..8Multiple, disjoint ranges
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 995, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d140d26-97c5-4ca1-80e8-a0c1e0730325": {"__data__": {"id_": "5d140d26-97c5-4ca1-80e8-a0c1e0730325", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ff3870d8-2c67-4e1d-a9c0-37eb56e8e33e", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "b9412f8887bbe6cfba0c6aab68112bf7dc8d0405750dc95ec8c5402f3af910a9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Take-Away:** Analysis object model (AOM)\n\n* Defines the system\u2019s structure \n - Models the most important objects \n - Defines relevant characteristics and behavior objects provide \n - Defines how objects interact with each other \n* High-level view of the problem! \n - Helps in defining a system early on without getting lost in too much detail", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 356, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9806ef9d-7f5a-4767-8f8f-eb5e23df388a": {"__data__": {"id_": "9806ef9d-7f5a-4767-8f8f-eb5e23df388a", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "58af28c2-21a2-4387-a0d5-7c817fac3bdc", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L11 Requirements Analysis.pdf"}, "hash": "78698da552489c3422ee8f0319c987ff101a9e098f6dbdd8b1d113cb5fa5af84", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L11 Requirements Analysis & OOP Recap\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 174, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e574618-3f03-49ec-a32d-ec32cdb3f66d": {"__data__": {"id_": "8e574618-3f03-49ec-a32d-ec32cdb3f66d", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "463740aa-a3e9-48a1-86e3-990873fee07a", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "1a084ca44488de516da882f21c4d7bcd84ea1004581b4b2373485df440474db0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L18 MVC & Exercise\n\n## CS 1530 Software Engineering\n\nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 168, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6f2b2508-4d53-4a5f-bf06-7a5223712aab": {"__data__": {"id_": "6f2b2508-4d53-4a5f-bf06-7a5223712aab", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4a9acad9-d56f-486f-9978-e86c027d6fd7", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "c54b833fc7cbf59b192a9f857717e85648138c7ff41f0890f0b7dc2e8c40cc2f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet. \n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes. \n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n\n* Material from these notes is obtained from various sources, including, but not limited to, the following: \n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009. \n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994. \n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011. \n - [http://scrum.org/])(http://scrum.org/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1397, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b016ffda-8016-4a12-ac99-767a81d312c4": {"__data__": {"id_": "b016ffda-8016-4a12-ac99-767a81d312c4", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e6657ff6-19ed-4955-9d87-14b2acc56ae4", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "e8d7572b5806fae0f9abc7f8e0901e86bf8109b2543d06063a97df03a4f37dc0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You can model a UML component diagram", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 58, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c7640200-2ced-44fd-a3fc-f4d11c51b289": {"__data__": {"id_": "c7640200-2ced-44fd-a3fc-f4d11c51b289", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "29240b77-2b40-4355-82a7-df92e3d0807f", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "8a92a9a698c3657ce8e0548181953c8166c06e70d2a5c601a9ef83ec798a2a79", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* MVC\n* Model a subsystem decomposition", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 59, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b4fe4dde-c229-4758-a86d-8c601aaac4b1": {"__data__": {"id_": "b4fe4dde-c229-4758-a86d-8c601aaac4b1", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "38a42405-03b8-46f8-ba7a-b5e548284cb1", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "a26bc357f66b1594f400986d8bc274002a3ad91b0a0701c9667e3261fe210714", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# MVC architectural style \u2014 Motivation\n\n* **Problem:**\n - Systems with high coupling tend to require modifications to both boundary objects (presentation/user interface) and entity objects (data) when changes are made to either component\n - Developers cannot work in parallel (UI changes can be made affect the underlying data or logic)\n\n* **Solution:** decouple entity objects (data) from boundary objects (presentation)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1cbdd9ef-d700-4ffd-ad34-fa80fdb9705f": {"__data__": {"id_": "1cbdd9ef-d700-4ffd-ad34-fa80fdb9705f", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7294040a-b290-4dde-a92f-fcf941383279", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "242ec8619c13b243ce27dab892dc3231529bc641535f7fd14b806f5586f4bc1b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# MVC architectural style \u2014 Definition\n\n* Model-view-controller (MVC) architectural style \n* MVC separates a system into three main components: \n - Model \u2014 processes and stores entity objects \n - View \u2014 displays data (boundary objects) to the user \n - Controller \u2014 Acts as an intermediary between Model and View \n* MVC promotes a clear separation of concerns and modularity in application design \n* Commonly used when developing user interfaces \n - Widely used in web development, desktop applications, mobile app development, \u2026 \n* Enhances code maintainability and reusability", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 590, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7d1f8691-b244-4496-8764-5bc383b1b366": {"__data__": {"id_": "7d1f8691-b244-4496-8764-5bc383b1b366", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f9fd4cf9-d8df-4d74-b628-8895b3d9b3f0", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "f1e832760c65bbe3c0cc578daa5a3547157bd2b597c9cdf4cfad26aef2da01e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# MVC architectural style \u2014 Overview\n\n* MVC typically operates on a cycle of user interactions\n* User input triggers actions within the Controller\n* The Controller updates the Model based on these actions\n* Changes in the Model are reflected in the View\n\n```mermaid\nflowchart TD\n A[request] --> B[\"\u00absubsystem\u00bb\\n**Controller**\"]\n B -->|update view| C[\"\u00absubsystem\u00bb\\n**View**\"]\n B -->|update model| D[\"\u00absubsystem\u00bb\\n**Model**\"]\n D -->|update model| C\n C -->|notify view of data change| D\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 503, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6584d311-cbbd-4b61-a621-152009a2cc7a": {"__data__": {"id_": "6584d311-cbbd-4b61-a621-152009a2cc7a", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "639e9ba1-8fd7-4bac-9837-71b6592a1e4d", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "e283be842cd3a028a14399df921e059d830337e52ff81134130bd0710420266d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] MVC\n\n* A website:\n - Model \u2192 HTML (handles knowledge of the website)\n - View \u2192 CSS (presentation)\n - Controller \u2192 browser (manipulates data through, e.g., user input forms)\n* Mac:\n - Locate a file (keynote presentation) in the file browser (Finder)\n - Open the file\u2019s info view\n - Open the file in keynote\n - Change the file\u2019s name (the new name is synced across all views)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 393, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa7cdc8a-c5ba-446a-b0f8-457b61db1163": {"__data__": {"id_": "fa7cdc8a-c5ba-446a-b0f8-457b61db1163", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e49c7fbf-64ea-4378-9a82-41820ef9d0d5", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "ec0818acdb4472201e9a0e1a82e7e2e5b7d36c36c59986f14e375224bc24d8bd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Update File name\n\n| | | | |\n|---------------|---------------|---------------|---------------|\n| | **:Controller** | | |\n| | 2 \u2192 | | |\n| | 3: setName(newName) \u2193 | | |\n| **:InfoView** | 1: subscribeToFileEvents(file) \u2192 | **:Model** | \u2190 1: subscribeToFileEvents(file) |\n| \u2190 4: notifySubscribedViews(file) | 5: getName() \u2192 | \u2190 5: getName() | 4: notifySubscribedViews(file) \u2192 |\n| | | | **:KeynoteView** |\n\n> Informal UML communication diagram: \n> attributes & objects are missing", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 725, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "830f85e5-fcd5-494a-8a2f-8049a11902ec": {"__data__": {"id_": "830f85e5-fcd5-494a-8a2f-8049a11902ec", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "659255ba-ffce-489b-aa81-9ffc24801bb7", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "6ae6f071220dc1126d3c8e19379cbee907c3e0fd7ed0610f5f942df4e4a1b2a9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I18 - Order system (MVC) \u23f3 10min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\n* Review: [https://github.com/pitt-1530/order-app-mvc-refactor])(https://github.com/pitt-1530/order-app-mvc-refactor)\n* Describe how you would refactor the system to use the Model-View-Controller architecture", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 258, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "35d83263-4765-45bd-a834-247ab205c9d1": {"__data__": {"id_": "35d83263-4765-45bd-a834-247ab205c9d1", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f1e2e5f0-9f8c-46ec-9ee5-bc2302936e83", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "d3481f75e91b11b8e9b6627e938dcaec88821d8cf84c22909eb9ac020b760f5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Deisgn goals\n\n* Maintainability: Each component isolated \n* Modifiability: UI changes don\u2019t break logic \n* Reusability: Same model works for different interfaces \n* Parallel development: Teams work on different subsystems", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 227, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "92b966e7-f5b5-4ebc-a62f-fe6fb6749cf3": {"__data__": {"id_": "92b966e7-f5b5-4ebc-a62f-fe6fb6749cf3", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7b4f12db-a505-4a9e-bc16-27c766ac8d8d", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "8b7a172bd1572cac5d70792c4db6b28dc3e7d17b3ab11432b13abbb5bcbbcc75", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Variations of MVC\n\n> **Presenter replaces controller, View is passive**\n\n> **ViewModel exposes data, View updates automatically via data binding**\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
InputInputInput
ViewViewView
ControllerPresenterView Model
ModelModelModel
\n\n**MVC** \n(Model-View-Controller) \n\n**MVP** \n(Model-View-Presenter) \n\n**MVVM** \n(Model-View-Viewmodel)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 644, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0a65cf1f-dbae-41e2-811d-ac85377c65b9": {"__data__": {"id_": "0a65cf1f-dbae-41e2-811d-ac85377c65b9", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "40852467-32b8-4ed4-869a-2b9c97fed4a4", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "e701bff97cb0eb3f30ef9d4c1f47d168856941f9958197028f51d0a69228361b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# When to use MVC\n\n* Multiple synchronized views of the same model \n* Exchangeable views and controllers \n* Exchangeability of look and feel \n* Considerations \n - Increased complexity \n - Potential for excessive number of updates \n - Close coupling of views and controllers to model", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "26754b02-10ac-4294-ab61-8606747481a6": {"__data__": {"id_": "26754b02-10ac-4294-ab61-8606747481a6", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dd7f324f-8b3d-403d-a752-7d7936b87f2d", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "cb30e04d7528be39f7bf7af26a4eed135a0eba6deba6d5824b331e1b1d1c2d44", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* MVC\n* Model a subsystem decomposition\n\n[University of Pittsburgh logo]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 92, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2f4cf99a-9d9e-497e-a129-57fba644deea": {"__data__": {"id_": "2f4cf99a-9d9e-497e-a129-57fba644deea", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "424275ad-bfe4-44f9-8e20-f68bb6b3e631", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "1ade6ff7d0d9049aa8ecdb80a502e91348b3ef78668b85ed91f3b473cb518f72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] UML component diagram\n\n* High-level view of the system\u2019s design using components and dependencies\n* A **UML component** represents a system part (such as classes, packages, or subsystems)\n* UML component diagrams are used for:\n - **Architectural design and planning**\n - Identifying system components and their interactions\n - Representing the high-level structure of a software system\n* Represented as a rectangle with a tabbed rectangle symbol inside\n\n----\n\n**Component notation examples:**\n\n```\n+---------------------+\n| \u00abcomponent\u00bb |\n| **Component** |\n+---------------------+\n```\n\n```\n+-----------------------------+\n| \u00absubsystem\u00bb | | |\n| **Subsystem1** |---|---|\n| | | |\n| +---------------------+ | | |\n| | \u00abcomponent\u00bb | |\n| | **Component** | |\n| +---------------------+ | | |\n+-----------------------------+\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 932, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e077666e-9b56-4f93-92b1-58bd1933b05e": {"__data__": {"id_": "e077666e-9b56-4f93-92b1-58bd1933b05e", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fff9fcf0-9f03-4da8-9131-513b4e0534c2", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "cb84be251633265d661ae667b03f02c25a1de6058d528b14a1e6283b8835fee0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] UML interfaces\n\n* Define how components interact with each other or with external entities\n* Specify the required and provided services:\n\n * Lollipop: provided interface \u2b58\n\n * Socket: required interface \ud800\udd02\n\n * Dependency - - - - - - - - - \u2794 \n (a component depends on the implementation of another component)\n\n * A **port** specifies a distinct interaction point between the component and its environment \u2610\n - Ports are depicted as small squares on the sides of classifiers\n - Ports allow to group interfaces", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bec45c04-2c03-485c-b436-b4a2edc8f488": {"__data__": {"id_": "bec45c04-2c03-485c-b436-b4a2edc8f488", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "87d81d5a-f08d-4faa-9eb5-d9715453b9f5", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "c3001970a23acfea666405edbf730aec4cc231409b420a61d4b14273a7042b17", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Subsystem decomposition \u2014 Steps\n\n1. **Identify functional components:** Break the system into functional components with distinct roles \n2. **Define interfaces:** Clearly specify how subsystems interact and exchange data \n3. **Organize subsystems:** E.g., organize subsystems hierarchically \n4. **Assign responsibility:** Assign responsibilities to each subsystem \n5. **Manage dependencies:** Minimize dependencies between subsystems", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b569ef62-732d-4b3c-ab1c-04f159aaff03": {"__data__": {"id_": "b569ef62-732d-4b3c-ab1c-04f159aaff03", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3f6f8cfb-88bf-40ae-8f11-5b1b2fa52eb7", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "b4d7feac49c326d388314951d2399caaba500e626ca697bf76aa3f3f6f586bdd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** E-Commerce Ordering System\n\n\n \n \n\n \n\n\n \n\n \n\n\n\n\n \n\n \n \n \n\n \n \n \n\n \n\n\n\n \n
\n Authentication
\n userName
\n password

\n login()
\n logout()
\n resetPassword()\n
\n Customer
\n name
\n emailAddress
\n address\n
*\n Order
\n date
\n status

\n create()
\n confirm()
\n calculateTotal()
\n view()\n
\n Payment
\n amount

\n process()
\n pay()\n
\n Shipment
\n date
\n trackingNumber

\n schedule()\n
\n Product
\n name
\n description
\n price

\n add()
\n remove()
\n checkStock()\n
\n 1..20\n
\n PaymentMethod

\n select()\n
\n ApplePay

\n select()\n
\n Credit/Debit

\n select()\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1321, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ed58abdb-3f42-4596-8078-cc9c6f3f6296": {"__data__": {"id_": "ed58abdb-3f42-4596-8078-cc9c6f3f6296", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "126920c8-87f2-4454-b2b5-3917950c9d56", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "e08a13977ca67440731402493d8b6d1464f59d3d08546fb2ab9bb955628c3c99", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** E-Commerce Ordering System - Option I\n\n\n \n \n \n \n \n \n\n\n\n \n \n \n\n\n\n\n \n \n\n\n \n \n \n
\n Authentication
\n userName
\n password

\n login()
\n logout()
\n resetPassword()\n
\n Customer
\n name
\n emailAddress
\n address\n
\n Order
\n date
\n status

\n create()
\n confirm()
\n calculateTotal()
\n view()\n
\n Payment
\n amount

\n process()
\n pay()\n
\n Shipment
\n date
\n trackingNumber

\n schedule()\n
\n Product
\n name
\n description
\n price

\n add()
\n remove()
\n checkStock()\n
\n PaymentMethod

\n select()\n
\n ApplePay

\n select()\n
\n Credit/Debit

\n select()\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1694, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3c3d20f2-afb3-4943-a101-964027605d63": {"__data__": {"id_": "3c3d20f2-afb3-4943-a101-964027605d63", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a5b66cbb-659a-4699-91a1-a7c87eff186c", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "72eb7a8fa8875336815dc4cb9835f79c7024ece8902035570186fe4d951023bd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] E-Commerce Ordering System - Option I\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
Authentication\u00absubsystem\u00bb
Customer
Order\u00absubsystem\u00bb
Payment
userNamenamedateamount
passwordemailAddressstatus
login()addresscreate()process()
logout()confirm()pay()
resetPassword()calculateTotal()
view()
\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
\u00absubsystem\u00bb
Inventory
ShipmentProductPaymentMethod
datename
trackingNumberdescriptionselect()
schedule()price
add()ApplePay
remove()select()
checkStock()Credit/Debit
select()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1529, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "54b72f60-84b2-4cfc-8e5c-2dc029ada0a1": {"__data__": {"id_": "54b72f60-84b2-4cfc-8e5c-2dc029ada0a1", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9e9984fe-10ab-4825-a75f-96736ebeae2d", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "f7e53ac2da19139d50275cda0321ca7494f991dfa5d294023e34300c680c3be9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Pizza Ordering System\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n\n \n\n\n\n \n\n \n \n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
Baker*Order1..10Pizza
nameanchovyLovertotalPricedeliveryTypeaddExtraPineapple()
makePizza()complete()calculateExpectedTime()
Studentcreate()
nameemailAddress
address
notify()
\n\n\n \n \n \n \n \n \n \n \n\n \n\n \n \n\n \n \n \n
Topping
nameamount
isVegetarian()
0..5
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n
HawaiianPizzaYinzerPizza
addExtraPineapple()addExtraFries()
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1639, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e12c694-d733-469d-bdc2-8a084e09398a": {"__data__": {"id_": "8e12c694-d733-469d-bdc2-8a084e09398a", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "204961a7-a0ea-4479-b96e-3c4a7d355c08", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "91303b63e46247e6bd480b334b5e517070fc6b7d07a51652ad2416279820645e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I18 In-class: Subsystem Decomposition \u23f3 15 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nDecompose your own or the provided pizza ordering system analysis object model into subsystems:\n\n* Create a **UML component diagram**\n* Decide on interfaces\n* Remember the SOLID principles!\n* **Review architectural styles: Can they solve a \"problem\"?**\n* Add a discussion (3-6 sentences / short bullet points) how your architecture follows SOLID and which architectural style(s) you have chosen and why.\n - Describe at least 3 SOLID principles", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 506, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "63f0ed18-e2bf-4692-a2e5-c2e4ac901f27": {"__data__": {"id_": "63f0ed18-e2bf-4692-a2e5-c2e4ac901f27", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3031a8dc-c4ae-4e40-8aa9-645dd78b2f84", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "d472367c00c8eb2942ac1316fe4e6f614ce61f6d06552aa2a13aa2423a4bc3f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# References\n\n* Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n* Object Management Group. Unified Modeling Language. Version 2.5.1, 2017", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d9124f19-9d86-4ba3-a55c-ea7f965a7fa0": {"__data__": {"id_": "d9124f19-9d86-4ba3-a55c-ea7f965a7fa0", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ecc8bbab-8428-4ddf-864e-d49c42263547", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L18 MVC & Exercise.pdf"}, "hash": "30eee91942114d19de897f0df884b340070fc9c925c55eba4f9939fbc53a1be3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L18 MVC & Exercise\n\n## CS 1530 Software Engineering\n\nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 168, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4d31d5d9-cdc1-48b3-869a-69b3c97849e6": {"__data__": {"id_": "4d31d5d9-cdc1-48b3-869a-69b3c97849e6", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cdca87fe-14e0-4772-88ec-a4ece88d26b2", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "975cdf3374a76dc5668adb121146af2eaa3d984bfe30d718ee1a6bb9c0ba0016", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 06\n\nThumrongsak Kosiyatrakul \n`tkosiyat@cs.pitt.edu`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 72, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7952109-965d-4f0c-b838-4da2a935753c": {"__data__": {"id_": "e7952109-965d-4f0c-b838-4da2a935753c", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bafdd229-b208-46cf-a444-031e80048ba8", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "520c48c1f1ab50dfb39302c6b37a5ace935f8dc2a21201c7b46562bdb63588d6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Language\n\n* A language is a set of strings \n - A set can be empty \n - A set can have a finite number of elements \n - A set can have an infinite number of elements \n\n* Regular or not regular? \n - If \\( L \\) is the empty language, \n - \\( L \\) is regular since we can express it using the regular expression \\(\\emptyset\\) \n - If \\( L \\) is finite \n $$\n L = \\{ s_1, s_2, s_3, \\ldots, s_n \\}\n $$ \n for a number \\( n > 0 \\) and \\( s_i \\) is a string, \n - \\( L \\) is regular since we can express it using the regular expression \n $$\n s_1 \\cup s_2 \\cup s_3 \\cup \\cdots \\cup s_n\n $$\n\n* So, a non-regular language must be an infinite language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 678, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5e3f567c-1b7c-499d-b269-a9f4df8a3ff8": {"__data__": {"id_": "5e3f567c-1b7c-499d-b269-a9f4df8a3ff8", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5a9d375f-c894-48a1-9e4a-7ad413f4071d", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "45b31987465e0446fb6c01de9397d1fe0b6ee9c41130234dedaf5466bfb98b2c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Infinite Languages\n\n* But an infinite language can be a regular language:\n - \\(\\{ w \\mid w \\text{ starts with a } 1 \\}\\)\n - \\(\\{ w \\mid w \\text{ contains } 011 \\text{ as a substring} \\}\\)\n - \\(\\{ w \\mid w \\text{ ends with } 0110 \\}\\)\n\n* Technically, there are infinite number of regular languages that contain infinite number of strings\n\n* There must be something that can be used to distinguish between regular languages and non-regular languages\n - By definition, a language is regular if there are some finite state machines that recognize it\n - Recall that the number of states of a finite state machine must be finite\n - But a finite state machine can accept an infinite number of strings", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 710, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a1312908-8d75-4d1d-a16b-7c21305160e3": {"__data__": {"id_": "a1312908-8d75-4d1d-a16b-7c21305160e3", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d4ad1757-00d0-474c-b1e7-be0618f2c4d1", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "4a53e8b7663c93d0457ee74866c878dcdd287902b5f3b746d8058f68f86b7ee4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Infinite Languages\n\n* What is the special property that makes a finite state machine accepts an infinite number of strings? \n - A loop **in a path to an accept state**\n\n```\n 0\n \u250c\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 \u2502\n \u25bc \u2502\n( ) \u2192 ( ) \u2192 ( ) \u2192 ( )*\n 0 1 0 0\n \u2191 \u2193 \u2191\n 1 0 1\n \u2502\n \u25bc\n ( )\n 0\n```\n\n* Let \\( L(M) \\) be the language of the above machine \\( M \\): \n - \\( 10^*1 \\subseteq L(M) \\) \n - \\( 10^*1 = \\{11, 101, 1001, 10001, \\ldots \\} \\subseteq L(M) \\) \n In other words, \\( 10^i1 \\in L(M) \\) for any \\( i \\geq 0 \\) \n - \\( 00(1010)^*0 \\subseteq L(M) \\) \n - \\( 00(1010)^*0 = \\{000, 0010100, 00101010100, \\ldots \\} \\subseteq L(M) \\) \n In other words, \\( 00(1010)^i0 \\in L(M) \\) for any \\( i \\geq 0 \\) \n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 06", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 847, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f86f2c50-07e2-451d-93c6-7d749d3d404a": {"__data__": {"id_": "f86f2c50-07e2-451d-93c6-7d749d3d404a", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b433b04b-dfe9-4aa5-8c12-756881f00bae", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "0ed35caa7d5eae5510476e0de40c6a5e571ca7e0650853ed2c74f096fa652080", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Infinite Languages\n\n* Given a DFA \\( M \\), how to detect that there is a loop in a path to an accept state? \n* Suppose a DFA \\( M \\) has 5 states and it accepts the string \n \\( w = w_1 w_2 w_3 w_4 w_5 \\) of length 5 \n\n ```\n (start) --w_1--> ( ) --w_2--> ( ) --w_3--> ( ) --w_4--> ( ) --w_5--> (accept)\n ```\n\n* There are the total of 6 current states but there are only 5 states \n - At least two of them must be the same (Pigeonhole principle) \n* Suppose the third and the fifth are the same state \n\n ```\n (start) --w_1--> ( ) --w_2--> ( ) --w_5--> (accept)\n ^ |\n | v\n w_4 w_3\n ```\n\n* $$ w_1 w_2 (w_3 w_4)^i w_5 \\in L(M) \\quad \\text{for any } i \\geq 0 $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 771, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "66c574e5-e577-4e44-a34d-379b05c6c269": {"__data__": {"id_": "66c574e5-e577-4e44-a34d-379b05c6c269", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c8d62847-e439-4736-8535-d336cbf0fa00", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "2d62b75a80dffad011a8132e2eb67a53866fd23c295b7d6c1d258cc0a8bebf14", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Regular Infinite Languages\n\n* From previous example\n - Any strings of length **at least** 5 that is accepted by \\( M \\) will go through a loop\n - If we let \\( x = w_1 w_2 \\), \\( y = w_3 w_4 \\), and \\( z = w_5 \\), we can say that\n\n $$\n xy^i z \\in L(M) \\text{ for any } i \\geq 0\n $$\n\n* Given an infinite regular language \\( A \\), there is a finite state machine \\( M \\) that recognizes it\n - But we have no idea how many states it has\n - Suppose it has \\( p \\) states\n - Any string \\( s \\in A \\) of length **at least** \\( p \\) will go through a loop\n - \\( s \\) must be divided into \\( s = xyz \\) where \\( y \\neq \\varepsilon \\) such that\n\n $$\n xy^i z \\in A \\text{ for any } i \\geq 0\n $$\n\n where \\( y \\) is the string that takes you around a loop", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 770, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ead62cd3-b4e9-4706-a9d8-89e6998f47e0": {"__data__": {"id_": "ead62cd3-b4e9-4706-a9d8-89e6998f47e0", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2dbf7dbb-c3f9-4c54-a58c-82815b6ebffb", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "da848cdbe93d5d14c09a75892a58e663ac760645a4800dc46ef25fcfd46178cb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Consider the following language \n $$ A = \\{ w \\mid w \\text{ contains } 011 \\text{ as a substring} \\} $$\n\n* We need at least a 4-states DFA to recognize \\( A \\) \n* Let\u2019s find a string \\( s \\in A \\) of length at least 4 \n - Let \\( s = 0111 \\) \n - \\( x = 011, y = 1, z = \\varepsilon \\) \n - \\( xy^0z = xz = 011 \\in A \\) \n - \\( xy^1z = xyz = 0111 \\in A \\) \n - \\( xy^2z = xyyz = 01111 \\in A \\) \n - \\(\\cdots\\) \n - \\( xy^i z \\in A \\text{ for } i \\geq 0 \\) \n - Let \\( s = 0101011 \\) \n - \\( x = 0, y = 1, z = 01011 \\) and \\( xy^i z \\in A \\text{ for } i \\geq 0 \\) \n - \\( xy^0 z = xz = 001011 \\in A \\) \n - \\( xy^1 z = xyz = 0101011 \\in A \\) \n - \\( xy^2 z = xyyz = 01101011 \\in A \\) \n - \\(\\cdots\\) \n - \\( xy^i z \\in A \\text{ for } i \\geq 0 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 798, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e4f61d22-7aff-4709-8b12-89bea09ecd26": {"__data__": {"id_": "e4f61d22-7aff-4709-8b12-89bea09ecd26", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9470b431-53c2-417d-96c4-0d925b15ee5d", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "458f9b8825d9c1c43f663727e1b7edca1c883478839f270f97097011d26cf325", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Pumping Lemma\n\n* The pumping lemma states that all regular languages has a special property\n* If a language lack this property, it is not a regular language\n\n> **Property** \n> All strings in the language can be **pumped** if they are at least as long as a certain special value, called the **pumping length**. Each such strings contains a section that can be repeated any number of times with the resulting string remaining in the language.\n\n* **pumped**: $$xy^iz$$ for any $$i \\geq 0$$ \n - We can insert the string \\(y\\) in between \\(x\\) and \\(z\\) any number of times but the result string is still in the language", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7e90c132-f83b-4af6-9a0e-ff3203d90f93": {"__data__": {"id_": "7e90c132-f83b-4af6-9a0e-ff3203d90f93", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7bce44c5-2d28-42cf-a196-13cfda6929e2", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "ac2ea6da5a28ed3a4eb79e285991fa85e20af6872a7496170becc1347efa7cc1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Pumping Lemma\n\n> **Pumping Lemma** \n> If \\( A \\) is a regular language, then there is a number \\( p \\) (the pumping length) where if \\( s \\) is any string in \\( A \\) of length at least \\( p \\), then \\( s \\) must be divided into three pieces, \\( s = xyz \\), satisfying the following conditions: \n> 1. for each \\( i \\geq 0 \\), \\( xy^i z \\in A \\), \n> 2. \\( |y| > 0 \\), **and** \n> 3. \\( |xy| \\leq p \\). \n> \n> where \n> * \\( |s| \\) represents the length of the string \\( s \\) \n> * \\( y^i \\) means that \\( i \\) copies of \\( y \\) are concatenated together \n> - \\( y^0 \\) equals \\( \\varepsilon \\) but it does not mean that \\( y = \\varepsilon \\) \n> - \\( (010)^0 = \\varepsilon \\) but \\( 010 \\neq \\varepsilon \\) \n> - \\( xy^0 z = xz \\), \\( xy^1 z = xyz \\), \\( xy^2 z = xyyz \\), \\( xy^3 z = xyyyz \\), and so on", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 818, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5ed2bdfa-b0b8-439c-a1fe-df50b414bc64": {"__data__": {"id_": "5ed2bdfa-b0b8-439c-a1fe-df50b414bc64", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7a27f286-5258-48e8-97fc-c550284db073", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "6b78e68a0cef586221824fbbafb7ddadad4c01b838aaf46378515b0b403a11eb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof of the Pumping Lemma\n\n* Let \\( M \\) be a DFA recognizing \\( A \\) and \\( p \\) (the pumping length) be the number of states of \\( M \\).\n* Let \\( s \\) be a string of length at least \\( p \\).\n - \\( s = s_1 s_2 \\ldots s_n \\) where \\( s_x \\in \\Sigma \\) and \\( n \\geq p \\).\n* Let \\( r_1, r_2, \\ldots, r_{n+1} \\) be the sequence of states of \\( M \\) when processing \\( s \\).\n - \\( r_1 \\) is the start state of \\( M \\).\n - When \\( s_1 \\) is processed, the state of \\( M \\) is changed to \\( r_2 \\), and so on.\n * \\(\\delta(r_1, s_1) = r_2\\)\n * \\(\\delta(r_2, s_2) = r_3\\)\n * \\(\\vdots\\)\n * \\(\\delta(r_i, s_i) = r_{i+1} \\quad \\text{for } 1 \\leq i \\leq n.\\)\n * \\(\\vdots\\)\n * \\(\\delta(r_n, s_n) = r_{n+1}\\)\n* **Note** that there is no restriction that \\( r_x \\) and \\( r_y \\) cannot be the same state.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 815, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3a36a66c-0ccd-4b65-980e-f30513ef37cf": {"__data__": {"id_": "3a36a66c-0ccd-4b65-980e-f30513ef37cf", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "946f9fb4-b712-4008-89f1-8a20df9b2957", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "b250783bbffcb0c54a985d72e6422ff5d956a661be6adfaab03da5084307f6a0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof of the Pumping Lemma\n\n* The sequence \\( r_1, r_2, \\ldots, r_{n+1} \\) consists of \\( n + 1 \\) states \n - Since \\( n \\geq p \\), the above sequence has at least \\( p + 1 \\) states. \n* Since the machine \\( M \\) has only \\( p \\) states, in the first \\( p + 1 \\) states of the sequence, at least two states \\( r_j \\) and \\( r_l \\) must be the same state. \n - Let \\( r_j \\) be the first occurrence of the repeated state \n - Let \\( r_l \\) be the second occurrence of the repeated state in the above sequence. \n - **Note** that \\( j < l \\). \n* Since \\( r_l \\) is in the first \\( p + 1 \\) states of the sequence \\( l \\leq p + 1 \\). \n* Let \n - \\( x = s_1 \\ldots s_{j-1} \\) \n - \\( y = s_j \\ldots s_{l-1} \\) \n - \\( z = s_l \\ldots s_n \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 749, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2bcb55d1-52f4-4f83-9018-7bd6cfc6e478": {"__data__": {"id_": "2bcb55d1-52f4-4f83-9018-7bd6cfc6e478", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "89fda37e-572f-47c6-a8ed-201090cf3364", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "49655146bb810e1b8bc09f2117d8d0fe9b421cc14cc496497dd2e39a08230c00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Proof of the Pumping Lemma\n\n* If \\( M \\) accepts \\( s = s_1 s_2 \\ldots s_n \\) and \\( s = xyz \\),\n - \\( x \\) takes \\( M \\) from \\( r_1 \\) to \\( r_j \\),\n - \\( y \\) takes \\( M \\) from \\( r_j \\) to \\( r_l \\), and\n - \\( z \\) takes \\( M \\) from \\( r_l \\) to \\( r_{n+1} \\)\n\n where \\( r_{n+1} \\) is an accept state.\n\n* Let\u2019s check all conditions of the pumping lemma \n 1. Thus \\( M \\) accept \\( xy^i z \\) for \\( i \\geq 0 \\). \n 2. Since \\( j < l \\), \\( |y| > 0 \\). \n 3. Since \\( l \\leq p + 1 \\), \\( |xy| \\leq p \\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 518, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2f5e8d25-a51a-4ef0-8ac4-00d5605ef63e": {"__data__": {"id_": "2f5e8d25-a51a-4ef0-8ac4-00d5605ef63e", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c036f34b-4133-4b44-83a1-97ee91807928", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "ddf81baa3d939d34e5670b875109ec02d2747fbd8bcd21e360f3eaeb19c66b26", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to use the Pumping Lemma\n\n* To check whether a language \\( B \\) is **not** regular using the Pumping Lemma, we use prove by contradiction\n - Assume that \\( B \\) is regular\n - There exists a machine \\( M \\) with \\( p \\) states that recognizes \\( B \\)\n - Select a string \\( s \\in B \\) of length at least \\( p \\) so that the conditions 1, 2, and 3 of the pumping lemma lead to a contradiction\n\n* **Notes**\n - The choice of \\( s \\) must involve \\( p \\) to ensure that \\( s \\) has length at least \\( p \\) (e.g., \\( s = 0^p011 \\), \\( s = a^p b a^{2p} \\) or \\( s = b^{p+1} a^p b \\))\n - It is possible that some choices of \\( s \\) do not produce contradiction. **If we do not get a contradiction, we have not proved anything yet**\n - Once you pick an \\( s \\), nothing tells us what \\( x \\), \\( y \\), and \\( z \\) should be. **We have to show that we must get a contradiction, no matter what \\( x \\), \\( y \\), and \\( z \\) are, as long as they satisfy conditions 1, 2, and 3.**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 981, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "28666901-e172-4b2d-8562-666e62017c36": {"__data__": {"id_": "28666901-e172-4b2d-8562-666e62017c36", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5829d8da-addf-4211-9134-15402624bf5e", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "f526e58dfb9a5efb7d564e5de9070e75068601fce121d48f1ed06b95e92f9f2f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Show that $$B = \\{0^n 1^n \\mid n \\geq 0\\}$$ is not regular.\n\n* Assume that $$B$$ is regular. In other words, there exists a machine $$M$$ with $$p$$ states that recognizes $$B$$.\n - There are infinite number of strings in $$B$$ of length at least $$p$$\n - Just pick one (for now)\n* Let $$s = 0^p 1^p$$. Note that $$s \\in B$$ and $$|s| = 2p \\geq p$$.\n - The pumping lemma says there are strings $$x, y,$$ and $$z$$ such that $$s = xyz$$ satisfying the conditions 1, 2, and 3\n* Recall that there are multiple ways to divide $$s$$ into $$x, y,$$ and $$z$$ such that $$xyz = s = 0^p 1^p$$\n - Examples:\n * $$x = \\varepsilon, y = 0, \\text{ and } z = 0^{p-1} 1^p \\quad \\Rightarrow \\quad xyz = \\varepsilon 0 0^{p-1} 1^p = 0^p 1^p$$\n * $$x = 0^2, y = 0^3, \\text{ and } z = 0^{p-5} 1^p \\quad \\Rightarrow \\quad xyz = 0^2 0^3 0^{p-5} 1^p = 0^p 1^p$$\n * $$x = 0^p 1, y = 1, \\text{ and } z = 1^{p-2} \\quad \\Rightarrow \\quad xyz = 0^p 1 1^{p-2} = 0^p 1^p$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 968, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cf39c3da-ef51-4a22-bad6-33e41397d96a": {"__data__": {"id_": "cf39c3da-ef51-4a22-bad6-33e41397d96a", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "be572f60-6696-4072-9a71-80a9bc07e30c", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "4bf9db522c66f39776d82eda7764e28e8dcb489a5dd01850a2feee0f3e77da0c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\)\n\n* Since there are multiple ways to divide \\( s \\), we are going to focus on all possible ways to divide \\( s \\) into \\( x \\), \\( y \\), and \\( z \\) satisfying only conditions 2 and 3 first\n - We will try to get a contradiction from the first condition\n* The condition 3 says \\( |xy| \\leq p \\)\n - Since \\( s \\) starts with \\( p \\) 0s, to satisfy this condition, \\( x \\) and \\( y \\) must be strings that contain only 0s\n - If \\( x \\) contains one 1, for \\( s = 0^p 1^p = xyz \\), \\( |x| \\) is already \\( p + 1 \\)\n $$\n |xy| = |x| + |y| = (p + 1) + |y| > p\n $$\n - If \\( y \\) contains one 1, for \\( s = 0^p 1^p = xyz \\), \\( |xy| \\) is already \\( p + 1 \\)\n* Formally, to satisfy condition 3\n - \\( x = 0^j \\) for some \\( j \\geq 0 \\)\n - \\( y = 0^k \\) for some \\( k > 0 \\)\n - \\( k > 0 \\) makes \\( |y| > 0 \\) (satisfying condition 2)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 898, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b7684f27-11f4-4892-87b6-9ddbdce4a7ba": {"__data__": {"id_": "b7684f27-11f4-4892-87b6-9ddbdce4a7ba", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "068c0f46-d480-46cc-95e2-4093b0aee543", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "2c08f0fc97dc465086fd2b43f6aedf6296d41306f419089ff390162ebf4c319e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\)\n\n* Now we have \n - \\( x = 0^j \\) for some \\( j \\geq 0 \\) and \n - \\( y = 0^k \\) for some \\( k > 0 \\) \n* To make \\( xyz = s = 0^p 1^p \\), \\( z \\) must be \\( 0^{p-(j+k)} 1^p \\) \n\n$$\nxyz = 0^j 0^k 0^{p-(j+k)} 1^p = 0^{j+k+p-(j+k)} 1^p = 0^p 1^p\n$$\n\n* Condition 1 says that \\( xy^i z \\in B \\) for any \\( i \\geq 0 \\) \n - We just need to find an \\( i \\) such that \\( xy^i z \\notin B \\) \n - Let \\( i = 0 \\) \n\n$$\nxy^0 z = 0^j (0^k)^0 0^{p-(j+k)} 1^p = 0^j 0^{p-(j+1)} 1^p = 0^{p-k} 1^p\n$$\n\n* For \\( 0^{p-k} 1^p \\) to be in \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\) \n - \\( p - k \\) must be equal to \\( p \\) \n - \\( k \\) must be 0 to make \\( p - k = p \\) but \\( k \\) cannot be 0 \n - Contradiction \\(\\implies B\\) is not regular", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 773, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e28c467b-4967-4309-b988-7403cd49ba04": {"__data__": {"id_": "e28c467b-4967-4309-b988-7403cd49ba04", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a153a91e-1881-4d93-8098-42b3bb0965b6", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "4bc5bbcbad965c0d6f00de823a317fe857f1fdc080e15bc1f5fcabfc8d4ad347", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\)\n\n* There are multiple \\( i \\)s that can lead to a contradiction \n - But \\( i \\) should not be 1 since \\( xy^1z = xyz = s \\in B \\) \n* Let \\( i = 2 \\)\n\n$$\n\\begin{aligned}\nxy^2z &= 0^j (0^k)^2 0^{p-(j+k)} 1^p \\\\\n &= 0^j 0^k 0^k 0^{p-(j+1)} 1^p \\\\\n &= 0^{p+k} 1^p\n\\end{aligned}\n$$\n\n* For \\( 0^{p+k} 1^p \\) to be in \\( B \\) \n - \\( p + k \\) must be equal to \\( p \\) \n - \\( k \\) must be 0 to make \\( p + k = p \\) but \\( k \\) cannot be 0 \n - Contradiction \\(\\implies B\\) is not regular \n* In this example, any \\( i \\neq 1 \\) will give you a contradiction", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 614, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2d474c2d-0036-487a-9933-74465cb57184": {"__data__": {"id_": "2d474c2d-0036-487a-9933-74465cb57184", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "04f3c222-d1d7-444a-aca3-1f02cc1f306b", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "208aa82e3992d7f287d5a71009054cb01e141e24e81d4412bb31649f55a7be5d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example: $$B = \\{0^n 1^n \\mid n \\geq 0\\}$$\n\n* There are multiple strings \\( s \\) of length at least \\( p \\) that work for this example\n* Example: \\( s = 0^{2p} 1^{2p} \\)\n - This this string \\( s \\), use exact same proof where \\( x = 0^j \\) for any \\( j \\geq 0 \\), \\( y = 0^k \\) for any \\( k > 0 \\), and \\( z = 0^{2p-(j+k)} 1^{2p} \\)\n* Example: \\( s = 0^{\\frac{p}{2}} 1^{\\frac{p}{2}} \\)\n - This one is a little bit harder since condition 3 does not help much\n - There are three possibility for the string \\( y \\)\n * \\( y \\) contains nothing but 0s \\(\\left(y = 0^k \\text{ for some } k > 0\\right)\\) contradiction because \\( xy^2 z \\) will have more 0s than 1s\n * \\( y \\) contains some 0s and 1s \\(\\left(y = 0^k 1^m \\text{ for some } k,m > 0\\right)\\) contradiction because \n \\[\n xy^2 z = 0^j 0^k 1^m 0^k 1^m 1^{\\frac{p}{2} - m} \\notin B\n \\]\n * \\( y \\) contains nothing but 1s \\(\\left(y = 1^k \\text{ for some } k > 0\\right)\\) contradiction because \\( xy^2 z \\) will have more 1s than 0s", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1011, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "065dead1-4d2d-4034-a92b-b4c48f135092": {"__data__": {"id_": "065dead1-4d2d-4034-a92b-b4c48f135092", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7198435a-678a-4867-8f63-5f12ea61b07b", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "971c03e4df8b6205d13bc06d45f24839950318840c6e944917dd8b94612ee2fe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Rule of Thumb\n\n* Pick a string \\( s \\) in the language of length at least \\( p \\) such that it starts with at least \\( p \\) of the same symbol\n - \\( 0^p 1^p \\)\n - \\( 0^{2p} 1^{2p} \\)\n* Condition 3 will help reducing the amount of proofs that you have to do", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 261, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dab06e0a-f372-4659-be61-c79fa044233e": {"__data__": {"id_": "dab06e0a-f372-4659-be61-c79fa044233e", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "71e9cf54-9bbd-46b7-963c-c08f2cb189d4", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "4401d264b32ea801a52035c47adab53a3289c071c2ea461ce23518c538206b2d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Some Incorrect Proofs: \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\)\n\n* Let \\( s = 000111 \\) \n - \\( s \\) does not have length at least \\( p \\) (\\( p \\) can be any positive number) \n* Let \\( s = 0^p 1^{2p} \\) \n - \\( s \\notin B \\), cannot use the Pumping lemma \n* Let \\( s = 0^p 1^p \\) and \\( x = 0 \\), \\( y = 0^{p-1} \\), \\( z = 1^p \\) \n - This only shows one way of dividing \\( s \\) into \\( x \\), \\( y \\), and \\( z \\) such that \\( s = xyz \\) \n - There are multiple ways \n - Need to show them all by using variables (e.g., \\( 0^j \\), \\( 0^k \\), etc) \n* Let \\( s = 0^p 1^p \\) and \\( x = 0^j \\), \\( y = 0^k \\), and \\( z = 1^p \\) \n - \\( xyz = 0^j 0^k 1^p = 0^{j+k} 1^p \\neq s = 0^p 1^p \\) \n - If you say \\( j + k = p \\), it is still incorrect \n - You only show all possible ways such that \\( s = xyz \\) where \\( z = 1^p \\) \n - But \\( z \\) can have some 0s as well", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 876, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7f80f496-c869-4a66-b880-b51b5cc24f37": {"__data__": {"id_": "7f80f496-c869-4a66-b880-b51b5cc24f37", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_06_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0631cdd4-19a6-42ad-b8a4-7b4f690323e9", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_06_handout.pdf"}, "hash": "3e1f72b5042e6f4eb7d737dbd8358501d8ce0ca8c3cf1652392842dbd6fa51c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Show that \\( B = \\{0^n 1^n \\mid n \\geq 0\\} \\) is not regular\n\nAssume that \\( B \\) is regular. Since \\( B \\) is regular, the Pumping lemma says that for any string \\( s \\in B \\) of length at least \\( p \\), \\( s \\) can be divided into \\( s = xyz \\) satisfying the following conditions:\n\n1. \\( xy^i z \\in B \\) for any \\( i \\geq 0 \\) \n2. \\( |y| > 0 \\) \n3. \\( |xy| \\leq p \\) \n\nLet \\( s = 0^p 1^p \\). Since \\( s \\) starts with \\( p \\) 0s, to satisfy the third condition, \\( x \\) and \\( y \\) are strings that contain nothing but 0s. In other words, \\( x = 0^j \\) for any \\( j \\geq 0 \\), and \\( y = 0^k \\) for any \\( k > 0 \\). Note that \\( k \\) must be greater than 0 because \\( |y| = |0^k| = k \\), and the condition 2 says that \\( |y| > 0 \\). Since \\( x = 0^j \\) and \\( y = 0^k \\), \\( z = 0^{p-(j+k)} 1^p \\). Let \\( i = 0 \\). We have\n\n$$\n\\begin{aligned}\nxy^i z &= xy^0 z \\\\\n &= xz \\\\\n &= 0^j 0^{p-(j+k)} 1^p \\\\\n &= 0^{p-k} 1^p\n\\end{aligned}\n$$\n\nFor the string \\( 0^{p-k} 1^p \\) to be in \\( B \\), the number of 0s must be equal to the number of 1s. In other words, \\( p - k \\) must be equal to \\( p \\). This requires \\( k \\) to be 0. But since \\( k \\) must be greater than 0, \\( xy^0 z \\notin B \\) \u2014 contradiction. Therefore, \\( B \\) is not regular.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1265, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "09e10d3c-9b24-46ac-9ae5-864571a4abda": {"__data__": {"id_": "09e10d3c-9b24-46ac-9ae5-864571a4abda", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "03f25ad8-6a63-4ec4-9475-6c819ebf5ca3", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "e4121c9f72d5334c4754a235a6f765fa9a27f61aeac3106d006ceb49028c465c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L07 Requirements Elicitation II\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 179, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "34a8ed1f-0385-43b1-8440-791ccf228f68": {"__data__": {"id_": "34a8ed1f-0385-43b1-8440-791ccf228f68", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "593b3180-e873-4a9c-8268-04e773247b22", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "3b1d40c90888f4058993d9d39071e88ee9456d6415ea3fc6879ee19024de3e55", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet. \n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes. \n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n\n* Material from these notes is obtained from various sources, including, but not limited to, the following: \n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009. \n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994. \n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011. \n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "007d7afc-0a97-44d2-84b4-c2fe395bfbaa": {"__data__": {"id_": "007d7afc-0a97-44d2-84b4-c2fe395bfbaa", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2bad4e9d-0616-47a0-805d-4fa9f7bd71ae", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "19f6c5c53578047d587cdee2725107df7448e0d9e0f7a01db3081a74dfd40ff8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have a deeper understanding of functional requirements\n* You can define non-functional requirements\n* You can define constraints", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 153, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "91682a16-0db3-4259-ac00-129233f0e2e6": {"__data__": {"id_": "91682a16-0db3-4259-ac00-129233f0e2e6", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "226c3a6d-b458-4852-b4b2-263f0c16aa50", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "d258fe920f955145baaefa83e56680f67f322ece9ae5949c63c43aeeaa7d3dca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Deriving requirements\n - [Recap] Deriving functional requirements\n - Non-functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 120, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0a69061-8144-4412-9b81-f2ffa6608f32": {"__data__": {"id_": "c0a69061-8144-4412-9b81-f2ffa6608f32", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2ddf17a6-0296-422d-a820-6d742d1eae70", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "5b65523af85631f074573cda0557bda6a9206030a44c798f776b2dd4744a3ef0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Goals of Requirements Elicitation\n\n* Define the **problem**: Understanding the stakeholders\u2019 real needs (not just what they think they need) \n* **Avoid ambiguity**: Requirements should be clear, testable, and unambiguous \n* **Build a shared understanding**: Align developers, customers, and other stakeholders \n - Users, endusers, customers, maintainers, support staff, etc.\n\n> Proper requirements elicitation avoids rework, saves money, and keeps projects on track.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 473, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a7d3c121-c54b-4403-a667-241210094ed5": {"__data__": {"id_": "a7d3c121-c54b-4403-a667-241210094ed5", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "60e19b7c-a004-417d-a410-126b2be1a4df", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "49662bfe000cf4c13eb790b2510fca690db9ea42422a8ae9a4b6a5ad827142a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Examples] Issues with requirements\n\n* healthcare.gov: Launch in 2013, crashed under high load \n* Zoom: Security issues (2020) \n* Windows/CrowdStrike (mid 2024): No backward compatibility (BSOD) \n* Tesla HW4 Computer Failures (late 2024): Safety requirements inadequate \n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 281, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e1d9dd2e-41ba-490c-a082-a73e9cf73571": {"__data__": {"id_": "e1d9dd2e-41ba-490c-a082-a73e9cf73571", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6471dc92-b93e-4f30-a43c-efb8f060d3c2", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "88671d2a22893084f777d699da9a3a8f9209066bd977563c3cb06c210f1a88f4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Functional Requirements\n\n* Describe the essential functionality of the system\n* Define one requirement per function (feature)\n* They should be phrased in a general (/\"detailed enough\") manner\n\n\n \n \n\n\n\n \n\n \n \n
FR#Short title:Description
\n \n\n\n \n \n\n\n \n
Should be numbered based on their soon priorityPhrased in imperative mood!The description should not include implementation details!
\n\n
\n\n## [Example]\n\n**FR1 Select location:** The user can select a location on a map to view sinkholes in the selected area.\n\n**FR2 Login:** The user can login to the system using their email address and password.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 857, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6cab47cf-c2e4-4022-bb5e-b13188ebc3ce": {"__data__": {"id_": "6cab47cf-c2e4-4022-bb5e-b13188ebc3ce", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5e858da8-01b6-48cb-ac91-7b5ae3bd16f1", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "736b94d45a22c7198b4e7056a250a403c759c6e63c02e5d0900d7e2e6013e4ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] What is functionality?\n\n* **Single purpose:** Each functional requirement should represent one logical unit of work \n* **Low complexity:** Complex requirements should be split into separate requirements (or grouped as sub-requirements) \n* **Unified testing & maintenance:** Each functional requirement should be treated as one unit during testing and maintenance \n* An **atomic requirement** is a requirement that cannot be further broken down into individual tasks \n\n> Splitting complex requirements into smaller, manageable requirements helps in system design to better identify reusable parts", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 610, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "25875abd-2b18-493d-9083-5124a865f02b": {"__data__": {"id_": "25875abd-2b18-493d-9083-5124a865f02b", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a34f71e9-940d-4c04-8bdf-97a8bf33a08a", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "e9e05e98f866ced25f82a884ad48a9645a7241d4eb5f6b1ed9ba3f4e324cd247", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Defining requirements\n\n> User\u2019s perspective: viewing and downloading an account statement are two distinct actions \n> Each has its own functionality and does not depend on each other \n> Testing & maintenance will most likely be treated separately\n\n**FR4 Access account statements:** The customer can access account statements.\n\n**FR4.1 View Monthly Statements:** The customer can view their past transactions in their account statement, updated monthly.\n\n**FR4.2 Download Statements:** The customer can download their statements as a PDF file.\n\n**FR4.3 Receive statements via email:** The customer can choose to receive their account statement automatically via email automatically each month.\n\n> Sub-steps indicate a logical categorization", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 755, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5688ccc6-0121-475a-9ddc-2b7a947c3e1e": {"__data__": {"id_": "5688ccc6-0121-475a-9ddc-2b7a947c3e1e", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fc212e69-299f-477a-a4b0-739f4541bb26", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "e6b5c6da55faee6f31e2ce374fef78511b2532e86e947bad6c89761fd4851961", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I06/I07 \u2014 Define functional requirements \u23f3 15 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nBased on the problem statement, define **functional requirements** for the SiMCity system\n\n----\n\n| I07 - Functional Requirements | 2 points |\n|------------------------------|----------|", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 250, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a7b60696-7573-4b97-879a-3d5d7155a8d7": {"__data__": {"id_": "a7b60696-7573-4b97-879a-3d5d7155a8d7", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f2644a50-fe9b-43ea-984c-d4f852cba306", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "d1456deae198fd97f5ae1801611d14cbe6f3741c6b3476317e64d6c5bad20dc2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System (SiMCity) to address the issue of sinkholes within the city. The first version of SiMCity should enable residents and city officials to report sinkhole occurrences and track their locations.\n\nThe system should be easy to use, accessible through web and mobile platforms, and track sinkholes in real-time.\n\nResidents should be able to view sinkholes on a map, helping them to avoid such areas. It should also allow residents to report new sinkholes by sending in their location and photographic evidence for verification, or call for help. City officials can remove sinkholes from the map after they have been re-filled and repaired.\n\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and improve the city\u2019s ability to manage and mitigate the impact of these geohazards.\n\n> **Let\u2019s develop this system!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 935, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6c691297-621d-413f-836d-4a77e2eb1c23": {"__data__": {"id_": "6c691297-621d-413f-836d-4a77e2eb1c23", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1f8313ba-10c8-4b6a-863a-c61464eafeef", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "6f7a48149b09dbe2e05683223664b842f77e008fbcc4f40ec8e43fb1753aa1a0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Deriving requirements\n - [Recap] Deriving functional requirements\n - Non-functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 120, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d87deb22-42f8-4ec1-bc49-85725578042d": {"__data__": {"id_": "d87deb22-42f8-4ec1-bc49-85725578042d", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8d6ba957-ccfc-4d68-8ee4-a84ad890b44d", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "accea5bc8beff43e64faff2a0d604926a739523b517c03ca0c47ae8006fa4cfe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Recap] Deriving requirements: FURPS+ Model\n\n* FURPS+ is a model used to categorize features and attributes\n* [x] **Functional Requirements** \n > What functionalities/features should the system provide?\n* Non-functional Requirements \n - **U**sability \n - **R**eliability \n - **P**erformance \n - **S**upportability \n - \u2026 \n > E.g., robustness, maintainability, \u2026\n* Constraints (pseudo-requirements) \n > E.g., standards, physical limitations, software limitations, dependencies, \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 498, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "de17239f-a396-4936-90b2-06a173c12c13": {"__data__": {"id_": "de17239f-a396-4936-90b2-06a173c12c13", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "99bdbcdf-81f4-4ac2-a966-73034197bcde", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "8bc854ce983a3c79f63986725af21d33eacca61fc3ffd78167a949f772c5d211", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Non-functional requirements & constraints\n\n* **Non-functional requirements** (NFR) describe quality attributes that are important for the system (but do not describe functionality)\n* **Constraints** describe limitations or conditions that restrict the solution space\n - E.g., budgetary constraints, time constraints, technical constraints (e.g., the use of specific technologies), \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 386, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f02b7e7c-a6e9-4e3a-be82-4fef2b610908": {"__data__": {"id_": "f02b7e7c-a6e9-4e3a-be82-4fef2b610908", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "93e0819d-79aa-4c36-8132-084c6f85b6f3", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "770bb6cefcfa42d3a8ccf682087e3b13c58bb193b30f7eb76e1582bbfc1eeaa6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Defining non-functional requirements\n\n* **Usability:** How easy to use is the system?\n* **Robustness:** How stable and reliable is the system?\n* **Performance:** How fast and efficient is the system?\n* **Security:** How secure is the system?\n* \u2026\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
NFR#Short title[Category]Description
Should be numbered based on their \u27a1\ufe0f priorityCan be in imperative mood, can be a noun. Should be expressive!E.g. UsabilityThe description should not include implementation details!
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 754, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "da4d94e6-3263-43db-a764-dee47ad20dee": {"__data__": {"id_": "da4d94e6-3263-43db-a764-dee47ad20dee", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8c4d7806-aaaa-41fc-acf0-e6161d4d7a34", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "ee39b349ddb1aed3d91c346bf62d2d60838527fce7000c8ee08d42fc76a5cc70", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Defining non-functional requirements\n\n* NFRs are observed during the testing, validation & verification phase\n* Focus on **measurable**, **testable**, and **specific** (enough) criteria!\n - It is (often) up to the requirements engineer to define **measurable** NFRs\n* Problem statements often hint at NFRs\n\n**[Example]** \n\"Wording and color scheme should be consistent\" \n\"The user should always be able to get back to the dashboard within at most 2 clicks.\" \n_\"The system must be user-friendly\"_, _\"The system should be intuitive\"_, \n_\"The system should be easy to use\"_", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 578, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "275a2b8d-41bb-4aa4-8fed-22d1748b22a5": {"__data__": {"id_": "275a2b8d-41bb-4aa4-8fed-22d1748b22a5", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d5c13ec5-fed4-45ad-bff4-1a3090dcdb9a", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "d317467d781773ecbbc68475f310eae5e7278f2583948045b84678c87d1c9d5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\"The system must be ~~easy to use~~ ~~user-friendly~~ ~~intuitive~~ \u2026\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 71, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "728c14b1-51ac-4928-ab65-0dc6bb642299": {"__data__": {"id_": "728c14b1-51ac-4928-ab65-0dc6bb642299", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "af8823c5-692b-4fb4-8812-4f0740c44d09", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "435a34353195897340f34f2a817b5279933ec83026c9fed9adca02f1029f27a1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Usability \u2014 Overview\n\n* \"How effectively, efficiently and satisfactorily a user can interact with a user interface\" (usability.gov)\n* \"Quality attribute that assesses how easy user interfaces are\" (Nielsen, 2003)\n\n[The image shows a colored illustration of a person standing on a path labeled \"USABILITY PLAN\" looking towards a river labeled \"INTERFACE COMPLEXITY.\" The person is wearing a helmet labeled \"HEURISTIC EVALUATION\" and standing on land labeled \"COMPUTER CAPABILITIES.\" There is a crane labeled \"PROTOTYPING\" building a bridge labeled \"USER INTERFACE DESIGN\" that spans the river. On the far side of the river, there is a pillar labeled \"USABILITY ANALYSIS\" and land labeled \"USER NEEDS.\"]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 704, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0ffb9621-b4ac-4fda-9ae6-ef6ec12a31e1": {"__data__": {"id_": "0ffb9621-b4ac-4fda-9ae6-ef6ec12a31e1", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "efd3da35-ecdd-4ed5-a692-f63fa32efd33", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "bf0f5bbdf9c986e94f31a6aded84c3449336d4cecf029b853fe63ba87fc1d646", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Usability Engineering\n\n* Process to \"build\" usability into products \n* Helps to ensure \"high quality\" of products\n\n----\n\n**Why is Usability Engineering important?**\n\n**How can we describe usability?**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 204, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "557df62f-9923-4ecc-839b-115034ac2e66": {"__data__": {"id_": "557df62f-9923-4ecc-839b-115034ac2e66", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6b3c56d3-ca49-4534-a4fa-f5f4a723891b", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "1d98c86a8b66ca1a6b7b8b9cebd23d1701a62375a084293ef6d6e207eac97982", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Usability\n\n* **Learnability** \u2014 How quickly can users grasp the user interface? \n* **Efficiency** \u2014 Once mastered, does the interface enable swift and efficient usage? \n* **Memorability** \u2014 Can users easily recall how to navigate and use the interface? Is the design memorable and user-friendly over time? \n* **Error Handling & Robustness** \u2014 How well does the system handle errors or unexpected user actions? \n* (subjective) **Satisfaction & User Experience** \u2014 Does the user interface offer an enjoyable and satisfying experience?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 539, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "30608ba5-da91-4451-87e5-2e4280996e4c": {"__data__": {"id_": "30608ba5-da91-4451-87e5-2e4280996e4c", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "979b7276-3617-49dd-bed3-5ab8b31e5e68", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "4f7e7ab09c2d53ee0271976525ac320989da3d733c6f2b66dc32619d329051ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Usability (cont.)\n\n* **Consistency:** Is the interface design uniform across different sections, reducing cognitive load for users? `(7\u00b12) !`\n* **Flexibility:** Can users customize the interface to better suit their individual preferences and needs? E.g., IDE themes\n* **Task Completion:** How effectively does the interface support users in accomplishing their intended tasks without unnecessary complications?\n* **Feedback:** Does the interface provide users with helpful feedback after performing an action or guidance when they encounter difficulties or make errors?\n* \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 577, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c24ef5c8-1338-4124-8ecf-5de63727dcab": {"__data__": {"id_": "c24ef5c8-1338-4124-8ecf-5de63727dcab", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e1d20db7-6a39-428c-9bfb-8206312bac7e", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "3094d4692805d73d7a8c148bc1ad6115b6298d0d9d89e3cad94f747db99746d8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Usability requirements\n\n**NFR1 Student Learnability [Usability]:** Students must be able to use the system without needing a manual.\n\n**NFR2 Instructor Learnability [Usability]:** Instructors must be able to learn and recall the main functionality of the system after following a user tutorial.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 307, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d817f88-3ee5-4db8-8aaa-ca69837cc6e2": {"__data__": {"id_": "5d817f88-3ee5-4db8-8aaa-ca69837cc6e2", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9b7cd8ad-14a4-408e-8194-28fc3ead0488", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "65a0a541cbb6308acb633bb864ad071722ed34429418cae538ac0b9964751835", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Usability requirements\n\n**NFR1 Student Learnability [Usability]:** Students must be able to use the system to **complete basic tasks within 10 minutes** without requiring a manual.\n\n**NFR2 Instructor Learnability [Usability]:** Instructors must be able to learn and recall **90% of the core system functionality after completing a one-hour tutorial and must be able to perform key tasks within 5 minutes after a one-week break**.\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 468, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "73c66621-0f4f-4d0b-b1db-e04e16259eb7": {"__data__": {"id_": "73c66621-0f4f-4d0b-b1db-e04e16259eb7", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ec8d3f5d-fb22-445b-88a7-4e5ce35e21cd", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "56839438c414deb64c6dd5181120e904be769a95c76debb7c4f502c8e8fcb293", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Usability requirements\n\n> Initial version. Measurability is vague, should be revised and refined when more is known\n\n**NFR1 Student Learnability [Usability]:** Students must be able to use the system without needing a manual. \n**NFR2 Instructor Learnability [Usability]:** Instructors must be able to learn and recall the main functionality of the system after following a user tutorial.\n\n> Revised / more detailed version\n\n**NFR1 Student Learnability [Usability]:** Students must be able to use the system to complete basic tasks within 10 minutes without requiring a manual. \n**NFR2 Instructor Learnability [Usability]:** Instructors must be able to learn and recall 90% of the core system functionality after completing a one-hour tutorial and must be able to perform key tasks within 5 minutes after a one-week break.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 836, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "414c27a3-6472-4d23-afc1-06f622688d74": {"__data__": {"id_": "414c27a3-6472-4d23-afc1-06f622688d74", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b43fdd4d-fc0a-4212-bb9a-fc538eac2795", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "19cb8dd5a5bbfe32c53a215b6b2d0f959544eb9a36a91bb7a619a0c44b9ff4e1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Deriving requirements \n - [Recap] Deriving functional requirements \n - Non-functional requirements \n* Organizational: Team Project", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 157, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "15a098c8-df09-485c-83c3-9967b9f697ca": {"__data__": {"id_": "15a098c8-df09-485c-83c3-9967b9f697ca", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8e4d1a49-6cae-49fe-a6b5-c4d9e66f6928", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "91cab62321ca6f983969d87b97ead05116a1ee884aed172ca3f49f5b7c7c74af", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Team Project\n\n* **Team:** 4 - 6 students \n* **Goal:** Develop a software system throughout this term \n - Learn to apply SE best practices \n - Become more confident in using git and build up your GitHub profile \n - Setup a development pipeline and follow a workflow \n - Create test cases \n - Learn to use new tools \n - \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 335, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e10558a5-a8e9-478c-9469-b8398081f5a1": {"__data__": {"id_": "e10558a5-a8e9-478c-9469-b8398081f5a1", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a66fa939-82eb-45dd-9d78-a631744f0f3f", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "d6703d77b46c6bd81d7d6f328f3b35fda9b7aacd5773f562cd9cbe0945d9cf3a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Team Project** Timeline & First Tasks\n\n* Team forming: Due **September 18, 2025, 11:59pm** \n* Problem statement: Due **September 25, 2025, 11:59pm** \n* Find someone (your customer) who has a **problem** that **can be solved** with a (somewhat) complex **software system** \n - Customers can be: \n - Family members, friends \n - Pitt community: Professor (me included), staff \n - Local shop owner \n - \u2026 \n\n> \u2757\u2757 **If you already have an idea, please make use of Discord to find a team by 09/18.** \n> Otherwise I will allocate the teams.\n\n* System examples: \n - Campus navigation app \n - Fitness challenge platform \n - Personal finance tracker \n - Smart grocery list \n - Local events website \n - Sustainability tipps app \n - Coding challenge website \n - \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 792, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0c97c806-8af3-4cb1-8e7c-884d9076b55a": {"__data__": {"id_": "0c97c806-8af3-4cb1-8e7c-884d9076b55a", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "77eb1218-0a57-40bb-89de-b641499015bc", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "f8f081c9d8632f656cfddcdbf59deabfecad450e9d09bd0f6c6b15fc9219b187", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Team Project** Timeline & First Tasks\n\n* Team forming: Due **September 18, 2025, 11:59pm**\n* If you **already have a team**, you must register it -> **Q2**\n - Name + email + GitHub handle\n - Roles: PO & Scrum Master (can rotate later)\n* **If you do not have a team -> Q1**\n - Name + Email + GitHub handle\n - Preferred Role: (PO, SM, Developer \u2014 or \"no preference\", can be changed later)\n - Project interests (short text or category you find interesting), no guarantee though \ud83d\ude43\n\n> \u203c **If you already have a project idea but no team / not enough members, please make use of Discord to find a team by 09/17,** \n> otherwise I will allocate you into teams.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 662, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "026d317c-659c-4231-824b-acd61ac88fc3": {"__data__": {"id_": "026d317c-659c-4231-824b-acd61ac88fc3", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f6e8205c-d9c2-4952-b053-b3133c8f12c8", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "59fedf9efc64752147623a677484a8d4e4aa5af0bae3859a7445223b0014ff0a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Team Project** Basic requirements\n\n* Project must be hosted open-source (GitHub or GitLab) (more on that soon!)\n* Project must contain:\n - User interface\n - Middleware (logical components)\n - Data storage\n - *Optional*: connect to an external API\n\n* Meet at least on a (bi-) weekly basis\n* Work as a TEAM (you are all responsible for the outcome!)\n - Each major milestone will include a peer review of the other team members.\n\n[The image shows four men standing together, dressed in distinct styles, positioned on the right side of the slide. The University of Pittsburgh logo is in the top right corner.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 615, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a8741110-6a31-40fd-bf40-5030bc87b40b": {"__data__": {"id_": "a8741110-6a31-40fd-bf40-5030bc87b40b", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "33901706-5176-4c71-a924-da3aecbdc8d4", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "ce566594650788d4f831279d4a5b443896f049a10640c3f0a2a339129f81b564", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Team project schedule *[tentative]*\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
#MilestonePtStartDueFormat
-Team formation109/1609/18Team / preferences
0Project Kickoff
(Problem Statement)
509/1909/25Problem Statement
1Sprint 1: Requirements & Use Cases1509/2510/07Requirements, user stories, use case diagram, acceptance criteria
2Sprint 2: Analysis & Modeling1010/0710/21Analysis object model, class diagram,
2 dynamic models
3Sprint 3: Architecture & Tech Stack1010/2111/04Architecture model, choice of stack
4Sprint 4: Implementation011/0411/18Basic skeleton running
5Sprint 5: Presentation & Delivery5011/1812/05Final code, documentation, live demo
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1229, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e3fcdce7-53ff-42c4-823d-13abf1d1ea3a": {"__data__": {"id_": "e3fcdce7-53ff-42c4-823d-13abf1d1ea3a", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "23438934-ee15-4e87-acfd-cc34b9fd2112", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "8c43b94de8f279b3fcfd4e307d82c6e2fcb223120977d0520030546341ef7ff6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Homework assignment schedule *[tentative]*\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
AssignmentPtStartDueTopic
A12509/1809/27Requirements
A22510/0710/16Modeling
A32510/3011/11Patterns
A42511/1812/05Testing
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 518, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b0e5b886-f092-47c2-9361-c74ba4432ead": {"__data__": {"id_": "b0e5b886-f092-47c2-9361-c74ba4432ead", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "18cd83b7-2c26-40f4-bc65-9ea5dfcf196d", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "c6c88ad4948aea2d92157a3f2eb18688450cc5ae85898a008e46ec4a71f607e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Take-Away: Overview of requirements elicitation\n\n* User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and stakeholders\n* Effective Communication: Establish clear and open channels of communication to gather accurate requirements\n* Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving project needs\n* Documentation: Thoroughly document gathered requirements to ensure clarity and alignment throughout the project lifecycle\n\nYOUR USER REQUIREMENTS INCLUDE FOUR HUNDRED FEATURES.\n\nDO YOU REALIZE THAT NO HUMAN WOULD BE ABLE TO USE A PRODUCT WITH THAT LEVEL OF COMPLEXITY?\n\nGOOD POINT. I'D BETTER ADD \"EASY TO USE\" TO THE LIST.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 709, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d65da26-7878-4ed2-bafc-76e747f237ad": {"__data__": {"id_": "8d65da26-7878-4ed2-bafc-76e747f237ad", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "200ec2f9-2fa4-4de0-984c-f3bc384813c7", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf"}, "hash": "33bb082e5576c0878201d8bee0087732cfd3b737c16baae83f69f738f8b2c5ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L07 Requirements Elicitation II\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 179, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2f965bef-03b5-4a67-8b22-b46f5467e6eb": {"__data__": {"id_": "2f965bef-03b5-4a67-8b22-b46f5467e6eb", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4a827d1e-7925-439c-b632-378477007b21", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "560af1c5b50f59b1d7f3c08f266daa85c667d344a926b23c7279df6fdb74653f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L01 Introduction\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu\n\nFall 2025", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0e0c5c9b-9afb-44d7-bf98-b7a5c1a80aa0": {"__data__": {"id_": "0e0c5c9b-9afb-44d7-bf98-b7a5c1a80aa0", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dd1e6e11-db2d-4854-8b59-3d18604f9971", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "4899f4f66cf4084d39842e44f80029d7bf638e21e8c7de865edd7b8838420a84", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet.\n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes.\n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n* Material from these notes is obtained from various sources, including, but not limited to, the following:\n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n - [http://scrum.org/])(http://scrum.org/)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1384, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2c3cd011-9abb-48c9-bcf7-8056bb73c568": {"__data__": {"id_": "2c3cd011-9abb-48c9-bcf7-8056bb73c568", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2e105a24-68d8-43b8-b162-b80e3f83d12f", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "52487f3fb76ac0494118d804e073c395f77fee91b6f7056100423400241c997f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5796ba79-7e7c-433d-b48d-22a655968aeb": {"__data__": {"id_": "5796ba79-7e7c-433d-b48d-22a655968aeb", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "52cf2a6e-47de-472f-84f7-b80b6c0944a8", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "62fb9d63a3c63fadfb75c9c8f0b34c34765e2fb92c592829693346f8d7997750", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Organizational matters\n\n* Please review the syllabus & course policies on Canvas!\n* If you need specific **accommodations**, please **__email me & the DRS ASAP!__**\n* Make sure you fulfill the prerequisites for this course", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 225, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8efa8173-f5f1-4ce0-9b6f-fb3eb938898f": {"__data__": {"id_": "8efa8173-f5f1-4ce0-9b6f-fb3eb938898f", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a310a22c-a977-4018-a8b3-63cfc47b9d76", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6750fcc0def7bd3bcae117a589d07b0acf905676f5649aca9ac088d42d9a965c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Prerequisites & assumptions for this course\n\n* You have some programming experience \n - Previous experience with **Java** OR Python, C, C++, Visual Basic, \u2026 \n - Lecture code examples & coding homework assignments will be in Java \n - Team project (*more later*) can be in any language \n* You have access to a computer and use it during the lectures", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 357, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5ed184a3-272f-432c-9e5b-04a3c02bcd92": {"__data__": {"id_": "5ed184a3-272f-432c-9e5b-04a3c02bcd92", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "09632e4b-9c2c-4f3d-8e8b-17c3a983bfd7", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "b7e99a43b400db6f71762d416ab66b2cc2cf55dd917330607d124596d5da1004", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Material to refresh your knowledge (Java)\n\n* Interactive online tutorials\n - https://www.learnjavaonline.org\n - https://www.w3schools.com/java/\n* Java tutorials covering the basics: https://docs.oracle.com/javase/tutorial/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 227, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c73b8060-9483-4686-9e13-d6b0eef84b5e": {"__data__": {"id_": "c73b8060-9483-4686-9e13-d6b0eef84b5e", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4bee6f71-ad54-46d0-bb6a-2488041fe94c", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "aa8d1fa1df7c36296a2246250ce36d8733241e4bbc7c3aa539632eeb955779e7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4555b0c3-63ff-4cf3-b86f-861d9b77dfa1": {"__data__": {"id_": "4555b0c3-63ff-4cf3-b86f-861d9b77dfa1", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "849c8e65-06a3-4493-8b4f-a6bb19a5e7e1", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "d00fd6ef89f5ea2923479744da0b9f894e35b9001f7ed2707fe806c0fa93ea6e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Course learning goals\n\n* You know the most important software engineering terms and workflows \n* You understand the basic concepts and phases of a software project \n* You can apply suitable concepts and methods for concrete problems in complex projects \n* You are familiar with and can apply problem-solving techniques \n* You are able to analyze and evaluate given problems", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 380, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "090cb24c-9b6d-472d-912f-6a4448358be8": {"__data__": {"id_": "090cb24c-9b6d-472d-912f-6a4448358be8", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2cc71083-62de-4379-a490-fd8c725c98de", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "95f50e5c0409396c2ef331706666579d7a2c30875be9a78c2f06884252e7ceeb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Teaching philosophy\n\n*Tell me and I forget,* \n*teach me and I remember,* \n*involve me and I learn.* \n\u2014 Chinese proverb | Confucius", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 136, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "69c4306d-c4e8-447b-ac3d-ecdbc55f66be": {"__data__": {"id_": "69c4306d-c4e8-447b-ac3d-ecdbc55f66be", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "55ce72d0-e872-4f01-8316-85de990989b8", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "17461c22e380a486e3c23fee27fed720147322474788e657b3965ed3e6965c1e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Teaching & learning framework\n\n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n \n \n\n \n
LectureIn-class exercisesQuizzes &
Rapid Recaps
Theoretical knowledgeApply knowledgeTest knowledge
GuidedCollaborativeSelf
Team ProjectAssignments
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1305, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6ce170d0-de6d-47f8-9cc2-9d93e545e26c": {"__data__": {"id_": "6ce170d0-de6d-47f8-9cc2-9d93e545e26c", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "96a5e1d4-3a44-4808-84e0-006d4e50824a", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "ec694bd200db97c8af8c3057c666c48f4c511fb01a7950d83ea4a3460cd7029d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# This course\u2019s roadmap\n\n* Intro to Problem-Solving \n* Model-based Engineering (UML) \n* Software Development Lifecycle Models (Waterfall, Spiral, Agile, \u2026) \n* Requirements Engineering \n* System Design and Architecture > Order is subject to change \n* Object-Oriented Analysis and Design \n* Design Patterns \n* Software Testing and Quality Assurance \n* Project Management in Software Engineering \n* Software Configuration Management & Deployment \n\n* ~~User Interface Design and Usability~~ \n* ~~Emerging Trends in Software Engineering (AI in SE, Blockchain, etc.)~~ > If time permits \n* ~~Verification and Validation~~", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 630, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "774a44b0-3088-4750-ae97-3bbb49d0d6f9": {"__data__": {"id_": "774a44b0-3088-4750-ae97-3bbb49d0d6f9", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d960c8dc-b652-4b42-ba69-fcd908e69af2", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "722573918b7255b910ea5d28723fdf2a686783449210b829f345771a96e4df60", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Course organization \u2014 Lectures\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n\n \n\n \n \n
#DateSubject
108/26/2025Introduction
08/28/2025
209/02/2025Model-based Engineering
09/04/2025
309/09/2025Requirements Analysis
09/11/2025
\u2026\u2026
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 674, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d79d967-2eb5-40bd-8145-dacb456a947e": {"__data__": {"id_": "8d79d967-2eb5-40bd-8145-dacb456a947e", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "820f09a6-3d45-42b1-a963-1051ae33190c", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "c6fd5001dcec4b3fc27eb568eb964090ac4c7d479eaee7a33c6cb91ea2a3fa2e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "edea398a-2304-4ef2-b6d8-d7a0df04bfa8": {"__data__": {"id_": "edea398a-2304-4ef2-b6d8-d7a0df04bfa8", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8b00d762-35d4-4261-a871-f369c4d16de5", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "fc9649da7f3b7085a9f1ff68066b781792802ab038059b5bdb5b4a09b5ec59f2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Grading \u2014 Scale\n\n\n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n \n \n \n\n \n \n\n \n \n\n \n\n\n\n\n
% LG Breakdown
>= 90%A100% \u2014 97% A+
96% \u2014 94% A
93% \u2014 90% A-
>= 80%B89% \u2014 87% B+
86% \u2014 84% B
83% \u2014 80% B-
>= 70%C79% \u2014 77% C+
76% \u2014 74% C
73% \u2014 70% C-
>= 60%D69% \u2014 67% D+
66% \u2014 64% D
63% \u2014 60% D-
< 60%F59% \u2014 0%F
\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1190, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d456bff8-0bd3-4b17-a9cb-df318909f8e1": {"__data__": {"id_": "d456bff8-0bd3-4b17-a9cb-df318909f8e1", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "850a12ff-ae48-45b5-acf1-881323c2c2d9", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "46c0384c6ddb273ab8c019faa9ae00d409b136eed4238b242150834c0240cb56", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Grading \u2014 Composition\n\n* Rapid recaps (in-class) [10%]\n* In-class exercises [20%]\n* Individual Homework Assignments [30%]\n - You will complete several assignments on your own\n - More information soon!\n* Team Project [40%]\n - In small teams, you will complete several assignments (more soon)\n - Each team must present their project (end of term)\n* No exams :-)\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
TypePercentage
In-class
Rapid Recaps
10%
In-class
Exercises
20%
Individual
Homework
Assignments
30%
Team Project40%
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 793, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d53ca97c-808b-407f-b32a-f104583871be": {"__data__": {"id_": "d53ca97c-808b-407f-b32a-f104583871be", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "bd111ff7-ee33-442b-b5ae-4698486cfb7c", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "0e4c6c5124d7af643c07e11c9b598b44a02bce4d9272f656460c71609de1ae02", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Rapid Recaps (RRs) [10%]\n\n* Short quiz questions about the previous week\u2019s content \n* Every **Tuesday** at the beginning of class, **11:00 am on the dot** \u23f0 \n* Open book, up to 5 questions, time will vary from ~ 3 - 10 min \n* There are no repetitions! No exceptions! \n* Your worst two RR results will be dropped", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 318, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d0170b27-876d-40f6-8ba0-9eca6eb7e0e1": {"__data__": {"id_": "d0170b27-876d-40f6-8ba0-9eca6eb7e0e1", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d5eadb0b-0ad7-401f-af1a-19e9608e7dc6", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "7c4d66618acf0e05fd6295dd5978d748556f7d61c158aa5fc5ba94e5d5c7fb4b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# In-class Exercises [20%]\n\n* You will be given some time in-class to work on a problem in **pairs**\n* Follow-alongs or short exercises to be completed in class (latest by 11:59 pm)\n - E.g., programming exercises, modeling exercises, quiz questions, \u2026\n* After some time, a pair present their results\n - You receive feedback from peers & me\n - Allows you to adapt your solution before submitting it!\n - You see other solutions and understand other approaches\n - Practice communication skills", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 498, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "257fdbf0-91f3-4e4b-955b-08f4e325e421": {"__data__": {"id_": "257fdbf0-91f3-4e4b-955b-08f4e325e421", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "17865a76-1af1-41e5-bc22-b6c1face7709", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "51290d1c48fa69d7e24562c57bafd2fa843cde1cb4d4b3c75502ddce5a79475f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Individual Homework Assignments [30%] \u2014 Preview\n\n* Individual submissions \n* Assignments allow you to apply & deepen your knowledge \n* *More & schedule soon*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 162, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ef67e797-b336-4a1e-87bc-f5c8a992b115": {"__data__": {"id_": "ef67e797-b336-4a1e-87bc-f5c8a992b115", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5d90dada-a0a8-4ed4-a5a2-82ce9e49ecd2", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6f26ab1f0ee872218e94ca8da454bf45cd4efe43f3b87da7d8854bbec4ee112f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Team Project [40%] \u2014 Preview\n\n* In small teams, you will work together on designing a software system (and implementing parts of it) throughout the term\n* You will come up with your own idea / find someone with an idea\n* Each team member must contribute somewhat equally (will be assessed!)\n* Each team must present their system\n* *More & schedule soon*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 356, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14b7f516-a77e-4422-9c4a-cb3f224397a6": {"__data__": {"id_": "14b7f516-a77e-4422-9c4a-cb3f224397a6", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "433d2c75-b036-4963-ada7-8cdb5b1dd316", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "d7c3284297403aac1f328ef6772739dee8a786b9af12d9648bd23c9dfe70b557", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "48e638a4-84b2-4916-8957-7725cba2c9c5": {"__data__": {"id_": "48e638a4-84b2-4916-8957-7725cba2c9c5", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f0af1888-0f79-470d-a37c-a36d516f4dc9", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "ed014e993f9382fd0ea277d53212969dd89c0515908fa7037f85b815dbbda55e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Main course tools (1)\n\n**Canvas** \n* Access lecture material \n* Take rapid recaps \n\n**TopHat** \n* Follow-along with the slides \n* Complete in-class exercises \n\n**Gradescope** \n* Access & submit coding exercises (in-class, assignments)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 244, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f7d5b09-883c-4a16-b9ec-7d77d995a07f": {"__data__": {"id_": "9f7d5b09-883c-4a16-b9ec-7d77d995a07f", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a989aa71-c288-4976-9e56-076abf2ab5bc", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "99bef9b47c0c4fca39c43cd7f88b0318e1138f6d018fb3777f9486b6a3ea483b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Main course tools (2)\n\n## Discord\n* Communicate with instructor, TA, & fellow students\n* Ask general questions about the organization, lectures, and exercises\n* Receive announcements\n* You can find the invite link on Canvas", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 226, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b01ec726-5cc6-4f56-aa39-8b61db71a386": {"__data__": {"id_": "b01ec726-5cc6-4f56-aa39-8b61db71a386", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "77091342-8a0e-4f23-9c16-b6b1fbbb49e8", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6b16b5790ae712a00173dfe659993be626648b8b61415d3de2554a6c78b8f82b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fee606ec-0b7c-4b2e-8d1c-083e872d5135": {"__data__": {"id_": "fee606ec-0b7c-4b2e-8d1c-083e872d5135", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9cc55493-15dd-44d7-861a-02186be7e170", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "437fa8d4783dcc061f67987d9817240d6515401e36b5375ae77dc042c89a83a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \"Life happens\" - Late submissions & Extensions\n\n* Reach out **asap** in case of medical/family/\u2026 emergencies \n - I will need some **proof**, e.g., doctor\u2019s note \n - (E.g., your roommate\u2019s friend\u2019s COVID test is NOT a valid form of proof) \n - **Alternative:** \n Reach out to **Lynnsey Doane** (`led114@pitt.edu`, Director of Student Success) \n\n* Non-emergency late submissions/extensions \n - Please reach out if unsure how to handle a situation before the deadline (no later than 3 days past the due date)! \n - Late assignments/in-class exercises: see late policy in the syllabus \n - RR: in total, you can miss two (your best 10 RR scores will count) \n\n[The image shows a two-panel comic of a dog sitting calmly in a room on fire, saying \"THIS IS FINE.\"]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 776, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b2ea1f89-e316-4e2f-ba47-29c769737331": {"__data__": {"id_": "b2ea1f89-e316-4e2f-ba47-29c769737331", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "972303b9-f1ec-449a-8d42-7b650f9d457b", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "a21fec4e8d1f51c20c22fcbeb373df6fac7f9800588e2a14d69b8c44ae7429d9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# \u203c Expectations \u2014 Questions (in-class & Discord)\n\n* **Ask questions!**\n - If asking a question \"publicly\" makes you a little uncomfortable, I still encourage you to do so; it will be good practice & benefit you in the long run (e.g., being more comfortable to ask questions in a job later on)\n - **THERE ARE NO STUPID QUESTIONS!**\n - Remember, you are here to **learn**! \n If you have a question, there is a high chance of someone else having the same question\n - If my/your TA\u2019s answer does not satisfy you, also please let do me/them know! \n What is obvious to us might not be obvious to you, but if we don\u2019t know, we can\u2019t change anything\n* **If there are no questions, I will assume that everyone understood everything!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 739, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0080e1d3-6727-4daa-9f3d-23e80637ea38": {"__data__": {"id_": "0080e1d3-6727-4daa-9f3d-23e80637ea38", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7ce7b465-fb9e-4488-ab96-36fc28afb7a8", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "d03cbc0fda18cc88906259b2a6136676f3dec370dc8ab51e05bf22ef5894746d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Expectations \u2014 Feedback\n\n* If you have any feedback, **please talk to me!**\n* I can only make changes if I know about what\u2019s working for you and what isn\u2019t\n - Knowing what\u2019s working for you is important for me!\n - Don\u2019t wait for the surveys, please reach out anytime!\n* There will be frequent questions/feedback TopHat discussions - do use them!\n* There will be two 'official' surveys throughout the course\n - **Midterm evaluation:** 09/08 - 10/20/2025 \n > Based on this feedback, I will make changes for the remainder of the semester\n - \u2757\u2757 **Final course evaluation: 11/17 - 12/07/2025** \n > **Most important one!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 631, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce51ebcd-7973-4f54-a9b9-2f36f14e0b57": {"__data__": {"id_": "ce51ebcd-7973-4f54-a9b9-2f36f14e0b57", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "dc2a2cbd-7261-4f67-8a85-be3bcdfec953", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "697f021cbf303f4ffb68590d9e922d28a015aad63af6d43b11e4f0da54e4c04d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Previous Knowledge\n\n\u23f3 5-10 min \ud83d\udcca Survey **Please complete this survey by the end of today!**\n\n[University of Pittsburgh logo]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 130, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "38318fda-ea12-470e-a3b8-195bff811fc5": {"__data__": {"id_": "38318fda-ea12-470e-a3b8-195bff811fc5", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "96e085e8-1061-41de-bf6f-84218fdaef29", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "5e18322add8baf6919ba3c974c419a103015e5085965f3aab734fc346d1d8fa9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 195, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fd44d322-205b-4916-bc1c-69d9c746c6f0": {"__data__": {"id_": "fd44d322-205b-4916-bc1c-69d9c746c6f0", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0003f322-1862-4b88-902b-c3047c20b95f", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6333708f61680c53e4f1f2f07460b6db427e500e5da8d33385c15dbec3266e4e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Questions? \nConcerns? \nFeedback?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 35, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b93ba28-0f3e-4e5f-b318-38617dd07da8": {"__data__": {"id_": "6b93ba28-0f3e-4e5f-b318-38617dd07da8", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e378900b-5579-483b-bfac-7cbe0c154480", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "8515a21915c7126b1ba1b1f16f624f1c5eec56751bf07bbcfd2b8953d85dba41", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Useful websites every programmer should know & use\n\n* Google ![Google logo]\n* Stack Overflow ![Stack Overflow logo]\n* GitHub ![GitHub logo]\n\n* Other useful websites:\n - Geeks for Geeks\n - SourceForge\n - Codecademy\n - CodeBeautify", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 236, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "11ca59fd-302a-4a91-9a66-dad17526e1ac": {"__data__": {"id_": "11ca59fd-302a-4a91-9a66-dad17526e1ac", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "37b1bf66-4b24-4612-8d0c-f0961a0ac4fe", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "a4fdaf00b43d47823587177d5ad6b4bb339f46a2d0d7c80c656f7173afbdc062", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "What are your expectations for this class?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 43, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d7298e4a-e931-42b5-b0ca-10e58a947139": {"__data__": {"id_": "d7298e4a-e931-42b5-b0ca-10e58a947139", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "959e2354-28f8-4f99-9e10-96dce1ceb07b", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "b1133922333629505c600834bfcd9e6211b2230946a4575645c2947946a8b850", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Organizational & syllabus\n - Prerequisites\n - Learning goals & course organization\n - Grading\n - Tools\n - Communication & Feedback\n* Q&A\n* Mini-Intro to Software Engineering", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 200, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ae4b13ad-8da4-485c-8090-e4d20dbc685d": {"__data__": {"id_": "ae4b13ad-8da4-485c-8090-e4d20dbc685d", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "53dc8fb6-9ec2-408a-8fad-81b8c9303ff0", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "ff2168e03d1432f34eb9dfd3fed752133d35bd0a795186abca66ca0ded499a64", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is software?\n\n* Software is **complex** \n - Typically composed of many parts\n* Software can be **complicated** \n - No sufficient documentation = not easy to understand \n - Often requires in-depth knowledge to make a change\n* Building & maintaining software involves many **stakeholders** \n - E.g., developer, customer, user, \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "22029af3-752a-4b90-925e-fac3652be058": {"__data__": {"id_": "22029af3-752a-4b90-925e-fac3652be058", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "05f11ef0-fa2d-48ca-90e2-e9f12fb84917", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "7b88e8e7fcc5c922d4f2aa576b856ed3dbcf2ca514abf0662987851a15833874", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is software engineering?\n\n> Code? \n> Coding?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 53, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a9db3d6e-f6d2-4371-b3bc-092fa1bddc51": {"__data__": {"id_": "a9db3d6e-f6d2-4371-b3bc-092fa1bddc51", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a08353db-c8a8-4f4e-b29f-c2287160fab5", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "8139899bf3ca5961891136dd4df8fc6feba23b23a029aad80bdf5bd4663a9028", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "*Software Engineering is not rocket science nor textbook knowledge*\n\n# Software Engineering is the use of **common sense** and **discipline** to **solve real-world problems**\n\n[University of Pittsburgh logo in the top right corner]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 232, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ad9fa682-2df1-4886-8ae7-d616ab983b81": {"__data__": {"id_": "ad9fa682-2df1-4886-8ae7-d616ab983b81", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fa1f8998-39cd-45e2-9d1d-745e33dac4d4", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "5857c88f270c87679a05741f1f88736320ba27ec0d4e2bf69dcc00ff394df8f5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is software engineering?\n\n* Software engineering is much more than 'just writing code' \n - Programming is a subset of software engineering!\n\n* **Software engineering is the** **process** **of applying scientific principles to the design & creation of software** \n - Systematic approach to designing, building, testing, and maintaining software \n - Focuses on problem-solving and decision-making throughout the project lifecycle \n - Collaboration and teamwork across various roles & stakeholders \n - Emphasizes quality assurance, scalability, and sustainability\n\n* Involves both technical and non-technical skills \n > Communication & project management", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3ee44ab7-7a10-4fe4-bd57-1842e699f120": {"__data__": {"id_": "3ee44ab7-7a10-4fe4-bd57-1842e699f120", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0565f8d9-7eba-40cf-bea8-8a11d7cde435", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "49af37af4013a1a1abe207b33d4ea183bb59dee33fa89a7b3a9a860cafbc9ccb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Key concepts in software engineering\n\n* Software engineering builds on **problem-solving** abilities \n 1. Understand the problem \n 2. Propose a solution and a project plan \n 3. Engineer a system using best practices and good design principles \n\n> The proposed solution is often called and used as a 'prototype'\n\n* Software engineering is about **dealing with complexity** \n - Creating abstractions and models \n - Notations for abstractions \n\n* Software engineering is concerned with **dealing with change** \n - Requirements elicitation, analysis, design, implementation, validation of the system, delivery and maintenance", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 638, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "50ddf094-a331-459d-9a7c-d8a48cddca08": {"__data__": {"id_": "50ddf094-a331-459d-9a7c-d8a48cddca08", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "77672d43-e4b0-4999-88a6-69a551604fdc", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "57f4d65ad0e91fca0841e5fb3cc49388a74092dd83c6a6e4fe92851a43feeaf8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Why you should learn about software engineering\n\n* Building software without discipline is crazy!\n* Software is critical to society\n - Economy\n - Enterprises\n - Key part of many complex systems\n - Essential for designing products\n - Embedded in systems you are using daily\n - \u2026\n* Realizing large, complex projects is hard\n* Software crisis (*more next lecture*)\n* It\u2019s fun \ud83e\udd13", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 383, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "32cb20ce-4500-413e-b496-d9ce2802e311": {"__data__": {"id_": "32cb20ce-4500-413e-b496-d9ce2802e311", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "285aeb43-e3ca-4417-9adc-c5a6771c61f9", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "78cd7c3b62ff70f5d719842bc34ee2a82e6f06f99b94422a533dc8cec9264932", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# RR00 - Demo\n\n\u23f3 2 min \u26a1 Rapid Recap \n\n> **Practice time!** \n> (Today\u2019s results will count as a bonus \ud83d\udcaa)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 108, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7fde53e7-27a3-491f-ad05-586817f6ad03": {"__data__": {"id_": "7fde53e7-27a3-491f-ad05-586817f6ad03", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e66c195c-d82e-4269-9a31-5deb43e94d49", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "40904850d8c5a1634ec43661516e1e2da4f1021bac14ff00273982171a26f012", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# How to build a complex system?\n\n## Where to start?", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 53, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e4ffe82f-bcfd-44db-b683-ea6195a5163b": {"__data__": {"id_": "e4ffe82f-bcfd-44db-b683-ea6195a5163b", "embedding": null, "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3e30467f-1d4c-485e-8fd2-3d22eef0bdcf", "node_type": "4", "metadata": {"page_number": 41, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "8791ddce1b0f6879e8ef57b887d646ccedb9718db4f21a4cfb1f0a32464b1826", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I01 \u2014 Group Exercise \u23f3 10 min \ud83d\udcac In-class\n\n## Problem Statement: \n*Imagine you're in a new city for the first time, and you're very hungry. You want to find a good place to eat but don't know the area. How would you go about solving this problem?*\n\n## Your Task:\n* Form small groups of 2 \u2014 3 students \n* Identify steps you would naturally need to solve this problem \n* You now want to share your approach with many people in various cities! \n* **Design & build this system:** *How many possible solutions are there? Which solution is correct? Where to start?* \n* Share your results! \n\n\n \n \n\n \n\n \n\n \n
gradescopeI1 - Defining a system
2 points by Turnitin
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 744, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc397f6f-2134-4a15-92dc-51d9a98b24fc": {"__data__": {"id_": "dc397f6f-2134-4a15-92dc-51d9a98b24fc", "embedding": null, "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "52b185b8-5f6c-4bb1-bf94-30f19b347ee6", "node_type": "4", "metadata": {"page_number": 42, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "6dcad74d5bbb565d526de14ad5e237acbf1c1191fad0976ba0a0c3c340775778", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I01 \u2014 Group Exercise \u23f3 10 min \ud83d\udcac In-class\n\n----\n\n**Problem Statement:** \n*Imagine you're in a new city for the first time, and you're very hungry. You want to find a good place to eat but don't know the area. How would you go about solving this problem?*\n\n----\n\n**Questions you might consider:**\n\n* What do you need to build this system? \n* What assumptions are you making? \n* How will the user interact with the system? \n* How will you collect information about available restaurants? \n* Are other stakeholders involved? Who are they? \n* How will you measure the success of the system? \n* What happens after you have built this system? \n* \u2026\n\n----\n\n> Via **Gradescope.** \n> One submission per group, please! \n> You can add your group members after submitting the exercise.\n\n\n \n \n\n \n\n \n \n
gradescopeI1 - Defining a system
2 points by Turnitin
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 954, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5a9908fb-ac0d-4dd4-ab76-ed0d0a77b2b8": {"__data__": {"id_": "5a9908fb-ac0d-4dd4-ab76-ed0d0a77b2b8", "embedding": null, "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b7bf983b-b6dd-401c-8d62-154daf97e269", "node_type": "4", "metadata": {"page_number": 43, "file_name": "data/Fall25 1530 - L01 Introduction (1000).pdf"}, "hash": "ed1b7983a2030b18bd8d6a6d0c3dc407daf16fa70e864806a44a755e0c66f42e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L01 Introduction\n\nCS 1530 Software Engineering\n\nNadine von Frankenberg\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1ce8506a-4a39-4d4d-9090-cf991674e9d9": {"__data__": {"id_": "1ce8506a-4a39-4d4d-9090-cf991674e9d9", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a1587175-d422-4fef-acbb-a7de0af05fa4", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "hash": "bbd7fdffc60a0f0dc51e1bf213a2172d1352825375ea32ced9913d792fcbe403", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# 1.2. Length and Angle. The Dot Product. Projections.\n\nIn this lecture we will introduce the operation on pairs of vectors in \\(\\mathbb{R}^n\\), that will allow us to define lengths of vectors, but more importantly it will allow us to check whether two vectors are \"orthogonal\" to each other.\n\n## Recall Parallelism:\n\nTranspose \n\\[\nA = \\begin{bmatrix} a_1 \\\\ \\vdots \\\\ a_n \\end{bmatrix}, \\quad A^T = [a_1, \\ldots, a_n].\n\\]\n\n----\n\n**Def. 1. ?** Let \n\\[\nA = \\begin{bmatrix} a_1 \\\\ \\vdots \\\\ a_n \\end{bmatrix}, \\quad B = \\begin{bmatrix} b_1 \\\\ \\vdots \\\\ b_n \\end{bmatrix}\n\\] \nbe two vectors in \\(\\mathbb{R}^n\\),\n\nthen we define the **scalar product** of \\(A\\) with \\(B\\) by (dot product):\n\n$$\nA \\cdot B = a_1 b_1 + a_2 b_2 + \\cdots + a_n b_n \\in \\mathbb{R}\n$$\n\n$$\n= A^T B = [a_1, a_2, \\ldots, a_n] \\begin{bmatrix} b_1 \\\\ b_2 \\\\ \\vdots \\\\ b_n \\end{bmatrix} \\in \\mathbb{R}.\n$$\n\n> That's the sum of the products of the components of \\(u\\) and \\(v\\).\n\n> The scalar product of two vectors is, as the name might suggest, a scalar, i.e. a real number.\n\n**Example:** \n\\[\nu = \\begin{bmatrix} 1 \\\\ 2 \\\\ 3 \\end{bmatrix}, \\quad v = \\begin{bmatrix} -3 \\\\ 5 \\\\ 2 \\end{bmatrix}\n\\]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c1339826-7773-4b98-a407-6c7c217349aa": {"__data__": {"id_": "c1339826-7773-4b98-a407-6c7c217349aa", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0f7ff6c8-e613-40d2-b8bf-3cc509b3c98b", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "hash": "3b72d0fb3daf344ff5c0afae1ff55db47398ae4f7958b0398bdb307942c86578", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute \n$$ \\mathbf{u} \\cdot \\mathbf{v} = 1 \\cdot (-3) + 2 \\cdot 5 + (3) \\cdot 2 = 1 $$ \n$$ = \\mathbf{v} \\cdot \\mathbf{u} $$\n\n----\n\nLet's go back to our favourite \n$$ e_1 = \\begin{bmatrix} 1 \\\\ 0 \\\\ 0 \\end{bmatrix}, \\quad e_2 = \\begin{bmatrix} 0 \\\\ 1 \\\\ 0 \\end{bmatrix}, \\quad e_3 = \\begin{bmatrix} 0 \\\\ 0 \\\\ 1 \\end{bmatrix} $$\n\n$$ e_1^T e_1 = \\begin{bmatrix} 1 & 0 & 0 \\end{bmatrix} \\begin{bmatrix} 1 \\\\ 0 \\\\ 0 \\end{bmatrix} = 1 $$\n\n$$ e_1^T e_2 = \\begin{bmatrix} 1 & 0 & 0 \\end{bmatrix} \\begin{bmatrix} 0 \\\\ 1 \\\\ 0 \\end{bmatrix} = 0 $$\n\n$$ e_i \\cdot e_j = \\delta_{ij} = \\begin{cases} 1 & i = j \\\\ 0 & i \\neq j \\end{cases} $$\n\n----\n\n### Properties of the scalar product:\n\nLet $\\mathbf{v}, \\mathbf{u}, \\mathbf{w} \\in \\mathbb{R}^n$ vectors and $c \\in \\mathbb{R}$. Then:\n\n* $\\mathbf{u} \\cdot \\mathbf{v} = \\mathbf{v} \\cdot \\mathbf{u}$\n* $\\mathbf{u} \\cdot (\\mathbf{v} + \\mathbf{w}) = \\mathbf{u} \\cdot \\mathbf{v} + \\mathbf{u} \\cdot \\mathbf{w}$\n* $(c \\mathbf{u}) \\cdot \\mathbf{v} = c (\\mathbf{u} \\cdot \\mathbf{v})$\n* $\\mathbf{u} \\cdot \\mathbf{u} \\geq 0$\n* $\\mathbf{u} \\cdot \\mathbf{u} = 0 \\iff \\mathbf{u} = \\mathbf{0}$\n\n----\n\nNow using this gadget we define the notion of length of a vector:\n\n**Def:** The length of a vector \n$$ A = \\begin{bmatrix} a_1 \\\\ \\vdots \\\\ a_n \\end{bmatrix} \\in \\mathbb{R}^n $$ \nis defined by: \n$$ \\| A \\| = \\sqrt{A \\cdot A} = \\sqrt{a_1^2 + a_2^2 + \\cdots + a_n^2} \\in \\mathbb{R}_{\\geq 0} $$\n\nSince $A \\cdot A \\in \\mathbb{R}_{\\geq 0}$, \n...", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1468, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eddaa69a-a249-43af-aba0-e287507c512c": {"__data__": {"id_": "eddaa69a-a249-43af-aba0-e287507c512c", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8ab6606e-62db-45dd-bb72-f407ce65c29e", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "hash": "484d631ffd467e9c9aa3f6d30b4030d0a51889f1e0606eff12cb77bc7160f89a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "since \n$$\nA \\in \\mathbb{R}^{n \\times n}, \\quad A \\succ 0,\n$$\nin particular the square root of \\(A \\cdot A\\) is real (not complex).\n\n\\[\n\\Rightarrow \\text{How did we come up w/ this definition?}\n\\]\n\nLet see this in 2-dimension: \n\\[\nv = \\begin{bmatrix} x \\\\ y \\end{bmatrix}\n\\]\n\n\\[\n\\|v\\| = \\sqrt{v \\cdot v} = \\sqrt{x^2 + y^2}\n\\]\n\n\"Pythagorean Thry.\"\n\n\\[\n\\left\\| \\begin{bmatrix} 2 \\\\ 3 \\end{bmatrix} \\right\\| = \\sqrt{2^2 + 3^2} = \\sqrt{13}\n\\]\n\n----\n\n**Q:** How about in 1-dim: \\(c \\in \\mathbb{R}\\), \\(\\|c\\| = \\sqrt{c^2} = |c|\\).\n\n----\n\n### Exercise:\n\nProve that \n1. \\(\\|v\\| = 0 \\iff v = 0\\) \n2. \\(\\|c \\cdot v\\| = |c| \\cdot \\|v\\|\\)\n\n----\n\n### Def:\n\n* A vector \\(v \\in \\mathbb{R}^n\\) is called a **unit vector** iff \\(\\|v\\| = 1\\).\n\n* We define the normalization of a vector as: \n\\[\n\\frac{v}{\\|v\\|}\n\\]\nthis is a unit vector pointing in the direction of \\(v\\).\n\n----\n\nLet the vectors \\(e_1, \\ldots, e_n\\); \n\\[\ne_i := \\begin{bmatrix} 0 \\\\ 0 \\\\ \\vdots \\\\ 1 \\\\ \\vdots \\\\ 0 \\end{bmatrix} \\quad \\text{(i-th component)}\n\\]\n\nare a special case of unit vectors. We call them **standard (orthogonal) unit vectors**.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1102, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0385826d-de6b-41d0-9a8b-7a7903c7f459": {"__data__": {"id_": "0385826d-de6b-41d0-9a8b-7a7903c7f459", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5bd66240-4543-42b6-aab5-49a5d04a4e11", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "hash": "c08b386339fa84e4ebc76f4836fecb0e0c002584dc16aa4443b96578b110d389", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example: Normalise \n$$ \\mathbf{v} = \\begin{bmatrix} 2 \\\\ -1 \\\\ 3 \\end{bmatrix}, \\quad \\|\\mathbf{v}\\| = \\sqrt{14} $$\n\n$$ \\frac{\\mathbf{v}}{\\|\\mathbf{v}\\|} = \\frac{1}{\\sqrt{14}} \\begin{bmatrix} 2 \\\\ -1 \\\\ 3 \\end{bmatrix} . $$\n\nEx. (Proposition) Cauchy-Schwarz inequality. \nShow: \n$$ | \\mathbf{u} \\cdot \\mathbf{v} | \\leq \\|\\mathbf{u}\\| \\cdot \\|\\mathbf{v}\\| \\quad \\text{for } \\mathbf{u}, \\mathbf{v} \\in \\mathbb{R}^n $$\n\nIn 2-dimensions: \n$$ | \\mathbf{u} \\cdot \\mathbf{v} |^2 = (u_1 v_1 + u_2 v_2)^2 \\leq (u_1^2 + u_2^2)(v_1^2 + v_2^2) = \\|\\mathbf{u}\\|^2 \\|\\mathbf{v}\\|^2 $$\n\nIn n-dim: \n$$ \\left( \\sum_{i=1}^n u_i v_i \\right)^2 - \\left( \\sum_{i=1}^n u_i^2 \\right) \\left( \\sum_{i=1}^n v_i^2 \\right) = \\frac{1}{2} \\sum_{i=1}^n \\sum_{j=1}^n (u_i v_j - u_j v_i)^2 \\geq 0. $$\n\n> clearly \n> since we are adding squares.\n\n----\n\nProposition: The triangle inequality: \n$$ \\|\\mathbf{u} + \\mathbf{v}\\| \\leq \\|\\mathbf{u}\\| + \\|\\mathbf{v}\\| $$\n\nPf: \n$$ \\|\\mathbf{u} + \\mathbf{v}\\|^2 = (\\mathbf{u} + \\mathbf{v}) \\cdot (\\mathbf{u} + \\mathbf{v}) = \\mathbf{u} \\cdot \\mathbf{u} + 2(\\mathbf{u} \\cdot \\mathbf{v}) + \\mathbf{v} \\cdot \\mathbf{v} $$\n\n$$ \\leq \\|\\mathbf{u}\\|^2 + 2|\\mathbf{u} \\cdot \\mathbf{v}| + \\|\\mathbf{v}\\|^2, \\quad \\text{since } \\mathbf{u} \\cdot \\mathbf{v} \\leq |\\mathbf{u} \\cdot \\mathbf{v}| \\text{ can be negative} $$\n\n$$ \\leq \\|\\mathbf{u}\\|^2 + 2 \\|\\mathbf{u}\\| \\|\\mathbf{v}\\| + \\|\\mathbf{v}\\|^2 \\quad \\text{(Cauchy-Schwarz)} $$\n\n$$ = (\\|\\mathbf{u}\\| + \\|\\mathbf{v}\\|)^2 $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1475, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "936b1d2d-91a1-4bf6-809a-85802025ede1": {"__data__": {"id_": "936b1d2d-91a1-4bf6-809a-85802025ede1", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9e53ae31-ba24-4f86-ad48-1a7d745cea65", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/1.2. Length and Angle. The Dot Product. Projections..pdf"}, "hash": "6ad893dd7933f322ab0461a71e2046a8709a63ebffbf1a9d23658ebfae6f39b6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\n\\text{- Schwarz?}\n= (||u|| + ||v||)^2\n$$\n\n# Distance between two vectors\n\n## Definition:\n\n$$\nd(v,w) := ||v - w|| = \\sqrt{(w_1 - v_1)^2 + (w_2 - v_2)^2}\n$$\n\n## Geometric intuition:\n\n[The image shows a right triangle with vertices labeled \\(v\\), \\(w\\), and the right angle vertex. The hypotenuse is labeled \\(d(v,w)\\) in purple. The horizontal leg is labeled \\(|w_1 - v_1|\\) in green, and the vertical leg is labeled \\(|w_2 - v_2|\\) in green. The vectors \\(v\\) and \\(w\\) are shown as arrows from the origin to their respective points.]\n\n## Example:\n\n$$\nu = \\begin{bmatrix} \\sqrt{2} \\\\ 1 \\\\ -1 \\end{bmatrix}, \\quad v = \\begin{bmatrix} 0 \\\\ 2 \\\\ -2 \\end{bmatrix}\n$$\n\n* To be done in class.\n\n$$\nu - v = \\begin{bmatrix} \\sqrt{2} \\\\ -1 \\\\ 1 \\end{bmatrix}\n$$\n\n$$\nd(u,v) = ||u - v|| = \\sqrt{(\\sqrt{2})^2 + (-1)^2 + 1} = \\sqrt{4} = 2\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 830, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "591bf9af-ec7e-4a53-bf01-215b27e8f1d4": {"__data__": {"id_": "591bf9af-ec7e-4a53-bf01-215b27e8f1d4", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b3008b2a-ac12-49bc-89ba-4c0617781400", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "7c753553b6baf825bdc4fc03054fc21f5d1f018baf96186d3a6589a3fefe7b1c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Finite Automata 03\n\nThumrongsak Kosiyatrakul \ntkosiyat@cs.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cb9e0c36-9700-4eca-8038-536b64e1ad3c": {"__data__": {"id_": "cb9e0c36-9700-4eca-8038-536b64e1ad3c", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9c779b89-3f1b-47be-89c4-34f3406302cd", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b220251ba34e95223795635959dd8130b3597c4fa175e5460d39675094b5ba1b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Nondeterministic Finite Automaton\n\n```\n 0, 1 0, 1\n \u21bb \u21bb\n(q\u2081) \u20141\u2192 (q\u2082) \u20140, \u03b5\u2192 (q\u2083) \u20141\u2192 (q\u2084) \u21bb\n```\n\n* Let \\( \\Sigma = \\{0, 1\\} \\)\n* Different between Deterministic Finite Automaton (DFA) and Nondeterministic Finite Automaton (NFA):\n - DFA always has exactly one exiting transition arrow for each symbol in the alphabet\n * NFA may have none, one, or many exiting arrows for each symbol\n - DFA have no arrow with the label \\( \\varepsilon \\)\n * NFA may have zero, one, or many arrows exiting from each state with the label \\( \\varepsilon \\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 564, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c25b58f4-8de6-46df-b9f5-7db7d6fe99d2": {"__data__": {"id_": "c25b58f4-8de6-46df-b9f5-7db7d6fe99d2", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7e0f3e04-25d5-4709-92c5-ea6c6f68dac0", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "dfb636a62cb8592a3b9141ffc7bcebf4cd0552f3e0f101734ed5876fd147eaba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA\n\n```\n 0, 1 0, 1\n\n \u2192 (q\u2081) --1--> (q\u2082) --0, \u03b5--> (q\u2083) --1--> ((q\u2084))\n \u2191 \u2191\n | |\n 0,1 0,1\n```\n\n* If you encounter a state with multiple ways to proceed for a regular input:\n - The machine splits into multiple copies of itself.\n - The machines follow all the possibilities in parallel.\n - Each copy of the machine takes one of the possible ways.\n\n* If you encounter a state with an $\\varepsilon$ symbol as an exiting arrow:\n - Without reading any input, the machine splits into multiple copies.\n - Each follows each of the exiting $\\varepsilon$-labeled arrows, and\n - One stays at the current state.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 703, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "227ab497-c3cf-4541-acd8-f98cc888156d": {"__data__": {"id_": "227ab497-c3cf-4541-acd8-f98cc888156d", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "86f287a5-2c1a-4341-baef-e98c75387f62", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "58bb067b34d85555013bdd050e9564d96596f1e374b9aa31e84a0e4940ecf411", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n```mermaid\nstateDiagram-v2\n [*] --> q1: Start\n q1 --> q1: 0,1\n q1 --> q2: 1\n q2 --> q3: 0, \u03b5\n q3 --> q4: 1\n q4 --> q4: 0,1\n state q4 {\n <>\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 275, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b1d13147-09e1-4118-91c2-25fe75d05a95": {"__data__": {"id_": "b1d13147-09e1-4118-91c2-25fe75d05a95", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9882f8bf-0325-407c-bc54-1306a1b278e8", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "fbafa46e611d0a51514e01323a1d3635356e202bc646cd81ea0c852d1a3037ca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n----\n\nSymbol read | State \n------------|--------\n0 | ![circle with q1 inside] Start \n0 | ![circle with q1 inside] \n\n----\n\nMermaid diagram representing the NFA:\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q1: 0,1\n q1 --> q2: 1\n q2 --> q3: 0, \u03b5\n q3 --> q4: 1\n q4 --> q4: 0,1\n```\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 483, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ec41c5c9-27e6-41f0-8eab-94ed1a184da3": {"__data__": {"id_": "ec41c5c9-27e6-41f0-8eab-94ed1a184da3", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1bbbe7a0-8936-4ef6-90ff-055a365293f9", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "773174403f224ba7b60c37e8f7cbb67a416c0d55684d92b8f58f71a84e4adcc5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n----\n\nSymbol read | | | | \n---|---|---|---|---\n | | | | \n0 | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n | | | | \n\n----\n\nMermaid diagram representing the NFA and its computational tree:\n\n```mermaid\ngraph TD\n subgraph Computational Tree\n A1((q1)) --> A2((q1))\n A2 --> B1((q1))\n A2 --> B2((q2))\n A2 --> B3((q3))\n end\n\n subgraph NFA\n Q1((q1)) -->|1| Q2((q2))\n Q2 -->|0, \u03b5| Q3((q3))\n Q3 -->|1| Q4((q4))\n Q1 -->|0,1| Q1\n Q4 -->|0,1| Q4\n end\n\n style Q4 stroke-width:3px,stroke:#000\n style Q1 stroke-width:3px,stroke:#000\n```\n\n----\n\n* Start state: `q1`\n* Input string: `010110`\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 961, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4c129e56-a557-486f-b35a-230f790b0fe3": {"__data__": {"id_": "4c129e56-a557-486f-b35a-230f790b0fe3", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f3ace595-1395-42df-9b6b-e2798ff90d30", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "932575de5a9831053fbcb015ce79910aa7841e4b2e798281cefb254fdd68b503", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n\n \n \n\n \n\n \n\n \n\n \n\n\n\n \n\n \n\n\n \n
Symbol readq1 Start
0q1
1\n \n\n\n \n \n\n\n \n
q1q2q3
\n\n
0,10,1
0\n \n\n\n \n \n\n \n
q1q3
\n\n
\n \n\n\n \n \n\n\n\n\n\n\n \n
q11q20, \u03b5q31q4
\n\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 801, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3e053218-ffd1-4ef3-ab64-ca76e076cefc": {"__data__": {"id_": "3e053218-ffd1-4ef3-ab64-ca76e076cefc", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c2033555-c02b-4f7c-8cdb-eadfefeccda7", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "43d0bfe3d9b81349eb199822fb93ede29b7eb65d13bff47fe0a8beeb3219dcea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n```mermaid\ngraph TD\n %% Computational Tree on input 010110\n Start((q\u2081)) --> q1_1((q\u2081))\n q1_1 -->|1| q1_2((q\u2081))\n q1_1 -->|1| q2_1((q\u2082))\n q1_1 -->|1| q3_1((q\u2083))\n q1_2 -->|0| q1_3((q\u2081))\n q2_1 -->|0| q3_2((q\u2083))\n q3_1 -->|0| q4_1((q\u2084))\n q1_3 -->|1| q1_4((q\u2081))\n q1_3 -->|1| q2_2((q\u2082))\n q1_3 -->|1| q3_3((q\u2083))\n q3_2 -->|1| q4_2((q\u2084))\n```\n\n```mermaid\ngraph LR\n %% NFA Diagram\n start --> q1((q\u2081))\n q1 -- \"1\" --> q2((q\u2082))\n q2 -- \"0, \u03b5\" --> q3((q\u2083))\n q3 -- \"1\" --> q4((q\u2084))\n q1 -- \"0,1\" --> q1\n q4 -- \"0,1\" --> q4\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 651, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8f9ca842-b03e-4bb2-905b-9722a421525c": {"__data__": {"id_": "8f9ca842-b03e-4bb2-905b-9722a421525c", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a71e606e-e7e3-4fa0-93f9-eb311f92baf3", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b68ade13125f0566955fe72c95aceacffa85b741c94bf5d5e6d463969991aa38", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n```mermaid\ngraph TD\n %% Computational tree on the left\n A1((q1)) --> A2((q1))\n A2 -->|1| B1((q1))\n A2 -->|1| B2((q2))\n A2 -->|1| B3((q3))\n B1 -->|0| C1((q1))\n B2 -->|0| C2((q3))\n B3 -->|0| C3((q1))\n C1 -->|1| D1((q1))\n C1 -->|1| D2((q2))\n C1 -->|1| D3((q3))\n C2 -->|1| D4((q4))\n C3 -->|1| D5((q4))\n D1 -->|1| E1((q1))\n D2 -->|1| E2((q2))\n D3 -->|1| E3((q3))\n D4 -->|1| E4((q4))\n D5 -->|1| E5((q4))\n\n %% NFA diagram on the right\n subgraph NFA\n direction LR\n Q1((q1)) -->|1| Q2((q2))\n Q2 -->|\"0, \u03b5\"| Q3((q3))\n Q3 -->|1| Q4((q4))\n Q1 -->|0,1| Q1\n Q4 -->|0,1| Q4\n end\n```\n\n* Symbol read and states:\n\n| Symbol read | States at this step |\n|-------------|---------------------------------------------|\n| Start | q\u2081 |\n| 0 | q\u2081 |\n| 1 | q\u2081, q\u2082, q\u2083 |\n| 0 | q\u2081, q\u2083 |\n| 1 | q\u2081, q\u2082, q\u2083, q\u2084 |\n| 1 | q\u2081, q\u2082, q\u2083, q\u2084, q\u2084 |\n\n----\n\nThumrongsak Kosiyatrakul `tkosiyat@cs.pitt.edu` \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1361, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23c50a80-545e-4c8f-a09a-74c15a6b3c6b": {"__data__": {"id_": "23c50a80-545e-4c8f-a09a-74c15a6b3c6b", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f463fa3a-d974-4fd8-9f7f-e8ddd2821326", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "963c02b91a3e4699d96f09cd2d277b61407c457ce1fd0967df794a710800072b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Compute an NFA (Computational Tree)\n\n* Computation of the machine on input `010110`\n\n----\n\n### Computational Tree for the input `010110`\n\n| Symbol read | | | | | | |\n|-------------|-------|-------|-------|-------|-------|-------|\n| | | | | | | |\n| 0 | | | | | | |\n| | | | | | | |\n| | | | | | | |\n| | | | | | | |\n| | | | | | | |\n\n```mermaid\ngraph TD\n A1((q1)) --> A2((q1))\n A2 --> B1((q1))\n A2 --> B2((q2))\n A2 --> B3((q3))\n B1 --> C1((q1))\n B1 --> C2((q2))\n B1 --> C3((q3))\n B2 --> C4((q3))\n B3 --> C5((q4))\n C1 --> D1((q1))\n C2 --> D2((q2))\n C3 --> D3((q3))\n C4 --> D4((q4))\n C5 --> D5((q4))\n D1 --> E1((q1))\n D2 --> E2((q3))\n D4 --> E3((q4))\n D5 --> E4((q4))\n```\n\n----\n\n### NFA Diagram\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q1: 0,1\n q1 --> q2: 1\n q2 --> q3: 0, \u03b5\n q3 --> q4: 1\n q4 --> q4: 0,1\n q4: accept\n```\n\n----\n\n> If there is at least one copy in an accept state, the machine accepts the input string.\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1391, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "85ca2f50-4681-4609-b8d1-1d6812bc2242": {"__data__": {"id_": "85ca2f50-4681-4609-b8d1-1d6812bc2242", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "1c559c90-9452-4db8-8681-c7a54a9c5286", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8df0828326c77529d7d48dc4d800d2af623c3c2dc9d7c12117793f2cc7d30a81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Let \\( A \\) be the language consisting of all strings over \\(\\{0,1\\}\\) containing a 1 in the third position from the end (e.g., 000100 is in \\( A \\) but 0011 is not in \\( A \\)).\n\n* Design a DFA for this problem is quite complicate \n* Design an NFA is easier\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1: 0,1\n q1 --> q1: 0,1\n q1 --> q2: 1\n q2 --> q3: 0,1\n q3 --> q4: 0,1\n state q4 {\n <>\n }\n```\n\n* The transition from \\( q_1 \\) to \\( q_2 \\) is our guess that this is the 1 in the third position from the end. \n* If our guess is wrong: \n - The input string is shorter, it will end at reject state. \n - The input string is longer, the machine will die but other one remains alive.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 733, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "db79a153-140f-429c-a1ed-41c7e09473b0": {"__data__": {"id_": "db79a153-140f-429c-a1ed-41c7e09473b0", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "292bec32-a67c-4008-a728-f4568e2d8d44", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "3df0b8589384b6b12b8782d0b90925dbd9293f9fce291bdbe44796f744d2ad67", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* An equivalent DFA machine\n\n```mermaid\nstateDiagram-v2\n direction LR\n [*] --> q000\n q000: q_{000}\n q000 --> q000: 0\n q000 --> q001: 1\n\n q001: q_{001}\n q001 --> q100: 1\n q001 --> q010: 0\n q001 --> q000: 1\n\n q100: q_{100}\n q100 --> q000: 0\n q100 --> q001: 1\n\n q010: q_{010}\n q010 --> q100: 0\n q010 --> q101: 1\n\n q101: q_{101}\n q101 --> q011: 1\n q101 --> q110: 0\n q101 --> q010: 0\n\n q011: q_{011}\n q011 --> q111: 1\n q011 --> q101: 0\n\n q111: q_{111}\n q111 --> q110: 0\n q111 --> q111: 1\n\n q110: q_{110}\n q110 --> q100: 0\n q110 --> q111: 0\n```\n\n* Name states according to the last three symbols", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 685, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7e892f75-5666-4f65-a282-9e59746d45ec": {"__data__": {"id_": "7e892f75-5666-4f65-a282-9e59746d45ec", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0fd7590d-bb21-4ccd-b111-9b097e1052f6", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "f9c89f2c8c196f5efb1e9b04968d02ef5290916efa81b68b2b5527e42b5ab462", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0\\}\\). Design a machine that recognizes the language \\(A\\) where \\(A\\) is an empty string or all strings over \\(\\Sigma\\) that their length is a multiple of 2 or 3.\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0: (start, accept)\n S1: (accept)\n S0 --> S1: 0\n S1 --> S0: 0\n```\n\n(Note: The diagram above shows a two-state machine with states S0 and S1. S0 is the start and accepting state. There are transitions labeled \"0\" going from S0 to S1 and from S1 back to S0.)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 529, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c16839bc-c1f0-45a0-8563-993209dd64a5": {"__data__": {"id_": "c16839bc-c1f0-45a0-8563-993209dd64a5", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0d022d69-765c-4c7a-864b-760064a5ade5", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "bc55d83ab8ce0481d21a453d217570cb59f7a7ef10d5c5795d2f8439d523f603", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0\\}\\). Design a machine that recognizes the language \\(A\\) where \\(A\\) is an empty string or all strings over \\(\\Sigma\\) that their length is a multiple of 2 or 3.\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0: (accepting)\n S1: (accepting)\n S2: \n S3: \n S4: (accepting)\n S5: \n S0 --> S1: 0\n S1 --> S0: 0\n S0 --> S3: 0\n S3 --> S4: 0\n S4 --> S5: 0\n S5 --> S3: 0\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 452, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca069203-9a54-4aa8-bf18-75e84b31731f": {"__data__": {"id_": "ca069203-9a54-4aa8-bf18-75e84b31731f", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "70f27a3c-a3b6-4855-9f21-ee29b16fcece", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "f83a9a6a596accb5e159394585bde639cc904f5adcbb49f33f14c253707ac44b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n> Suppose the alphabet \\(\\Sigma\\) is \\(\\{0\\}\\). Design a machine that recognizes the language \\(A\\) where \\(A\\) is an empty string or all strings over \\(\\Sigma\\) that their length is a multiple of 2 or 3.\n\n```mermaid\nstateDiagram-v2\n [*] --> S0\n S0: (accepting)\n S0 --> S1: 0\n S1 --> S0: 0\n\n S0 --> T0: \u03b5\n T0: (accepting)\n T0 --> T1: 0\n T1 --> T2: 0\n T2 --> T0: 0\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 406, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a9fcf9bf-5845-4bd7-8fa4-f8ac201af5d2": {"__data__": {"id_": "a9fcf9bf-5845-4bd7-8fa4-f8ac201af5d2", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "f6994e75-4882-4e96-a83b-775aaffd2c4a", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "103fc844153a0346be4275221de5294dccd6cecb4475e86c98a23ad5b59ca2a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Formal Definition of A Nondeterministic Finite Automaton\n\nA **nondeterministic finite automaton** is a 5-tuple\n\n$$\n(Q, \\Sigma, \\delta, q_0, F)\n$$\n\n1. \\( Q \\) is a finite set of states \n2. \\( \\Sigma \\) is a finite alphabet \n3. \\( \\delta : Q \\times \\Sigma_{\\varepsilon} \\to \\mathcal{P}(Q) \\) is the transition function, \n - \\( \\Sigma_{\\varepsilon} = \\Sigma \\cup \\{\\varepsilon\\} \\) and \n - \\( \\mathcal{P}(Q) \\) is the **powerset** of \\( Q \\) (set of set of states). \n4. \\( q_0 \\in Q \\) is the start state \n5. \\( F \\subseteq Q \\) is the set of accept states.\n\n**Notes** \n* In an NFA, one input symbol can change the state of the machine to multiple states. \n - Split to multiple copies with different current states \n - Example: \\( \\delta(q_0, 1) = \\{q_0, q_1\\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 778, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7283b19b-71af-4f90-ab86-04a6a55641ad": {"__data__": {"id_": "7283b19b-71af-4f90-ab86-04a6a55641ad", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4edc1e1c-0fb2-49e5-9a06-53b018572931", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "1c4e6d0030bae7670f170047aec5344f92b14830a8a5f215cbab01f02a3eefc5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\nDiagram of states and transitions:\n\n- States: \\( q_1, q_2, q_3, q_4 \\)\n- Transitions:\n - From \\( q_1 \\):\n - Loop on input 0 or 1 back to \\( q_1 \\)\n - On input 1 to \\( q_2 \\)\n - From \\( q_2 \\):\n - On input 0 or \\(\\varepsilon\\) to \\( q_3 \\)\n - From \\( q_3 \\):\n - On input 1 to \\( q_4 \\)\n - From \\( q_4 \\):\n - Loop on input 0 or 1 back to \\( q_4 \\)\n\n----\n\n* \\( Q = \\{ q_1, q_2, q_3, q_4 \\} \\)\n* \\( \\Sigma = \\{0, 1\\} \\) and \\( \\Sigma_{\\varepsilon} = \\{0, 1, \\varepsilon\\} \\)\n* \\( \\delta \\) is given as\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
\\(\\delta\\)01\\(\\varepsilon\\)
\\(q_1\\)\\(\\{q_1\\}\\)\\(\\{q_1, q_2\\}\\)\\(\\emptyset\\)
\\(q_2\\)\\(\\{q_3\\}\\)\\(\\emptyset\\)\\(\\{q_3\\}\\)
\\(q_3\\)\\(\\emptyset\\)\\(\\{q_4\\}\\)\\(\\emptyset\\)
\\(q_4\\)\\(\\{q_4\\}\\)\\(\\{q_4\\}\\)\\(\\emptyset\\)
\n\n* We treat \\(\\varepsilon\\) as a regular input symbol\n* If there is no \\(\\varepsilon\\) transitions, we can ignore the \\(\\varepsilon\\) column\n* \\( q_1 \\) is the start state\n* \\( F = \\{ q_4 \\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1315, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cd13a2e4-d353-4b12-8e54-24c57c39a859": {"__data__": {"id_": "cd13a2e4-d353-4b12-8e54-24c57c39a859", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9db427bc-1d47-453e-a478-48e7685ef756", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "6d1273455ccbef88a6266475b6d5066b07b3eb3d0ac70320661028beb4fa0964", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# NFA and DFA\n\n* NFA is a slightly different computation model compared to DFA\n - NFA can split into multiple copies\n - NFA may have \\( \\varepsilon \\) transitions\n* Is there a language that can be recognized by an NFA but cannot be recognized by any DFAs?\n* In theory of computation, we try to see whether we can capture the behavior of an NFA using a DFA", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 358, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc55a138-91b5-4399-8f46-b26f7fd57b30": {"__data__": {"id_": "dc55a138-91b5-4399-8f46-b26f7fd57b30", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "79ee54de-9447-49cc-ad78-0bc197a0447b", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "6e672954390577b454118d671d77585a85642d7d0e7a1ba7ef0f3e4dd758864e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "c8c8e69b-8376-481e-9704-bb217aa74301", "node_type": "1", "metadata": {}, "hash": "b67f087f88418332f9e146396243b1106f295415a0d31eda929d02d4a0993f41", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Simulating and NFA with a DFA\n\n*Simulate 010110*\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u03b401\u03b5
q1{q1}{q1, q2}\u2205
q2{q3}\u2205{q3}
q3\u2205{q4}\u2205
q4{q4}{q4}\u2205
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
StateTransition/InputNext State(s)Set RepresentationResulting Set
q1Start{q1}= {q1}
q10q1= {q1}
q11q1, q2, q3{q1, q2, q3}= {q1, q2, q3}
0q1, q3{q1} \u222a {q3} \u222a \u2205= {q1, q3}
1q1, q2, q3, q4{q1, q2, q3} \u222a {q4}= {q1, q2, q3, q4}
1q1, q2, q3, q4{q1, q2, q3} \u222a \u2205 \u222a {q4} \u222a {q4}= {q1, q2, q3, q4}
0q1, q3, q4{q1} \u222a {q3} \u222a \u2205 \u222a {q4} \u222a {q4}= {q1, q3,", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1995, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c8c8e69b-8376-481e-9704-bb217aa74301": {"__data__": {"id_": "c8c8e69b-8376-481e-9704-bb217aa74301", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "79ee54de-9447-49cc-ad78-0bc197a0447b", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "6e672954390577b454118d671d77585a85642d7d0e7a1ba7ef0f3e4dd758864e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "dc55a138-91b5-4399-8f46-b26f7fd57b30", "node_type": "1", "metadata": {"page_number": 19, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "2bafbe39f8438d4fcbbabf0b809d85cb373fccff16b3671f3fa07fbdb34156c7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "q2, q3} \u222a \u2205 \u222a {q4} \u222a {q4}= {q1, q2, q3, q4}
0q1, q3, q4{q1} \u222a {q3} \u222a \u2205 \u222a {q4} \u222a {q4}= {q1, q3, q4}
\n\n[The diagram on the page shows a tree-like structure of states and transitions simulating the NFA with a DFA for the input string 010110, illustrating the subset construction method.]\n\n----\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1644, "end_char_idx": 2298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8dda78d4-ad91-4963-ac8f-dcf9e839b2d3": {"__data__": {"id_": "8dda78d4-ad91-4963-ac8f-dcf9e839b2d3", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "85067c64-69ac-4bd4-bac6-bf2eb961e5c4", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b5fbe9cff189031aa7a61b5883dcb91a35fd179cbbeb56bd5cdfff47ad79dcf9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Equivalence of NFAs and DFAs\n\n> Every nondeterministic finite automaton has an equivalent deterministic finite automaton.\n\n* Let \\( N = (Q, \\Sigma, \\delta, q_0, F) \\) be the NFA recognizing some language \\( A \\)\n* We are going to construct a DFA \\( M = (Q', \\Sigma, \\delta', q_0', F') \\) recognizing \\( A \\)\n* Let\u2019s consider the case where \\( N \\) has no \\(\\varepsilon\\) transitions.\n 1. \\( Q' = \\mathcal{P}(Q) \\)\n 2. \\( \\delta'(R, a) = \\bigcup_{r \\in R} \\delta(r, a) \\)\n 3. \\( q_0' = \\{ q_0 \\} \\)\n 4. \\( F' = \\{ R \\in Q' \\mid R \\text{ contains an accept state of } N \\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 580, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8c5cf998-4c13-4302-97ce-d24b8633b858": {"__data__": {"id_": "8c5cf998-4c13-4302-97ce-d24b8633b858", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2d1bc86c-6e1c-444b-ab3d-6baf335ed473", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8f093cdb5c891ff7e56572b3751b40d100fcd4f677278b0b486b48bb3fdc4da2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let \\(\\Sigma\\) be \\(\\{0, 1\\}\\). The following NFA \\(N\\) recognizes the language \\(A\\) where \\(A\\) is a set of strings that end with a 1.\n\n```\n 0, 1\n \u21bb\n (q_0) ----1----> ((q_1))\n```\n\n* \\(N = (Q, \\Sigma, \\delta, q_0, F)\\)\n 1. \\(Q = \\{q_0, q_1\\}\\),\n 2. \\(\\Sigma = \\{0, 1\\}\\)\n 3. \\(\\delta\\) is given as\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n \n
01
\\(q_0\\)\\(\\{q_0\\}\\)\\(\\{q_0, q_1\\}\\)
\\(q_1\\)\\(\\emptyset\\)\\(\\emptyset\\)
\n\n 4. \\(q_0\\) is the start state \n 5. \\(F = \\{q_1\\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 687, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca0f3026-cdba-4f66-83f1-b0be87846b55": {"__data__": {"id_": "ca0f3026-cdba-4f66-83f1-b0be87846b55", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b32d3b91-f722-482a-aa43-30f30c57ddd6", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "0747b76c809224a95f1e50cd6745e41e89dcb1f653251cc1892e2b0d1941553b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Construct a DFA \\( M = (Q', \\Sigma, \\delta', q'_0, F') \\)\n * \\( Q' = \\mathcal{P}(Q) = \\mathcal{P}(\\{q_0, q_1\\}) \\)\n \n $$\n Q' = \\{\\emptyset, \\{q_0\\}, \\{q_1\\}, \\{q_0, q_1\\}\\}\n $$\n\n* We will construct \\(\\delta'\\) later\n* \\( q'_0 = \\{q_0\\} \\) where \\( q_0 \\) is the start state of the NFA\n* \\( F' = \\{ R \\in Q' \\mid R \\text{ contains an accept state of } N \\} \\)\n\n $$\n F' = \\{\\{q_1\\}, \\{q_0, q_1\\}\\}\n $$\n\nwhere \\( F = \\{q_1\\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 446, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dbba36b9-63e0-4bf3-b014-eced9ad47700": {"__data__": {"id_": "dbba36b9-63e0-4bf3-b014-eced9ad47700", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c28575e4-9878-4488-b406-964327dd23f5", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "83510d7fc4669041068da7917eca48e48f3e76c9c55838d38b153a7e707494d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let\u2019s focus on transition functions\n* The transition function \\(\\delta\\) of the NFA is as follows:\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n \n
01
\\(q_0\\){\\(q_0\\)}{\\(q_0, q_1\\)}
\\(q_1\\)\u2205\u2205
\n\n* Recall that the set of state of the equivalent DFA is the power set of set of state of the NFA\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
\\(\\delta'\\)01
\u2205\u2205\u2205
{\\(q_0\\)}{\\(q_0\\)}{\\(q_0, q_1\\)}
{\\(q_1\\)}\u2205\u2205
{\\(q_0, q_1\\)}{\\(q_0\\)}{\\(q_0, q_1\\)}
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 915, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc462d90-6867-4bcf-ba4e-104a2d69eac2": {"__data__": {"id_": "dc462d90-6867-4bcf-ba4e-104a2d69eac2", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6979f85e-e551-404a-b491-ba4ffdfb5d4a", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "c1e93070056ae007c9576869da4fc3061b0ec2ac7369bd03b4765ef940a844c7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Machine \\( M = (Q', \\Sigma, \\delta', q'_0, F') \\) equivalent to \\( N \\) can be defined as follows:\n * \\( Q' = \\mathcal{P}(Q) = \\{\\emptyset, \\{q_0\\}, \\{q_1\\}, \\{q_0, q_1\\}\\} \\),\n * \\[\n \\delta'(R, a) = \\bigcup_{r \\in R} \\delta(r, a)\n \\]\n * \\[\n \\delta'(\\emptyset, 0) = \\bigcup_{r \\in \\emptyset} \\delta(r, 0) = \\emptyset\n \\]\n * \\[\n \\delta'(\\emptyset, 1) = \\bigcup_{r \\in \\emptyset} \\delta(r, 1) = \\emptyset\n \\]\n * \\[\n \\delta'(\\{q_0\\}, 0) = \\bigcup_{r \\in \\{q_0\\}} \\delta(r, 0) = \\delta(q_0, 0) = \\{q_0\\}\n \\]\n * \\[\n \\delta'(\\{q_0\\}, 1) = \\bigcup_{r \\in \\{q_0\\}} \\delta(r, 1) = \\delta(q_0, 1) = \\{q_0, q_1\\}\n \\]\n * \\[\n \\delta'(\\{q_1\\}, 0) = \\bigcup_{r \\in \\{q_1\\}} \\delta(r, 0) = \\delta(q_1, 0) = \\emptyset\n \\]\n * \\[\n \\delta'(\\{q_1\\}, 1) = \\bigcup_{r \\in \\{q_1\\}} \\delta(r, 1) = \\delta(q_1, 1) = \\emptyset\n \\]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 867, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "01444860-860a-42da-8879-c976bcff6301": {"__data__": {"id_": "01444860-860a-42da-8879-c976bcff6301", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e8b07e38-2a7b-4fad-bacd-b9afd304e9e1", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "cec95f7763c417cd394fcd731b12ded8444afede5b728ff0052b96e23e723970", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Machine \\( M \\) (Continue)\n * \\( \\delta' \\) (Continue)\n * \n $$\n \\delta'(\\{q_0, q_1\\}, 0) = \\bigcup_{r \\in \\{q_0, q_1\\}} \\delta(r, 0) = \\delta(q_0, 0) \\cup \\delta(q_1, 0) = \\{q_0\\} \\cup \\emptyset = \\{q_0\\}\n $$\n * \n $$\n \\delta'(\\{q_0, q_1\\}, 1) = \\bigcup_{r \\in \\{q_0, q_1\\}} \\delta(r, 1) = \\delta(q_0, 1) \\cup \\delta(q_1, 1) = \\{q_0, q_1\\} \\cup \\emptyset = \\{q_0, q_1\\}\n $$\n* Thus \\( \\delta' \\) is given by\n\n\n \n \n \n \n \n \n \n \n \n \n\n\n \n\n \n\n\n \n\n \n\n\n \n\n \n\n\n \n \n
\\( \\delta' \\)01
\u2205\u2205\u2205
{\\( q_0 \\)}{\\( q_0 \\)}{\\( q_0, q_1 \\)}
{\\( q_1 \\)}\u2205\u2205
{\\( q_0, q_1 \\)}{\\( q_0 \\)}{\\( q_0, q_1 \\)}
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 891, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0744e485-3832-476b-b10b-14ead35d15d7": {"__data__": {"id_": "0744e485-3832-476b-b10b-14ead35d15d7", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8499928b-2f98-4446-8f35-a37641daa79f", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "1a0958f4b16b9d54b29fc0e261cc4a6d3ce72975e0b33c9dad58d66f6596f5b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* The state diagram of the machine \n $$ M = (Q', \\Sigma, \\delta', q'_0, F') $$\n equivalent to \n $$ N \\quad (L(M) = L(N)) $$\n is shown below:\n\n```mermaid\nstateDiagram-v2\n [*] --> q0\n q0: {q_0}\n q0 --> q0: 0\n q0 --> q01: 1\n q01: {q_0, q_1}\n q01 --> q0: 0\n q01 --> q01: 1\n q1: {q_1}\n q1 --> empty: 0\n q1 --> empty: 1\n empty: \u2205\n empty --> empty: 0\n empty --> empty: 1\n```\n\n* Without bottom part, it is the same as one of our previous example\n* It is okay for a DFA to have unreachable states", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 542, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "83cd16e1-3b29-413a-bae6-583b104989f4": {"__data__": {"id_": "83cd16e1-3b29-413a-bae6-583b104989f4", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5e37ac4e-6cc5-4ed5-87e1-d3a4131137eb", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8cd784aa4d48e655be915ccd3fba59998b2e17301bd029042a9c966046bc2b50", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# NFA to DFA with \\(\\varepsilon\\) Symbol\n\n* Let \\(E(R)\\) be the collection of states that can be reached from members of \\(R\\) by going only along \\(\\varepsilon\\) arrows, including the members of \\(R\\) themselves. \n $$\n E(R) = \\{ q \\mid q \\text{ can be reached from } R \\text{ by travel along } 0 \\text{ or more } \\varepsilon \\text{ arrows} \\}\n $$\n\n* Note that a state \\(q\\) can be reached from its own state \\(q\\) by travel along no \\(\\varepsilon\\) arrow \\(\\left(R \\subseteq E(R)\\right)\\).\n\n* Example:\n\n```mermaid\nstateDiagram-v2\n [*] --> q1\n q1 --> q1: 0, 1\n q1 --> q2: 1\n q2 --> q3: 0, \\varepsilon\n q3 --> q4: 1\n q4 --> q4: 0, 1\n state q4 <>\n```\n\n* \\(E(\\{q_1\\}) = \\{q_1\\}\\) \n* \\(E(\\{q_2\\}) = \\{q_2, q_3\\}\\) \n* \\(E(\\{q_1, q_2\\}) = \\{q_1, q_2, q_3\\}\\) \n* \\(E(\\{q_1, q_3\\}) = \\{q_1, q_3\\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 827, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d3d4d6b5-42f9-49b5-9015-6c6bd301be2d": {"__data__": {"id_": "d3d4d6b5-42f9-49b5-9015-6c6bd301be2d", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "042c61c8-34e4-4260-8e3d-6ba01244bd2f", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "c6c9bc3ee5d9f30cf1695a0fd22eab041c9618e6f331837b21fc5ef28bb20d04", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# NFA to DFA with \\(\\varepsilon\\) Symbol\n\n* Let NFA \\(N = (Q, \\Sigma, \\delta, q_0, F)\\) with \\(\\varepsilon\\) transitions that recognizes a language \\(A\\).\n* We can construct a DFA \\(M = (Q', \\Sigma, \\delta', q'_0, F')\\) as\n 1. \\(Q' = \\mathcal{P}(Q)\\)\n 2. \\(\\delta'\\) is given by \n $$\n \\delta'(R, a) = \\bigcup_{r \\in R} E(\\delta(r, a))\n $$\n 3. \\(q'_0 = E(\\{q_0\\})\\) \n - If \\(q_0\\) has no exiting arrow for \\(\\varepsilon\\), then \\(q'_0 = \\{q_0\\}\\)\n 4. \\(F' = \\{ R \\in Q' \\mid R \\text{ contains an accept state of } N \\}\\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 533, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "72e8cc9a-9e26-41e7-a08e-c7bcdf71b1c9": {"__data__": {"id_": "72e8cc9a-9e26-41e7-a08e-c7bcdf71b1c9", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "085ad039-a817-4643-9154-cb8305ce5d20", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "ca5418686c1e3d287b5a76af89ed8e68449fde8f9a34cf6c79c09ba8c2b09979", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Consider the following NFA machine:\n\nStates and transitions diagram:\n\n- State 1 (initial and accepting state) has:\n - a transition labeled **b** to state 2\n - an epsilon (\u03b5) transition to state 3\n- State 2 has:\n - a loop on **a**\n - a transition labeled **a, b** to state 3\n- State 3 has:\n - a transition labeled **a** back to state 1\n\n$$\nN = (Q, \\Sigma, \\delta, q_0, F)\n$$\n\n* \\( Q = \\{1, 2, 3\\} \\)\n* \\( \\Sigma = \\{a, b\\} \\)\n* \\( \\delta \\) is given by\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n\n \n\n\n\n \n\n \n\n\n\n \n \n
ab\u03b5
1\u2205{2}{3}
2{2, 3}{3}\u2205
3{1}\u2205\u2205
\n\n* \\( q_0 = 1 \\)\n* \\( F = \\{1\\} \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 863, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9caa47b6-5999-499b-8e5b-762a2a84968a": {"__data__": {"id_": "9caa47b6-5999-499b-8e5b-762a2a84968a", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "12838b53-4e33-4df1-8107-d08b9569c7f2", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "6a768b6a239b2a2002c157ba75ecc5064deb53590ce980171d0bdf5f9ff2f68b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Machine \\( M = (Q', \\Sigma, \\delta', q'_0, F') \\) equivalent to \\( N \\):\n * \\( Q' = \\mathcal{P}(Q) = \\mathcal{P}(\\{1, 2, 3\\}) \\)\n \n $$\n Q' = \\{\\emptyset, \\{1\\}, \\{2\\}, \\{3\\}, \\{1, 2\\}, \\{1, 3\\}, \\{2, 3\\}, \\{1, 2, 3\\}\\}\n $$\n\n* Start state is \\( E(\\{1\\}) = \\{1, 3\\} \\)\n* \\( F' \\) is a set of sets of states that contain accept states of \\( N \\) (\\( F = \\{1\\} \\)).\n\n $$\n F' = \\{\\{1\\}, \\{1, 2\\}, \\{1, 3\\}, \\{1, 2, 3\\}\\}\n $$\n\n* Transition function:\n\n $$\n \\delta'(R, a) = \\bigcup_{r \\in R} E(\\delta(r, a))\n $$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 528, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "902e66bb-6ea4-429c-b2ae-de56c3fe4dd3": {"__data__": {"id_": "902e66bb-6ea4-429c-b2ae-de56c3fe4dd3", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9eee640d-dc80-439b-ae05-f9b8a79a6096", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "64722774738db271b53fc3429d9da7c2bdeb25e754a9605050ca5effef5e022c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Let\u2019s focus on transition functions \n* The transition function \\(\\delta\\) of the NFA is as follows:\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\\(\\delta\\)ab\\(\\varepsilon\\)
1\u2205{2}{3}
2{2, 3}{3}\u2205
3{1}\u2205\u2205
\n\n* Recall that the set of state of the equivalent DFA is the power set of set of state of the NFA\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\\(\\delta'\\)ab
\u2205\u2205\u2205
{1}\u2205{2}
{2}{2, 3}{3}
{3}{1, 3}\u2205
{1, 2}{2, 3}{2, 3}
{1, 3}{1, 3}{2}
{2, 3}{1, 2, 3}{3}
{1, 2, 3}{1, 2, 3}{2, 3}
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1061, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "51ba8e47-06ca-418e-ba55-e104effe5347": {"__data__": {"id_": "51ba8e47-06ca-418e-ba55-e104effe5347", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "90a3f105-cbe2-495b-bd13-c0e2978438e8", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "da3a9c4f1501aad098b811d5f867bae796d759e508624282d2510b714fd31106", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Machine \\( M \\)'s \\(\\delta'\\)\n\n$$\n\\begin{aligned}\n\\delta'(\\emptyset, a) &= \\bigcup_{r \\in \\emptyset} E(\\delta(r, a)) \\\\\n&= \\emptyset \\\\\n\\\\\n\\delta'(\\emptyset, b) &= \\bigcup_{r \\in \\emptyset} E(\\delta(r, b)) \\\\\n&= \\emptyset \\\\\n\\\\\n\\delta'(\\{1\\}, a) &= \\bigcup_{r \\in \\{1\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(1, a)) \\\\\n&= E(\\emptyset) \\\\\n&= \\emptyset \\\\\n\\\\\n\\delta'(\\{1\\}, b) &= \\bigcup_{r \\in \\{1\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(1, b)) \\\\\n&= E(\\{2\\}) \\\\\n&= \\{2\\} \\\\\n\\\\\n\\delta'(\\{2\\}, a) &= \\bigcup_{r \\in \\{2\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(2, a)) \\\\\n&= E(\\{2, 3\\}) \\\\\n&= \\{2, 3\\} \\\\\n\\\\\n\\delta'(\\{2\\}, b) &= \\bigcup_{r \\in \\{2\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(2, b)) \\\\\n&= E(\\{3\\}) \\\\\n&= \\{3\\} \\\\\n\\\\\n\\delta'(\\{3\\}, a) &= \\bigcup_{r \\in \\{3\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(3, a)) \\\\\n&= E(\\{1\\}) \\\\\n&= \\{1, 3\\} \\\\\n\\\\\n\\delta'(\\{3\\}, b) &= \\bigcup_{r \\in \\{3\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(3, b)) \\\\\n&= E(\\emptyset) \\\\\n&= \\emptyset \\\\\n\\\\\n\\delta'(\\{1, 2\\}, a) &= \\bigcup_{r \\in \\{1, 2\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(1, a)) \\cup E(\\delta(2, a)) \\\\\n&= \\emptyset \\cup \\{2, 3\\} \\\\\n&= \\{2, 3\\}\n\\end{aligned}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1109, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bee06b5b-5a02-444a-bb65-f6f6a79df9e0": {"__data__": {"id_": "bee06b5b-5a02-444a-bb65-f6f6a79df9e0", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a5768b26-7696-41a0-b868-86e3986dffcb", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "3dc43d13c7342ff5e7d0ede427e23bdf18e9f2f8f345043c3e0ff38d18a0aa54", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "$$\n\\text{Machine } M \\text{'s } \\delta'\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 2\\}, b) &= \\bigcup_{r \\in \\{1,2\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(1, b)) \\cup E(\\delta(2, b)) \\\\\n&= \\{2\\} \\cup \\{3\\} \\\\\n&= \\{2, 3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 3\\}, a) &= \\bigcup_{r \\in \\{1,3\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(1, a)) \\cup E(\\delta(3, a)) \\\\\n&= \\emptyset \\cup \\{1, 3\\} \\\\\n&= \\{1, 3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 3\\}, b) &= \\bigcup_{r \\in \\{1,3\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(1, b)) \\cup E(\\delta(3, b)) \\\\\n&= \\{2\\} \\cup \\emptyset \\\\\n&= \\{2\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{2, 3\\}, a) &= \\bigcup_{r \\in \\{2,3\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(2, a)) \\cup E(\\delta(3, a)) \\\\\n&= \\{2, 3\\} \\cup \\{1, 3\\} \\\\\n&= \\{1, 2, 3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{2, 3\\}, b) &= \\bigcup_{r \\in \\{2,3\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(2, b)) \\cup E(\\delta(3, b)) \\\\\n&= \\{3\\} \\cup \\emptyset \\\\\n&= \\{3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 2, 3\\}, a) &= \\bigcup_{r \\in \\{1,2,3\\}} E(\\delta(r, a)) \\\\\n&= E(\\delta(1, a)) \\cup E(\\delta(2, a)) \\cup E(\\delta(3, a)) \\\\\n&= \\emptyset \\cup \\{2, 3\\} \\cup \\{1, 3\\} \\\\\n&= \\{1, 2, 3\\}\n\\end{aligned}\n$$\n\n$$\n\\begin{aligned}\n\\delta'(\\{1, 2, 3\\}, b) &= \\bigcup_{r \\in \\{1,2,3\\}} E(\\delta(r, b)) \\\\\n&= E(\\delta(1, b)) \\cup E(\\delta(2, b)) \\cup E(\\delta(3, b)) \\\\\n&= \\{2\\} \\cup \\{3\\} \\cup \\emptyset \\\\\n&= \\{2, 3\\}\n\\end{aligned}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1426, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4764cda8-f885-4660-b945-0ff6400c7307": {"__data__": {"id_": "4764cda8-f885-4660-b945-0ff6400c7307", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0797f499-e696-4f72-8201-e6c75148a7c4", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "64c0f27a4094faa1ec28d6d05e113fec6171be77417065a27cb5765643c7f395", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Example\n\n* Recall the transition function of \\( M \\)\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n
ab
\u2205\u2205\u2205
{1}\u2205{2}
{2}{2, 3}{3}
{3}{1, 3}\u2205
{1, 2}{2, 3}{2, 3}
{1, 3}{1, 3}{2}
{2, 3}{1, 2, 3}{3}
{1, 2, 3}{1, 2, 3}{2, 3}
\n\n* The state diagram of \\( M \\)\n\n```mermaid\nstateDiagram-v2\n [*] --> \u2205\n \u2205 --> \u2205: a,b\n {1} --> \u2205: a\n {1} --> {2}: b\n {2} --> {2,3}: a\n {2} --> {3}: b\n {3} --> {1,3}: a\n {3} --> \u2205: b\n {1,2} --> {2,3}: a,b\n {1,3} --> {1,3}: a\n {1,3} --> {2}: b\n {2,3} --> {1,2,3}: a\n {2,3} --> {3}: b\n {1,2,3} --> {1,2,3}: a\n {1,2,3} --> {2,3}: b\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 935, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bbbbd032-7319-4ed8-9143-3a0a59dcc43e": {"__data__": {"id_": "bbbbd032-7319-4ed8-9143-3a0a59dcc43e", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0df4e757-64a1-452f-b671-9280aae4dac0", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "ad6ee40311646c1db056c9daba05f63c36d295f60408a957ce46eda5f97ac3a2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n- \\(N_1\\) recognizes a regular language \\(A\\)\n- \\(N_2\\) recognizes a regular language \\(B\\)\n- \\(N\\) recognizes \\(A \\cup B\\) \\((A \\cup B \\text{ is regular})\\)\n\n```mermaid\ngraph TD\n subgraph N1\n A1(( )) --> B1(( ))\n C1(( )) --> D1(( ))\n end\n subgraph N2\n A2(( )) --> B2(( ))\n C2(( )) --> D2(( ))\n end\n subgraph N\n start(( )) --> Nstart(( ))\n Nstart --> N1start(( ))\n Nstart --> N2start(( ))\n subgraph N1\n A1(( )) --> B1(( ))\n C1(( )) --> D1(( ))\n end\n subgraph N2\n A2(( )) --> B2(( ))\n C2(( )) --> D2(( ))\n end\n end\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 690, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "26fd60c7-e2e3-426c-ba56-9d76645c5139": {"__data__": {"id_": "26fd60c7-e2e3-426c-ba56-9d76645c5139", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "65eea34d-2136-498d-b7b3-516d0a817ef7", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "9ad9aa86fb9e0e8c4b07e7e23806ff35b36024f51942b09e89299c8a7c63bfcc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Let \\( N_1 = (Q_1, \\Sigma, \\delta_1, q_1, F_1) \\) recognizes \\( A_1 \\).\n* Let \\( N_2 = (Q_2, \\Sigma, \\delta_2, q_2, F_2) \\) recognizes \\( A_2 \\).\n* To construct \\( N = (Q, \\Sigma, \\delta, q_0, F) \\) to recognizes \\( A_1 \\cup A_2 \\):\n 1. \\( Q = \\{q_0\\} \\cup Q_1 \\cup Q_2 \\)\n 2. The state \\( q_0 \\) is the start state of \\( N \\)\n 3. The set of accept state \\( F = F_1 \\cup F_2 \\)\n 4. \\( \\delta \\) is given by\n\n$$\n\\delta(q, a) = \\begin{cases}\n\\delta_1(q, a) & q \\in Q_1 \\\\\n\\delta_2(q, a) & q \\in Q_2 \\\\\n\\{q_1, q_2\\} & q = q_0 \\text{ and } a = \\varepsilon \\\\\n\\emptyset & q = q_0 \\text{ and } a \\neq \\varepsilon\n\\end{cases}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 661, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5fccc8a9-98d7-4587-9f8c-07882c2dc165": {"__data__": {"id_": "5fccc8a9-98d7-4587-9f8c-07882c2dc165", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d55767f4-f8f7-47d7-9b3a-60c20e383c10", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "a439bd5607e3850c422f5c02e8f92a4ff0e992ffa5183a001db5616f9b10798c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Given state diagrams of finite-state machines \\(N_1\\) and \\(N_2\\)\n* To draw a state diagram of a new machine \\(N\\) where\n $$L(N) = L(N_1) \\cup L(N_2):$$\n 1. Draw the state diagram of \\(N_1\\) on the top half \n 2. Draw the state diagram of \\(N_2\\) on the bottom half \n 3. Add a new start state \n 4. Add \\(\\varepsilon\\) transitions from the new start state to the start states of \\(N_1\\) and \\(N_2\\), respectively", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 454, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b915c724-fa4f-47ca-9c0e-36488528123c": {"__data__": {"id_": "b915c724-fa4f-47ca-9c0e-36488528123c", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "7ac84f70-c0f7-4f70-86a3-1fdbac58f97a", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "802a145ecec00c7d07d321229d0935f0052ee1c0213dee2dc123e26c0710045d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Draw \\( N_1 \\) on the top half\n\n[The image shows a rectangular box labeled \\( N_1 \\) containing several circles, some of which are double-circled, and an arrow pointing to one of the circles inside the box.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 243, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "064d9689-bca8-4b74-b78c-5b94cb9955a9": {"__data__": {"id_": "064d9689-bca8-4b74-b78c-5b94cb9955a9", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5544d1a1-d01f-4ba8-bac7-b9b9e4815bea", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "4100937331eb2c9122da8b033e2db2eaf2b7fa152cbff789b2d1d2a02c95119b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Draw \\( N_2 \\) on the bottom half\n\n[The image shows two rectangular automata diagrams stacked vertically. The top rectangle is labeled \\( N_1 \\) and contains several states represented by circles, with one initial state indicated by an incoming arrow and two double-circled accepting states. The bottom rectangle is labeled \\( N_2 \\) and similarly contains several states with one initial state and three double-circled accepting states.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 474, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "feb33e0a-e7ad-46de-809f-e0a1ed768482": {"__data__": {"id_": "feb33e0a-e7ad-46de-809f-e0a1ed768482", "embedding": null, "metadata": {"page_number": 40, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4e17fe43-0b9c-4226-834e-9eaaa6b2a263", "node_type": "4", "metadata": {"page_number": 40, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "5e81ad0c3cbf834523d751e957f7d86b8fa5ad433a3c735dff620e2d360649e8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Add new start state\n\n```mermaid\nstateDiagram-v2\n [*] --> NewStart\n state N1 {\n [*] --> S1\n S1 --> F1: double circle\n S2: circle\n S3: circle\n S4: circle\n F1: double circle\n }\n state N2 {\n [*] --> S1\n S2: circle\n S3: circle\n S4: circle\n F1: double circle\n }\n NewStart --> N1.S1\n NewStart --> N2.S1\n```\n\nThumrongsak Kosiyatrakul tkosiyat@cs.pitt.edu \nFinite Automata 03", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 501, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3cbb7f25-a96d-4d47-a931-9c3ad6475a24": {"__data__": {"id_": "3cbb7f25-a96d-4d47-a931-9c3ad6475a24", "embedding": null, "metadata": {"page_number": 41, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8aa6e372-ae5a-42f1-b2bf-187dd7328366", "node_type": "4", "metadata": {"page_number": 41, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "75dcc93cda9d98aac3b0e1f2baf46440aa1d211b0ea96d35008fffac7ff7728f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Union Operation\n\n* Add \\(\\varepsilon\\) transitions\n\n```mermaid\nstateDiagram-v2\n [*] --> N\n N --> N1 : \\(\\varepsilon\\)\n N --> N2 : \\(\\varepsilon\\)\n\n state N1 {\n [*] --> s1\n s1 --> s2\n s2 --> s3\n s3 --> s4\n s4 --> [*]\n }\n\n state N2 {\n [*] --> t1\n t1 --> t2\n t2 --> t3\n t3 --> t4\n t4 --> [*]\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 403, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1348de6a-9381-4213-8705-6a52225ce36f": {"__data__": {"id_": "1348de6a-9381-4213-8705-6a52225ce36f", "embedding": null, "metadata": {"page_number": 42, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ea80808b-5465-432d-a0c8-6b23a1878bc7", "node_type": "4", "metadata": {"page_number": 42, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b26eb11960a2073aebcd43375c3e43255e381674b26ddb7bd03d111a54f2a522", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Let \\( N_1 \\) recognizes \\( A \\) and \\( N_2 \\) recognizes \\( B \\)\n* Given a string \\( w \\), how do we know whether \\( w \\in AB \\)?\n* Recall the definition of \\( AB \\) (A concatenated by \\( B \\))\n\n $$\n AB = \\{ xy \\mid x \\in A \\text{ and } y \\in B \\}\n $$\n\n* For \\( w \\) to be in \\( AB \\), \\( w \\) must be divided into two strings \\( x \\) and \\( y \\) where \\( w = xy \\) such that \\( x \\in A \\) and \\( y \\in B \\)\n * If \\( x \\in A \\), \\( x \\in L(N_1) \\)\n * Since \\( x \\in L(N_1) \\), by simulating \\( N_1 \\) on input \\( x \\), the simulation will end in an accept state of \\( N_1 \\) (\\( N_1 \\) accepts \\( x \\))\n * But if \\( x \\notin A \\), simulation will end in a non-accept state of \\( N_1 \\)\n * If \\( y \\in B \\), \\( y \\in L(N_2) \\)\n * Since \\( y \\in L(N_2) \\), by simulating \\( N_2 \\) on input \\( y \\), the simulation will end in an accept state of \\( N_2 \\) (\\( N_2 \\) accepts \\( y \\))\n * But if \\( y \\notin B \\), simulation will end in a non-accept state of \\( N_2 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1025, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4b7fd765-1ee4-4698-9b87-23f30f80eb5e": {"__data__": {"id_": "4b7fd765-1ee4-4698-9b87-23f30f80eb5e", "embedding": null, "metadata": {"page_number": 43, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6b2a0b57-9e74-4fb1-98b9-b65215d0ba22", "node_type": "4", "metadata": {"page_number": 43, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "82b406e9396035a5e84e246387d0ae359e704c964dc426bd5474f3e9f3d72376", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n- \\(N_1\\) recognizes a regular language \\(A\\)\n- \\(N_2\\) recognizes a regular language \\(B\\)\n- \\(N\\) recognizes \\(AB\\) (\\(AB\\) is regular)\n\n----\n\nDiagram description:\n\n- Two separate automata \\(N_1\\) and \\(N_2\\) are shown.\n- \\(N_1\\) has an initial state with an arrow pointing to it, several intermediate states, and three accepting states.\n- \\(N_2\\) has an initial state with an arrow pointing to it, several intermediate states, and two accepting states.\n- The combined automaton \\(N\\) is shown below, containing both \\(N_1\\) and \\(N_2\\) as subcomponents.\n- The three accepting states of \\(N_1\\) have epsilon (\\(\\epsilon\\)) transitions to the initial state of \\(N_2\\).\n- The initial state of \\(N_1\\) is the initial state of \\(N\\).\n- The accepting states of \\(N_2\\) are the accepting states of \\(N\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 842, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f84ac2a0-e6c8-4c75-8c68-4597861acc46": {"__data__": {"id_": "f84ac2a0-e6c8-4c75-8c68-4597861acc46", "embedding": null, "metadata": {"page_number": 44, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b5088f63-d52a-4d17-9b95-8de06dd2000b", "node_type": "4", "metadata": {"page_number": 44, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8311d7f8511ffa4ef6dd69df845a8300ba4ab6b4fa8b1a3b409e89b356046ff8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Let \\( N_1 = (Q_1, \\Sigma, \\delta_1, q_1, F_1) \\) recognizes \\( A_1 \\).\n* Let \\( N_2 = (Q_2, \\Sigma, \\delta_2, q_2, F_2) \\) recognizes \\( A_2 \\).\n* To construct \\( N = (Q, \\Sigma, \\delta, q_0, F) \\) to recognizes \\( A_1 \\circ A_2 \\):\n 1. \\( Q = Q_1 \\cup Q_2 \\)\n 2. The state \\( q_1 \\) is the start state of \\( N \\)\n 3. The set of accept state \\( F = F_2 \\)\n 4. \\( \\delta \\) is given by\n\n$$\n\\delta(q, a) = \n\\begin{cases}\n\\delta_1(q, a) & q \\in Q_1 \\text{ and } q \\notin F_1 \\\\\n\\delta_2(q, a) & q \\in Q_2 \\text{ and } a \\neq \\varepsilon \\\\\n\\delta_1(q, a) \\cup \\{q_2\\} & q \\in F_1 \\text{ and } a = \\varepsilon \\\\\n\\delta_2(q, a) & q \\in Q_2\n\\end{cases}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 699, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "116d2211-fd50-473b-83cd-519df4c30c60": {"__data__": {"id_": "116d2211-fd50-473b-83cd-519df4c30c60", "embedding": null, "metadata": {"page_number": 45, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4ab71bd7-b6d0-4d60-82d2-3c39075663ef", "node_type": "4", "metadata": {"page_number": 45, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "99fa66c7ecd5f16c774cdca267b49bc165e022ddb3b121006438d45fb75c2e42", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Given state diagrams of finite-state machines \\( N_1 \\) and \\( N_2 \\)\n* To draw a state diagram of a new machine \\( N \\) where \n $$ L(N) = L(N_1) \\circ L(N_2) : $$\n 1. Draw the state diagram of \\( N_1 \\) on the left side \n 2. Draw the state diagram of \\( N_2 \\) on the right side \n 3. For every accept state of \\( N_1 \\), add the \\(\\varepsilon\\) transition to the start state of \\( N_2 \\) \n 4. Change all accept states of \\( N_1 \\) to non-accept states", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 505, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c9c813fb-fd73-4e46-8233-9b3998de8102": {"__data__": {"id_": "c9c813fb-fd73-4e46-8233-9b3998de8102", "embedding": null, "metadata": {"page_number": 46, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "4632f6a8-82a2-4ea5-bac1-3b15b943b35a", "node_type": "4", "metadata": {"page_number": 46, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "e3ba5cdf5f2f9647e2cd432c3e650090dd7d432b9132aca94983d1a77e68dd64", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Draw the state diagram of \\( N_1 \\) on the left side\n\n```\n+-----------------------+\n| |\n| N_1 |\n| |\n| ( ) o o |\n| o o o |\n| |\n| ( ) ( ) ( ) (final states) \n| |\n| --> (start state) |\n+-----------------------+\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 412, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1b16dc86-13b1-4c42-a857-ce02de8a5940": {"__data__": {"id_": "1b16dc86-13b1-4c42-a857-ce02de8a5940", "embedding": null, "metadata": {"page_number": 47, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e46acca1-5422-4598-ab84-d34ba83c7c20", "node_type": "4", "metadata": {"page_number": 47, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "a9ac0b75a0d942b7e24506163ad055524e2cd354dd5468eb941c5460a1b7c11b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Draw the state diagram of \\( N_2 \\) on the right side\n\n\n \n \n\n \n
\n \\( N_1 \\)\n
\n [Diagram of \\( N_1 \\) with states and transitions, including an initial state with an incoming arrow, multiple states, and three double-circled accept states on the right side]\n
\n \\( N_2 \\)\n
\n [Diagram of \\( N_2 \\) with states and transitions, including an initial state with an incoming arrow, multiple states, and two double-circled accept states on the right side]\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 582, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa57ea10-4774-448e-8d05-bea7b6d6a0ba": {"__data__": {"id_": "fa57ea10-4774-448e-8d05-bea7b6d6a0ba", "embedding": null, "metadata": {"page_number": 48, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b322784a-5fe9-4029-b54d-1eabc143fff0", "node_type": "4", "metadata": {"page_number": 48, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "434b3176b1dd17431d1b38486ea43ac8c04e61710d93d5cb0aff163b653a8d5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* \\( \\varepsilon \\) from accept states of \\( N_1 \\) to start state of \\( N_2 \\)\n\n\n \n \n\n \n\n \n \n
\n \\( N_1 \\)
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \\( N_2 \\)
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Transitions:
\n \\(\\varepsilon\\) transitions from each accept state of \\(N_1\\) to the start state of \\(N_2\\)\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 2392, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a0e19e5d-7135-4db3-b4da-d146b540b97b": {"__data__": {"id_": "a0e19e5d-7135-4db3-b4da-d146b540b97b", "embedding": null, "metadata": {"page_number": 49, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0abb6ac1-6c17-42f3-b041-9a0918b54f96", "node_type": "4", "metadata": {"page_number": 49, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "bfbf485e70505108d0c876e206c0950ccec8c1364e60ac18be1419e086b40193", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Concatenation Operation\n\n* Accept states of \\( N_1 \\) to non-accept states\n\n```mermaid\nstateDiagram-v2\n [*] --> N1_1\n N1_1 --> N1_2\n N1_2 --> N1_3\n N1_3 --> N1_4 : \u03b5\n N1_3 --> N1_5 : \u03b5\n N1_3 --> N1_6 : \u03b5\n N1_4 --> N2_1\n N1_5 --> N2_1\n N1_6 --> N2_1\n N2_1 --> N2_2\n N2_2 --> N2_3\n N2_3 --> [*]\n```\n\n- \\( N_1 \\) and \\( N_2 \\) are two automata.\n- The accept states of \\( N_1 \\) are connected via epsilon (\u03b5) transitions to the start state of \\( N_2 \\).\n- The accept states of \\( N_1 \\) become non-accept states in the concatenated automaton.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 591, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e88e6a95-af59-4d41-a235-7e6ded194165": {"__data__": {"id_": "e88e6a95-af59-4d41-a235-7e6ded194165", "embedding": null, "metadata": {"page_number": 50, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "94a717c6-62e7-4ec8-b702-2554e6dd727b", "node_type": "4", "metadata": {"page_number": 50, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "b5388199e75e150223b0eb32c0f7ad29b30fd5c789e3137a3ec3f08fe9295257", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Star operator is similar to concatenation except that it can be concatenated any number of times:\n\n$$\nA^* = \\{ x_1 x_2 x_3 \\ldots x_k \\mid k \\geq 0 \\text{ and } x_i \\in A \\}\n$$\n\nand\n\n$$\n\\varepsilon \\in A^* \\quad \\text{for any language } A\n$$\n\n* Automata diagrams:\n\n```\nN_1:\n (start) --> (state) --> ... --> (accept states)\n\nN:\n (start) --> \u03b5 --> (state) --\u03b5--> (accept states)\n \\--\u03b5--/\n```\n\n* $N_1$ recognizes a regular language $A$\n\n* $N$ recognizes $A^*$ ($A^*$ is regular)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 528, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "59786032-696b-4482-8391-272678e3edd8": {"__data__": {"id_": "59786032-696b-4482-8391-272678e3edd8", "embedding": null, "metadata": {"page_number": 51, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e525d31a-de2f-42e3-98c0-400cd916858b", "node_type": "4", "metadata": {"page_number": 51, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "f05b5ee7c855f519dcbc841c4ec14ab86d3763223bbe3b69f5ebe8fef12ce2ad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Let \\( N_1 = (Q_1, \\Sigma, \\delta_1, q_1, F_1) \\) recognizes \\( A_1 \\).\n* To construct \\( N = (Q, \\Sigma, \\delta, q_0, F) \\) to recognizes \\( A_1^* \\):\n 1. \\( Q = \\{q_0\\} \\cup Q_1 \\)\n 2. The state \\( q_0 \\) is the start state of \\( N \\)\n 3. The set of accept state \\( F = \\{q_0\\} \\cup F_1 \\)\n 4. \\( \\delta \\) is given by\n\n$$\n\\delta(q, a) = \n\\begin{cases}\n\\delta_1(q, a) & q \\in Q_1 \\text{ and } q \\notin F_1 \\\\\n\\delta_1(q, a) & q \\in F_1 \\text{ and } a \\neq \\varepsilon \\\\\n\\delta_1(q, a) \\cup \\{q_1\\} & q \\in F_1 \\text{ and } a = \\varepsilon \\\\\n\\{q_1\\} & q = q_0 \\text{ and } a = \\varepsilon \\\\\n\\emptyset & q = q_0 \\text{ and } a \\notin \\varepsilon\n\\end{cases}\n$$", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 702, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1c88a6fd-a0b0-404b-9049-54a2b8452198": {"__data__": {"id_": "1c88a6fd-a0b0-404b-9049-54a2b8452198", "embedding": null, "metadata": {"page_number": 52, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "54a47b57-4645-4c7b-a016-2d7797caf81a", "node_type": "4", "metadata": {"page_number": 52, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "8c1f6f0cfe72c8284b69c62220b76d1b21c29e54a3a92f9b5d08b8188fae99a0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Given state diagrams of finite-state machines \\( N_1 \\)\n* To draw a state diagram of a new machine \\( N \\) where \n $$ L(N) = L(N_1)^* : $$\n 1. Draw the state diagram of \\( N_1 \\)\n 2. Add a new start state and make it an accept state\n 3. Add \\(\\varepsilon\\) transition from the new start state to the start state of \\( N_1 \\)\n 4. For each **original** accept state of \\( N_1 \\), add \\(\\varepsilon\\) transition to the **original** start state of \\( N_1 \\)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 493, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a804996e-693b-4160-be9b-1a59ef285781": {"__data__": {"id_": "a804996e-693b-4160-be9b-1a59ef285781", "embedding": null, "metadata": {"page_number": 53, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "77b55822-058d-4f77-bbb7-21a5acdad6d4", "node_type": "4", "metadata": {"page_number": 53, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "d868fc194ce712ee6b0284d0a206ea736bd23bd4fbf76c761e1415751749815c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Draw the state diagram of \\( N_1 \\)\n\n[The image shows a rectangular box labeled \\( N_1 \\) containing four states represented by circles. One state on the left has an incoming arrow indicating it is the start state. Two states on the right are double circled, indicating they are accepting states. The other two states are single circled. The states are arranged with the start state on the left, two states in the middle, and two accepting states on the right.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 496, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b85ef640-cc34-4561-b75a-9a0108f16462": {"__data__": {"id_": "b85ef640-cc34-4561-b75a-9a0108f16462", "embedding": null, "metadata": {"page_number": 54, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8940f755-031a-4ec6-8680-ff6d3a6fe5f4", "node_type": "4", "metadata": {"page_number": 54, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "3a8514919aa0a592158c2d30616b3d402195e29ed625d5c9f82762fb95a661a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Add a new start state and make it an accept state\n\n```mermaid\nstateDiagram-v2\n [*] --> NewStartAcceptState: new start state (accept state)\n state N1 {\n [*] --> S1\n S1 --> S2\n S3 --> S4\n S2 --> S3\n S4 --> S1\n S3 --> S3: accept states\n S4 --> S4: accept states\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 358, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "962fac05-c1bd-4059-a964-0eacc2442fc0": {"__data__": {"id_": "962fac05-c1bd-4059-a964-0eacc2442fc0", "embedding": null, "metadata": {"page_number": 55, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "cb2aff72-bb40-4367-9724-a929433648cc", "node_type": "4", "metadata": {"page_number": 55, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "1040eb382af8fd68a129b6d7b47e9c057b26a8b1748ebf24dd3e606cf698cf27", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* Add \\(\\varepsilon\\) from the new start state to the original start state of \\(N_1\\)\n\n```mermaid\nstateDiagram-v2\n [*] --> NewStart\n NewStart --> N1Start: \u03b5\n state N1 {\n [*] --> S1\n S1 --> S2\n S3 --> S4\n S5 --> S6\n S2 --> [*]\n S4 --> [*]\n }\n```", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 331, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9b2ae2ac-7b81-4572-9892-e1650d2f4109": {"__data__": {"id_": "9b2ae2ac-7b81-4572-9892-e1650d2f4109", "embedding": null, "metadata": {"page_number": 56, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "875127da-e07b-461e-a8a1-b1150f0dedee", "node_type": "4", "metadata": {"page_number": 56, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "5b47a585ab08fb88fdabb187a4f6461031abc7d520f1157d10e4e6eb52119b3e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Closure Under Star Operation\n\n* For each **original** accept state of \\( N_1 \\), add \\(\\varepsilon\\) transition to the **original** start state of \\( N_1 \\)\n\n```\nN\n \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 \u2502\n \u2502 N\u2081 \u2502\n \u2502 \u2502\n \u2502 (start) \u2192 ( ) \u2192 ( ) \u2502\n \u2502 \u03b5 \u03b5 \u03b5 \u2502\n \u2502 \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n* The diagram shows an NFA \\(N\\) with an \\(\\varepsilon\\)-transition to the start state of \\(N_1\\).\n* Inside \\(N_1\\), for each original accept state, there is an \\(\\varepsilon\\)-transition back to the original start state of \\(N_1\\).", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 676, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2cf3cb68-f6dc-4d1b-9109-4e468a1efbc4": {"__data__": {"id_": "2cf3cb68-f6dc-4d1b-9109-4e468a1efbc4", "embedding": null, "metadata": {"page_number": 57, "file_name": "data/finite_automata_03_handout.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fb39a5af-8e25-4989-84b5-18a980862b55", "node_type": "4", "metadata": {"page_number": 57, "file_name": "data/finite_automata_03_handout.pdf"}, "hash": "2a688530da7ba6c4617c3def82bcef4e382997f5aba9f500594b5ecdf2fe8e33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Conclusions\n\n* A Nondeterministic Finite Automata (NFA) has an equivalent Deterministic Finite Automata (DFA) \n - The algorithm how to convert from an NFA \\( N \\) to an equivalent DFA \\( D \\) where \\( L(N) = L(D) \\) has been discussed\n\n* The set of all regular languages is closed under union, concatenation, and star operations: \n - If \\( A \\) and \\( B \\) are regular languages, \\( A \\cup B \\) is a regular language \n - If \\( A \\) and \\( B \\) are regular languages, \\( AB \\) (\\( A \\circ B \\)) is a regular language \n - If \\( A \\) is a regular language, \\( A^* \\) is a regular language\n\n* The proof process also gives us an algorithm how to construct DFAs", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 666, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f3d040e2-0232-45b1-ab5a-3fbb79d342ab": {"__data__": {"id_": "f3d040e2-0232-45b1-ab5a-3fbb79d342ab", "embedding": null, "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fbcc9fad-7996-48c2-819d-446635fb3a59", "node_type": "4", "metadata": {"page_number": 1, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "91cf43ff0a215b03fe935ee8d45ddc58f44a2f612323dc7918e2360de2af217a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L06 Requirements Elicitation I\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 178, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3345996c-6312-48d3-b6f0-38f55c57bc45": {"__data__": {"id_": "3345996c-6312-48d3-b6f0-38f55c57bc45", "embedding": null, "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3c134616-817e-4580-a266-0b4e38cff838", "node_type": "4", "metadata": {"page_number": 2, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "5cfd0d1a43424ba2c03e1201cd21eb7858e538a6572c9c77a8251cbad821027b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Copyright\n\n* These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and no one else. They are offered free of charge and must not be sold or shared in any manner. Distribution to individuals other than registered students is strictly prohibited, as is their publication on the internet. \n - All materials presented in this course are protected by copyright and have been duplicated solely for the educational purposes of the university in accordance with the granted license. Selling, modifying, reproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in electronic format, you are permitted to print them solely for personal study and research purposes. \n - Please be aware that failure to adhere to these guidelines could result in legal action for copyright infringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated.\n\n* Material from these notes is obtained from various sources, including, but not limited to, the following: \n - Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009. \n - Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994. \n - Sommerville, Ian. \"Software Engineering\" Pearson. 2011. \n - http://scrum.org/", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f9ec57fd-7992-4345-9d2b-7974f8549950": {"__data__": {"id_": "f9ec57fd-7992-4345-9d2b-7974f8549950", "embedding": null, "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "646b71ee-93df-4104-bfdb-f33cf60b2f30", "node_type": "4", "metadata": {"page_number": 3, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "7b46f669af6d8845843ed77ea87b2c46cc55e6ef1570b65b8d84b2f8f4447b45", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Learning goals\n\n* You have a better understanding of user, enduser, and customer \n* You can extract functional requirements from a problem statement", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0a876bb4-0f31-403c-b58e-d1160d276818": {"__data__": {"id_": "0a876bb4-0f31-403c-b58e-d1160d276818", "embedding": null, "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "69fbb569-291c-492b-a13f-e76bc1d513d5", "node_type": "4", "metadata": {"page_number": 4, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "c367a1b958cae64cc10f96d52e36c1055d187842ea2ef2bab2b4655b47949d81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to requirements engineering\n* Functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 81, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7dc3ff70-34f8-4923-8af7-3b9d157ce14d": {"__data__": {"id_": "7dc3ff70-34f8-4923-8af7-3b9d157ce14d", "embedding": null, "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "2bd609f2-3a13-48fd-8b4e-761f4cdc77f4", "node_type": "4", "metadata": {"page_number": 5, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "d4b84c29b9234aecc3c1d2c6b4e95b2e326a720be6bcd1b002e67536532f84f3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Who is the user, enduser, and customer?\n\n* Company A builds a software product for Company B. \n Kim purchases the software product from Company B.\n\n* Company X develops an ordering platform for Restaurant Chain Y. \n Restaurant managers use an admin dashboard to update menus & track orders. \n Customers place orders through the app and get their food delivered.\n\n* Company M creates an online banking backend for Bank N. \n Bank tellers and support staff use the system to manage accounts. \n Bank customers use the mobile app or website to transfer money and check balances.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 596, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "193fddf7-e36f-4693-80da-15f748115cda": {"__data__": {"id_": "193fddf7-e36f-4693-80da-15f748115cda", "embedding": null, "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "57c49573-7dbc-490d-9a8f-8f2e520d1390", "node_type": "4", "metadata": {"page_number": 6, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b286edb63251748ad1787d2612a7beb3580f2542d58e60fd436ed01692d4e5c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# User vs enduser\n\n* **User** is anyone who interacts with the system \n - Includes maintainers or supporters of a system \n - Can be an external system \n - **[Example]** system operations / administrators, technical personnel \n* **Enduser** is the person who is intended to use the software for its _primary function_ \n - Does not need advanced technical knowledge of the system \n - **[Example]** person who downloads an app from the App Store/Google Play Store \n\n> The users of a software system should be defined \n> at the start of a project!", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 557, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c158ad55-4c8c-43b8-9eb3-e74cbc9ef65d": {"__data__": {"id_": "c158ad55-4c8c-43b8-9eb3-e74cbc9ef65d", "embedding": null, "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "58ad2fdb-6e81-4218-9643-83f058d3a0aa", "node_type": "4", "metadata": {"page_number": 7, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "86c9dff3d0990c11977faac041398bcc298865a87565fe3c6f2fab7270e1cf93", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# SDLC \n## Actors & Activities\n\n- Customer \n - Define problem \n - <> Develop software system\n\n- Project Manager \n - Define problem \n - Develop system \n - <> Develop software system\n\n- Developer \n - Develop system\n\n- Enduser \n - Operate System \n - <> Develop software system\n\n- System Administrator \n - Operate System\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 398, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7719425c-ac43-4099-bc01-4d0b4b66fea1": {"__data__": {"id_": "7719425c-ac43-4099-bc01-4d0b4b66fea1", "embedding": null, "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "620c4bb7-bbd7-4f69-8f83-51a7b210a803", "node_type": "4", "metadata": {"page_number": 8, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b3f5ead26424da479f07b851d8f7884a6579283a452ee11a729e316500e78630", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem definition\n\n* Typically documented as an informal problem statement\n* Describes the purpose of the system\n - Not necessarily something that is wrong\n - Could describe the gap between an existing and desired state\n - Could be an idea\n* **The problem is not the solution!**\n\n> Essential for building any system!\n\n----\n\nVAGUE IDEA OF THE PROBLEM \u2192 DIFFERENT PERSPECTIVES \u2192 CLEAR, SUCCINCT PROBLEM STATEMENT\n\n[The image shows a progression from a vague idea of the problem (depicted as a thought bubble with an exclamation mark inside a triangle), through different perspectives (multiple overlapping shapes with question marks and exclamation marks), to a clear, succinct problem statement (a single triangle with an exclamation mark and rays around it).]\n\n----\n\nUniversity of Pittsburgh\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L06 Requirements Elicitation: Functional requirements \nhttps://blog.prototypr.io/the-problem-with-problems-and-a-better-way-to-frame-them-visually-b3bb71f30baf", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1006, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "450d2224-4322-4949-8a64-4dd14ccd1386": {"__data__": {"id_": "450d2224-4322-4949-8a64-4dd14ccd1386", "embedding": null, "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a05f1d8a-e2c5-4844-a86d-01fd34816939", "node_type": "4", "metadata": {"page_number": 9, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "da500ecdb822af00abaac8f6b67339c0e7a4926934f6e07ba0007861697498ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Why is it important to separate the problem from the (concrete) solution?\n\n* **Clarity and understanding** \u2014 Avoid premature solution \n - Ensure well-informed solutions \n* **Flexibility** \u2014 Encourage creativity and innovation \n - Explore various solutions \n* **Communication** \u2014 Foster better collaboration \n - Enable a common understanding of the problem \n\n[The image shows a man in a shirt and tie standing in front of a wall covered with papers and red string connecting various points, gesturing animatedly.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 524, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0eb6fb63-0063-4290-bf64-67cfa8e12f70": {"__data__": {"id_": "0eb6fb63-0063-4290-bf64-67cfa8e12f70", "embedding": null, "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aea43ed6-806c-4e18-a86b-6c106a7ec0a0", "node_type": "4", "metadata": {"page_number": 10, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "d124debb6191a74feee7a5c411b7f9a15e32a4dda66b06c3beb360af09daa160", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Application vs Solution Domain\n\n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n
Application DomainSolution DomainApplication Domain
Requirements
Elicitation
Requirements
Analysis
Deployment /
Delivery
Maintenance
\"What is the problem?\"System Design\"How is the system used / maintained?\"
Object Design
Implementation
Testing & Validation
\"What is the solution?\"
\n\nUniversity of Pittsburgh", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1858, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9fc47ce0-46ac-40c1-8216-4c1f1e9bfe0d": {"__data__": {"id_": "9fc47ce0-46ac-40c1-8216-4c1f1e9bfe0d", "embedding": null, "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a13153ae-6dd2-468b-ad0a-1332002ecff2", "node_type": "4", "metadata": {"page_number": 11, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "020a6b2b711dca006482b7c7861d4fe6c53cafb4473afa783203ab8ea4d1ab13", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Application vs Solution Domain\n\n\n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n
PhaseExample
Problem DefinitionStudents complain they can\u2019t find parking spots near class on time
Requirements ElicitationInterview students: Need real-time lot status, navigation to nearest open spot
Requirements AnalysisCreate a use-case diagram for \u2018Find Spot\u2019
& model state machine for lot occupancy
Solution Domain \u2013 DesignDecide: mobile app + backend API with sensor data
ImplementationBuild app using Flutter, connect to database
Testing/ValidationCheck that parking spot data updates every 10 seconds
Deployment/ MaintenanceRelease to App Store, monitor usage, fix bugs
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1145, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cab1ed8f-6910-433b-96f3-0e50962f12fa": {"__data__": {"id_": "cab1ed8f-6910-433b-96f3-0e50962f12fa", "embedding": null, "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c0c492a3-bd70-46f4-a0cc-99538b346d0a", "node_type": "4", "metadata": {"page_number": 12, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "dbe3c44f8c35570651b6599905d4fb8b57b9948b0b811d9ace6e49e6d672fcce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Different domains require different approaches\n\n## Greenfield Engineering\n* Developing a system from scratch; no prior system exists \n* Requirements: Extracted from stakeholders and (end)user input \n* Initiation: New market needs \n* Starting Point: Clear problem statement based on user needs", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "19875395-4eeb-4841-8025-823c836aa164": {"__data__": {"id_": "19875395-4eeb-4841-8025-823c836aa164", "embedding": null, "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d5b20b14-bc34-4c84-8388-0bdd499e44ad", "node_type": "4", "metadata": {"page_number": 13, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "60d4d445c6003a411a33e68107a6903e4765121d6c23416dd94a2d012c8293ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Different domains require different approaches\n\n**Re-engineering** \u2014 redesign or re-implementation of an existing system \n* Requirements: Driven by new technology \n* Initiation: Responds to technological advancements \n* Starting point: Problem statement rooted in technological evolution", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 293, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7729555d-1d0c-4e40-b998-87af8b1a70f0": {"__data__": {"id_": "7729555d-1d0c-4e40-b998-87af8b1a70f0", "embedding": null, "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "8edcaae6-cc68-4627-baed-0d0fa16409f2", "node_type": "4", "metadata": {"page_number": 14, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "db55241a3c27a252a45613d4e71d570d7b6d3cc783ad7b23a26acd7380950b8f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Different domains require different approaches\n\n**Interface Engineering** \u2014 adapting an existing system to a new environment \n* Requirements: Prompted by technology or new market needs \n* Initiation: Responds to technology shifts or emerging market demands \n* Starting Point: Problem statement reflecting technological or market changes", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "856bbe0f-01a8-4a8f-8ce2-ed9ccf0d0245": {"__data__": {"id_": "856bbe0f-01a8-4a8f-8ce2-ed9ccf0d0245", "embedding": null, "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b07b7cb4-75a6-462b-a825-c21b3fa769ff", "node_type": "4", "metadata": {"page_number": 15, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "67cccb22c1e341441e4da6b9136fe161c67712b76433aaa60b246a54dd0c7fbe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Today\u2019s roadmap\n\n* Intro to requirements engineering\n* Functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 81, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6339315-ab35-4ba7-94bb-047adbcaabd0": {"__data__": {"id_": "a6339315-ab35-4ba7-94bb-047adbcaabd0", "embedding": null, "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "573c541f-0e6b-487b-9b96-fe98361ebfe0", "node_type": "4", "metadata": {"page_number": 16, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "024625182c3d58aeba705a62910070e125b5bfb11593628e9d420ffb52c1bf21", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System Requirements\n\n* Describe the functions to satisfy the stakeholder needs and requirements \n* Basis for designing a software system \n* Describe how the user requirements should be provided by the system \n* Expressed in textual statements \n* Types of requirements: \n - **Functional** (Focus is on the functionality) \n - **Quality** / **Non-functional** (Focus is on quality attributes) \n - **Constraints** (Focus is on limitations) \n\n> WALLY, WE DON\u2019T HAVE TIME TO GATHER THE PRODUCT REQUIREMENTS AHEAD OF TIME. \n> I WANT YOU TO START DESIGNING THE PRODUCT ANYWAY. OTHERWISE IT WILL LOOK LIKE WE AREN\u2019T ACCOMPLISHING ANYTHING. \n> OF ALL MY PROJECTS, I LIKE THE DOOMED ONES BEST.\n\n\u00a9 2025 Nadine von Frankenberg \nCS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 795, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3ce71bba-25f0-4c53-b3fa-942be2597af9": {"__data__": {"id_": "3ce71bba-25f0-4c53-b3fa-942be2597af9", "embedding": null, "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "aba2442a-a388-4514-933e-7a1badb4cdd2", "node_type": "4", "metadata": {"page_number": 17, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b0a6a178dd5b5d92fa9129df1d3563c372d0452e95f611b74e7b08606ba823bf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Functional Requirements\n\n* Describe the essential functionality of the system\n* Define one requirement per function (feature)\n* They should be phrased in a general manner\n\n```\nFR# Short title : Description\n```\n\n> Should be numbered based on their \u2794 priority \n> Phrased in **imperative mood** (verb + noun) \n> The description should not include implementation details\n\n**[Example]** \n`FR7 View Map:` The user can view a map that displays their current location and any historic landmarks around them, within a 5 mile radius.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "439f5fde-3b93-487c-be2d-1ac7f600d84c": {"__data__": {"id_": "439f5fde-3b93-487c-be2d-1ac7f600d84c", "embedding": null, "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "130fbc49-517f-495a-be31-c1945c802564", "node_type": "4", "metadata": {"page_number": 18, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "77eb5080390d37f8c78e8f9b30c241a193b3871fde2a9b6754af8a2f9be5501b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Functional Requirements\n\n* Describe the essential functionality of the system\n* Define one requirement per function (feature)\n* They should be phrased in a general manner\n\n```\nFR# Short title : Description\n```\n\n> Should be numbered based on their \u2794 priority \n> Phrased in **imperative mood** (verb + noun) \n> The description should not include implementation details\n\n**[Example]** \n\u274c `\"FR1 Select location: The user can select a button to zoom in Google Maps and look at a red and green-colored heat map of popular areas.\"`", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 533, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "97c19ee8-2295-4266-bc6f-51b874b34d69": {"__data__": {"id_": "97c19ee8-2295-4266-bc6f-51b874b34d69", "embedding": null, "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c97300a2-0565-46d5-9a7d-af787c746f22", "node_type": "4", "metadata": {"page_number": 19, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "14e11cecf9789e68a642f9ed790223dc6202f0db10aa094ad6e05fe56d662df4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is functionality?\n\n* Describes specific tasks the system performs to achieve an intended goal \n e.g., processing data, user interactions, or system operations\n* Focuses on how the system responds to inputs and deliver outputs\n* Defines **features and services the user can invoke / system provides** \n e.g., login, view a report, create a report, \u2026\n\n> Functionality does not describe qualities, e.g., response time, platform type, etc!\n\n## [Example]\n\n* Functionality: \"The user can upload files.\"\n* Quality attributes \n - \"The system can upload files with minimal delay of max. 15 seconds, even with the maximum supported file size.\" \n - \"The system can store uploaded files with a size of up to 2GB.\" \n - \"The system supports files of the types .pdf, .jpg, and .txt\"", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 785, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1eeafca9-737c-4b16-a6ab-88ffa756bcf3": {"__data__": {"id_": "1eeafca9-737c-4b16-a6ab-88ffa756bcf3", "embedding": null, "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "0fca1f0f-ac3e-4465-a69d-d1d2ed929b6d", "node_type": "4", "metadata": {"page_number": 20, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "697b1b890496d59a69c52f4a808c5774c2a33e6b8b5ecb3bb90bc85a4e6cc58f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# What is functionality? (cont.)\n\n* **Single purpose:** Each functional requirement should represent one logical unit of work (one operation or one step from the actor\u2019s/user\u2019s perspective)\n* **Low complexity:** Complex requirements should be split into separate requirements (or grouped as sub-requirements)\n* **Unified testing & maintenance:** Each functional requirement should be treated as one unit during testing and maintenance\n* An **atomic requirement** is a requirement that cannot be further broken down into individual tasks\n\n> Splitting complex requirements into smaller, manageable requirements helps in system design to better identify reusable parts", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 666, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0d91d4a5-e541-499f-8aef-4b36675e11b7": {"__data__": {"id_": "0d91d4a5-e541-499f-8aef-4b36675e11b7", "embedding": null, "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "b39fe785-1aeb-4715-adae-ca6084531563", "node_type": "4", "metadata": {"page_number": 21, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b82793a3fe1c4ca420c69dfa18e7cad10ec7a0020921d45e82a305a97f45da48", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Defining requirements\n\n**FR3 Login:** Students can login to the system using their email address and password.\n\n> User\u2019s perspective: Single operation/single purpose \n> Sequential dependency & low complexity \n> Testing & maintenance will most likely be treated as a single unit\n\n**FR4 Control room temperature automatically:** The system automatically controls the temperature for each room.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 406, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0fb888db-a05b-4930-b272-cb10c3c8973c": {"__data__": {"id_": "0fb888db-a05b-4930-b272-cb10c3c8973c", "embedding": null, "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "990c8f06-dbd2-4d4b-9a14-df02c328e945", "node_type": "4", "metadata": {"page_number": 22, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "2b0bdad8d206165168c7646223520e2b1ae50f16069327ff052cda58691b7976", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Defining requirements\n\n> User\u2019s perspective: viewing and downloading an account statement are two distinct actions \n> Each has its own functionality and does not depend on each other \n> Testing & maintenance will most likely be treated separately\n\n**FR4 Access account statements:** The customer can access account statements. \n **FR4.1 View Monthly Statements:** The customer can view their past transactions in their account statement, updated monthly. \n **FR4.2 Download Statements:** The customer can download their statements as a PDF file. \n **FR4.3 Receive statements via email:** The customer can choose to receive their account statement automatically via email automatically each month.\n\n> Sub-steps indicate a logical categorization", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 770, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5ba29234-170f-4a04-a6d9-967bd023aa01": {"__data__": {"id_": "5ba29234-170f-4a04-a6d9-967bd023aa01", "embedding": null, "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fb086dad-c5db-4e85-bdc8-3413c7801935", "node_type": "4", "metadata": {"page_number": 23, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "a5aea25000e3eb556f8433c9a52dcad985bac4062e07a5971ca60952ecc4d537", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Deriving requirements: FURPS+ Model\n\n* FURPS+ is a model used to categorize features and attributes\n* **F**unctional Requirements \n > What functionalities/features should the system provide?\n* Non-functional Requirements \n - **U**sability \n - **R**eliability \n - **P**erformance \n - **S**upportability \n - \u2026 \n > E.g., robustness, maintainability, \u2026\n* Constraints (pseudo-requirements) \n > E.g., standards, physical limitations, software limitations, dependencies, \u2026", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 486, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "27a51c7f-94c5-4f86-8e21-4b54aadc8a3d": {"__data__": {"id_": "27a51c7f-94c5-4f86-8e21-4b54aadc8a3d", "embedding": null, "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c8cfb321-c13b-444a-88b2-4d522aab499e", "node_type": "4", "metadata": {"page_number": 24, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "3e23934de083decc93b7e5713acb6a49276fb34099215caad2168417e6ed706d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Abbott\u2019s textual analysis (technique)\n\n* Methodology used to identify and specify objects in a software system based on natural language\n* Review the natural language requirements / problem statement:\n 1. **Identify nouns** \u2192 actors / objects (or entities)\n 2. **Group and categorize** the nouns \u2192 define the objects\u2019 tasks/services\n 3. **Determine the relationships** between the identified objects\n - Adjectives \u2192 describe characteristics/attributes of objects\n - Verbs \u2192 correspond to methods or operations that objects perform\n - Relationships \u2192 describes how objects interact\n\n> Introduced by Russell J. Abbott (1983) as a way to systematically extract objects, attributes, and behavior from an (informal) textual description of a system", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 760, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3740446e-61cc-4172-accc-e8f2add77742": {"__data__": {"id_": "3740446e-61cc-4172-accc-e8f2add77742", "embedding": null, "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "e17b9223-2220-4379-9bf6-1783335585b7", "node_type": "4", "metadata": {"page_number": 25, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "06224eebd7ad2af11066fc5cb97a31eb151d7086712c913bfc0f93fd3d361d6d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Actor vs entity\n\n* **Actor** is anyone who interacts with the system from outside its boundaries \n - **[Example]** \n **Customer** who browses and purchases items \n Payment Processing System (external system)\n\n* **Entity** is a core object or concept within the boundaries of the system \n - **[Example]** \n Order, Product, Customer within an e-commerce system \n _e.g., system tracks Products (e.g., name, price, inventory count)_", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3add3248-ef7d-4108-a10b-e9e287f78eb9": {"__data__": {"id_": "3add3248-ef7d-4108-a10b-e9e287f78eb9", "embedding": null, "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "a3a95eba-1ddb-456e-bb5e-c432f2b2ce45", "node_type": "4", "metadata": {"page_number": 26, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "550fe6b4d78972ce9848ef5556d04beca28ffa9ba436a1c8be13bd25bd403da3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **Example** Abbott\u2019s technique\n\nHomeowners want a system to control the temperature in different rooms of a house. The system should: \n* Keep track of the temperature in each room \n* Adjust heating or cooling to keep the rooms comfortable \n* Set different temperatures for each room \n* Be controlled through a mobile app \n* Send an alert if a room's temperature goes too far from the set point \n\n*simplified*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 417, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "253e50a4-96a1-4dde-bf1a-70a7e7724435": {"__data__": {"id_": "253e50a4-96a1-4dde-bf1a-70a7e7724435", "embedding": null, "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "5c22f98e-f8b3-4d8f-9864-4ff21d053d5b", "node_type": "4", "metadata": {"page_number": 27, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "689036fa73dfa6e867df1454c8032dea1443accee6c2b6d7ff2e1fc4da1a132c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique \u2014 Identifying Actors ![University of Pittsburgh logo]\n\n**Homeowners** want a system to control the temperature in different rooms of a house. The **system** should: \n* Keep track of the temperature in each room \n* Adjust heating or cooling to keep the rooms comfortable \n* Set different temperatures for each room \n* Be controlled through a mobile app \n* Send an alert if a room's temperature goes too far from the set point \n\nRelevant **Actors**: \n* (End)`user` = *Homeowner* or *Occupant* \n> An actor is an entity that interacts with a system\n\n* *Home* (or *Heating and cooling system*) \n> At this stage, the system to be built can be seen as an actor, as the system boundaries still need to be defined.\n\n* *System* (to be built) \n\n*simplified*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 790, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b1bb2d02-ee69-48a4-9fe9-c55588dcc8f2": {"__data__": {"id_": "b1bb2d02-ee69-48a4-9fe9-c55588dcc8f2", "embedding": null, "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "c111f4b7-35e5-435e-8518-51f0c3ac2200", "node_type": "4", "metadata": {"page_number": 28, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b5d2025b10520a50c2a6531c0c247ff9bb3c0c8835ecc8d974464899cf66b977", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Abbott\u2019s technique \u2014 Identifying Actors ![University of Pittsburgh logo]\n\nHomeowners want a system to control the temperature in different rooms of a house. The system should:\n\n* **Keep track of the temperature** in each room \n* **Adjust heating or cooling** to keep the rooms comfortable \n* **Set different temperatures** for each room \n* Be controlled through a mobile app \n* **Send an alert** if a room's temperature goes too far from the set point \n\n*simplified*", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 489, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7139f466-15bc-4998-b4df-fcbab76581ed": {"__data__": {"id_": "7139f466-15bc-4998-b4df-fcbab76581ed", "embedding": null, "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ab49e505-6b3f-4e87-a61f-5d59f6295288", "node_type": "4", "metadata": {"page_number": 29, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "dc30bb108aef1e560a7be1860d0cda1f265dd254f10f8e4f4915a918f930ace9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique \u2014 Identifying Actors\n\nHomeowners want a system to control the temperature in different rooms of a house. The system should:\n\n* **Keep track of the temperature** in each room \n* **Adjust heating or cooling** to keep the rooms comfortable \n* **Set different temperatures** for each room \n* Be controlled through a mobile app \n* **Send an alert** if a room's temperature goes too far from the set point \n\nActors/_Entities_: \n* **HomeOwner:** View and set temperatures, receive alerts \n* **HeatingCoolingSystem:** Change the temperature in the rooms \n* ~~TemperatureSensor: Detect the temperature in each room~~", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 647, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fc7b0a31-59ee-4737-a98c-0760f0a896b4": {"__data__": {"id_": "fc7b0a31-59ee-4737-a98c-0760f0a896b4", "embedding": null, "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "41342fc2-047a-4cf1-b772-74dca44459f7", "node_type": "4", "metadata": {"page_number": 30, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "b546987de0fa89d692f467b6ab28ebf0df900e32d1b18050cfd75ce717a7f5bc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# **[Example]** Abbott\u2019s technique \u2014 Identifying Actors University of Pittsburgh\n\n```mermaid\ngraph LR\n HomeOwner(( )) -->|controls| HomeControl[HomeControl]\n HomeControl -->|monitor
read temperature| TemperatureSensor(( ))\n```\n\nHomeOwner \nTemperatureSensor", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 269, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "503697e5-a94c-4e27-816d-494f04f21f75": {"__data__": {"id_": "503697e5-a94c-4e27-816d-494f04f21f75", "embedding": null, "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3e80166f-993c-46e9-a037-98fcdcc28b9d", "node_type": "4", "metadata": {"page_number": 31, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "95a81b9e8ea6389d830731524c0f20aadcd072582337a4d6838564b58d5c2ac5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique *simplified\n\n*The enduser or user of the system is defined as the home owner or occupant.*\n\n- FR1 View room temperature: The user can view the current temperature of each room.\n- FR2 Monitor room temperature: The system monitors the temperature of each room.\n - FR2.1 Sense temperature: The temperature sensor senses the room\u2019s current temperature.\n - FR2.2 Read temperature: The system reads the temperature sensor\u2019s temperature readings once a minute.\n- FR3 Control room temperature manually: The user can control the temperature for each room.\n- FR4 Control room temperature automatically: The system automatically controls the temperature for each room.\n- FR5 Send temperature alerts: The system sends alerts to the user if the temperature in a room deviates from the set preference by more than 4\u00b0F.\n- FR6 Set room temperature preferences: The user can set a desired temperature for each room.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 933, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0fa8d65a-9ad9-495f-82f4-b98fb5408966": {"__data__": {"id_": "0fa8d65a-9ad9-495f-82f4-b98fb5408966", "embedding": null, "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "d5864625-c9be-445f-9e4a-c30cd44437cb", "node_type": "4", "metadata": {"page_number": 32, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "a5151ad9b12d6ccf90a5b147b2ee43b65b20f7ab6d0b8e6a4044822e299f29b4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# [Example] Abbott\u2019s technique - alternative *simplified* \n\n*The enduser or user of the system is defined as the home owner or occupant.* \n*The software system to be developed is hereafter referred to as HomeControl.*\n\nFR1 View room temperature: The user can view the current temperature of each room. \nFR2 Monitor room temperature: HomeControl monitors the temperature in each room. \n- FR2.1 Sense temperature: The temperature sensor senses the room\u2019s current temperature. \n- FR2.2 Read temperature: HomeControl reads the temperature sensor\u2019s temperature readings once a minute. \nFR3 Control room temperature manually: The user can control the temperature for each room and set it to a specified temperature value. \nFR4 Control room temperature automatically: HomeControl automatically controls the temperature for each room and set it to a specified temperature value using a learning-based schedule (\u2192 FR8). \nFR5 Send temperature alerts: HomeControl sends alerts to the user if the temperature in a room deviates from the set preference by more than 4\u00b0F. \nFR6 Set room temperature preferences: The user can set a desired temperature for each room.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1160, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "87210355-db43-422a-b548-8847ff487536": {"__data__": {"id_": "87210355-db43-422a-b548-8847ff487536", "embedding": null, "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "42a5d6e0-eab4-4b77-b093-ba614715da6e", "node_type": "4", "metadata": {"page_number": 33, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "22322cfcff119cafefc974bb06f16a85b59e06659233d64121518a73db88d043", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# System vs external system\n\n* **Software system** is a system/component that is being developed \n - Has specified boundaries \n* **External system** is a system/component outside of the boundary of the software system being developed that interacts with it \n - E.g., API, database, sensor, hardware, third-party system \n\n> **Boundaries** define what is inside the system (internal components) and what interacts with it from the outside (external actors, systems/components)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 481, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6749a63-50b2-4c64-8b4d-96d6fb87ed7b": {"__data__": {"id_": "a6749a63-50b2-4c64-8b4d-96d6fb87ed7b", "embedding": null, "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "fee92934-aaec-452e-86bb-1d2ec83bc2cb", "node_type": "4", "metadata": {"page_number": 34, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "ef223873d41edf800992fb806e84e62350b7b29fbc562101cb116353f7d9f08e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\n[The image shows three photographs related to sinkholes and road collapses:\n- The first photo (top left) shows a bus partially fallen into a large sinkhole on a city street, with police caution tape around the area.\n- The second photo (top right) shows a large sinkhole on a paved road, also cordoned off with police caution tape.\n- The third photo (bottom center) shows a smaller sinkhole on a paved surface.]", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 432, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d3b733f8-884a-4ca0-9fcc-ca200dc84628": {"__data__": {"id_": "d3b733f8-884a-4ca0-9fcc-ca200dc84628", "embedding": null, "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "ad50ef99-e2ad-46b8-8a38-aebb5391ceaf", "node_type": "4", "metadata": {"page_number": 35, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "f5a742398a90932f81a00e5cf3d2c345d72e2856b2783d119d9fbe83a36a4271", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\n## Background\n\nPittsburgh is facing an increasing number of potholes and sinkholes that pose a threat to public safety and infrastructure. These sudden ground collapses can cause considerable damage to roads, disrupt supply lines, and endanger human lives. Current methods of monitoring and responding to sinkholes are reactive and inefficient. There is an urgent need for a proactive, technology-based solution to detect, track, and predict sinkholes. This solution would enable municipal authorities to respond quickly to potential hazards, deploy resources more efficiently, and take preventative measures to mitigate the impact of sinkholes on the community and infrastructure.", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 703, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2663b813-7343-41a2-a80c-5355c9f7e0b0": {"__data__": {"id_": "2663b813-7343-41a2-a80c-5355c9f7e0b0", "embedding": null, "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "9af3c669-bac0-40fc-b901-cbc5fcd5b2a6", "node_type": "4", "metadata": {"page_number": 36, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "1b6944291962aa8a889d2c5bc5c242af221ae74ee49e46389dd2211013831c59", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Problem Statement\n\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System (SiMCity) to address the issue of sinkholes within the city. The first version of SiMCity should enable residents and city officials to report sinkhole occurrences and track their locations.\n\nThe system should be easy to use, accessible through web and mobile platforms, and track sinkholes in real-time.\n\nResidents should be able to view sinkholes on a map, helping them to avoid such areas. It should also allow residents to report new sinkholes by sending in their location and photographic evidence for verification, or call for help. City officials can remove sinkholes from the map after they have been re-filled and repaired.\n\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and improve the city\u2019s ability to manage and mitigate the impact of these geohazards.\n\n> **Let\u2019s develop this system!**", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 935, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fdae2512-8514-49fb-af28-d91d67f5317f": {"__data__": {"id_": "fdae2512-8514-49fb-af28-d91d67f5317f", "embedding": null, "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "53f7dc9c-e37a-4196-be54-483b167d975b", "node_type": "4", "metadata": {"page_number": 37, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "cdf1fd97ab65aeb50067f0aa89d781ede4a0685fafc25f76c5c301c2fe085e5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# I06 \u2014 Define functional requirements \u23f3 15 min \ud83e\uddd1\ud83d\udcbb\ud83e\uddd1\ud83d\udcbb Pairs\n\nBased on the problem statement, define **functional requirements** for the SiMCity system\n\n
\ncontinued in L07!\n
", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 288, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c81e9f7e-2f7c-43bb-89b8-79ab08c9c730": {"__data__": {"id_": "c81e9f7e-2f7c-43bb-89b8-79ab08c9c730", "embedding": null, "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "3c7aa30f-7357-4b7f-b640-b7f4bcb86dee", "node_type": "4", "metadata": {"page_number": 38, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "79cdad4aee34ccd5e70c0630f42832e3e28d74e298e2b851db001bb3f14d3b87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# Take-Away: Overview of requirements elicitation\n\n* User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and stakeholders\n* Effective Communication: Establish clear and open channels of communication to gather accurate requirements\n* Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving project needs\n* Documentation: Thoroughly document gathered requirements to ensure clarity and alignment throughout the project lifecycle\n\n| YOUR USER REQUIREMENTS INCLUDE FOUR HUNDRED FEATURES. | DO YOU REALIZE THAT NO HUMAN WOULD BE ABLE TO USE A PRODUCT WITH THAT LEVEL OF COMPLEXITY? | GOOD POINT. I'D BETTER ADD \"EASY TO USE\" TO THE LIST. |\n|--------------------------------------------------------|------------------------------------------------------------------------------------------|--------------------------------------------------------|\n| | | |", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 1129, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6164be7f-4986-48ee-b712-c28304adba66": {"__data__": {"id_": "6164be7f-4986-48ee-b712-c28304adba66", "embedding": null, "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "excluded_embed_metadata_keys": [], "excluded_llm_metadata_keys": [], "relationships": {"1": {"node_id": "6e17e445-2582-4888-8765-4b614aa41f47", "node_type": "4", "metadata": {"page_number": 39, "file_name": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf"}, "hash": "f6fee3f79b3378dfa594ba5d4f3fb8e1be81b93c9729db371f175df76d3d64ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "# L06 Requirements Elicitation I\n\nCS 1530 Software Engineering \nNadine von Frankenberg\n\nFall 2025\n\nUniversity of Pittsburgh \nSchool of Computing and Information \nsci.pitt.edu", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 178, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "440cd232-b6f6-4f2d-85bf-b821d0e78f33": {"__data__": {"id_": "440cd232-b6f6-4f2d-85bf-b821d0e78f33", "embedding": null, "metadata": {"page_label": "1", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f3a61259-32ca-4b6e-aee5-d3566d5f791f", "node_type": "4", "metadata": {"page_label": "1", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c1a7626c4b56c36d6d75a537ed97e47b04ab43dc2a6752cf35b0a5d00c2bba8a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 1\n128 S.Ct. 2783\nSupreme Court of the United States\nDISTRICT OF COLUMBIA et al., Petitioners,\nv.\nDick Anthony HELLER.\nNo. 07\u2013290.\n|\nArgued March 18, 2008.\n|\nDecided June 26, 2008.\nSynopsis\nBackground: Special police officer and others brought action seeking, on Second Amendment grounds, to enjoin District of\nColumbia from enforcing gun-control statutes. The United States District Court for the District of Columbia, Sullivan, J., 311\nF.Supp.2d 103, granted District of Columbia's motion to dismiss, and appeal was taken. The District of Columbia Court of\nAppeals, Silberman, Senior Circuit Judge, 478 F.3d 370, reversed. Certiorari was granted.\nHoldings: The Supreme Court, Justice Scalia, held that:\nthe Second Amendment conferred an individual right to keep and bear arms;\nstatutes banning handgun possession in the home violated Second Amendment; and\nstatute containing prohibition against rendering any lawful firearm in the home operable for purpose of immediate self-defense\nviolated Second Amendment.\nAffirmed.\nJustice Stevens filed dissenting opinion in which Justices Souter, Ginsburg, and Breyer joined.\nJustice Breyer filed dissenting opinion in which Justices Stevens, Souter, and Ginsburg joined.\nProcedural Posture(s): Motion to Dismiss.\nWest Codenotes\nHeld Unconstitutional\nD.C. Official Code, 2001 Ed. \u00a7 7-2507.02.\nLimited on Constitutional Grounds\nD.C. Official Code, 2001 Ed. \u00a7 7-2502.02.\n**2785 Syllabus *", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1628, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "caa23d73-62d8-421e-8d8e-be748af860a1": {"__data__": {"id_": "caa23d73-62d8-421e-8d8e-be748af860a1", "embedding": null, "metadata": {"page_label": "2", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "06404be2-f5ed-4c2f-8b26-2cd30b9f9c51", "node_type": "4", "metadata": {"page_label": "2", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0bda12e909b31cb5a35537e1447eeef531273f43b458e6e76a45fc54bd88a36a", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "f72bb77e-280f-48cc-b8d8-cb49f491a3da", "node_type": "1", "metadata": {}, "hash": "3fab74c765c640cf5e5eadeb50180083eee9c842daacf2689ac2dcc03eb9e9dd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 2\nDistrict of Columbia law bans handgun possession by making it a crime to carry an unregistered firearm and prohibiting the\nregistration of handguns; provides separately that no person may carry an unlicensed handgun, but authorizes the police chief\nto issue 1\u2013year licenses; and requires residents to keep lawfully owned firearms unloaded and dissembled or bound by a trigger\nlock or similar device. Respondent Heller, a D.C. special policeman, applied to register a handgun he wished to keep at home,\nbut the District refused. He filed this suit seeking, on Second Amendment grounds, to enjoin the city from enforcing the bar\non handgun registration, the licensing requirement insofar as it prohibits carrying an unlicensed firearm in the home, and the\ntrigger-lock requirement insofar as it prohibits the use of functional firearms in the home. The **2786 District Court dismissed\nthe suit, but the D.C. Circuit reversed, holding that the Second Amendment protects an individual's right to possess firearms\nand that the city's total ban on handguns, as well as its requirement that firearms in the home be kept nonfunctional even when\nnecessary for self-defense, violated that right.\nHeld:\n1. The Second Amendment protects an individual right to possess a firearm unconnected with service in a militia, and to use\nthat arm for traditionally lawful purposes, such as self-defense within the home. Pp. 2788 \u2013 2816.\n(a) The Amendment's prefatory clause announces a purpose, but does not limit or expand the scope of the second part, the\noperative clause. The operative clause's text and history demonstrate that it connotes an individual right to keep and bear arms.\nPp. 2788 \u2013 2799.\n(b) The prefatory clause comports with the Court's interpretation of the operative clause. The \u201cmilitia\u201d comprised all males\nphysically capable of acting in concert for the common defense. The Antifederalists feared that the Federal Government would\ndisarm the people in order to disable this citizens' militia, enabling a politicized standing army or a select militia to rule. The\nresponse was to deny Congress power to abridge the ancient right of individuals to keep and bear arms, so that the ideal of a\ncitizens' militia would be preserved. Pp. 2799 \u2013 2803.\n(c) The Court's interpretation is confirmed by analogous arms-bearing rights in state constitutions that preceded and immediately\nfollowed the Second Amendment. Pp. 2802 \u2013 2804.\n(d) The Second Amendment's drafting history, while of dubious interpretive worth, reveals three state Second Amendment\nproposals that unequivocally referred to an individual right to bear arms. P. 2804.\n(e) Interpretation of the Second Amendment by scholars, courts, and legislators, from immediately after its ratification through\nthe late 19th century, also supports the Court's conclusion. Pp. 2804 \u2013 2812.\n(f) None of the Court's precedents forecloses the Court's interpretation. Neither United States v. Cruikshank, 92 U.S. 542, 553, 23\nL.Ed. 588, nor Presser v. Illinois, 116 U.S. 252, 264\u2013265, 6 S.Ct. 580, 29 L.Ed. 615, refutes the individual-rights interpretation.\nUnited States v. Miller, 307 U.S. 174, 59 S.Ct. 816, 83 L.Ed. 1206 , does not limit the right to keep and bear arms to militia\npurposes, but rather limits the type of weapon to which the right applies to those used by the militia, i.e., those in common use\nfor lawful purposes. Pp. 2812 \u2013 2816.\n2. Like most rights, the Second Amendment right is not unlimited. It is not a right to keep and carry any weapon whatsoever\nin any manner whatsoever and for whatever purpose: For example, concealed weapons prohibitions have been upheld under\nthe Amendment or state analogues.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3871, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f72bb77e-280f-48cc-b8d8-cb49f491a3da": {"__data__": {"id_": "f72bb77e-280f-48cc-b8d8-cb49f491a3da", "embedding": null, "metadata": {"page_label": "2", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "06404be2-f5ed-4c2f-8b26-2cd30b9f9c51", "node_type": "4", "metadata": {"page_label": "2", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0bda12e909b31cb5a35537e1447eeef531273f43b458e6e76a45fc54bd88a36a", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "caa23d73-62d8-421e-8d8e-be748af860a1", "node_type": "1", "metadata": {"page_label": "2", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c1a2627ae24fa18180140556c07bb38daa1d0a7c70aed33927011426d918cc5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "588, nor Presser v. Illinois, 116 U.S. 252, 264\u2013265, 6 S.Ct. 580, 29 L.Ed. 615, refutes the individual-rights interpretation.\nUnited States v. Miller, 307 U.S. 174, 59 S.Ct. 816, 83 L.Ed. 1206 , does not limit the right to keep and bear arms to militia\npurposes, but rather limits the type of weapon to which the right applies to those used by the militia, i.e., those in common use\nfor lawful purposes. Pp. 2812 \u2013 2816.\n2. Like most rights, the Second Amendment right is not unlimited. It is not a right to keep and carry any weapon whatsoever\nin any manner whatsoever and for whatever purpose: For example, concealed weapons prohibitions have been upheld under\nthe Amendment or state analogues. The Court's opinion should not be taken to cast doubt on longstanding prohibitions on the\npossession of firearms by felons and the mentally ill, or laws forbidding the carrying of firearms in sensitive places such as\nschools and government buildings, or laws imposing conditions and qualifications on the commercial sale of arms. Miller's\nholding that the sorts of weapons protected are those \u201cin common use at the time\u201d finds support in the historical tradition of\nprohibiting the carrying of dangerous and unusual weapons. Pp. 2816 \u2013 2817.", "mimetype": "text/plain", "start_char_idx": 3175, "end_char_idx": 4413, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "349ad651-5541-4d39-a543-6878cc4088a0": {"__data__": {"id_": "349ad651-5541-4d39-a543-6878cc4088a0", "embedding": null, "metadata": {"page_label": "3", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6b2e297e-cc31-4af2-925e-7a7e882b9bc4", "node_type": "4", "metadata": {"page_label": "3", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d6ed8a787c8b6d7d4ccad0c313ac2342a96accef56e04df8b9035793574ccd63", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 3\n3. The handgun ban and the trigger-lock requirement (as applied to self-defense) violate the Second Amendment. **2787 The\nDistrict's total ban on handgun possession in the home amounts to a prohibition on an entire class of \u201carms\u201d that Americans\noverwhelmingly choose for the lawful purpose of self-defense. Under any of the standards of scrutiny the Court has applied\nto enumerated constitutional rights, this prohibition\u2014in the place where the importance of the lawful defense of self, family,\nand property is most acute\u2014would fail constitutional muster. Similarly, the requirement that any lawful firearm in the home be\ndisassembled or bound by a trigger lock makes it impossible for citizens to use arms for the core lawful purpose of self-defense\nand is hence unconstitutional. Because Heller conceded at oral argument that the D.C. licensing law is permissible if it is not\nenforced arbitrarily and capriciously, the Court assumes that a license will satisfy his prayer for relief and does not address the\nlicensing requirement. Assuming he is not disqualified from exercising Second Amendment rights, the District must permit\nHeller to register his handgun and must issue him a license to carry it in the home. Pp. 2817 \u2013 2822.\n478 F.3d 370, affirmed.\nSCALIA, J., delivered the opinion of the Court, in which ROBERTS, C.J., and KENNEDY, THOMAS, and ALITO, JJ., joined.\nSTEVENS, J., filed a dissenting opinion, in which SOUTER, GINSBURG, and BREYER, JJ., joined, post, pp. 2822 \u2013 2847.\nBREYER, J., filed a dissenting opinion, in which STEVENS, SOUTER, and GINSBURG, JJ., joined, post, pp. 2847 \u2013 2870.\nAttorneys and Law Firms\nWalter Dellinger, for petitioners.\nPaul D. Clement, for the United States as amicus curiae, by special leave of the Court.\nAlan Gura, for respondent.\nThomas C. Goldstein , Christopher M. Egleson , Akin Gump Strauss Hauer & Feld LLP, Washington, DC, Walter Dellinger,\nMatthew M. Shors , Mark S. Davies , Brianne J. Gorod , Not admitted in D.C.; supervised by principals of the firm, Joseph\nBlocher, Not admitted in D.C.; supervised by principals of the firm, O'Melveny & Myers LLP, Washington, DC, Peter J. Nickles,\nInterim Attorney General, Todd S. Kim, Solicitor General, Counsel of Record, Donna M. Murasky, Deputy Solicitor, General,\nLutz Alexander Prager, Office of the Attorney General for the District of Columbia, Washington, DC, Robert A. Long, Jonathan\nL. Marcus, Covington & Burling LLP, Washington, DC, for Petitioners.\nAlan Gura , Counsel of Record, Robert A. Levy, Clark M. Neily III , Gura & Possessky, PLLC, Alexandria, Virginia, for\nRespondents.\nFrederick L. Whitmer, Thelen Reid Brown, Raysman & Steiner LLP, New York, NY , Charles M. Dyke, Counsel of Record,\nThelen Reid Brown, Raysman & Steiner LLP, San Francisco, CA, Charles M. English, Jeffrey R. Gans, Elizabeth M. Walsh,\nEmily A. Jones, Laura P. Bourgeois, Thelen Reid Brown, Raysman & Steiner LLP, Washington, DC, for Professors of Linguistics\nand English Dennis E. Baron, Ph.D., Richard W. Bailey, Ph.D. and Jeffrey P. Kaplan, Ph.D. in Support of Petitioners.\nOpinion\nJustice SCALIA delivered the opinion of the Court.\n*573 We consider whether a District of Columbia prohibition on the possession of **2788 usable handguns in the home\nviolates the Second Amendment to the Constitution.\n*574 I", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3506, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f326ebd3-a8e9-4d5c-8f3f-562d5c67bb88": {"__data__": {"id_": "f326ebd3-a8e9-4d5c-8f3f-562d5c67bb88", "embedding": null, "metadata": {"page_label": "4", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7af7a1be-b0a0-4073-85e1-85bb3b1a090c", "node_type": "4", "metadata": {"page_label": "4", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5e16f4966a9dea600fe18daf00b8ba09676c5c9ae4daf3eb3c4597a3763d1d01", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "f5138396-7f9a-4ff7-b9a4-dea45a933b62", "node_type": "1", "metadata": {}, "hash": "53fd91283f9709ac4dcb4b88140b8bed33fcc40cf3602387759d30b8c8d6d1ae", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 4\nThe District of Columbia generally prohibits the possession of handguns. It is a crime to carry an unregistered *575 firearm,\nand the registration of handguns is prohibited. See D.C.Code \u00a7\u00a7 7\u20132501.01(12), 7\u20132502.01(a), 7\u20132502.02(a)(4) (2001). Wholly\napart from that prohibition, no person may carry a handgun without a license, but the chief of police may issue licenses for\n1\u2013year periods. See \u00a7\u00a7 22\u20134504(a), 22\u20134506. District of Columbia law also requires residents to keep their lawfully owned\nfirearms, such as registered long guns, \u201cunloaded and dissembled or bound by a trigger lock or similar device\u201d unless they are\nlocated in a place of business or are being used for lawful recreational activities. See \u00a7 7\u20132507.02. 1\nRespondent Dick Heller is a D.C. special police officer authorized to carry a handgun while on duty at the Thurgood Marshall\nJudiciary Building. He applied for a registration certificate for a handgun that he wished to keep at home, but the District\nrefused. He thereafter filed a lawsuit in the Federal District Court for the District of Columbia seeking, *576 on Second\nAmendment grounds, to enjoin the city from enforcing the bar on the registration of handguns, the licensing requirement insofar\nas it prohibits the carrying of a firearm in the home without a license, and the trigger-lock requirement insofar as it prohibits\nthe use of \u201cfunctional firearms within the home.\u201d App. 59a. The District Court dismissed respondent's complaint, see Parker v.\nDistrict of Columbia, 311 F.Supp.2d 103, 109 (2004). The Court of Appeals for the District of Columbia Circuit, construing his\ncomplaint as seeking the right to render a firearm operable and carry it about his home in that condition only when necessary\nfor self-defense, 2 reversed, see Parker v. District of Columbia, 478 F.3d 370, 401 (2007). It held that the Second Amendment\nprotects an individual right to possess firearms and that the city's total ban on handguns, as well as its requirement that firearms\nin the home be kept nonfunctional even when necessary for self-defense, violated that right. See id., at 395, 399\u2013401. The Court\nof Appeals directed the District Court to enter summary judgment for respondent.\nWe granted certiorari. 552 U.S. 1035, 128 S.Ct. 645, 169 L.Ed.2d 417 (2007).\nII\nWe turn first to the meaning of the Second Amendment.\nA\n The Second Amendment provides: \u201cA well regulated Militia, being necessary to the security of a free State, the right of the\npeople to keep and bear Arms, shall not be infringed.\u201d In interpreting this text, we are guided by the principle that \u201c[t]he\nConstitution was written to be understood by the voters; its words and phrases were used in their normal and ordinary as\ndistinguished from technical meaning.\u201d United States v. Sprague, 282 U.S. 716, 731, 51 S.Ct. 220, 75 L.Ed. 640 (1931); see also\nGibbons v. Ogden, 9 Wheat. 1, 188, 6 L.Ed. 23 (1824) . Normal meaning may of *577 course include an idiomatic meaning,\nbut it excludes secret or technical meanings that would not have been known to ordinary citizens in the founding generation.\n**2789 The two sides in this case have set out very different interpretations of the Amendment. Petitioners and today's\ndissenting Justices believe that it protects only the right to possess and carry a firearm in connection with militia service. See\nBrief for Petitioners 11\u201312; post, at 2822 (STEVENS, J., dissenting). Respondent argues that it protects an individual right\nto possess a firearm unconnected with service in a militia, and to use that arm for traditionally lawful purposes, such as self-\ndefense within the home. See Brief for Respondent 2\u20134.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3852, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f5138396-7f9a-4ff7-b9a4-dea45a933b62": {"__data__": {"id_": "f5138396-7f9a-4ff7-b9a4-dea45a933b62", "embedding": null, "metadata": {"page_label": "4", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7af7a1be-b0a0-4073-85e1-85bb3b1a090c", "node_type": "4", "metadata": {"page_label": "4", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5e16f4966a9dea600fe18daf00b8ba09676c5c9ae4daf3eb3c4597a3763d1d01", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "f326ebd3-a8e9-4d5c-8f3f-562d5c67bb88", "node_type": "1", "metadata": {"page_label": "4", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "891ae241588ff8d9d61565965020493f747f876a85d6804aa7c56e4c30576bad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1, 188, 6 L.Ed. 23 (1824) . Normal meaning may of *577 course include an idiomatic meaning,\nbut it excludes secret or technical meanings that would not have been known to ordinary citizens in the founding generation.\n**2789 The two sides in this case have set out very different interpretations of the Amendment. Petitioners and today's\ndissenting Justices believe that it protects only the right to possess and carry a firearm in connection with militia service. See\nBrief for Petitioners 11\u201312; post, at 2822 (STEVENS, J., dissenting). Respondent argues that it protects an individual right\nto possess a firearm unconnected with service in a militia, and to use that arm for traditionally lawful purposes, such as self-\ndefense within the home. See Brief for Respondent 2\u20134.\nThe Second Amendment is naturally divided into two parts: its prefatory clause and its operative clause. The former does not\nlimit the latter grammatically, but rather announces a purpose. The Amendment could be rephrased, \u201cBecause a well regulated\nMilitia is necessary to the security of a free State, the right of the people to keep and bear Arms shall not be infringed.\u201d See J.\nTiffany, A Treatise on Government and Constitutional Law \u00a7 585, p. 394 (1867); Brief for Professors of Linguistics and English\nas Amici Curiae 3 (hereinafter Linguists' Brief). Although this structure of the Second Amendment is unique in our Constitution,", "mimetype": "text/plain", "start_char_idx": 3074, "end_char_idx": 4489, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "399928f1-52b9-45fa-b4de-34a17cb2255c": {"__data__": {"id_": "399928f1-52b9-45fa-b4de-34a17cb2255c", "embedding": null, "metadata": {"page_label": "5", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e9b4ed23-6302-454e-856a-b46b2e1ad595", "node_type": "4", "metadata": {"page_label": "5", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d8ea012de97845328cde1c2324e0a448fb246bbcbeb54df39edef1665a8e9e38", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "c3aa7a63-78be-42b7-ba50-b186b28f1709", "node_type": "1", "metadata": {}, "hash": "b15f6b16526b5a2539db77505ac1dd6e8e6d8fca48d3fe09a37dab8b59f61b60", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 5\nother legal documents of the founding era, particularly individual-rights provisions of state constitutions, commonly included\na prefatory statement of purpose. See generally V olokh, The Commonplace Second Amendment, 73 N.Y .U.L.Rev. 793, 814\u2013\n821 (1998).\n Logic demands that there be a link between the stated purpose and the command. The Second Amendment would be nonsensical\nif it read, \u201cA well regulated Militia, being necessary to the security of a free State, the right of the people to petition for redress of\ngrievances shall not be infringed.\u201d That requirement of logical connection may cause a prefatory clause to resolve an ambiguity\nin the operative clause. (\u201cThe *578 separation of church and state being an important objective, the teachings of canons shall\nhave no place in our jurisprudence.\u201d The preface makes clear that the operative clause refers not to canons of interpretation but to\nclergymen.) But apart from that clarifying function, a prefatory clause does not limit or expand the scope of the operative clause.\nSee F. Dwarris, A General Treatise on Statutes 268\u2013269 (P. Potter ed. 1871); T. Sedgwick, The Interpretation and Construction\nof Statutory and Constitutional Law 42\u201345 (2d ed. 1874).3 \u201c \u2018It is nothing unusual in acts ... for the enacting part to go beyond\nthe preamble; the remedy often extends beyond the particular act or mischief which first suggested the necessity of the law.\u2019 \u201d\nJ. Bishop, Commentaries on Written Laws and Their Interpretation \u00a7 51, p. 49 (1882) (quoting Rex v. Marks, 3 East 157, 165,\n102 Eng.Rep. 557, 560 (K.B.1802)). Therefore, while we will begin our **2790 textual analysis with the operative clause, we\nwill return to the prefatory clause to ensure that our reading of the operative clause is consistent with the announced purpose.4\n*579 1. Operative Clause.\na. \u201cRight of the People.\u201d The first salient feature of the operative clause is that it codifies a \u201cright of the people.\u201d The unamended\nConstitution and the Bill of Rights use the phrase \u201cright of the people\u201d two other times, in the First Amendment's Assembly\u2013\nand\u2013Petition Clause and in the Fourth Amendment's Search\u2013and\u2013Seizure Clause. The Ninth Amendment uses very similar\nterminology (\u201cThe enumeration in the Constitution, of certain rights, shall not be construed to deny or disparage others retained\nby the people\u201d). All three of these instances unambiguously refer to individual rights, not \u201ccollective\u201d rights, or rights that may\nbe exercised only through participation in some corporate body.5\nThree provisions of the Constitution refer to \u201cthe people\u201d in a context other than \u201crights\u201d\u2014the famous preamble (\u201cWe the\npeople\u201d), \u00a7 2 of Article I (providing that \u201cthe people\u201d will choose members of the House), and the Tenth Amendment (providing\nthat those powers not given the Federal Government remain with \u201cthe States\u201d or \u201cthe people\u201d). Those provisions arguably refer\nto \u201cthe people\u201d acting collectively\u2014 *580 but they deal with the exercise or reservation of powers, not rights. Nowhere else\nin the Constitution does a \u201cright\u201d attributed to \u201cthe people\u201d refer to anything other than an individual right.6\nWhat is more, in all six other provisions of the Constitution that mention \u201cthe people,\u201d the term unambiguously refers to all\nmembers of the political community, not **2791 an unspecified subset. As we said in United States v. Verdugo\u2013Urquidez, 494\nU.S. 259, 265, 110 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3620, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c3aa7a63-78be-42b7-ba50-b186b28f1709": {"__data__": {"id_": "c3aa7a63-78be-42b7-ba50-b186b28f1709", "embedding": null, "metadata": {"page_label": "5", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e9b4ed23-6302-454e-856a-b46b2e1ad595", "node_type": "4", "metadata": {"page_label": "5", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d8ea012de97845328cde1c2324e0a448fb246bbcbeb54df39edef1665a8e9e38", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "399928f1-52b9-45fa-b4de-34a17cb2255c", "node_type": "1", "metadata": {"page_label": "5", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1f1ead352d8793e2be2949a7b37eb735ed671ef19ca96ce25dfad4345843f435", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Those provisions arguably refer\nto \u201cthe people\u201d acting collectively\u2014 *580 but they deal with the exercise or reservation of powers, not rights. Nowhere else\nin the Constitution does a \u201cright\u201d attributed to \u201cthe people\u201d refer to anything other than an individual right.6\nWhat is more, in all six other provisions of the Constitution that mention \u201cthe people,\u201d the term unambiguously refers to all\nmembers of the political community, not **2791 an unspecified subset. As we said in United States v. Verdugo\u2013Urquidez, 494\nU.S. 259, 265, 110 S.Ct. 1056, 108 L.Ed.2d 222 (1990):\n\u201c \u2018[T]he people\u2019 seems to have been a term of art employed in select parts of the Constitution .... [Its\nuses] sugges[t] that \u2018the people\u2019 protected by the Fourth Amendment, and by the First and Second\nAmendments, and to whom rights and powers are reserved in the Ninth and Tenth Amendments, refers\nto a class of persons who are part of a national community or who have otherwise developed sufficient\nconnection with this country to be considered part of that community.\u201d\nThis contrasts markedly with the phrase \u201cthe militia\u201d in the prefatory clause. As we will describe below, the \u201cmilitia\u201d in colonial\nAmerica consisted of a subset of \u201cthe people\u201d\u2014those who were male, able bodied, and within a certain age range. Reading the\nSecond Amendment as protecting only the right *581 to \u201ckeep and bear Arms\u201d in an organized militia therefore fits poorly\nwith the operative clause's description of the holder of that right as \u201cthe people.\u201d", "mimetype": "text/plain", "start_char_idx": 3075, "end_char_idx": 4585, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4b6e6cef-8f5c-4187-9b9d-540a013b48e4": {"__data__": {"id_": "4b6e6cef-8f5c-4187-9b9d-540a013b48e4", "embedding": null, "metadata": {"page_label": "6", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f0c6d9b7-c3d0-454f-9d33-da6698bf5202", "node_type": "4", "metadata": {"page_label": "6", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "111c6721eb4de84b2d43acca5d8b139475365b76ff8541ea28ed7f5dcb4eb4e1", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "d1b23f3f-6a56-4e93-8430-d641a8e46441", "node_type": "1", "metadata": {}, "hash": "2f64da8f10aa5b9d7143b25b3545332ad48ec522cedd414a591f8753246f220a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 6\nWe start therefore with a strong presumption that the Second Amendment right is exercised individually and belongs to all\nAmericans.\nb. \u201cKeep and Bear Arms.\u201d We move now from the holder of the right\u2014\u201cthe people\u201d\u2014to the substance of the right: \u201cto keep\nand bear Arms.\u201d\nBefore addressing the verbs \u201ckeep\u201d and \u201cbear,\u201d we interpret their object: \u201cArms.\u201d The 18th-century meaning is no different\nfrom the meaning today. The 1773 edition of Samuel Johnson's dictionary defined \u201carms\u201d as \u201c[w]eapons of offence, or armour\nof defence.\u201d 1 Dictionary of the English Language 106 (4th ed.) (reprinted 1978) (hereinafter Johnson). Timothy Cunningham's\nimportant 1771 legal dictionary defined \u201carms\u201d as \u201cany thing that a man wears for his defence, or takes into his hands, or useth\nin wrath to cast at or strike another.\u201d 1 A New and Complete Law Dictionary; see also N. Webster, American Dictionary of the\nEnglish Language (1828) (reprinted 1989) (hereinafter Webster) (similar).\nThe term was applied, then as now, to weapons that were not specifically designed for military use and were not employed in a\nmilitary capacity. For instance, Cunningham's legal dictionary gave as an example of usage: \u201cServants and labourers shall use\nbows and arrows on Sundays, & c. and not bear other arms.\u201d See also, e.g., An Act for the trial of Negroes, 1797 Del. Laws ch.\nXLIII, \u00a7 6, in 1 First Laws of the State of Delaware 102, 104 (J. Cushing ed.1981 (pt. 1)); see generally State v. Duke, 42 Tex.\n455, 458 (1874) (citing decisions of state courts construing \u201carms\u201d). Although one founding-era thesaurus limited \u201carms\u201d (as\nopposed to \u201cweapons\u201d) to \u201cinstruments of offence generally made use of in war,\u201d even that source stated that all firearms\nconstituted \u201carms.\u201d 1 J. Trusler, The Distinction Between Words Esteemed *582 Synonymous in the English Language 37\n(3d ed. 1794) (emphasis added).\n Some have made the argument, bordering on the frivolous, that only those arms in existence in the 18th century are protected\nby the Second Amendment. We do not interpret constitutional rights that way. Just as the First Amendment protects modern\nforms of communications, e.g., Reno v. American Civil Liberties Union, 521 U.S. 844, 849, 117 S.Ct. 2329, 138 L.Ed.2d 874\n(1997), and the Fourth Amendment applies to modern forms of search, e.g., Kyllo v. United States, 533 U.S. 27, 35\u201336, 121\nS.Ct. 2038, 150 L.Ed.2d 94 (2001) , the Second Amendment extends, **2792 prima facie, to all instruments that constitute\nbearable arms, even those that were not in existence at the time of the founding.\n We turn to the phrases \u201ckeep arms\u201d and \u201cbear arms.\u201d Johnson defined \u201ckeep\u201d as, most relevantly, \u201c[t]o retain; not to lose,\u201d and\n\u201c[t]o have in custody.\u201d Johnson 1095. Webster defined it as \u201c[t]o hold; to retain in one's power or possession.\u201d No party has\napprised us of an idiomatic meaning of \u201ckeep Arms.\u201d Thus, the most natural reading of \u201ckeep Arms\u201d in the Second Amendment\nis to \u201chave weapons.\u201d\nThe phrase \u201ckeep arms\u201d was not prevalent in the written documents of the founding period that we have found, but there are\na few examples, all of which favor viewing the right to \u201ckeep Arms\u201d as an individual right unconnected with militia service.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3414, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d1b23f3f-6a56-4e93-8430-d641a8e46441": {"__data__": {"id_": "d1b23f3f-6a56-4e93-8430-d641a8e46441", "embedding": null, "metadata": {"page_label": "6", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f0c6d9b7-c3d0-454f-9d33-da6698bf5202", "node_type": "4", "metadata": {"page_label": "6", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "111c6721eb4de84b2d43acca5d8b139475365b76ff8541ea28ed7f5dcb4eb4e1", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "4b6e6cef-8f5c-4187-9b9d-540a013b48e4", "node_type": "1", "metadata": {"page_label": "6", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "65f2198d31471d84ea1d894cddfc05659a196c9630d56bd5af5ef45df99400be", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "We turn to the phrases \u201ckeep arms\u201d and \u201cbear arms.\u201d Johnson defined \u201ckeep\u201d as, most relevantly, \u201c[t]o retain; not to lose,\u201d and\n\u201c[t]o have in custody.\u201d Johnson 1095. Webster defined it as \u201c[t]o hold; to retain in one's power or possession.\u201d No party has\napprised us of an idiomatic meaning of \u201ckeep Arms.\u201d Thus, the most natural reading of \u201ckeep Arms\u201d in the Second Amendment\nis to \u201chave weapons.\u201d\nThe phrase \u201ckeep arms\u201d was not prevalent in the written documents of the founding period that we have found, but there are\na few examples, all of which favor viewing the right to \u201ckeep Arms\u201d as an individual right unconnected with militia service.\nWilliam Blackstone, for example, wrote that Catholics convicted of not attending service in the Church of England suffered\ncertain penalties, one of which was that they were not permitted to \u201ckeep arms in their houses.\u201d 4 Commentaries on the Laws\nof England 55 (1769) (hereinafter Blackstone); see also 1 W. & M., ch. 15, \u00a7 4, in 3 Eng. Stat. at Large 422 (1689) (\u201c[N]o\nPapist ... shall or may have or keep in his House ... any Arms ...\u201d); 1 W. Hawkins, Treatise on the Pleas of the Crown 26 (1771)\n(similar). Petitioners point to militia laws of the founding period that required militia members to \u201ckeep\u201d arms in connection\nwith *583 militia service, and they conclude from this that the phrase \u201ckeep Arms\u201d has a militia-related connotation. See\nBrief for Petitioners 16\u201317 (citing laws of Delaware, New Jersey, and Virginia). This is rather like saying that, since there are\nmany statutes that authorize aggrieved employees to \u201cfile complaints\u201d with federal agencies, the phrase \u201cfile complaints\u201d has\nan employment-related connotation. \u201cKeep arms\u201d was simply a common way of referring to possessing arms, for militiamen\nand everyone else. 7", "mimetype": "text/plain", "start_char_idx": 2769, "end_char_idx": 4560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3265af36-ab5e-4f9a-845e-da4cee60776b": {"__data__": {"id_": "3265af36-ab5e-4f9a-845e-da4cee60776b", "embedding": null, "metadata": {"page_label": "7", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "924e4d4f-013e-42c4-b985-9159ad2887f4", "node_type": "4", "metadata": {"page_label": "7", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f200e50f2d8184c299b98388673bf037d94f4376efe8b89de4a1eeb35613862d", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "4dd31aea-b426-44a7-90b8-4934175498d2", "node_type": "1", "metadata": {}, "hash": "dccf6e4a5b816384fa2aaf65df6f653c8f0bcc5c7aaddf9ee6c59deff1ce5096", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 7\n**2793 *584 At the time of the founding, as now, to \u201cbear\u201d meant to \u201ccarry.\u201d See Johnson 161; Webster; T. Sheridan,\nA Complete Dictionary of the English Language (1796); 2 Oxford English Dictionary 20 (2d ed.1989) (hereinafter Oxford).\nWhen used with \u201carms,\u201d however, the term has a meaning that refers to carrying for a particular purpose\u2014confrontation. In\nMuscarello v. United States, 524 U.S. 125, 118 S.Ct. 1911, 141 L.Ed.2d 111 (1998) , in the course of analyzing the meaning\nof \u201ccarries a firearm\u201d in a federal criminal statute, Justice GINSBURG wrote that \u201c[s]urely a most familiar meaning is, as the\nConstitution's Second Amendment ... indicate[s]: \u2018wear, bear, or carry ... upon the person or in the clothing or in a pocket, for\nthe purpose ... of being armed and ready for offensive or defensive action in a case of conflict with another person.\u2019 \u201d Id., at 143,\n118 S.Ct. 1911 (dissenting opinion) (quoting Black's Law Dictionary 214 (6th ed.1990)). We think that Justice GINSBURG\naccurately captured the natural meaning of \u201cbear arms.\u201d Although the phrase implies that the carrying of the weapon is for the\npurpose of \u201coffensive or defensive action,\u201d it in no way connotes participation in a structured military organization.\nFrom our review of founding-era sources, we conclude that this natural meaning was also the meaning that \u201cbear arms\u201d had in\nthe 18th century. In numerous instances, \u201cbear arms\u201d was unambiguously used to refer to the carrying of weapons outside of an\norganized militia. The most prominent examples are those most relevant to the Second Amendment: nine state constitutional\nprovisions written in the 18th century or the first two decades of the 19th, which enshrined a right of citizens to \u201cbear arms\nin defense of themselves and the state\u201d or \u201cbear arms in defense of himself and *585 the state.\u201d 8 It is clear from those\nformulations that \u201cbear arms\u201d did not refer only to carrying a weapon in an organized military unit. Justice James Wilson\ninterpreted the Pennsylvania Constitution's arms-bearing right, for example, as a recognition of the natural right of defense \u201cof\none's person or house\u201d\u2014what he called the law of \u201cself preservation.\u201d 2 Collected Works of James Wilson 1142, and n. x (K.\nHall & M. Hall eds.2007) (citing Pa. Const., Art. IX, \u00a7 21 (1790)); see also T. Walker, Introduction to American Law 198 (1837)\n**2794 (\u201cThus the right of self-defence [is] guaranteed by the [Ohio] constitution\u201d); see also id., at 157 (equating Second\nAmendment with that provision of the Ohio Constitution). That was also the interpretation of those state constitutional provisions\nadopted by pre-Civil War state courts.9 These provisions *586 demonstrate\u2014again, in the most analogous linguistic context\n\u2014that \u201cbear arms\u201d was not limited to the carrying of arms in a militia.\nThe phrase \u201cbear Arms\u201d also had at the time of the founding an idiomatic meaning that was significantly different from its\nnatural meaning: \u201cto serve as a soldier, do military service, fight\u201d or \u201cto wage war.\u201d See Linguists' Brief 18; post, at 2827 \u2013 2828\n(STEVENS, J., dissenting). But it unequivocally bore that idiomatic meaning only when followed by the preposition \u201cagainst,\u201d\nwhich was in turn followed by the target of the hostilities. See 2 Oxford 21. (That is how, for example, our Declaration of\nIndependence \u00b6 28 used the phrase: \u201cHe has constrained our fellow Citizens taken Captive on the high Seas to bear Arms against\ntheir Country ....\u201d) Every example given by petitioners' amici for the idiomatic meaning of \u201cbear arms\u201d from the founding period\neither includes the preposition \u201cagainst\u201d or is not clearly idiomatic. See Linguists' Brief 18\u201323.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3879, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4dd31aea-b426-44a7-90b8-4934175498d2": {"__data__": {"id_": "4dd31aea-b426-44a7-90b8-4934175498d2", "embedding": null, "metadata": {"page_label": "7", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "924e4d4f-013e-42c4-b985-9159ad2887f4", "node_type": "4", "metadata": {"page_label": "7", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f200e50f2d8184c299b98388673bf037d94f4376efe8b89de4a1eeb35613862d", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "3265af36-ab5e-4f9a-845e-da4cee60776b", "node_type": "1", "metadata": {"page_label": "7", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d812c02f2b4431a532f472a84b78b565f166ca597d404cccaa1f95154b92101c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "But it unequivocally bore that idiomatic meaning only when followed by the preposition \u201cagainst,\u201d\nwhich was in turn followed by the target of the hostilities. See 2 Oxford 21. (That is how, for example, our Declaration of\nIndependence \u00b6 28 used the phrase: \u201cHe has constrained our fellow Citizens taken Captive on the high Seas to bear Arms against\ntheir Country ....\u201d) Every example given by petitioners' amici for the idiomatic meaning of \u201cbear arms\u201d from the founding period\neither includes the preposition \u201cagainst\u201d or is not clearly idiomatic. See Linguists' Brief 18\u201323. Without the preposition, \u201cbear\narms\u201d normally meant (as it continues to mean today) what Justice GINSBURG's opinion in Muscarello said.\nIn any event, the meaning of \u201cbear arms\u201d that petitioners and Justice STEVENS propose is not even the (sometimes) idiomatic\nmeaning. Rather, they manufacture a hybrid definition, whereby \u201cbear arms\u201d connotes the actual carrying of arms (and therefore\nis not really an idiom) but only in the service of an organized militia. No dictionary has ever adopted that definition, and we\nhave been apprised of no source that indicates that it carried that meaning at the time of the founding. But it is easy to see\nwhy petitioners and the dissent are driven to the hybrid definition. Giving \u201cbear Arms\u201d its idiomatic meaning would cause the\nprotected right to consist of the right to be a soldier or to wage war\u2014an absurdity that no commentator has ever endorsed. See\nL. Levy, Origins of the Bill of Rights 135 (1999). Worse still, *587 the phrase \u201ckeep and bear Arms\u201d would be incoherent.\nThe word \u201cArms\u201d would have two different meanings at once: \u201cweapons\u201d (as the object of \u201ckeep\u201d) and (as the object of \u201cbear\u201d)\none-half of an idiom. It would be rather like saying \u201cHe filled and kicked the bucket\u201d to mean \u201cHe filled the bucket and died.\u201d\nGrotesque.\nPetitioners justify their limitation of \u201cbear arms\u201d to the military context by pointing out the unremarkable fact that it was often\nused in that context\u2014the same mistake they made with respect to \u201ckeep arms.\u201d It is especially unremarkable that the phrase\nwas often used in a military context in the federal legal sources (such as records of congressional debate) that have been the\nfocus of petitioners' inquiry. Those sources would have had little occasion to use it except in discussions about the standing", "mimetype": "text/plain", "start_char_idx": 3303, "end_char_idx": 5670, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b08b0287-c781-4e9c-a633-4e3d1dd9b864": {"__data__": {"id_": "b08b0287-c781-4e9c-a633-4e3d1dd9b864", "embedding": null, "metadata": {"page_label": "8", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fc9c6221-a543-4ff5-baeb-5b2b1421c3e7", "node_type": "4", "metadata": {"page_label": "8", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8b96eebc38e845bb45886c1e776888fc995ccdb8a47f1ce94eb42c9367e7e6c3", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "cbcb5b53-8510-4887-9300-d896b7c6c4d9", "node_type": "1", "metadata": {}, "hash": "11491993742371c1604e8e3ec864c8aa66833883e9b129cffa3adc1a681be981", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 8\narmy and the militia. And the phrases used primarily in those military discussions include not only \u201cbear arms\u201d but also \u201ccarry\narms,\u201d \u201cpossess arms,\u201d and \u201chave arms\u201d\u2014though no one **2795 thinks that those other phrases also had special military\nmeanings. See Barnett, Was the Right to Keep and Bear Arms Conditioned on Service in an Organized Militia? 83 Texas L.Rev.\n237, 261 (2004). The common references to those \u201cfit to bear arms\u201d in congressional discussions about the militia are matched\nby use of the same phrase in the few nonmilitary federal contexts where the concept would be relevant. See, e.g., 30 Journals\nof Continental Congress 349\u2013351 (J. Fitzpatrick ed.1934). Other legal sources frequently used \u201cbear arms\u201d in nonmilitary\ncontexts. 10 Cunningham's legal dictionary, cited *588 above, gave as an example of its usage a sentence unrelated to military\naffairs (\u201cServants and labourers shall use bows and arrows on Sundays, & c. and not bear other arms\u201d). And if one looks beyond\nlegal sources, \u201cbear arms\u201d was frequently used in nonmilitary contexts. See Cramer & Olson, What Did \u201cBear Arms\u201d Mean in\nthe Second Amendment? 6 Georgetown J.L. & Pub. Pol'y 511 (2008) (identifying numerous nonmilitary uses of \u201cbear arms\u201d\nfrom the founding period).\nJustice STEVENS points to a study by amici supposedly showing that the phrase \u201cbear arms\u201d was most frequently used in\nthe military context. See post, at 2828 \u2013 2829, n. 9; Linguists' Brief 24. Of course, as we have said, the fact that the phrase\nwas commonly used in a particular context does not show that it is limited to that context, and, in any event, we have given\nmany sources where the phrase was used in nonmilitary contexts. Moreover, the study's collection appears to include (who\nknows how many times) the idiomatic phrase \u201cbear arms against,\u201d which is irrelevant. The amici also dismiss examples such\nas \u201c \u2018bear arms ... for the purpose of killing game\u2019 \u201d because those uses are \u201cexpressly *589 qualified.\u201d Linguists' Brief 24.\n(Justice STEVENS uses the same excuse for dismissing the state constitutional provisions analogous to the Second Amendment\nthat identify private-use purposes for which the individual right can be asserted. See post, at 2828.) That analysis is faulty. A\npurposive qualifying phrase that contradicts the word or phrase it modifies is unknown this side of the looking glass **2796\n(except, apparently, in some courses on linguistics). If \u201cbear arms\u201d means, as we think, simply the carrying of arms, a modifier\ncan limit the purpose of the carriage (\u201cfor the purpose of self-defense\u201d or \u201cto make war against the King\u201d). But if \u201cbear arms\u201d\nmeans, as the petitioners and the dissent think, the carrying of arms only for military purposes, one simply cannot add \u201cfor the\npurpose of killing game.\u201d The right \u201cto carry arms in the militia for the purpose of killing game\u201d is worthy of the Mad Hatter.\nThus, these purposive qualifying phrases positively establish that \u201cto bear arms\u201d is not limited to military use.11\n Justice STEVENS places great weight on James Madison's inclusion of a conscientious-objector clause in his original draft of\nthe Second Amendment: \u201cbut no person religiously scrupulous of bearing arms, shall be compelled to render military service\nin person.\u201d Creating the Bill of Rights 12 (H. Veit, K. Bowling, & C. Bickford eds.1991) (hereinafter Veit). He argues that this\nclause establishes that the drafters of the Second Amendment intended \u201cbear Arms\u201d to refer only *590 to military service. See\npost, at 2836. It is always perilous to derive the meaning of an adopted provision from another provision deleted in the drafting\nprocess. 12 In any case, what Justice STEVENS would conclude from the deleted provision does not follow.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3957, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cbcb5b53-8510-4887-9300-d896b7c6c4d9": {"__data__": {"id_": "cbcb5b53-8510-4887-9300-d896b7c6c4d9", "embedding": null, "metadata": {"page_label": "8", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fc9c6221-a543-4ff5-baeb-5b2b1421c3e7", "node_type": "4", "metadata": {"page_label": "8", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8b96eebc38e845bb45886c1e776888fc995ccdb8a47f1ce94eb42c9367e7e6c3", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "b08b0287-c781-4e9c-a633-4e3d1dd9b864", "node_type": "1", "metadata": {"page_label": "8", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "44425b9c1cbb2f2bc09f3d231766db2d3732ad4ff66ec51123b0dbd92c47fdc3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Thus, these purposive qualifying phrases positively establish that \u201cto bear arms\u201d is not limited to military use.11\n Justice STEVENS places great weight on James Madison's inclusion of a conscientious-objector clause in his original draft of\nthe Second Amendment: \u201cbut no person religiously scrupulous of bearing arms, shall be compelled to render military service\nin person.\u201d Creating the Bill of Rights 12 (H. Veit, K. Bowling, & C. Bickford eds.1991) (hereinafter Veit). He argues that this\nclause establishes that the drafters of the Second Amendment intended \u201cbear Arms\u201d to refer only *590 to military service. See\npost, at 2836. It is always perilous to derive the meaning of an adopted provision from another provision deleted in the drafting\nprocess. 12 In any case, what Justice STEVENS would conclude from the deleted provision does not follow. It was not meant to\nexempt from military service those who objected to going to war but had no scruples about personal gunfights. Quakers opposed\nthe use of arms not just for militia service, but for any violent purpose whatsoever\u2014so much so that Quaker frontiersmen were\nforbidden to use arms to defend their families, even though \u201c[i]n such circumstances the temptation to seize a hunting rifle or\nknife in self-defense ... must sometimes have been almost overwhelming.\u201d P. Brock, Pacifism in the United States 359 (1968);\nsee M. Hirst, The Quakers in Peace and War 336\u2013339 (1923); 3 T. Clarkson, Portraiture of Quakerism 103\u2013104 (3d ed. 1807).\nThe Pennsylvania Militia Act of 1757 exempted from service those \u201cscrupling the use of arms \u201d\u2014a phrase that no one contends\nhad an idiomatic meaning. See 5 Stat. at Large of Pa. 613 (J. Mitchell & H. Flanders comm'rs 1898) (emphasis in original).\nThus, the most natural interpretation of Madison's deleted text is that those opposed to carrying weapons for potential violent\nconfrontation would not be \u201ccompelled to render military service,\u201d in which such carrying would be required. 13\n**2797 *591 Finally, Justice STEVENS suggests that \u201ckeep and bear Arms\u201d was some sort of term of art, presumably akin\nto \u201chue and cry\u201d or \u201ccease and desist.\u201d (This suggestion usefully evades the problem that there is no evidence whatsoever to\nsupport a military reading of \u201ckeep arms.\u201d) Justice STEVENS believes that the unitary meaning of \u201ckeep and bear Arms\u201d is\nestablished by the Second Amendment's calling it a \u201cright\u201d (singular) rather than \u201crights\u201d (plural). See post, at 2830 \u2013 2831.\nThere is nothing to this. State constitutions of the founding period routinely grouped multiple (related) guarantees under a", "mimetype": "text/plain", "start_char_idx": 3101, "end_char_idx": 5709, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5277f552-6d6c-46b6-b636-0ffbb583735b": {"__data__": {"id_": "5277f552-6d6c-46b6-b636-0ffbb583735b", "embedding": null, "metadata": {"page_label": "9", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "32f8e853-2230-4c9b-b480-3101b50a35f0", "node_type": "4", "metadata": {"page_label": "9", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "28965ea844771789b36d7a71126afcae549047922ce6dda9917b0b26f6d50208", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "e82c0de1-f6db-40a1-b354-fc85962a0ce2", "node_type": "1", "metadata": {}, "hash": "7387c67c464f06fef4aa1402ed8f3c095bfcf145faa53e3e49705804e17f9176", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 9\nsingular \u201cright,\u201d and the First Amendment protects the \u201cright [singular] of the people peaceably to assemble, and to petition the\nGovernment for a redress of grievances.\u201d See, e.g., Pa. Declaration of Rights \u00a7\u00a7 IX, XII, XVI, in 5 Thorpe 3083\u20133084; Ohio\nConst., Art. VIII, \u00a7\u00a7 11, 19 (1802), in id., at 2910\u20132911.14 And even if \u201ckeep and bear Arms\u201d were a unitary phrase, we find no\nevidence that it bore a military meaning. Although the phrase was not at all common (which would be unusual for a term of art),\nwe have found instances of its use with a clearly nonmilitary connotation. In a 1780 debate in the House of Lords, for example,\nLord Richmond described an order to disarm private *592 citizens (not militia members) as \u201ca violation of the constitutional\nright of Protestant subjects to keep and bear arms for their own defence.\u201d 49 The London Magazine or Gentleman's Monthly\nIntelligencer 467 (1780). In response, another member of Parliament referred to \u201cthe right of bearing arms for personal defence,\u201d\nmaking clear that no special military meaning for \u201ckeep and bear arms\u201d was intended in the discussion. Id., at 467\u2013468. 15\n c. Meaning of the Operative Clause. Putting all of these textual elements together, we find that they guarantee the individual\nright to possess and carry weapons in case of confrontation. This meaning is strongly confirmed by the historical background\nof the Second Amendment. We look to this because it has always been widely understood that the Second Amendment, like the\nFirst and Fourth Amendments, codified a pre-existing right. The very text of the Second Amendment implicitly recognizes the\npre-existence of the right and declares only that it \u201cshall not be infringed.\u201d As we said in United States v. Cruikshank, 92 U.S.\n542, 553, 23 L.Ed. 588 (1876) , \u201c[t]his is not a right granted by the Constitution. Neither is it in any manner dependent upon\nthat instrument for its existence. The second **2798 amendment declares that it shall not be infringed ....\u201d 16\nBetween the Restoration and the Glorious Revolution, the Stuart Kings Charles II and James II succeeded in using select militias\nloyal to them to suppress political dissidents, in part by disarming their opponents. See J. Malcolm, To Keep and Bear Arms\n31\u201353 (1994) (hereinafter Malcolm); L. Schwoerer, The Declaration of Rights, 1689, p. 76 (1981). *593 Under the auspices\nof the 1671 Game Act, for example, the Catholic Charles II had ordered general disarmaments of regions home to his Protestant\nenemies. See Malcolm 103\u2013106. These experiences caused Englishmen to be extremely wary of concentrated military forces run\nby the state and to be jealous of their arms. They accordingly obtained an assurance from William and Mary, in the Declaration\nof Rights (which was codified as the English Bill of Rights), that Protestants would never be disarmed: \u201cThat the Subjects which\nare Protestants, may have Arms for their Defence suitable to their Conditions, and as allowed by Law.\u201d 1 W. & M., ch. 2, \u00a7\n7, in 3 Eng. Stat. at Large 441. This right has long been understood to be the predecessor to our Second Amendment. See E.\nDumbauld, The Bill of Rights and What It Means Today 51 (1957); W. Rawle, A View of the Constitution of the United States\nof America 122 (1825) (hereinafter Rawle). It was clearly an individual right, having nothing whatever to do with service in a\nmilitia. To be sure, it was an individual right not available to the whole population, given that it was restricted to Protestants,\nand like all written English rights it was held only against the Crown, not Parliament.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3804, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e82c0de1-f6db-40a1-b354-fc85962a0ce2": {"__data__": {"id_": "e82c0de1-f6db-40a1-b354-fc85962a0ce2", "embedding": null, "metadata": {"page_label": "9", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "32f8e853-2230-4c9b-b480-3101b50a35f0", "node_type": "4", "metadata": {"page_label": "9", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "28965ea844771789b36d7a71126afcae549047922ce6dda9917b0b26f6d50208", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "5277f552-6d6c-46b6-b636-0ffbb583735b", "node_type": "1", "metadata": {"page_label": "9", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "3afb25393ba8506a9bd94b93b8100bd1606432adf40498b5e02747dea7dab3fa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "& M., ch. 2, \u00a7\n7, in 3 Eng. Stat. at Large 441. This right has long been understood to be the predecessor to our Second Amendment. See E.\nDumbauld, The Bill of Rights and What It Means Today 51 (1957); W. Rawle, A View of the Constitution of the United States\nof America 122 (1825) (hereinafter Rawle). It was clearly an individual right, having nothing whatever to do with service in a\nmilitia. To be sure, it was an individual right not available to the whole population, given that it was restricted to Protestants,\nand like all written English rights it was held only against the Crown, not Parliament. See Schwoerer, To Hold and Bear Arms:\nThe English Perspective, in Bogus 207, 218; but see 3 J. Story, Commentaries on the Constitution of the United States \u00a7 1858\n(1833) (hereinafter Story) (contending that the \u201cright to bear arms\u201d is a \u201climitatio[n] upon the power of parliament\u201d as well).\nBut it was secured to them as individuals, according to \u201clibertarian political principles,\u201d not as members of a fighting force.\nSchwoerer, Declaration of Rights, at 283; see also id., at 78; G. Jellinek, The Declaration of the Rights of Man and of Citizens\n49, and n. 7 (1901) (reprinted 1979).\nBy the time of the founding, the right to have arms had become fundamental for English subjects. See Malcolm 122\u2013\n134. Blackstone, whose works, we have said, \u201cconstituted the preeminent authority on English law for the founding *594\ngeneration,\u201d Alden v. Maine, 527 U.S. 706, 715, 119 S.Ct. 2240, 144 L.Ed.2d 636 (1999) , cited the arms provision of the Bill\nof Rights as one of the fundamental rights of Englishmen. See 1 Blackstone 136, 139\u2013140 (1765). His description of it cannot\npossibly be thought to tie it to militia or military service. It was, he said, \u201cthe natural right of resistance and self-preservation,\u201d id.,\nat 139, and \u201cthe right of having and using arms for self-preservation and defence,\u201d id., at 140; see also 3 id., at 2\u20134 (1768). Other\ncontemporary authorities concurred. See G. Sharp, Tracts, Concerning the Ancient and Only True Legal Means of National\nDefence, by a Free Militia 17\u201318, 27 (3d ed. 1782); 2 J. de Lolme, The Rise and Progress of the English Constitution 886\u2013887\n(1784) (A. Stephens ed. 1838); W. Blizard, Desultory Reflections on Police 59\u201360 (1785). Thus, the right secured in 1689 as\na result of the Stuarts' abuses was by the time of the founding understood to be an individual **2799 right protecting against\nboth public and private violence.", "mimetype": "text/plain", "start_char_idx": 3198, "end_char_idx": 5679, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca8c7592-4a9b-4e16-96df-a633ac2dbf6d": {"__data__": {"id_": "ca8c7592-4a9b-4e16-96df-a633ac2dbf6d", "embedding": null, "metadata": {"page_label": "10", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ff9de819-784b-4c17-8647-808862e8ae44", "node_type": "4", "metadata": {"page_label": "10", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "66ecf8f70af3f76e7ac4f9c526d4840291f8c218e2563903e7b7cfd003486cdf", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "865bece9-a27e-4be4-914a-4be381469195", "node_type": "1", "metadata": {}, "hash": "c2bbaa3c177ee5c0bcb94f0b35413744dea63d372e09511c427eb4cec527e2ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 10\nAnd, of course, what the Stuarts had tried to do to their political enemies, George III had tried to do to the colonists. In the\ntumultuous decades of the 1760's and 1770's, the Crown began to disarm the inhabitants of the most rebellious areas. That\nprovoked polemical reactions by Americans invoking their rights as Englishmen to keep arms. A New York article of April 1769\nsaid that \u201c[i]t is a natural right which the people have reserved to themselves, confirmed by the Bill of Rights, to keep arms for\ntheir own defence.\u201d A Journal of the Times: Mar. 17, New York Journal, Supp. 1, Apr. 13, 1769, in Boston Under Military Rule\n79 (O. Dickerson ed.1936) (reprinted 1970); see also, e.g., Shippen, Boston Gazette, Jan. 30, 1769, in 1 The Writings of Samuel\nAdams 299 (H. Cushing ed. 1904) (reprinted 1968). They understood the right to enable individuals to defend themselves. As\nthe most important early American edition of Blackstone's Commentaries (by the law professor and former Antifederalist St.\nGeorge Tucker) made clear in the notes to the *595 description of the arms right, Americans understood the \u201cright of self-\npreservation\u201d as permitting a citizen to \u201crepe[l] force by force\u201d when \u201cthe intervention of society in his behalf, may be too late\nto prevent an injury.\u201d 1 Blackstone's Commentaries 145\u2013146, n. 42 (1803) (hereinafter Tucker's Blackstone). See also W. Duer,\nOutlines of the Constitutional Jurisprudence of the United States 31\u201332 (1833).\n There seems to us no doubt, on the basis of both text and history, that the Second Amendment conferred an individual right to\nkeep and bear arms. Of course the right was not unlimited, just as the First Amendment's right of free speech was not, see, e.g.,\nUnited States v. Williams, 553 U.S. 285, 128 S.Ct. 1830, 170 L.Ed.2d 650 (2008). Thus, we do not read the Second Amendment\nto protect the right of citizens to carry arms for any sort of confrontation, just as we do not read the First Amendment to\nprotect the right of citizens to speak for any purpose. Before turning to limitations upon the individual right, however, we must\ndetermine whether the prefatory clause of the Second Amendment comports with our interpretation of the operative clause.\n2. Prefatory Clause.\nThe prefatory clause reads: \u201cA well regulated Militia, being necessary to the security of a free State ....\u201d\na. \u201cWell\u2013Regulated Militia.\u201d In United States v. Miller, 307 U.S. 174, 179, 59 S.Ct. 816, 83 L.Ed. 1206 (1939), we explained\nthat \u201cthe Militia comprised all males physically capable of acting in concert for the common defense.\u201d That definition comports\nwith founding-era sources. See, e.g., Webster (\u201cThe militia of a country are the able bodied men organized into companies,\nregiments and brigades ... and required by law to attend military exercises on certain days only, but at other times left to pursue\ntheir usual occupations\u201d); The Federalist No. 46, pp. 329, 334 (B. Wright ed.1961) (J. Madison) (\u201cnear half a million of citizens\nwith arms in their hands\u201d); Letter to Destutt de Tracy (Jan. 26, 1811), in The Portable Thomas *596 Jefferson 520, 524 (M.\nPeterson ed. 1975) (\u201cthe militia of the State, that is to say, of every man in it able to bear arms\u201d).\nPetitioners take a seemingly narrower view of the militia, stating that \u201c[m]ilitias are the state- and congressionally-regulated\nmilitary forces described in the Militia Clauses (art. I, \u00a7 8, cls.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3617, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "865bece9-a27e-4be4-914a-4be381469195": {"__data__": {"id_": "865bece9-a27e-4be4-914a-4be381469195", "embedding": null, "metadata": {"page_label": "10", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ff9de819-784b-4c17-8647-808862e8ae44", "node_type": "4", "metadata": {"page_label": "10", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "66ecf8f70af3f76e7ac4f9c526d4840291f8c218e2563903e7b7cfd003486cdf", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "ca8c7592-4a9b-4e16-96df-a633ac2dbf6d", "node_type": "1", "metadata": {"page_label": "10", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8b0b122fb5e903d957379f789f8ba6cf659d53ffbe568caacb04fa72f81deea9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "46, pp. 329, 334 (B. Wright ed.1961) (J. Madison) (\u201cnear half a million of citizens\nwith arms in their hands\u201d); Letter to Destutt de Tracy (Jan. 26, 1811), in The Portable Thomas *596 Jefferson 520, 524 (M.\nPeterson ed. 1975) (\u201cthe militia of the State, that is to say, of every man in it able to bear arms\u201d).\nPetitioners take a seemingly narrower view of the militia, stating that \u201c[m]ilitias are the state- and congressionally-regulated\nmilitary forces described in the Militia Clauses (art. I, \u00a7 8, cls. 15\u201316).\u201d Brief for Petitioners 12. Although we agree with\npetitioners' interpretive assumption that \u201cmilitia\u201d means the same thing in Article I **2800 and the Second Amendment, we\nbelieve that petitioners identify the wrong thing, namely, the organized militia. Unlike armies and navies, which Congress is\ngiven the power to create (\u201cto raise ... Armies\u201d; \u201cto provide ... a Navy,\u201d Art. I, \u00a7 8, cls. 12\u201313), the militia is assumed by Article\nI already to be in existence. Congress is given the power to \u201cprovide for calling forth the Militia,\u201d \u00a7 8, cl. 15; and the power\nnot to create, but to \u201corganiz[e]\u201d it\u2014and not to organize \u201ca\u201d militia, which is what one would expect if the militia were to be a\nfederal creation, but to organize \u201cthe\u201d militia, connoting a body already in existence, ibid., cl. 16. This is fully consistent with the\nordinary definition of the militia as all able-bodied men. From that pool, Congress has plenary power to organize the units that\nwill make up an effective fighting force. That is what Congress did in the first Militia Act, which specified that \u201ceach and every\nfree able-bodied white male citizen of the respective states, resident therein, who is or shall be of the age of eighteen years, and\nunder the age of forty-five years (except as is herein after excepted) shall severally and respectively be enrolled in the militia.\u201d\nAct of May 8, 1792, 1 Stat. 271. To be sure, Congress need not conscript every able-bodied man into the militia, because nothing\nin Article I suggests that in exercising its power to organize, discipline, and arm the militia, Congress must focus upon the entire\nbody. Although the militia consists of all able-bodied men, the federally organized militia may consist of a subset of them.", "mimetype": "text/plain", "start_char_idx": 3110, "end_char_idx": 5368, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f023a46b-7a71-4216-a144-02688eff4aaf": {"__data__": {"id_": "f023a46b-7a71-4216-a144-02688eff4aaf", "embedding": null, "metadata": {"page_label": "11", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ce801ccf-e814-4685-b425-5d7543da3593", "node_type": "4", "metadata": {"page_label": "11", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9e9de1c2f7341b69b29509d5dd0e38b7bc5e213c473a52c7845bff4495aefb3c", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "7bde4273-3465-4015-b487-458b0abb7a12", "node_type": "1", "metadata": {}, "hash": "4d15549ab5c880ba11c2a729b55525a2fc2d3cdab4d8efb11f16ed8c22ad4a8e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 11\n*597 Finally, the adjective \u201cwell-regulated\u201d implies nothing more than the imposition of proper discipline and training. See\nJohnson 1619 (\u201cRegulate\u201d: \u201cTo adjust by rule or method\u201d); Rawle 121\u2013122; cf. Va. Declaration of Rights \u00a7 13 (1776), in 7\nThorpe 3812, 3814 (referring to \u201ca well-regulated militia, composed of the body of the people, trained to arms\u201d).\n b. \u201cSecurity of a Free State.\u201d The phrase \u201csecurity of a free State\u201d meant \u201csecurity of a free polity,\u201d not security of each of the\nseveral States as the dissent below argued, see 478 F.3d, at 405, and n. 10. Joseph Story wrote in his treatise on the Constitution\nthat \u201cthe word \u2018state\u2019 is used in various senses [and in] its most enlarged sense it means the people composing a particular nation\nor community.\u201d 1 Story \u00a7 208; see also 3 id., \u00a7 1890 (in reference to the Second Amendment's prefatory clause: \u201cThe militia is\nthe natural defence of a free country\u201d). It is true that the term \u201cState\u201d elsewhere in the Constitution refers to individual States,\nbut the phrase \u201csecurity of a free State\u201d and close variations seem to have been terms of art in 18th-century political discourse,\nmeaning a \u201c \u2018free country\u2019 \u201d or free polity. See V olokh, \u201cNecessary to the Security of a Free State,\u201d 83 Notre Dame L.Rev. 1,\n5 (2007); see, e.g., 4 Blackstone 151 (1769); Brutus Essay III (Nov. 15, 1787), in The Essential Antifederalist 251, 253 (W.\nAllen & G. Lloyd eds., 2d ed.2002). Moreover, the other instances of \u201cstate\u201d in the Constitution are typically accompanied\nby modifiers making clear that the reference is to the several States\u2014\u201ceach state,\u201d \u201cseveral states,\u201d \u201cany state,\u201d \u201cthat state,\u201d\n\u201cparticular states,\u201d \u201cone state,\u201d \u201cno state.\u201d And the presence of the term \u201cforeign state\u201d in Article I and Article III shows that\nthe word \u201cstate\u201d did not have a single meaning in the Constitution.\nThere are many reasons why the militia was thought to be \u201cnecessary to the security of a free State.\u201d See 3 Story \u00a7 1890.\nFirst, of course, it is useful in repelling invasions and suppressing insurrections. Second, it renders large *598 standing armies\nunnecessary\u2014an argument that Alexander Hamilton made in favor of federal **2801 control over the militia. The Federalist\nNo. 29, pp. 226, 227 (B. Wright ed.1961). Third, when the able-bodied men of a nation are trained in arms and organized, they\nare better able to resist tyranny.\n3. Relationship Between Prefatory Clause and Operative Clause.\nWe reach the question, then: Does the preface fit with an operative clause that creates an individual right to keep and bear arms?\nIt fits perfectly, once one knows the history that the founding generation knew and that we have described above. That history\nshowed that the way tyrants had eliminated a militia consisting of all the able-bodied men was not by banning the militia but\nsimply by taking away the people's arms, enabling a select militia or standing army to suppress political opponents. This is what\nhad occurred in England that prompted codification of the right to have arms in the English Bill of Rights.\nThe debate with respect to the right to keep and bear arms, as with other guarantees in the Bill of Rights, was not over whether it\nwas desirable (all agreed that it was) but over whether it needed to be codified in the Constitution. During the 1788 ratification\ndebates, the fear that the Federal Government would disarm the people in order to impose rule through a standing army or select\nmilitia was pervasive in Antifederalist rhetoric. See, e.g., Letters from The Federal Farmer III (Oct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3771, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7bde4273-3465-4015-b487-458b0abb7a12": {"__data__": {"id_": "7bde4273-3465-4015-b487-458b0abb7a12", "embedding": null, "metadata": {"page_label": "11", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ce801ccf-e814-4685-b425-5d7543da3593", "node_type": "4", "metadata": {"page_label": "11", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9e9de1c2f7341b69b29509d5dd0e38b7bc5e213c473a52c7845bff4495aefb3c", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "f023a46b-7a71-4216-a144-02688eff4aaf", "node_type": "1", "metadata": {"page_label": "11", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a7a73b40aac3bbd5b28240a4d73e3c41061b15afd8028e1a5e471f994074e97c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "That history\nshowed that the way tyrants had eliminated a militia consisting of all the able-bodied men was not by banning the militia but\nsimply by taking away the people's arms, enabling a select militia or standing army to suppress political opponents. This is what\nhad occurred in England that prompted codification of the right to have arms in the English Bill of Rights.\nThe debate with respect to the right to keep and bear arms, as with other guarantees in the Bill of Rights, was not over whether it\nwas desirable (all agreed that it was) but over whether it needed to be codified in the Constitution. During the 1788 ratification\ndebates, the fear that the Federal Government would disarm the people in order to impose rule through a standing army or select\nmilitia was pervasive in Antifederalist rhetoric. See, e.g., Letters from The Federal Farmer III (Oct. 10, 1787), in 2 The Complete\nAnti\u2013Federalist 234, 242 (H. Storing ed.1981). John Smilie, for example, worried not only that Congress's \u201ccommand of the\nmilitia\u201d could be used to create a \u201cselect militia,\u201d or to have \u201cno militia at all,\u201d but also, as a separate concern, that \u201c[w]hen a\nselect militia is formed; the people in general may be disarmed.\u201d 2 Documentary History of the Ratification of the Constitution\n508\u2013509 (M. Jensen ed.1976) (hereinafter *599 Documentary Hist.). Federalists responded that because Congress was given\nno power to abridge the ancient right of individuals to keep and bear arms, such a force could never oppress the people. See, e.g.,\nA Pennsylvanian III (Feb. 20, 1788), in The Origin of the Second Amendment 275, 276 (D. Young ed., 2d ed.2001) (hereinafter\nYoung); White, To the Citizens of Virginia (Feb. 22, 1788), in id., at 280, 281; A Citizen of America (Oct. 10, 1787), in id., at 38,\n40; Foreign Spectator, Remarks on the Amendments to the Federal Constitution, Nov. 7, 1788, in id., at 556. It was understood\nacross the political spectrum that the right helped to secure the ideal of a citizen militia, which might be necessary to oppose\nan oppressive military force if the constitutional order broke down.\nIt is therefore entirely sensible that the Second Amendment's prefatory clause announces the purpose for which the right was\ncodified: to prevent elimination of the militia. The prefatory clause does not suggest that preserving the militia was the only\nreason Americans valued the ancient right; most undoubtedly thought it even more important for self-defense and hunting. But\nthe threat that the new Federal Government would destroy the citizens' militia by taking away their arms was the reason that right", "mimetype": "text/plain", "start_char_idx": 2901, "end_char_idx": 5527, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ac51e598-6ab8-4a16-bc06-7a4287cd218f": {"__data__": {"id_": "ac51e598-6ab8-4a16-bc06-7a4287cd218f", "embedding": null, "metadata": {"page_label": "12", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1c086f2c-7bb1-4802-8cdb-f6bcdcfb1730", "node_type": "4", "metadata": {"page_label": "12", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a79b3c59003e1c5989319433d8488cd9be90afaf10e86a4d1627386fc37a8315", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "80d069a0-251b-4429-a9b6-421799997b9a", "node_type": "1", "metadata": {}, "hash": "53fa504c69bd3d5325ce6dcd796c9d0f721b9d07d01e8589c8df932f123946eb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 12\n\u2014unlike some other English rights\u2014was codified in a written Constitution. Justice BREYER's assertion that individual self-\ndefense is merely a \u201csubsidiary interest\u201d of the right to keep and bear arms, see post, at 2841 (dissenting opinion), is profoundly\nmistaken. He bases that assertion solely upon the prologue\u2014but that can only show that self-defense had little to do with the\nright's codification; it was the central component of the right itself.\nBesides ignoring the historical reality that the Second Amendment was not intended to lay down a \u201cnovel principl[e]\u201d **2802\nbut rather codified a right \u201cinherited from our English ancestors,\u201d Robertson v. Baldwin, 165 U.S. 275, 281, 17 S.Ct. 326, 41\nL.Ed. 715 (1897), petitioners' interpretation does not even achieve the narrower *600 purpose that prompted codification of\nthe right. If, as they believe, the Second Amendment right is no more than the right to keep and use weapons as a member of an\norganized militia, see Brief for Petitioners 8\u2014if, that is, the organized militia is the sole institutional beneficiary of the Second\nAmendment's guarantee\u2014it does not assure the existence of a \u201ccitizens' militia\u201d as a safeguard against tyranny. For Congress\nretains plenary authority to organize the militia, which must include the authority to say who will belong to the organized\nforce. 17 That is why the first Militia Act's requirement that only whites enroll caused States to amend their militia laws to\nexclude free blacks. See Siegel, The Federal Government's Power to Enact Color\u2013Conscious Laws, 92 Nw. U.L.Rev. 477, 521\u2013\n525 (1998). Thus, if petitioners are correct, the Second Amendment protects citizens' right to use a gun in an organization from\nwhich Congress has plenary authority to exclude them. It guarantees a select militia of the sort the Stuart kings found useful,\nbut not the people's militia that was the concern of the founding generation.\nB\nOur interpretation is confirmed by analogous arms-bearing rights in state constitutions that preceded and immediately *601\nfollowed adoption of the Second Amendment. Four States adopted analogues to the Federal Second Amendment in the period\nbetween independence and the ratification of the Bill of Rights. Two of them\u2014Pennsylvania and Vermont\u2014clearly adopted\nindividual rights unconnected to militia service. Pennsylvania's Declaration of Rights of 1776 said: \u201cThat the people have a right\nto bear arms for the defence of themselves and the state ....\u201d \u00a7 XIII, in 5 Thorpe 3082, 3083 (emphasis added). In 1777, Vermont\nadopted the identical provision, except for inconsequential differences in punctuation and capitalization. See Vt. Const., ch.\n1, \u00a7 XV , in 6 id., at 3741.\nNorth Carolina also codified a right to bear arms in 1776: \u201cThat the people have a right to bear arms, for the defence of the\nState ....\u201d Declaration of Rights \u00a7 XVII, in 5 id., at 2787, 2788. This could plausibly be read to support only a right to bear\narms in a militia\u2014but that is a peculiar way to make the point in a constitution that elsewhere repeatedly mentions the militia\nexplicitly. See N. C. Const., \u00a7\u00a7 XIV , XVIII, XXXV , in id., at 2789, 2791, 2793. Many colonial statutes required individual\narms bearing for public-safety reasons\u2014such as the 1770 Georgia law that \u201cfor the security and defence of this province from\ninternal dangers and insurrections\u201d required those men who qualified for militia duty individually \u201cto **2803 carry fire arms\u201d\n\u201cto places of public worship.\u201d 19 Colonial Records of the State of Georgia 137\u2013139 (A. Candler ed.1911 (pt. 1)) (emphasis\nadded). That broad public-safety understanding was the connotation given to the North Carolina right by that State's Supreme\nCourt in 1843. See State v. Huntly, 25 N.C.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3953, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80d069a0-251b-4429-a9b6-421799997b9a": {"__data__": {"id_": "80d069a0-251b-4429-a9b6-421799997b9a", "embedding": null, "metadata": {"page_label": "12", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1c086f2c-7bb1-4802-8cdb-f6bcdcfb1730", "node_type": "4", "metadata": {"page_label": "12", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a79b3c59003e1c5989319433d8488cd9be90afaf10e86a4d1627386fc37a8315", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "ac51e598-6ab8-4a16-bc06-7a4287cd218f", "node_type": "1", "metadata": {"page_label": "12", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9760beee9887cbe50eb78ae54c77116fd91bcc13a652c7bd17b8be3884335731", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See N. C. Const., \u00a7\u00a7 XIV , XVIII, XXXV , in id., at 2789, 2791, 2793. Many colonial statutes required individual\narms bearing for public-safety reasons\u2014such as the 1770 Georgia law that \u201cfor the security and defence of this province from\ninternal dangers and insurrections\u201d required those men who qualified for militia duty individually \u201cto **2803 carry fire arms\u201d\n\u201cto places of public worship.\u201d 19 Colonial Records of the State of Georgia 137\u2013139 (A. Candler ed.1911 (pt. 1)) (emphasis\nadded). That broad public-safety understanding was the connotation given to the North Carolina right by that State's Supreme\nCourt in 1843. See State v. Huntly, 25 N.C. 418, 25 N. C. 418, 422\u2013423.\nThe 1780 Massachusetts Constitution presented another variation on the theme: \u201cThe people have a right to keep and to bear\narms for the common defence ....\u201d Pt. First, Art. XVII, in 3 Thorpe 1888, 1892. Once again, if one gives narrow meaning to the\nphrase \u201ccommon defence\u201d this can be thought to limit the right to the bearing of arms in a *602 state-organized military force.\nBut once again the State's highest court thought otherwise. Writing for the court in an 1825 libel case, Chief Justice Parker\nwrote: \u201cThe liberty of the press was to be unrestrained, but he who used it was to be responsible in cases of its abuse; like the\nright to keep fire arms, which does not protect him who uses them for annoyance or destruction.\u201d Commonwealth v. Blanding,\n20 Mass. 304, 313\u2013314. The analogy makes no sense if firearms could not be used for any individual purpose at all. See also\nKates, Handgun Prohibition and the Original Meaning of the Second Amendment, 82 Mich. L.Rev. 204, 244 (1983) (19th-\ncentury courts never read \u201ccommon defence\u201d to limit the use of weapons to militia service).", "mimetype": "text/plain", "start_char_idx": 3297, "end_char_idx": 5072, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "704fb551-9606-419d-b3c8-b2b28a6bebca": {"__data__": {"id_": "704fb551-9606-419d-b3c8-b2b28a6bebca", "embedding": null, "metadata": {"page_label": "13", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9ce07126-afe6-4bac-9e61-f57b88febf97", "node_type": "4", "metadata": {"page_label": "13", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "81d67ea6bde646a26d44d64e1a09025156b19f774095c2e5fa412254652e6043", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "33c9ce2a-fb27-44d5-bbf7-36cd02421762", "node_type": "1", "metadata": {}, "hash": "22f5a7f5b373824f709b2c5a3709815571e40fb537f072e7ae863ce5f8be0175", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 13\nWe therefore believe that the most likely reading of all four of these pre-Second Amendment state constitutional provisions is\nthat they secured an individual right to bear arms for defensive purposes. Other States did not include rights to bear arms in\ntheir pre\u20131789 constitutions\u2014although in Virginia a Second Amendment analogue was proposed (unsuccessfully) by Thomas\nJefferson. (It read: \u201cNo freeman shall ever be debarred the use of arms [within his own lands or tenements].\u201d 18 1 The Papers\nof Thomas Jefferson 344 (J. Boyd ed.1950).)\nBetween 1789 and 1820, nine States adopted Second Amendment analogues. Four of them\u2014Kentucky, Ohio, Indiana, and\nMissouri\u2014referred to the right of the people to \u201cbear arms in defence of themselves and the State.\u201d See n. 8, supra. Another three\nStates\u2014Mississippi, Connecticut, and Alabama\u2014used the even more individualistic phrasing that each citizen has the \u201cright\nto bear arms in defence of himself and the State.\u201d See ibid. Finally, two States\u2014Tennessee and Maine\u2014used the \u201ccommon\ndefence\u201d language *603 of Massachusetts. See Tenn. Const., Art. XI, \u00a7 26 (1796), in 6 Thorpe 3414, 3424; Me. Const., Art. I, \u00a7\n16 (1819), in 3 id., at 1646, 1648. That of the nine state constitutional protections for the right to bear arms enacted immediately\nafter 1789 at least seven unequivocally protected an individual citizen's right to self-defense is strong evidence that that is how\nthe founding generation conceived of the right. And with one possible exception that we discuss in Part II\u2013D\u20132, 19th-century\ncourts and commentators interpreted these state constitutional provisions to protect an individual right to use arms for self-\ndefense. See n. 9, supra; Simpson v. State, 13 Tenn. 356, 5 Yer. 356, 360 (1833).\nThe historical narrative that petitioners must endorse would thus treat the Federal Second Amendment as an odd outlier,\nprotecting a right unknown in state constitutions or at English common law, based on **2804 little more than an overreading\nof the prefatory clause.\nC\nJustice STEVENS relies on the drafting history of the Second Amendment\u2014the various proposals in the state conventions and\nthe debates in Congress. It is dubious to rely on such history to interpret a text that was widely understood to codify a pre-\nexisting right, rather than to fashion a new one. But even assuming that this legislative history is relevant, Justice STEVENS\nflatly misreads the historical record.\nIt is true, as Justice STEVENS says, that there was concern that the Federal Government would abolish the institution of\nthe state militia. See post, at 2832 \u2013 2833. That concern found expression, however, not in the various Second Amendment\nprecursors proposed in the state conventions, but in separate structural provisions that would have given the States concurrent\nand seemingly non-pre-emptible authority to organize, discipline, and arm the militia when the Federal Government failed to\ndo so. See Veit 17, 20 (Virginia proposal); 4 J. Eliot, The Debates in the Several State *604 Conventions on the Adoption of\nthe Federal Constitution 244, 245 (2d ed. 1836) (reprinted 1941) (North Carolina proposal); see also 2 Documentary Hist. 624\n(Pennsylvania minority's proposal). The Second Amendment precursors, by contrast, referred to the individual English right\nalready codified in two (and probably four) state constitutions. The Federalist-dominated first Congress chose to reject virtually\nall major structural revisions favored by the Antifederalists, including the proposed militia amendments. Rather, it adopted\nprimarily the popular and uncontroversial (though, in the Federalists' view, unnecessary) individual-rights amendments. The\nSecond Amendment right, protecting only individuals' liberty to keep and carry arms, did nothing to assuage Antifederalists'\nconcerns about federal control of the militia.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4064, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "33c9ce2a-fb27-44d5-bbf7-36cd02421762": {"__data__": {"id_": "33c9ce2a-fb27-44d5-bbf7-36cd02421762", "embedding": null, "metadata": {"page_label": "13", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9ce07126-afe6-4bac-9e61-f57b88febf97", "node_type": "4", "metadata": {"page_label": "13", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "81d67ea6bde646a26d44d64e1a09025156b19f774095c2e5fa412254652e6043", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "704fb551-9606-419d-b3c8-b2b28a6bebca", "node_type": "1", "metadata": {"page_label": "13", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "33801b26d011137388b9798e151833c40d6fa8f06e27ef23837aa1e58be2a990", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1836) (reprinted 1941) (North Carolina proposal); see also 2 Documentary Hist. 624\n(Pennsylvania minority's proposal). The Second Amendment precursors, by contrast, referred to the individual English right\nalready codified in two (and probably four) state constitutions. The Federalist-dominated first Congress chose to reject virtually\nall major structural revisions favored by the Antifederalists, including the proposed militia amendments. Rather, it adopted\nprimarily the popular and uncontroversial (though, in the Federalists' view, unnecessary) individual-rights amendments. The\nSecond Amendment right, protecting only individuals' liberty to keep and carry arms, did nothing to assuage Antifederalists'\nconcerns about federal control of the militia. See, e.g., Centinel, Revived, No. XXIX, Philadelphia Independent Gazetteer, Sept.\n9, 1789, in Young 711, 712.\nJustice STEVENS thinks it significant that the Virginia, New York, and North Carolina Second Amendment proposals were\n\u201cembedded ... within a group of principles that are distinctly military in meaning,\u201d such as statements about the danger of\nstanding armies. Post, at 2833 \u2013 2834. But so was the highly influential minority proposal in Pennsylvania, yet that proposal,\nwith its reference to hunting, plainly referred to an individual right. See 2 Documentary Hist. 624. Other than that erroneous\npoint, Justice STEVENS has brought forward absolutely no evidence that those proposals conferred only a right to carry arms\nin a militia. By contrast, New Hampshire's proposal, the Pennsylvania minority's proposal, and Samuel Adams' proposal in", "mimetype": "text/plain", "start_char_idx": 3307, "end_char_idx": 4915, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1f8a5636-b169-41da-ae1d-8da9fc11ce5c": {"__data__": {"id_": "1f8a5636-b169-41da-ae1d-8da9fc11ce5c", "embedding": null, "metadata": {"page_label": "14", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b102015f-6e3b-44f9-93a9-b2f62c79d676", "node_type": "4", "metadata": {"page_label": "14", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7dc0b314e8acb8c5c859ba81a713bf027c1564cce709e7225fb38a1a5366088e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "5cf21468-4245-42b5-a7bd-3d61776124c7", "node_type": "1", "metadata": {}, "hash": "22996542adcb6ac5afc5ec19ff419c1aeddea9a9323c5dcf879309e895854364", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 14\nMassachusetts unequivocally referred to individual rights, as did two state constitutional provisions at the time. See Veit 16, 17\n(New Hampshire proposal); 6 Documentary Hist. 1452, 1453 (J. Kaminski & G. Saladino eds. 2000) (Samuel Adams' proposal).\nJustice STEVENS' view thus relies on the proposition, unsupported by any evidence, that different people of the founding period\n*605 had vastly different conceptions of the right to keep and bear arms. That simply does not comport with our longstanding\nview that the Bill of Rights codified venerable, widely understood liberties.\nD\n We now address how the Second Amendment was interpreted from immediately after its ratification through the end of the\n19th century. Before proceeding, **2805 however, we take issue with Justice STEVENS' equating of these sources with\npostenactment legislative history, a comparison that betrays a fundamental misunderstanding of a court's interpretive task. See\npost, at 2837, n. 28. \u201c \u2018[L]egislative history,\u2019 \u201d of course, refers to the pre-enactment statements of those who drafted or voted\nfor a law; it is considered persuasive by some, not because they reflect the general understanding of the disputed terms, but\nbecause the legislators who heard or read those statements presumably voted with that understanding. Ibid. \u201c[P]ostenactment\nlegislative history,\u201d ibid., a deprecatory contradiction in terms, refers to statements of those who drafted or voted for the law\nthat are made after its enactment and hence could have had no effect on the congressional vote. It most certainly does not refer\nto the examination of a variety of legal and other sources to determine the public understanding of a legal text in the period after\nits enactment or ratification. That sort of inquiry is a critical tool of constitutional interpretation. As we will show, virtually all\ninterpreters of the Second Amendment in the century after its enactment interpreted the Amendment as we do.\n1. Postratification Commentary.\nThree important founding-era legal scholars interpreted the Second Amendment in published writings. All three understood it\nto protect an individual right unconnected with militia service.\n*606 St. George Tucker's version of Blackstone's Commentaries, as we explained above, conceived of the Blackstonian arms\nright as necessary for self-defense. He equated that right, absent the religious and class-based restrictions, with the Second\nAmendment. See 2 Tucker's Blackstone 143. In Note D, entitled, \u201cView of the Constitution of the United States,\u201d Tucker\nelaborated on the Second Amendment: \u201cThis may be considered as the true palladium of liberty .... The right to self defence\nis the first law of nature: in most governments it has been the study of rulers to confine the right within the narrowest limits\npossible. Wherever standing armies are kept up, and the right of the people to keep and bear arms is, under any colour or pretext\nwhatsoever, prohibited, liberty, if not already annihilated, is on the brink of destruction.\u201d 1 id., at App. 300 (ellipsis in original).\nHe believed that the English game laws had abridged the right by prohibiting \u201ckeeping a gun or other engine for the destruction\nof game.\u201d Ibid.; see also 2 id., at 143, and nn. 40 and 41. He later grouped the right with some of the individual rights included\nin the First Amendment and said that if \u201ca law be passed by congress, prohibiting\u201d any of those rights, it would \u201cbe the province\nof the judiciary to pronounce whether any such act were constitutional, or not; and if not, to acquit the accused ....\u201d 1 id., at\nApp. 357. It is unlikely that Tucker was referring to a person's being \u201caccused\u201d of violating a law making it a crime to bear\narms in a state militia.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3950, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5cf21468-4245-42b5-a7bd-3d61776124c7": {"__data__": {"id_": "5cf21468-4245-42b5-a7bd-3d61776124c7", "embedding": null, "metadata": {"page_label": "14", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b102015f-6e3b-44f9-93a9-b2f62c79d676", "node_type": "4", "metadata": {"page_label": "14", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7dc0b314e8acb8c5c859ba81a713bf027c1564cce709e7225fb38a1a5366088e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "1f8a5636-b169-41da-ae1d-8da9fc11ce5c", "node_type": "1", "metadata": {"page_label": "14", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "cc4a1c7113b87463c65552d0e4a0a291d1bcd40094261850b6227ae9d8aa7b69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "300 (ellipsis in original).\nHe believed that the English game laws had abridged the right by prohibiting \u201ckeeping a gun or other engine for the destruction\nof game.\u201d Ibid.; see also 2 id., at 143, and nn. 40 and 41. He later grouped the right with some of the individual rights included\nin the First Amendment and said that if \u201ca law be passed by congress, prohibiting\u201d any of those rights, it would \u201cbe the province\nof the judiciary to pronounce whether any such act were constitutional, or not; and if not, to acquit the accused ....\u201d 1 id., at\nApp. 357. It is unlikely that Tucker was referring to a person's being \u201caccused\u201d of violating a law making it a crime to bear\narms in a state militia. 19\n*607 In 1825, William Rawle, a prominent lawyer who had been a member of the Pennsylvania Assembly that ratified the\n**2806 Bill of Rights, published an influential treatise, which analyzed the Second Amendment as follows:\n\u201cThe first [principle] is a declaration that a well regulated militia is necessary to the security of a free state; a proposition\nfrom which few will dissent ....\n\u201cThe corollary, from the first position is, that the right of the people to keep and bear arms shall not be infringed.\n\u201cThe prohibition is general. No clause in the constitution could by any rule of construction be conceived to give to congress a\npower to disarm the people. Such a flagitious attempt could only be made under some general pretence by a state legislature.", "mimetype": "text/plain", "start_char_idx": 3252, "end_char_idx": 4713, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6758de60-e2a8-46f6-910b-d91fcf3473a9": {"__data__": {"id_": "6758de60-e2a8-46f6-910b-d91fcf3473a9", "embedding": null, "metadata": {"page_label": "15", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a6033241-ebac-44af-af9a-9cc49aa0e123", "node_type": "4", "metadata": {"page_label": "15", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "93451572fb156c9098ac94b6578c2fe4be6aee6d58e0f8d53b80edb5651db617", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "e0c6d0ec-d049-4542-9b04-22c6592e113a", "node_type": "1", "metadata": {}, "hash": "6c66dd6b79e5d437d4cd3d0d1e25ed47013487afad0547e27988fba3794c3ce9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 15\nBut if in any blind pursuit of inordinate power, either should attempt it, this amendment may be appealed to as a restraint\non both.\u201d Rawle 121\u2013122. 20\nLike Tucker, Rawle regarded the English game laws as violating the right codified in the Second Amendment. See id., at 122\u2013\n123. Rawle clearly differentiated between the people's right to bear arms and their service in a militia: \u201cIn a people permitted\nand accustomed to bear arms, we have the rudiments of a militia, which properly consists of armed citizens, divided into\nmilitary bands, and instructed at least in part, in the use of arms for the purposes of war.\u201d Id., at 140. Rawle further said that the\nSecond Amendment right ought not \u201cbe abused to the disturbance of the public peace,\u201d such as by assembling with other armed\nindividuals \u201cfor an *608 unlawful purpose\u201d\u2014statements that make no sense if the right does not extend to any individual\npurpose. Id., at 123.\nJoseph Story published his famous Commentaries on the Constitution of the United States in 1833. Justice STEVENS suggests\nthat \u201c[t]here is not so much as a whisper\u201d in Story's explanation of the Second Amendment that favors the individual-rights\nview. Post, at 2840. That is wrong. Story explained that the English Bill of Rights had also included a \u201cright to bear arms,\u201d\na right that, as we have discussed, had nothing to do with militia service. 3 Story \u00a7 1858. He then equated the English right\nwith the Second Amendment:\n\u201c\u00a7 1891. A similar provision [to the Second Amendment] in favour of protestants (for to them it is confined) is to be found in\nthe bill of rights of 1688, it being declared, \u2018that the subjects, which are protestants, may have arms for their defence suitable\nto their condition, and as allowed by law.\u2019 But under various pretences the effect of this provision has been greatly narrowed;\nand it is at present in England more nominal than real, as a defensive privilege.\u201d (Footnotes omitted.)\nThis comparison to the Declaration of Right would not make sense if the Second Amendment right was the right to use a gun\nin a militia, which was plainly not what the English right protected. As the Tennessee Supreme Court recognized 38 years after\nStory wrote his Commentaries, \u201c[t]he passage from Story, shows clearly that this right was intended ... and was guaranteed\nto, and to be exercised and enjoyed by the citizen as such, and not by him as a soldier, or in defense solely of his political\nrights.\u201d Andrews v. State, 50 Tenn. 165, 183 \u2013 184 (1871). Story's Commentaries also cite as support Tucker and Rawle, both\nof whom clearly viewed the right as **2807 unconnected to militia service. See 3 Story \u00a7 1890, n. 2, \u00a7 1891, n. 3. In addition,\nin a shorter 1840 work Story wrote: \u201cOne of the ordinary modes, by which *609 tyrants accomplish their purposes without\nresistance, is, by disarming the people, and making it an offence to keep arms, and by substituting a regular army in the stead\nof a resort to the militia.\u201d A Familiar Exposition of the Constitution of the United States \u00a7 450 (reprinted 1986).\nAntislavery advocates routinely invoked the right to bear arms for self-defense. Joel Tiffany, for example, citing Blackstone's\ndescription of the right, wrote that \u201cthe right to keep and bear arms, also implies the right to use them if necessary in self\ndefence; without this right to use the guaranty would have hardly been worth the paper it consumed.\u201d A Treatise on the\nUnconstitutionality of American Slavery 117\u2013118 (1849); see also L. Spooner, The Unconstitutionality of Slavery 116 (1845)\n(right enables \u201cpersonal defence\u201d).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3795, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e0c6d0ec-d049-4542-9b04-22c6592e113a": {"__data__": {"id_": "e0c6d0ec-d049-4542-9b04-22c6592e113a", "embedding": null, "metadata": {"page_label": "15", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a6033241-ebac-44af-af9a-9cc49aa0e123", "node_type": "4", "metadata": {"page_label": "15", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "93451572fb156c9098ac94b6578c2fe4be6aee6d58e0f8d53b80edb5651db617", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "6758de60-e2a8-46f6-910b-d91fcf3473a9", "node_type": "1", "metadata": {"page_label": "15", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "36be5a8347503f880403afcaffaf872339dfa6638cb6fbe67b0d75b2730a828d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Antislavery advocates routinely invoked the right to bear arms for self-defense. Joel Tiffany, for example, citing Blackstone's\ndescription of the right, wrote that \u201cthe right to keep and bear arms, also implies the right to use them if necessary in self\ndefence; without this right to use the guaranty would have hardly been worth the paper it consumed.\u201d A Treatise on the\nUnconstitutionality of American Slavery 117\u2013118 (1849); see also L. Spooner, The Unconstitutionality of Slavery 116 (1845)\n(right enables \u201cpersonal defence\u201d). In his famous Senate speech about the 1856 \u201cBleeding Kansas\u201d conflict, Charles Sumner\nproclaimed:\n\u201cThe rifle has ever been the companion of the pioneer and, under God, his tutelary protector against the red man and the beast\nof the forest. Never was this efficient weapon more needed in just self-defense, than now in Kansas, and at least one article\nin our National Constitution must be blotted out, before the complete right to it can in any way be impeached. And yet such\nis the madness of the hour, that, in defiance of the solemn guarantee, embodied in the Amendments to the Constitution, that\n\u2018the right of the people to keep and bear arms shall not be infringed,\u2019 the people of Kansas have been arraigned for keeping\nand bearing them, and the Senator from South Carolina has had the face to say openly, on this floor, that they should be\ndisarmed\u2014of course, that the fanatics of Slavery, his allies and constituents, may meet no impediment.\u201d The Crime Against\nKansas, May 19\u201320, 1856, in American Speeches: Political Oratory From the Revolution to the Civil War 553, 606\u2013607\n(T. Widmer ed. 2006).", "mimetype": "text/plain", "start_char_idx": 3263, "end_char_idx": 4899, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "adaca468-4596-4142-a862-2c63cbd522af": {"__data__": {"id_": "adaca468-4596-4142-a862-2c63cbd522af", "embedding": null, "metadata": {"page_label": "16", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "358bb789-a27b-4533-ad4e-a7a2d5afb115", "node_type": "4", "metadata": {"page_label": "16", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "54cb7359f4262c386f8c801c70151b0f513746ca183da1704d1a09d3ccc64612", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "01aa8caa-e272-433d-8501-23c318d4e632", "node_type": "1", "metadata": {}, "hash": "30b3a58cc73044c9136eebd599e17885890cb36e4a32271859a6f11dfb5cf889", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 16\n*610 We have found only one early-19th century-commentator who clearly conditioned the right to keep and bear arms upon\nservice in the militia\u2014and he recognized that the prevailing view was to the contrary. \u201cThe provision of the constitution,\ndeclaring the right of the people to keep and bear arms, & c. was probably intended to apply to the right of the people to bear\narms for such [militia-related] purposes only, and not to prevent congress or the legislatures of the different states from enacting\nlaws to prevent the citizens from always going armed. A different construction however has been given to it.\u201d B. Oliver, The\nRights of an American Citizen 177 (1832).\n2. Pre\u2013Civil War Case Law.\nThe 19th-century cases that interpreted the Second Amendment universally support an individual right unconnected to militia\nservice. In Houston v. Moore, 5 Wheat. 1, 24, 5 L.Ed. 19 (1820) , this Court held that States have concurrent power over the\nmilitia, at least where not pre-empted by Congress. Agreeing in dissent that States could \u201corganize, arm, and discipline\u201d the\nmilitia in the absence of conflicting federal regulation, Justice Story said that the Second Amendment \u201cmay not, perhaps, be\nthought to have any important bearing on this point. If it have, it confirms and illustrates, rather than impugns the reasoning\nalready suggested.\u201d Id., at 51\u201353. Of course, if the Amendment simply \u201cprotect[ed] the right of the people of each of the several\nStates to maintain a well-regulated militia,\u201d post, at 2822 (STEVENS, J., dissenting), it would have enormous **2808 and\nobvious bearing on the point. But the Court and Story derived the States' power over the militia from the nonexclusive nature\nof federal power, not from the Second Amendment, whose preamble merely \u201cconfirms and illustrates\u201d the importance of the\nmilitia. Even clearer was Justice Baldwin. In the famous fugitive-slave case of *611 Johnson v. Tompkins, 13 F. Cas. 840,\n850, 852 (CC Pa. 1833), Baldwin, sitting as a Circuit Judge, cited both the Second Amendment and the Pennsylvania analogue\nfor his conclusion that a citizen has \u201ca right to carry arms in defence of his property or person, and to use them, if either were\nassailed with such force, numbers or violence as made it necessary for the protection or safety of either.\u201d\nMany early-19th century state cases indicated that the Second Amendment right to bear arms was an individual right\nunconnected to militia service, though subject to certain restrictions. A Virginia case in 1824 holding that the Constitution did\nnot extend to free blacks explained: \u201c[N]umerous restrictions imposed on [blacks] in our Statute Book, many of which are\ninconsistent with the letter and spirit of the Constitution, both of this State and of the United States as respects the free whites,\ndemonstrate, that, here, those instruments have not been considered to extend equally to both classes of our population. We\nwill only instance the restriction upon the migration of free blacks into this State, and upon their right to bear arms.\u201d Aldridge\nv. Commonwealth, 4 Va. 447, 2 Va. Cas. 447, 449 (Gen.Ct.) . The claim was obviously not that blacks were prevented from\ncarrying guns in the militia. 21 See also Waters v. State, 1 Gill 302, 309 (Md.1843) *612 (because free blacks were treated as\na \u201cdangerous population,\u201d \u201claws have been passed to prevent their migration into this State; to make it unlawful for them to\nbear arms; to guard even their religious assemblages with peculiar watchfulness\u201d). An 1829 decision by the Supreme Court of\nMichigan said: \u201cThe constitution of the United States also grants to the citizen the right to keep and bear arms. But the grant of\nthis privilege cannot be construed into the right in him who keeps a gun to destroy his neighbor.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3994, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "01aa8caa-e272-433d-8501-23c318d4e632": {"__data__": {"id_": "01aa8caa-e272-433d-8501-23c318d4e632", "embedding": null, "metadata": {"page_label": "16", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "358bb789-a27b-4533-ad4e-a7a2d5afb115", "node_type": "4", "metadata": {"page_label": "16", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "54cb7359f4262c386f8c801c70151b0f513746ca183da1704d1a09d3ccc64612", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "adaca468-4596-4142-a862-2c63cbd522af", "node_type": "1", "metadata": {"page_label": "16", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "32c738d43471ad4499f42a24a9f2592b9d909444cf78f825acdae1a23600a671", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "447, 2 Va. Cas. 447, 449 (Gen.Ct.) . The claim was obviously not that blacks were prevented from\ncarrying guns in the militia. 21 See also Waters v. State, 1 Gill 302, 309 (Md.1843) *612 (because free blacks were treated as\na \u201cdangerous population,\u201d \u201claws have been passed to prevent their migration into this State; to make it unlawful for them to\nbear arms; to guard even their religious assemblages with peculiar watchfulness\u201d). An 1829 decision by the Supreme Court of\nMichigan said: \u201cThe constitution of the United States also grants to the citizen the right to keep and bear arms. But the grant of\nthis privilege cannot be construed into the right in him who keeps a gun to destroy his neighbor. No rights are intended to be\ngranted by the constitution for an unlawful or unjustifiable purpose.\u201d United States v. Sheldon, in 5 Transactions of the Supreme\nCourt of the Territory of Michigan 337, 346 (W. Blume ed.1940) (hereinafter Blume). It is not possible to read this as discussing\nanything other than an individual right unconnected to militia service. If it did have to do with militia service, the limitation\nupon it would not be any \u201cunlawful or unjustifiable purpose,\u201d but any nonmilitary purpose whatsoever.\n**2809 In Nunn v. State, 1 Ga. 243, 251 (1846), the Georgia Supreme Court construed the Second Amendment as protecting\nthe \u201cnatural right of self-defence\u201d and therefore struck down a ban on carrying pistols openly. Its opinion perfectly captured\nthe way in which the operative clause of the Second Amendment furthers the purpose announced in the prefatory clause, in\ncontinuity with the English right:\n\u201cThe right of the whole people, old and young, men, women and boys, and not militia only, to keep and bear arms of every\ndescription, and not such merely as are used by the militia, shall not be infringed, curtailed, or broken in upon, in the smallest\ndegree; and all this for the important end to be attained: the rearing up and qualifying a well-regulated militia, so vitally\nnecessary *613 to the security of a free State. Our opinion is, that any law, State or Federal, is repugnant to the Constitution,\nand void, which contravenes this right, originally belonging to our forefathers, trampled under foot by Charles I. and his two", "mimetype": "text/plain", "start_char_idx": 3291, "end_char_idx": 5554, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d9247f3a-987b-49ed-aafb-bf03ec0dbbcb": {"__data__": {"id_": "d9247f3a-987b-49ed-aafb-bf03ec0dbbcb", "embedding": null, "metadata": {"page_label": "17", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "47a17007-4a08-4d87-96af-3831a84027b3", "node_type": "4", "metadata": {"page_label": "17", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e8419b641d08275897f57ca739a5738f15a4f4fb1c8decb1566078205cf9a236", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "f2887c0a-bb19-4cb5-a3d5-674c4ad6537b", "node_type": "1", "metadata": {}, "hash": "86fe112eb9668996a7241733abb12880421b20b3b284c217a702eac7909cc980", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 17\nwicked sons and successors, re-established by the revolution of 1688, conveyed to this land of liberty by the colonists, and\nfinally incorporated conspicuously in our own Magna Charta!\u201d Ibid.\nLikewise, in State v. Chandler, 5 La. Ann. 489, 490 (1850), the Louisiana Supreme Court held that citizens had a right to carry\narms openly: \u201cThis is the right guaranteed by the Constitution of the United States, and which is calculated to incite men to\na manly and noble defence of themselves, if necessary, and of their country, without any tendency to secret advantages and\nunmanly assassinations.\u201d\nThose who believe that the Second Amendment preserves only a militia-centered right place great reliance on the Tennessee\nSupreme Court's 1840 decision in Aymette v. State, 21 Tenn. 154. The case does not stand for that broad proposition; in fact,\nthe case does not mention the word \u201cmilitia\u201d at all, except in its quoting of the Second Amendment. Aymette held that the\nstate constitutional guarantee of the right to \u201cbear\u201d arms did not prohibit the banning of concealed weapons. The opinion first\nrecognized that both the state right and the federal right were descendents of the 1689 English right, but (erroneously, and\ncontrary to virtually all other authorities) read that right to refer only to \u201cprotect[ion of] the public liberty\u201d and \u201ckeep[ing] in awe\nthose who are in power,\u201d id., at 158. The court then adopted a sort of middle position, whereby citizens were permitted to carry\narms openly, unconnected with any service in a formal militia, but were given the right to use them only for the military purpose\nof banding together to oppose tyranny. This odd reading of the right is, to be sure, not the one we adopt\u2014but it is not petitioners'\nreading either. More importantly, seven years earlier the Tennessee Supreme Court *614 had treated the state constitutional\nprovision as conferring a right \u201cto all the free citizens of the State to keep and bear arms for their defence,\u201d Simpson, 13 Tenn.\n356, 5 Yer., at 360; and 21 years later the court held that the \u201ckeep\u201d portion of the state constitutional right included the right to\npersonal self-defense: \u201c[T]he right to keep arms involves, necessarily, the right to use such arms for all the ordinary purposes,\nand in all the ordinary modes usual in the country, and to which arms are adapted, limited by the duties of a good citizen in\ntimes of peace.\u201d Andrews, 50 Tenn., at 178 \u2013 179; see also ibid. (equating state provision with Second Amendment).\n3. Post\u2013Civil War Legislation.\nIn the aftermath of the Civil War, there was an outpouring of discussion of the Second Amendment in Congress and in public\ndiscourse, as people debated whether **2810 and how to secure constitutional rights for newly free slaves. See generally\nS. Halbrook, Freedmen, the Fourteenth Amendment, and the Right to Bear Arms, 1866\u20131876 (1998) (hereinafter Halbrook);\nBrief for Institute for Justice as Amicus Curiae. Since those discussions took place 75 years after the ratification of the Second\nAmendment, they do not provide as much insight into its original meaning as earlier sources. Yet those born and educated in\nthe early 19th century faced a widespread effort to limit arms ownership by a large number of citizens; their understanding of\nthe origins and continuing significance of the Amendment is instructive.\nBlacks were routinely disarmed by Southern States after the Civil War. Those who opposed these injustices frequently stated\nthat they infringed blacks' constitutional right to keep and bear arms. Needless to say, the claim was not that blacks were being\nprohibited from carrying arms in an organized state militia. A Report of the Commission of the Freedmen's Bureau in 1866\nstated plainly: \u201c[T]he civil law [of Kentucky] prohibits the colored man from bearing arms .... Their arms are taken from them\nby the civil *615 authorities .... Thus, the right of the people to keep and bear arms as provided in the Constitution is infringed.\u201d\nH.R. Exec.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4207, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f2887c0a-bb19-4cb5-a3d5-674c4ad6537b": {"__data__": {"id_": "f2887c0a-bb19-4cb5-a3d5-674c4ad6537b", "embedding": null, "metadata": {"page_label": "17", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "47a17007-4a08-4d87-96af-3831a84027b3", "node_type": "4", "metadata": {"page_label": "17", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e8419b641d08275897f57ca739a5738f15a4f4fb1c8decb1566078205cf9a236", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "d9247f3a-987b-49ed-aafb-bf03ec0dbbcb", "node_type": "1", "metadata": {"page_label": "17", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "448f5d5ea0a3a01896e390fbd2b04e216123e0611acf8edacd32e0b8e933e05f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Yet those born and educated in\nthe early 19th century faced a widespread effort to limit arms ownership by a large number of citizens; their understanding of\nthe origins and continuing significance of the Amendment is instructive.\nBlacks were routinely disarmed by Southern States after the Civil War. Those who opposed these injustices frequently stated\nthat they infringed blacks' constitutional right to keep and bear arms. Needless to say, the claim was not that blacks were being\nprohibited from carrying arms in an organized state militia. A Report of the Commission of the Freedmen's Bureau in 1866\nstated plainly: \u201c[T]he civil law [of Kentucky] prohibits the colored man from bearing arms .... Their arms are taken from them\nby the civil *615 authorities .... Thus, the right of the people to keep and bear arms as provided in the Constitution is infringed.\u201d\nH.R. Exec. Doc. No. 70, 39th Cong., 1st Sess., 233, 236. A joint congressional Report decried:\n\u201c[I]n some parts of [South Carolina,] armed parties are, without proper authority, engaged in seizing all fire-arms found in the\nhands of the freedmen. Such conduct is in plain and direct violation of their personal rights as guaranteed by the Constitution\nof the United States, which declares that \u2018the right of the people to keep and bear arms shall not be infringed.\u2019 The freedmen\nof South Carolina have shown by their peaceful and orderly conduct that they can safely be trusted with fire-arms, and they\nneed them to kill game for subsistence, and to protect their crops from destruction by birds and animals.\u201d Joint Comm. on\nReconstruction, H.R.Rep. No. 30, 39th Cong., 1st Sess., pt. 2, p. 229 (1866) (Proposed Circular of Brigadier General R.\nSaxton).", "mimetype": "text/plain", "start_char_idx": 3329, "end_char_idx": 5050, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f3cf013-de30-469a-b104-741977a7946a": {"__data__": {"id_": "5f3cf013-de30-469a-b104-741977a7946a", "embedding": null, "metadata": {"page_label": "18", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "91d77b80-b8fd-4863-ba2e-909379bf911e", "node_type": "4", "metadata": {"page_label": "18", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "20a6a2e930e1fccc4063caba73513b1d63a75312927a661567ee4a0c3e30d6db", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "71896282-7ca5-4b1b-a0d2-2e0d31f29389", "node_type": "1", "metadata": {}, "hash": "858f18cf3562bdd4474efff01994ece1dc0ed85052bf49391b06f980bd5ad8c7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 18\nThe view expressed in these statements was widely reported and was apparently widely held. For example, an editorial in The\nLoyal Georgian (Augusta) on February 3, 1866, assured blacks that \u201c[a]ll men, without distinction of color, have the right to\nkeep and bear arms to defend their homes, families or themselves.\u201d Halbrook 19.\nCongress enacted the Freedmen's Bureau Act on July 16, 1866. Section 14 stated:\n\u201c[T]he right ... to have full and equal benefit of all laws and proceedings concerning personal liberty, personal security, and\nthe acquisition, enjoyment, and disposition of estate, real and personal, including the constitutional right to bear arms, shall\nbe secured to and enjoyed by all the citizens ... without respect to race or color, or previous condition of slavery ....\u201d 14\nStat. 176\u2013177.\nThe understanding that the Second Amendment gave freed blacks the right to keep and bear arms was reflected in congressional\n*616 discussion of the bill, with even an opponent of it saying that the founding generation \u201cwere for every man bearing his\narms about him and keeping them in his house, his castle, for his own defense.\u201d Cong. Globe, 39th Cong., 1st Sess., 362, 371\n(1866) (Sen. Davis).\nSimilar discussion attended the passage of the Civil Rights Act of 1871 and the Fourteenth Amendment. For example,\nRepresentative Butler said of the Act: \u201cSection eight is intended to enforce the well-known constitutional provision guaranteeing\n**2811 the right of the citizen to \u2018keep and bear arms,\u2019 and provides that whoever shall take away, by force or violence,\nor by threats and intimidation, the arms and weapons which any person may have for his defense, shall be deemed guilty of\nlarceny of the same.\u201d H.R.Rep. No. 37, 41st Cong., 3d Sess., 7\u20138 (1871). With respect to the proposed Amendment, Senator\nPomeroy described as one of the three \u201cindispensable\u201d \u201csafeguards of liberty ... under the Constitution\u201d a man's \u201cright to bear\narms for the defense of himself and family and his homestead.\u201d Cong. Globe, 39th Cong., 1st Sess., 1182 (1866). Representative\nNye thought the Fourteenth Amendment unnecessary because \u201c[a]s citizens of the United States [blacks] have equal right to\nprotection, and to keep and bear arms for self-defense.\u201d Id., at 1073.\nIt was plainly the understanding in the post-Civil War Congress that the Second Amendment protected an individual right to\nuse arms for self-defense.\n4. Post\u2013Civil War Commentators.\nEvery late\u201319th\u2013century legal scholar that we have read interpreted the Second Amendment to secure an individual right\nunconnected with militia service. The most famous was the judge and professor Thomas Cooley, who wrote a massively popular\n1868 Treatise on Constitutional Limitations. Concerning the Second Amendment it said:\n\u201cAmong the other defences to personal liberty should be mentioned the right of the people to keep and bear *617 arms ....\nThe alternative to a standing army is \u2018a well-regulated militia,\u2019 but this cannot exist unless the people are trained to bearing\narms. How far it is in the power of the legislature to regulate this right, we shall not undertake to say, as happily there has\nbeen very little occasion to discuss that subject by the courts.\u201d Id., at 350.\nThat Cooley understood the right not as connected to militia service, but as securing the militia by ensuring a populace familiar\nwith arms, is made even clearer in his 1880 work, General Principles of Constitutional Law. The Second Amendment, he said,\n\u201cwas adopted with some modification and enlargement from the English Bill of Rights of 1688, where it stood as a protest\nagainst arbitrary action of the overturned dynasty in disarming the people.\u201d Id., at 270. In a section entitled \u201cThe Right in\nGeneral,\u201d he continued:\n\u201cIt might be supposed from the phraseology of this provision that the right to keep and bear arms was only guaranteed to the\nmilitia; but this would be an interpretation not warranted by the intent.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4158, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "71896282-7ca5-4b1b-a0d2-2e0d31f29389": {"__data__": {"id_": "71896282-7ca5-4b1b-a0d2-2e0d31f29389", "embedding": null, "metadata": {"page_label": "18", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "91d77b80-b8fd-4863-ba2e-909379bf911e", "node_type": "4", "metadata": {"page_label": "18", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "20a6a2e930e1fccc4063caba73513b1d63a75312927a661567ee4a0c3e30d6db", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "5f3cf013-de30-469a-b104-741977a7946a", "node_type": "1", "metadata": {"page_label": "18", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d554a4d9364701d54d175b0ffa3f954943b1230c1b290e0f43fcb390dacd7cbb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "How far it is in the power of the legislature to regulate this right, we shall not undertake to say, as happily there has\nbeen very little occasion to discuss that subject by the courts.\u201d Id., at 350.\nThat Cooley understood the right not as connected to militia service, but as securing the militia by ensuring a populace familiar\nwith arms, is made even clearer in his 1880 work, General Principles of Constitutional Law. The Second Amendment, he said,\n\u201cwas adopted with some modification and enlargement from the English Bill of Rights of 1688, where it stood as a protest\nagainst arbitrary action of the overturned dynasty in disarming the people.\u201d Id., at 270. In a section entitled \u201cThe Right in\nGeneral,\u201d he continued:\n\u201cIt might be supposed from the phraseology of this provision that the right to keep and bear arms was only guaranteed to the\nmilitia; but this would be an interpretation not warranted by the intent. The militia, as has been elsewhere explained, consists\nof those persons who, under the law, are liable to the performance of military duty, and are officered and enrolled for service\nwhen called upon. But the law may make provision for the enrolment of all who are fit to perform military duty, or of a small\nnumber only, or it may wholly omit to make any provision at all; and if the right were limited to those enrolled, the purpose", "mimetype": "text/plain", "start_char_idx": 3235, "end_char_idx": 4593, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0a95e94f-69b3-41b3-b39f-fb2e489d5985": {"__data__": {"id_": "0a95e94f-69b3-41b3-b39f-fb2e489d5985", "embedding": null, "metadata": {"page_label": "19", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ec3730f0-80bb-4c97-9530-2fadd6ab0ae8", "node_type": "4", "metadata": {"page_label": "19", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "fb10246a1b858f2b24d7656f5c107866377bc728e141a4aff04cc0920ba5d41e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "e347acd8-9558-4957-856e-96a0592d5583", "node_type": "1", "metadata": {}, "hash": "cdb1207804efcc1f3a8807af37e1aa2c2d5625aeb9c2a18d9b7c75eda9003286", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 19\nof this guaranty might be defeated altogether by the action or neglect to act of the government it was meant to hold in check.\nThe meaning of the provision undoubtedly is, that the people, from whom the militia must be taken, shall have the right to\nkeep and bear arms; and they need no permission or regulation of law for the purpose. But this enables government to have\na well-regulated militia; for to bear arms implies something more than the mere keeping; it *618 implies the learning to\nhandle and use them in a way that makes those who keep them ready for **2812 their efficient use; in other words, it implies\nthe right to meet for voluntary discipline in arms, observing in doing so the laws of public order.\u201d Id., at 271.\nAll other post-Civil War 19th-century sources we have found concurred with Cooley. One example from each decade will\nconvey the general flavor:\n\u201c[The purpose of the Second Amendment is] to secure a well-armed militia .... But a militia would be useless unless the\ncitizens were enabled to exercise themselves in the use of warlike weapons. To preserve this privilege, and to secure to the\npeople the ability to oppose themselves in military force against the usurpations of government, as well as against enemies\nfrom without, that government is forbidden by any law or proceeding to invade or destroy the right to keep and bear arms ....\nThe clause is analogous to the one securing the freedom of speech and of the press. Freedom, not license, is secured; the\nfair use, not the libellous abuse, is protected.\u201d J. Pomeroy, An Introduction to the Constitutional Law of the United States\n\u00a7 239, pp. 152\u2013153 (1868) (hereinafter Pomeroy).\n\u201cAs the Constitution of the United States, and the constitutions of several of the states, in terms more or less comprehensive,\ndeclare the right of the people to keep and bear arms, it has been a subject of grave discussion, in some of the state courts,\nwhether a statute prohibiting persons, when not on a journey, or as travellers, from wearing or carrying concealed weapons,\nbe constitutional. There has been a great difference of opinion on the question.\u201d 2 J. Kent, Commentaries on American Law\n*340, n. 2 (O. Holmes ed., 12th ed. 1873) (hereinafter Kent).\n*619 \u201cSome general knowledge of firearms is important to the public welfare; because it would be impossible, in case of\nwar, to organize promptly an efficient force of volunteers unless the people had some familiarity with weapons of war. The\nConstitution secures the right of the people to keep and bear arms. No doubt, a citizen who keeps a gun or pistol under judicious\nprecautions, practises in safe places the use of it, and in due time teaches his sons to do the same, exercises his individual\nright. No doubt, a person whose residence or duties involve peculiar peril may keep a pistol for prudent self-defence.\u201d B.\nAbbott, Judge and Jury: A Popular Explanation of the Leading Topics in the Law of the Land 333 (1880) (hereinafter Abbott).\n\u201cThe right to bear arms has always been the distinctive privilege of freemen. Aside from any necessity of self-protection to\nthe person, it represents among all nations power coupled with the exercise of a certain jurisdiction. ... [I]t was not necessary\nthat the right to bear arms should be granted in the Constitution, for it had always existed.\u201d J. Ordronaux, Constitutional\nLegislation in the United States 241\u2013242 (1891).\nE\nWe now ask whether any of our precedents forecloses the conclusions we have reached about the meaning of the Second\nAmendment.\nUnited States v. Cruikshank, 92 U.S. 542, 23 L.Ed. 588, in the course of vacating the convictions of members of a white mob\nfor depriving blacks of their right to keep and bear arms, held that the Second Amendment does not by its own force apply\nto anyone other than the Federal Government. The opinion explained that the right \u201cis not a right granted by the Constitution\n[or] in any manner dependent upon that instrument for its existence.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4181, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e347acd8-9558-4957-856e-96a0592d5583": {"__data__": {"id_": "e347acd8-9558-4957-856e-96a0592d5583", "embedding": null, "metadata": {"page_label": "19", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ec3730f0-80bb-4c97-9530-2fadd6ab0ae8", "node_type": "4", "metadata": {"page_label": "19", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "fb10246a1b858f2b24d7656f5c107866377bc728e141a4aff04cc0920ba5d41e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "0a95e94f-69b3-41b3-b39f-fb2e489d5985", "node_type": "1", "metadata": {"page_label": "19", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "51a54c4dd8eaafe9c0e4ad72e88b667d8f06a20d4b74aff3b273d6dd9e127614", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "... [I]t was not necessary\nthat the right to bear arms should be granted in the Constitution, for it had always existed.\u201d J. Ordronaux, Constitutional\nLegislation in the United States 241\u2013242 (1891).\nE\nWe now ask whether any of our precedents forecloses the conclusions we have reached about the meaning of the Second\nAmendment.\nUnited States v. Cruikshank, 92 U.S. 542, 23 L.Ed. 588, in the course of vacating the convictions of members of a white mob\nfor depriving blacks of their right to keep and bear arms, held that the Second Amendment does not by its own force apply\nto anyone other than the Federal Government. The opinion explained that the right \u201cis not a right granted by the Constitution\n[or] in any manner dependent upon that instrument for its existence. **2813 The second amendment ... means no more *620\nthan that it shall not be infringed by Congress.\u201d Id., at 553. States, we said, were free to restrict or protect the right under their\npolice powers. The limited discussion of the Second Amendment in Cruikshank supports, if anything, the individual-rights\ninterpretation. There was no claim in Cruikshank that the victims had been deprived of their right to carry arms in a militia;\nindeed, the Governor had disbanded the local militia unit the year before the mob's attack, see C. Lane, The Day Freedom Died", "mimetype": "text/plain", "start_char_idx": 3412, "end_char_idx": 4742, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f47659c9-1dc5-4bfc-b39a-3014c7828736": {"__data__": {"id_": "f47659c9-1dc5-4bfc-b39a-3014c7828736", "embedding": null, "metadata": {"page_label": "20", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "064c0af8-dcbb-4743-a3d3-3d39087ed765", "node_type": "4", "metadata": {"page_label": "20", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "040524e305d9f02173ad83f1e9f92908ec1c8d1970de3e907fd326afb09ba037", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "349e2184-1f68-430d-9bde-98fd3594d4ca", "node_type": "1", "metadata": {}, "hash": "cff6ea78de09f40f3356ff3b7cb561352a95029bbc7c0d47d87060e2d2895d44", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 20\n62 (2008). We described the right protected by the Second Amendment as \u201c \u2018bearing arms for a lawful purpose\u2019 \u201d 22 and said\nthat \u201cthe people [must] look for their protection against any violation by their fellow-citizens of the rights it recognizes\u201d to the\nStates' police power. 92 U.S., at 553. That discussion makes little sense if it is only a right to bear arms in a state militia.23\nPresser v. Illinois, 116 U.S. 252, 6 S.Ct. 580, 29 L.Ed. 615 (1886) , held that the right to keep and bear arms was not violated\nby a law that forbade \u201cbodies of men to associate together as military organizations, or to drill or parade with arms in cities\nand towns unless authorized by law.\u201d Id., at 264\u2013265, 6 S.Ct. 580 . This does not refute the individual-rights interpretation of\nthe Amendment; no one supporting that interpretation has contended that States may not ban such groups. Justice STEVENS\n*621 presses Presser into service to support his view that the right to bear arms is limited to service in the militia by joining\nPresser's brief discussion of the Second Amendment with a later portion of the opinion making the seemingly relevant (to\nthe Second Amendment) point that the plaintiff was not a member of the state militia. Unfortunately for Justice STEVENS'\nargument, that later portion deals with the Fourteenth Amendment; it was the Fourteenth Amendment to which the plaintiff's\nnonmembership in the militia was relevant. Thus, Justice STEVENS' statement that Presser \u201csuggested that ... nothing in the\nConstitution protected the use of arms outside the context of a militia,\u201d post, at 2843, is simply wrong. Presser said nothing\nabout the Second Amendment's meaning or scope, beyond the fact that it does not prevent the prohibition of private paramilitary\norganizations.\nJustice STEVENS places overwhelming reliance upon this Court's decision in Miller, 307 U.S. 174, 59 S.Ct. 816, 83 L.Ed.\n1206. \u201c[H]undreds of judges,\u201d we are told, \u201chave relied on the view of the Amendment we endorsed there,\u201d post, at 2823, and\n\u201c[e]ven if the textual and historical arguments on both sides of the issue were evenly balanced, respect for the well-settled views\nof all of our predecessors on this Court, and for the rule of law itself ... **2814 would prevent most jurists from endorsing\nsuch a dramatic upheaval in the law,\u201d post, at 2824. And what is, according to Justice STEVENS, the holding of Miller that\ndemands such obeisance? That the Second Amendment \u201cprotects the right to keep and bear arms for certain military purposes,\nbut that it does not curtail the Legislature's power to regulate the nonmilitary use and ownership of weapons.\u201d Post, at 2823.\nNothing so clearly demonstrates the weakness of Justice STEVENS' case. Miller did not hold that and cannot possibly be read\nto have held that. The judgment in the case upheld against a Second Amendment challenge two men's federal indictment for\ntransporting an unregistered short-barreled *622 shotgun in interstate commerce, in violation of the National Firearms Act,\n48 Stat. 1236. It is entirely clear that the Court's basis for saying that the Second Amendment did not apply was not that the\ndefendants were \u201cbear [ing] arms\u201d not \u201cfor ... military purposes\u201d but for \u201cnonmilitary use,\u201d post, at 2823. Rather, it was that\nthe type of weapon at issue was not eligible for Second Amendment protection: \u201cIn the absence of any evidence tending to\nshow that the possession or use of a [short-barreled shotgun] at this time has some reasonable relationship to the preservation or\nefficiency of a well regulated militia, we cannot say that the Second Amendment guarantees the right to keep and bear such an\ninstrument.\u201d 307 U.S., at 178, 59 S.Ct. 816 (emphasis added).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3928, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "349e2184-1f68-430d-9bde-98fd3594d4ca": {"__data__": {"id_": "349e2184-1f68-430d-9bde-98fd3594d4ca", "embedding": null, "metadata": {"page_label": "20", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "064c0af8-dcbb-4743-a3d3-3d39087ed765", "node_type": "4", "metadata": {"page_label": "20", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "040524e305d9f02173ad83f1e9f92908ec1c8d1970de3e907fd326afb09ba037", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "f47659c9-1dc5-4bfc-b39a-3014c7828736", "node_type": "1", "metadata": {"page_label": "20", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5876a78c8a99b1512b0d145b2169d72c978e8a4f377158fd7c7f8e62ff05c86b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1236. It is entirely clear that the Court's basis for saying that the Second Amendment did not apply was not that the\ndefendants were \u201cbear [ing] arms\u201d not \u201cfor ... military purposes\u201d but for \u201cnonmilitary use,\u201d post, at 2823. Rather, it was that\nthe type of weapon at issue was not eligible for Second Amendment protection: \u201cIn the absence of any evidence tending to\nshow that the possession or use of a [short-barreled shotgun] at this time has some reasonable relationship to the preservation or\nefficiency of a well regulated militia, we cannot say that the Second Amendment guarantees the right to keep and bear such an\ninstrument.\u201d 307 U.S., at 178, 59 S.Ct. 816 (emphasis added). \u201cCertainly,\u201d the Court continued, \u201cit is not within judicial notice\nthat this weapon is any part of the ordinary military equipment or that its use could contribute to the common defense.\u201d Ibid.\nBeyond that, the opinion provided no explanation of the content of the right.\nThis holding is not only consistent with, but positively suggests, that the Second Amendment confers an individual right to keep\nand bear arms (though only arms that \u201chave some reasonable relationship to the preservation or efficiency of a well regulated\nmilitia\u201d). Had the Court believed that the Second Amendment protects only those serving in the militia, it would have been odd\nto examine the character of the weapon rather than simply note that the two crooks were not militiamen. Justice STEVENS\ncan say again and again that Miller did not \u201cturn on the difference between muskets and sawed-off shotguns; it turned, rather,\non the basic difference between the military and nonmilitary use and possession of guns,\u201d post, at 2845, but the words of the\nopinion prove otherwise. The most Justice STEVENS can plausibly claim for Miller is that it declined to decide the nature of\nthe Second Amendment right, despite the Solicitor General's argument (made in the alternative) that the right was collective, see\nBrief for United States, O.T.1938, *623 No. 696, pp. 4\u20135. Miller stands only for the proposition that the Second Amendment\nright, whatever its nature, extends only to certain types of weapons.", "mimetype": "text/plain", "start_char_idx": 3243, "end_char_idx": 5405, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bdc90b98-9ea4-4d31-81ba-79418630a920": {"__data__": {"id_": "bdc90b98-9ea4-4d31-81ba-79418630a920", "embedding": null, "metadata": {"page_label": "21", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c8aa2e5e-c915-40e4-a5ba-5c109b77a9d2", "node_type": "4", "metadata": {"page_label": "21", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d4573edfe8650588efb9f46a81c00078876d24e9463b8dc2d1de8f8c3e14e810", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "0050c67f-4b8e-49c6-b8f9-32bc458866a0", "node_type": "1", "metadata": {}, "hash": "ffdc880175209aa205b234e520ee51308a370639900bdeb62eb7d85926d326c0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 21\nIt is particularly wrongheaded to read Miller for more than what it said, because the case did not even purport to be a thorough\nexamination of the Second Amendment. Justice STEVENS claims, post, at 2845, that the opinion reached its conclusion \u201c[a]fter\nreviewing many of the same sources that are discussed at greater length by the Court today.\u201d Not many, which was not entirely\nthe Court's fault. The defendants made no appearance in the case, neither filing a brief nor appearing at oral argument; the Court\nheard from no one but the Government (reason enough, one would think, not to make that case the beginning and the end of\nthis Court's consideration of the Second Amendment). See Frye, The Peculiar Story of United States v. Miller, 3 N.Y .U.J.L.\n& Liberty 48, 65\u201368 (2008) . The Government's brief **2815 spent two pages discussing English legal sources, concluding\n\u201cthat at least the carrying of weapons without lawful occasion or excuse was always a crime\u201d and that (because of the class-\nbased restrictions and the prohibition on terrorizing people with dangerous or unusual weapons) \u201cthe early English law did\nnot guarantee an unrestricted right to bear arms.\u201d Brief for United States, O.T.1938, No. 696, at 9\u201311. It then went on to rely\nprimarily on the discussion of the English right to bear arms in Aymette v. State, 21 Tenn. 154, for the proposition that the only\nuses of arms protected by the Second Amendment are those that relate to the militia, not self-defense. See Brief for United\nStates, O.T.1938, No. 696, at 12\u201318. The final section of the brief recognized that \u201csome courts have said that the right to bear\narms includes the right of the individual to have them for the protection of his person and property,\u201d and launched an alternative\nargument that \u201cweapons which are commonly used by criminals,\u201d such as sawed-off shotguns, are not protected. See id., at 18\u2013\n21. The Government's Miller brief thus provided *624 scant discussion of the history of the Second Amendment\u2014and the\nCourt was presented with no counterdiscussion. As for the text of the Court's opinion itself, that discusses none of the history of\nthe Second Amendment. It assumes from the prologue that the Amendment was designed to preserve the militia, 307 U.S., at\n178, 59 S.Ct. 816 (which we do not dispute), and then reviews some historical materials dealing with the nature of the militia,\nand in particular with the nature of the arms their members were expected to possess, id., at 178\u2013182, 59 S.Ct. 816. Not a word\n(not a word) about the history of the Second Amendment. This is the mighty rock upon which the dissent rests its case. 24\nWe may as well consider at this point (for we will have to consider eventually) what types of weapons Miller permits. Read\nin isolation, Miller's phrase \u201cpart of ordinary military equipment\u201d could mean that only those weapons useful in warfare are\nprotected. That would be a startling reading of the opinion, since it would mean that the National Firearms Act's restrictions on\nmachineguns (not challenged in Miller) might be unconstitutional, machineguns being useful in warfare in 1939. We think that\nMiller 's \u201cordinary military equipment\u201d language must be read in tandem with what comes after: \u201c[O]rdinarily when called for\n[militia] service [able-bodied] men were expected to appear bearing arms supplied by themselves and of the kind in common use\nat the time.\u201d 307 U.S., at 179, 59 S.Ct. 816. The traditional militia was formed from a pool of men bringing arms \u201cin common use\nat the time\u201d for lawful purposes like self-defense. \u201cIn the colonial *625 and revolutionary war era, [small-arms] weapons used\nby militiamen and weapons used in defense of person and home were one and the same.\u201d State v. Kessler, 289 Ore.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3968, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0050c67f-4b8e-49c6-b8f9-32bc458866a0": {"__data__": {"id_": "0050c67f-4b8e-49c6-b8f9-32bc458866a0", "embedding": null, "metadata": {"page_label": "21", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c8aa2e5e-c915-40e4-a5ba-5c109b77a9d2", "node_type": "4", "metadata": {"page_label": "21", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d4573edfe8650588efb9f46a81c00078876d24e9463b8dc2d1de8f8c3e14e810", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "bdc90b98-9ea4-4d31-81ba-79418630a920", "node_type": "1", "metadata": {"page_label": "21", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9d646fbe1abda0b03168a7cc121bd5b12a1da4e48cd8ff97dc59ef8d75b95559", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "We think that\nMiller 's \u201cordinary military equipment\u201d language must be read in tandem with what comes after: \u201c[O]rdinarily when called for\n[militia] service [able-bodied] men were expected to appear bearing arms supplied by themselves and of the kind in common use\nat the time.\u201d 307 U.S., at 179, 59 S.Ct. 816. The traditional militia was formed from a pool of men bringing arms \u201cin common use\nat the time\u201d for lawful purposes like self-defense. \u201cIn the colonial *625 and revolutionary war era, [small-arms] weapons used\nby militiamen and weapons used in defense of person and home were one and the same.\u201d State v. Kessler, 289 Ore. 359, 368,\n614 P.2d 94, 98 (1980) (citing G. Neumann, Swords and Blades of the American Revolution 6\u201315, 252\u2013254 (1973)). Indeed,\nthat is precisely the way in which the Second Amendment's operative clause furthers the purpose announced in its preface. We\ntherefore read Miller to say only that the **2816 Second Amendment does not protect those weapons not typically possessed\nby law-abiding citizens for lawful purposes, such as short-barreled shotguns. That accords with the historical understanding of\nthe scope of the right, see Part III, infra. 25\nWe conclude that nothing in our precedents forecloses our adoption of the original understanding of the Second Amendment. It\nshould be unsurprising that such a significant matter has been for so long judicially unresolved. For most of our history, the Bill\nof Rights was not thought applicable to the States, and the Federal Government did not significantly regulate the possession\nof firearms by law-abiding citizens. Other provisions of the Bill of Rights have similarly remained unilluminated for lengthy\nperiods. This Court first *626 held a law to violate the First Amendment's guarantee of freedom of speech in 1931, almost 150\nyears after the Amendment was ratified, see Near v. Minnesota ex rel. Olson, 283 U.S. 697, 51 S.Ct. 625, 75 L.Ed. 1357 (1931),\nand it was not until after World War II that we held a law invalid under the Establishment Clause, see Illinois ex rel. McCollum\nv. Board of Ed. of School Dist. No. 71, Champaign Cty., 333 U.S. 203, 68 S.Ct. 461, 92 L.Ed. 649 (1948) . Even a question as\nbasic as the scope of proscribable libel was not addressed by this Court until 1964, nearly two centuries after the founding. See\nNew York Times Co. v. Sullivan, 376 U.S. 254, 84 S.Ct. 710, 11 L.Ed.2d 686 (1964). It is demonstrably not true that, as Justice\nSTEVENS claims, post, at 2844 \u2013 2845, \u201cfor most of our history, the invalidity of Second\u2013Amendment\u2013based objections to\nfirearms regulations has been well settled and uncontroversial.\u201d For most of our history the question did not present itself.", "mimetype": "text/plain", "start_char_idx": 3335, "end_char_idx": 6040, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4f3c8d74-ca06-429f-9600-807dfe996b3b": {"__data__": {"id_": "4f3c8d74-ca06-429f-9600-807dfe996b3b", "embedding": null, "metadata": {"page_label": "22", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d48eb661-131f-4ebc-9a1d-652b0e12d101", "node_type": "4", "metadata": {"page_label": "22", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d7f0719b404968190211ccaf196f53dd5a7192153386ab3bf5ed414d1c413031", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "65f70ebc-854c-470e-aaaf-cb5901ce7a35", "node_type": "1", "metadata": {}, "hash": "4f9ac688d870ed30a646b8fce0908807ff7358f298f4edbdd4ea82aa7c6c31bc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 22\nIII\n Like most rights, the right secured by the Second Amendment is not unlimited. From Blackstone through the 19th-century\ncases, commentators and courts routinely explained that the right was not a right to keep and carry any weapon whatsoever in\nany manner whatsoever and for whatever purpose. See, e.g., Sheldon, in 5 Blume 346; Rawle 123; Pomeroy 152\u2013153; Abbott\n333. For example, the majority of the 19th-century courts to consider the question held that prohibitions on carrying concealed\nweapons were lawful under the Second Amendment or state analogues. See, e.g., State v. Chandler, 5 La. Ann., at 489\u2013490 ;\nNunn v. State, 1 Ga., at 251; see generally 2 Kent *340, n. 2; The American Students' Blackstone 84, n. 11 (G. Chase ed. 1884).\nAlthough we do not undertake an exhaustive historical analysis today of the full scope of the Second Amendment, nothing in\nour opinion should be taken to cast doubt on longstanding prohibitions on the possession **2817 of firearms by felons and\nthe mentally ill, or laws forbidding the carrying of firearms in sensitive places such as schools and government buildings, or\nlaws imposing *627 conditions and qualifications on the commercial sale of arms. 26\n We also recognize another important limitation on the right to keep and carry arms. Miller said, as we have explained, that the\nsorts of weapons protected were those \u201cin common use at the time.\u201d 307 U.S., at 179, 59 S.Ct. 816. We think that limitation is\nfairly supported by the historical tradition of prohibiting the carrying of \u201cdangerous and unusual weapons.\u201d See 4 Blackstone\n148\u2013149 (1769); 3 B. Wilson, Works of the Honourable James Wilson 79 (1804); J. Dunlap, The New\u2013York Justice 8 (1815);\nC. Humphreys, A Compendium of the Common Law in Force in Kentucky 482 (1822); 1 W. Russell, A Treatise on Crimes and\nIndictable Misdemeanors 271\u2013272 (1831); H. Stephen, Summary of the Criminal Law 48 (1840); E. Lewis, An Abridgment of\nthe Criminal Law of the United States 64 (1847); F. Wharton, A Treatise on the Criminal Law of the United States 726 (1852).\nSee also State v. Langford, 10 N.C. 381, 383\u2013384 (1824); O'Neill v. State, 16 Ala. 65, 67 (1849); English v. State, 35 Tex. 473,\n476 (1871); State v. Lanier, 71 N.C. 288, 289 (1874).\nIt may be objected that if weapons that are most useful in military service\u2014M\u201316 rifles and the like\u2014may be banned, then\nthe Second Amendment right is completely detached from the prefatory clause. But as we have said, the conception of the\nmilitia at the time of the Second Amendment's ratification was the body of all citizens capable of military service, who would\nbring the sorts of lawful weapons that they possessed at home to militia duty. It may well be true today that a militia, to be as\neffective as militias in the 18th century, would require sophisticated arms that are highly unusual in society at large. Indeed,\nit may be true that no amount of small arms could be useful against modern-day bombers and tanks. But the fact that modern\ndevelopments have limited the degree of fit between the prefatory clause *628 and the protected right cannot change our\ninterpretation of the right.\nIV\nWe turn finally to the law at issue here. As we have said, the law totally bans handgun possession in the home. It also requires\nthat any lawful firearm in the home be disassembled or bound by a trigger lock at all times, rendering it inoperable.\nAs the quotations earlier in this opinion demonstrate, the inherent right of self-defense has been central to the Second\nAmendment right.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3739, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "65f70ebc-854c-470e-aaaf-cb5901ce7a35": {"__data__": {"id_": "65f70ebc-854c-470e-aaaf-cb5901ce7a35", "embedding": null, "metadata": {"page_label": "22", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d48eb661-131f-4ebc-9a1d-652b0e12d101", "node_type": "4", "metadata": {"page_label": "22", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d7f0719b404968190211ccaf196f53dd5a7192153386ab3bf5ed414d1c413031", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "4f3c8d74-ca06-429f-9600-807dfe996b3b", "node_type": "1", "metadata": {"page_label": "22", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0b9775c7f624cbf44657e2b320babc668f5a13c28f1b3f114053dc7f58c7f544", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "It may well be true today that a militia, to be as\neffective as militias in the 18th century, would require sophisticated arms that are highly unusual in society at large. Indeed,\nit may be true that no amount of small arms could be useful against modern-day bombers and tanks. But the fact that modern\ndevelopments have limited the degree of fit between the prefatory clause *628 and the protected right cannot change our\ninterpretation of the right.\nIV\nWe turn finally to the law at issue here. As we have said, the law totally bans handgun possession in the home. It also requires\nthat any lawful firearm in the home be disassembled or bound by a trigger lock at all times, rendering it inoperable.\nAs the quotations earlier in this opinion demonstrate, the inherent right of self-defense has been central to the Second\nAmendment right. The handgun ban amounts to a prohibition of an entire class of \u201carms\u201d that is overwhelmingly chosen by\nAmerican society for that lawful purpose. The prohibition extends, moreover, to the home, where the need for defense of self,\nfamily, and property is most acute. Under any of the standards of scrutiny that we have applied to enumerated constitutional\nrights, 27 banning from the home **2818 \u201cthe most preferred firearm in the nation to \u2018keep\u2019 and use for *629 protection of\none's home and family,\u201d 478 F.3d, at 400, would fail constitutional muster.", "mimetype": "text/plain", "start_char_idx": 2898, "end_char_idx": 4295, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "574dd432-24aa-4978-9c24-b55be5f2f83b": {"__data__": {"id_": "574dd432-24aa-4978-9c24-b55be5f2f83b", "embedding": null, "metadata": {"page_label": "23", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "50164492-6ab0-4027-a7e0-c3d2b0b6c44c", "node_type": "4", "metadata": {"page_label": "23", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5526b181892b2b35928b6151a27253c850c0bd804ed3d52054c73ebfb68739e6", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "c0fa3ed4-cbe4-4aca-98ea-35be62cfd346", "node_type": "1", "metadata": {}, "hash": "253ad6202387be44c44fe575c4f68a74abb86c277b51ff09e33ca1e17e9349ec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 23\nFew laws in the history of our Nation have come close to the severe restriction of the District's handgun ban. And some of those\nfew have been struck down. In Nunn v. State, the Georgia Supreme Court struck down a prohibition on carrying pistols openly\n(even though it upheld a prohibition on carrying concealed weapons). See 1 Ga., at 251 . In Andrews v. State, the Tennessee\nSupreme Court likewise held that a statute that forbade openly carrying a pistol \u201cpublicly or privately, without regard to time or\nplace, or circumstances,\u201d 50 Tenn., at 187, violated the state constitutional provision (which the court equated with the Second\nAmendment). That was so even though the statute did not restrict the carrying of long guns. Ibid. See also State v. Reid, 1 Ala.\n612, 616\u2013617 (1840) (\u201cA statute which, under the pretence of regulating, amounts to a destruction of the right, or which requires\narms to be so borne as to render them wholly useless for the purpose of defence, would be clearly unconstitutional\u201d).\nIt is no answer to say, as petitioners do, that it is permissible to ban the possession of handguns so long as the possession of\nother firearms (i.e., long guns) is allowed. It is enough to note, as we have observed, that the American people have considered\nthe handgun to be the quintessential self-defense weapon. There are many reasons that a citizen may prefer a handgun for home\ndefense: It is easier to store in a location that is readily accessible in an emergency; it cannot easily be redirected or wrestled\naway by an attacker; it is easier to use for those without the upper-body strength to lift and aim a long gun; it can be pointed\nat a burglar with one hand while the other hand dials the police. Whatever the reason, handguns are the most popular weapon\nchosen by Americans for self-defense in the home, and a complete prohibition of their use is invalid.\n*630 We must also address the District's requirement (as applied to respondent's handgun) that firearms in the home be rendered\nand kept inoperable at all times. This makes it impossible for citizens to use them for the core lawful purpose of self-defense\nand is hence unconstitutional. The District argues that we should interpret this element of the statute to contain an exception\nfor self-defense. See Brief for Petitioners 56\u201357. But we think that is precluded by the unequivocal text, and by the presence\nof certain other enumerated exceptions: \u201cExcept for law enforcement personnel ..., each registrant shall keep any firearm in\nhis possession unloaded and disassembled or bound by a trigger lock or similar device unless such firearm is kept at his place\nof business, or while being used for lawful recreational purposes within the District of Columbia.\u201d D.C.Code \u00a7 7\u20132507.02 .\nThe nonexistence of a self-defense exception is also suggested by the D.C. Court of Appeals' statement that the statute forbids\nresidents to use firearms to **2819 stop intruders, see McIntosh v. Washington, 395 A.2d 744, 755\u2013756 (1978). 28\nApart from his challenge to the handgun ban and the trigger-lock requirement respondent asked the District Court to enjoin\npetitioners from enforcing the separate licensing requirement \u201cin such a manner as to forbid the carrying of a firearm within\none's home or possessed land without a license.\u201d App. 59a. The Court of Appeals did not invalidate the licensing requirement,\nbut held only that the District \u201cmay not prevent [a handgun] from being moved throughout one's house.\u201d 478 F.3d, at 400 .\nIt then ordered the District Court to enter summary judgment \u201cconsistent *631 with [respondent's] prayer for relief.\u201d Id., at\n401. Before this Court petitioners have stated that \u201cif the handgun ban is struck down and respondent registers a handgun, he\ncould obtain a license, assuming he is not otherwise disqualified,\u201d by which they apparently mean if he is not a felon and is\nnot insane. Brief for Petitioners 58.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4131, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0fa3ed4-cbe4-4aca-98ea-35be62cfd346": {"__data__": {"id_": "c0fa3ed4-cbe4-4aca-98ea-35be62cfd346", "embedding": null, "metadata": {"page_label": "23", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "50164492-6ab0-4027-a7e0-c3d2b0b6c44c", "node_type": "4", "metadata": {"page_label": "23", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5526b181892b2b35928b6151a27253c850c0bd804ed3d52054c73ebfb68739e6", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "574dd432-24aa-4978-9c24-b55be5f2f83b", "node_type": "1", "metadata": {"page_label": "23", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "86dfc03e1eafa21d82b9b2440fddfb1d9e81a0acadbfdbab706e7b567edd4a5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "59a. The Court of Appeals did not invalidate the licensing requirement,\nbut held only that the District \u201cmay not prevent [a handgun] from being moved throughout one's house.\u201d 478 F.3d, at 400 .\nIt then ordered the District Court to enter summary judgment \u201cconsistent *631 with [respondent's] prayer for relief.\u201d Id., at\n401. Before this Court petitioners have stated that \u201cif the handgun ban is struck down and respondent registers a handgun, he\ncould obtain a license, assuming he is not otherwise disqualified,\u201d by which they apparently mean if he is not a felon and is\nnot insane. Brief for Petitioners 58. Respondent conceded at oral argument that he does not \u201chave a problem with ... licensing\u201d\nand that the District's law is permissible so long as it is \u201cnot enforced in an arbitrary and capricious manner.\u201d Tr. of Oral Arg.\n74\u201375. We therefore assume that petitioners' issuance of a license will satisfy respondent's prayer for relief and do not address\nthe licensing requirement.\nJustice BREYER has devoted most of his separate dissent to the handgun ban. He says that, even assuming the Second\nAmendment is a personal guarantee of the right to bear arms, the District's prohibition is valid. He first tries to establish this\nby founding-era historical precedent, pointing to various restrictive laws in the colonial period. These demonstrate, in his view,\nthat the District's law \u201cimposes a burden upon gun owners that seems proportionately no greater than restrictions in existence\nat the time the Second Amendment was adopted.\u201d Post, at 2848. Of the laws he cites, only one offers even marginal support for\nhis assertion. A 1783 Massachusetts law forbade the residents of Boston to \u201ctake into\u201d or \u201creceive into\u201d \u201cany Dwelling-House,\nStable, Barn, Out-house, Ware-house, Store, Shop or other Building\u201d loaded firearms, and permitted the seizure of any loaded\nfirearms that \u201cshall be found\u201d there. Act of Mar. 1, 1783, ch. XIII, 1783 Mass. Acts p. 218. That statute's text and its prologue,\nwhich makes clear that the purpose of the prohibition was to eliminate the danger to firefighters posed by the \u201cdepositing of\nloaded Arms\u201d in buildings, give reason to doubt that colonial Boston authorities would have enforced that general prohibition", "mimetype": "text/plain", "start_char_idx": 3521, "end_char_idx": 5773, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0f46b6ed-1094-4dd0-b715-37e8363ad5b7": {"__data__": {"id_": "0f46b6ed-1094-4dd0-b715-37e8363ad5b7", "embedding": null, "metadata": {"page_label": "24", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1e729a09-41f9-4fc6-babe-f24c071a836b", "node_type": "4", "metadata": {"page_label": "24", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ff8ac8a95b50015f476d4ae32484e1a70474d78dd88c85833ffd2c0860263bf1", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "11551208-76be-4d91-b828-8e932381db15", "node_type": "1", "metadata": {}, "hash": "492670ddd59da0a57b40faf316fe90a713d11f0034ef454193b09632a3ddbbad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 24\nagainst someone who temporarily loaded a firearm to confront an intruder (despite the law's *632 application in that case).\nIn any case, we would not stake our interpretation of the Second Amendment upon a single law, in effect in a single city, that\ncontradicts the overwhelming weight of other evidence regarding the right to keep and bear arms for defense of the home.\nThe other laws Justice BREYER cites are gunpowder-storage laws that he concedes did not clearly prohibit loaded weapons,\nbut required only that excess gunpowder be kept in a special container or on the top floor of the home. Post, at 2849 \u2013 2850.\nNothing about those fire-safety laws undermines **2820 our analysis; they do not remotely burden the right of self-defense\nas much as an absolute ban on handguns. Nor, correspondingly, does our analysis suggest the invalidity of laws regulating the\nstorage of firearms to prevent accidents.\nJustice BREYER points to other founding-era laws that he says \u201crestricted the firing of guns within the city limits to at least some\ndegree\u201d in Boston, Philadelphia, and New York. Post, at 2848 (citing Churchill, Gun Regulation, the Police Power, and the Right\nto Keep Arms in Early America, 25 Law & Hist. Rev. 139, 162 (2007)). Those laws provide no support for the severe restriction\nin the present case. The New York law levied a fine of 20 shillings on anyone who fired a gun in certain places (including houses)\non New Year's Eve and the first two days of January, and was aimed at preventing the \u201cgreat Damages ... frequently done on\n[those days] by persons going House to House, with Guns and other Fire Arms and being often intoxicated with Liquor.\u201d Ch.\n1501, 5 Colonial Laws of New York 244\u2013246 (1894). It is inconceivable that this law would have been enforced against a person\nexercising his right to self-defense on New Year's Day against such drunken hooligans. The Pennsylvania law to which Justice\nBREYER refers levied a fine of five shillings on one who fired a gun or set off fireworks in Philadelphia without first obtaining\na license from the Governor. See Act of Aug. 26, 1721, ch. CCXLV , \u00a7 IV , in 3 Stat. at Large of Pa. 253\u2013254 (1896). Given\nJustice Wilson's explanation *633 that the right to self-defense with arms was protected by the Pennsylvania Constitution,\nit is unlikely that this law (which in any event amounted to at most a licensing regime) would have been enforced against a\nperson who used firearms for self-defense. Justice BREYER cites a Rhode Island law that simply levied a 5\u2013shilling fine on\nthose who fired guns in streets and taverns, a law obviously inapplicable to this case. See An Act for preventing Mischief being\ndone in the town of Newport, or in any other Town in this Government, 1731 Rhode Island Session Laws, pp. 240\u2013241. Finally,\nJustice BREYER points to a Massachusetts law similar to the Pennsylvania law, prohibiting \u201cdischarg[ing] any Gun or Pistol\ncharged with Shot or Ball in the Town of Boston.\u201d Act of May 28, 1746, ch. X, Acts and Laws of Mass. Bay p. 208. It is again\nimplausible that this would have been enforced against a citizen acting in self-defense, particularly given its preambulatory\nreference to \u201cthe indiscreet firing of Guns.\u201d Ibid. (preamble) (emphasis added).\nA broader point about the laws that Justice BREYER cites: All of them punished the discharge (or loading) of guns with a small\nfine and forfeiture of the weapon (or in a few cases a very brief stay in the local jail), not with significant criminal penalties.29\nThey are akin to modern penalties for minor public-safety infractions like speeding or jaywalking.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3820, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "11551208-76be-4d91-b828-8e932381db15": {"__data__": {"id_": "11551208-76be-4d91-b828-8e932381db15", "embedding": null, "metadata": {"page_label": "24", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1e729a09-41f9-4fc6-babe-f24c071a836b", "node_type": "4", "metadata": {"page_label": "24", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ff8ac8a95b50015f476d4ae32484e1a70474d78dd88c85833ffd2c0860263bf1", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "0f46b6ed-1094-4dd0-b715-37e8363ad5b7", "node_type": "1", "metadata": {"page_label": "24", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0b639c90f38770c7d30383d7e4bce84709256ebefcd814ee47f6b5611fc1c480", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finally,\nJustice BREYER points to a Massachusetts law similar to the Pennsylvania law, prohibiting \u201cdischarg[ing] any Gun or Pistol\ncharged with Shot or Ball in the Town of Boston.\u201d Act of May 28, 1746, ch. X, Acts and Laws of Mass. Bay p. 208. It is again\nimplausible that this would have been enforced against a citizen acting in self-defense, particularly given its preambulatory\nreference to \u201cthe indiscreet firing of Guns.\u201d Ibid. (preamble) (emphasis added).\nA broader point about the laws that Justice BREYER cites: All of them punished the discharge (or loading) of guns with a small\nfine and forfeiture of the weapon (or in a few cases a very brief stay in the local jail), not with significant criminal penalties.29\nThey are akin to modern penalties for minor public-safety infractions like speeding or jaywalking. And although such public-\nsafety laws may not contain exceptions for self-defense, it is inconceivable that the threat of a jaywalking ticket would deter\nsomeone from disregarding a \u201cDo Not Walk\u201d sign in order to flee an attacker, or that the government would enforce those laws\nunder such circumstances. Likewise, we do not think that a law imposing a *634 5\u2013shilling fine and forfeiture of the gun would\nhave prevented a person in the founding era from using a **2821 gun to protect himself or his family from violence, or that if\nhe did so the law would be enforced against him. The District law, by contrast, far from imposing a minor fine, threatens citizens\nwith a year in prison (five years for a second violation) for even obtaining a gun in the first place. See D.C.Code \u00a7 7\u20132507.06.\nJustice BREYER moves on to make a broad jurisprudential point: He criticizes us for declining to establish a level of scrutiny\nfor evaluating Second Amendment restrictions. He proposes, explicitly at least, none of the traditionally expressed levels (strict\nscrutiny, intermediate scrutiny, rational basis), but rather a judge-empowering \u201cinterest-balancing inquiry\u201d that \u201casks whether\nthe statute burdens a protected interest in a way or to an extent that is out of proportion to the statute's salutary effects upon\nother important governmental interests.\u201d Post, at 2852. After an exhaustive discussion of the arguments for and against gun\ncontrol, Justice BREYER arrives at his interest-balanced answer: Because handgun violence is a problem, because the law is\nlimited to an urban area, and because there were somewhat similar restrictions in the founding period (a false proposition that\nwe have already discussed), the interest-balancing inquiry results in the constitutionality of the handgun ban. QED.", "mimetype": "text/plain", "start_char_idx": 2997, "end_char_idx": 5624, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f9308aa2-d315-440e-a8f8-021faeda9479": {"__data__": {"id_": "f9308aa2-d315-440e-a8f8-021faeda9479", "embedding": null, "metadata": {"page_label": "25", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "902ca4b2-266e-434f-9a3d-b4cbbae6d0af", "node_type": "4", "metadata": {"page_label": "25", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "54dfac8b6c789ff89b493e5ad93d1e15c08fd71bcfa614303e5b67b9e497e0b4", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "bdc49586-5b1a-475a-92e4-fee9bdf8e193", "node_type": "1", "metadata": {}, "hash": "c9ee25b36b9d990d1f855adafa7ed0f071f80e11997e43176bd80037c8ed8a65", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 25\n We know of no other enumerated constitutional right whose core protection has been subjected to a freestanding \u201cinterest-\nbalancing\u201d approach. The very enumeration of the right takes out of the hands of government\u2014even the Third Branch of\nGovernment\u2014the power to decide on a case-by-case basis whether the right is really worth insisting upon. A constitutional\nguarantee subject to future judges' assessments of its usefulness is no constitutional guarantee at all. Constitutional rights are\nenshrined with the scope they were understood to have when the people adopted *635 them, whether or not future legislatures\nor (yes) even future judges think that scope too broad. We would not apply an \u201cinterest-balancing\u201d approach to the prohibition\nof a peaceful neo-Nazi march through Skokie. See National Socialist Party of America v. Skokie, 432 U.S. 43, 97 S.Ct. 2205,\n53 L.Ed.2d 96 (1977) (per curiam). The First Amendment contains the freedom-of-speech guarantee that the people ratified,\nwhich included exceptions for obscenity, libel, and disclosure of state secrets, but not for the expression of extremely unpopular\nand wrong headed views. The Second Amendment is no different. Like the First, it is the very product of an interest balancing\nby the people\u2014which Justice BREYER would now conduct for them anew. And whatever else it leaves to future evaluation, it\nsurely elevates above all other interests the right of law-abiding, responsible citizens to use arms in defense of hearth and home.\nJustice BREYER chides us for leaving so many applications of the right to keep and bear arms in doubt, and for not providing\nextensive historical justification for those regulations of the right that we describe as permissible. See post, at 2869 \u2013 2870. But\nsince this case represents this Court's first in-depth examination of the Second Amendment, one should not expect it to clarify\nthe entire field, any more than Reynolds v. United States, 98 U.S. 145, 25 L.Ed. 244 (1879) , our first in-depth Free Exercise\nClause case, left that area in a state of utter certainty. And there will be time enough to expound upon the historical justifications\nfor the exceptions we have mentioned if and when those exceptions come before us.\n In sum, we hold that the District's ban on handgun possession in the home violates the Second Amendment, as **2822 does its\nprohibition against rendering any lawful firearm in the home operable for the purpose of immediate self-defense. Assuming that\nHeller is not disqualified from the exercise of Second Amendment rights, the District must permit him to register his handgun\nand must issue him a license to carry it in the home.\n* * *\n*636 We are aware of the problem of handgun violence in this country, and we take seriously the concerns raised by the\nmany amici who believe that prohibition of handgun ownership is a solution. The Constitution leaves the District of Columbia a\nvariety of tools for combating that problem, including some measures regulating handguns, see supra, at 2816 \u2013 2817, and n. 26.\nBut the enshrinement of constitutional rights necessarily takes certain policy choices off the table. These include the absolute\nprohibition of handguns held and used for self-defense in the home. Undoubtedly some think that the Second Amendment is\noutmoded in a society where our standing army is the pride of our Nation, where well-trained police forces provide personal\nsecurity, and where gun violence is a serious problem. That is perhaps debatable, but what is not debatable is that it is not the\nrole of this Court to pronounce the Second Amendment extinct.\nWe affirm the judgment of the Court of Appeals.\nIt is so ordered.\nJustice STEVENS, with whom Justice SOUTER, Justice GINSBURG, and Justice BREYER join, dissenting.\nThe question presented by this case is not whether the Second Amendment protects a \u201ccollective right\u201d or an \u201cindividual right.\u201d\nSurely it protects a right that can be enforced by individuals. But a conclusion that the Second Amendment protects an individual\nright does not tell us anything about the scope of that right.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bdc49586-5b1a-475a-92e4-fee9bdf8e193": {"__data__": {"id_": "bdc49586-5b1a-475a-92e4-fee9bdf8e193", "embedding": null, "metadata": {"page_label": "25", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "902ca4b2-266e-434f-9a3d-b4cbbae6d0af", "node_type": "4", "metadata": {"page_label": "25", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "54dfac8b6c789ff89b493e5ad93d1e15c08fd71bcfa614303e5b67b9e497e0b4", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "f9308aa2-d315-440e-a8f8-021faeda9479", "node_type": "1", "metadata": {"page_label": "25", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9d9f90510db69c15546822e1ed0b76853096b328dc15cb63238933d752a13e83", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Undoubtedly some think that the Second Amendment is\noutmoded in a society where our standing army is the pride of our Nation, where well-trained police forces provide personal\nsecurity, and where gun violence is a serious problem. That is perhaps debatable, but what is not debatable is that it is not the\nrole of this Court to pronounce the Second Amendment extinct.\nWe affirm the judgment of the Court of Appeals.\nIt is so ordered.\nJustice STEVENS, with whom Justice SOUTER, Justice GINSBURG, and Justice BREYER join, dissenting.\nThe question presented by this case is not whether the Second Amendment protects a \u201ccollective right\u201d or an \u201cindividual right.\u201d\nSurely it protects a right that can be enforced by individuals. But a conclusion that the Second Amendment protects an individual\nright does not tell us anything about the scope of that right.\nGuns are used to hunt, for self-defense, to commit crimes, for sporting activities, and to perform military duties. The Second\nAmendment plainly does not protect the right to use a gun to rob a bank; it is equally clear that it does encompass the right to use", "mimetype": "text/plain", "start_char_idx": 3446, "end_char_idx": 4558, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "232ba979-8a57-4bed-8051-3299d5fd8ece": {"__data__": {"id_": "232ba979-8a57-4bed-8051-3299d5fd8ece", "embedding": null, "metadata": {"page_label": "26", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3082f703-7407-4588-8dcc-1cc5040d80a1", "node_type": "4", "metadata": {"page_label": "26", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2e2d16d0e2346a7714deb99a90cabe3b6918aa2bfc1c5093b6f62ca46c7189ed", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "f743108b-482c-41ba-9775-f0122fcb0e20", "node_type": "1", "metadata": {}, "hash": "76ae46ec06fd8a46ed2eb97862f9f73337db1e12b61f90c6b8cca47059212767", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 26\nweapons for certain military purposes. Whether it also protects the right to possess and use guns for nonmilitary purposes like\nhunting and personal self-defense *637 is the question presented by this case. The text of the Amendment, its history, and our\ndecision in United States v. Miller, 307 U.S. 174, 59 S.Ct. 816, 83 L.Ed. 1206 (1939), provide a clear answer to that question.\nThe Second Amendment was adopted to protect the right of the people of each of the several States to maintain a well-regulated\nmilitia. It was a response to concerns raised during the ratification of the Constitution that the power of Congress to disarm the\nstate militias and create a national standing army posed an intolerable threat to the sovereignty of the several States. Neither the\ntext of the Amendment nor the arguments advanced by its proponents evidenced the slightest interest in limiting any legislature's\nauthority to regulate private civilian uses of firearms. Specifically, there is no indication that the Framers of the Amendment\nintended to enshrine the common-law right of self-defense in the Constitution.\nIn 1934, Congress enacted the National Firearms Act, the first major federal firearms law. 1 Sustaining an indictment the\n**2823 Act, this Court held that, \u201c[i]n the absence of any evidence tending to show that possession or use of a \u2018shotgun having\na barrel of less than eighteen inches in length\u2019 at this time has some reasonable relationship to the preservation or efficiency of\na well regulated militia, we cannot say that the Second Amendment guarantees the right to keep and bear such an instrument.\u201d\nMiller, 307 U.S., at 178, 59 S.Ct. 816 . The view of the Amendment we took in Miller\u2014that it protects the right to keep and\nbear arms for certain military purposes, but that it does not curtail the Legislature's power to regulate the nonmilitary use and\nownership of weapons\u2014is both *638 the most natural reading of the Amendment's text and the interpretation most faithful\nto the history of its adoption.\nSince our decision in Miller, hundreds of judges have relied on the view of the Amendment we endorsed there;2 we ourselves\naffirmed it in 1980. See Lewis v. United States, 445 U.S. 55, 65\u201366, n. 8, 100 S.Ct. 915, 63 L.Ed.2d 198 (1980) . 3 No new\nevidence has surfaced since 1980 supporting the view that the Amendment was intended to curtail the power of Congress to\nregulate *639 civilian use or misuse of weapons. Indeed, a review of the drafting history of the Amendment demonstrates that\nits Framers rejected proposals that would have broadened its coverage to include such uses.\nThe opinion the Court announces today fails to identify any new evidence supporting the view that the Amendment was intended\nto limit the power of Congress to regulate civilian uses of weapons. Unable to point to any such evidence, the Court stakes its\nholding on a strained and unpersuasive reading of the Amendment's text; significantly different provisions in the **2824 1689\nEnglish Bill of Rights, and in various 19th-century State Constitutions; postenactment commentary that was available to the\nCourt when it decided Miller; and, ultimately, a feeble attempt to distinguish Miller that places more emphasis on the Court's\ndecisional process than on the reasoning in the opinion itself.\nEven if the textual and historical arguments on both sides of the issue were evenly balanced, respect for the well-settled views\nof all of our predecessors on this Court, and for the rule of law itself, see Mitchell v. W.T. Grant Co., 416 U.S. 600, 636, 94 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3775, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f743108b-482c-41ba-9775-f0122fcb0e20": {"__data__": {"id_": "f743108b-482c-41ba-9775-f0122fcb0e20", "embedding": null, "metadata": {"page_label": "26", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3082f703-7407-4588-8dcc-1cc5040d80a1", "node_type": "4", "metadata": {"page_label": "26", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2e2d16d0e2346a7714deb99a90cabe3b6918aa2bfc1c5093b6f62ca46c7189ed", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "232ba979-8a57-4bed-8051-3299d5fd8ece", "node_type": "1", "metadata": {"page_label": "26", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "62ee998533cf66db209a83904a9dc159ec0ea83f46aa5788eafdd80ba928ec67", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Unable to point to any such evidence, the Court stakes its\nholding on a strained and unpersuasive reading of the Amendment's text; significantly different provisions in the **2824 1689\nEnglish Bill of Rights, and in various 19th-century State Constitutions; postenactment commentary that was available to the\nCourt when it decided Miller; and, ultimately, a feeble attempt to distinguish Miller that places more emphasis on the Court's\ndecisional process than on the reasoning in the opinion itself.\nEven if the textual and historical arguments on both sides of the issue were evenly balanced, respect for the well-settled views\nof all of our predecessors on this Court, and for the rule of law itself, see Mitchell v. W.T. Grant Co., 416 U.S. 600, 636, 94 S.Ct.\n1895, 40 L.Ed.2d 406 (1974) (Stewart, J., dissenting), would prevent most jurists from endorsing such a dramatic upheaval in\nthe law.4 As Justice Cardozo observed years ago, the \u201clabor of *640 judges would be increased almost to the breaking point if\nevery past decision could be reopened in every case, and one could not lay one's own course of bricks on the secure foundation\nof the courses laid by others who had gone before him.\u201d The Nature of the Judicial Process 149 (1921).\nIn this dissent I shall first explain why our decision in Miller was faithful to the text of the Second Amendment and the purposes\nrevealed in its drafting history. I shall then comment on the postratification history of the Amendment, which makes abundantly\nclear that the Amendment should not be interpreted as limiting the authority of Congress to regulate the use or possession of\nfirearms for purely civilian purposes.\nI", "mimetype": "text/plain", "start_char_idx": 3012, "end_char_idx": 4684, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0809b442-30b2-4a73-8b71-e5311f8c78f2": {"__data__": {"id_": "0809b442-30b2-4a73-8b71-e5311f8c78f2", "embedding": null, "metadata": {"page_label": "27", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "24eb9f5f-f2c9-4b97-9515-3d2606a6a646", "node_type": "4", "metadata": {"page_label": "27", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "cb9009edddaa76ffe4e659913ee8ce99c3af04f27143cf5a2589dff61550b24e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 27\nThe text of the Second Amendment is brief. It provides: \u201cA well regulated Militia, being necessary to the security of a free\nState, the right of the people to keep and bear Arms, shall not be infringed.\u201d\nThree portions of that text merit special focus: the introductory language defining the Amendment's purpose, the class of persons\nencompassed within its reach, and the unitary nature of the right that it protects.\n\u201cA well regulated Militia, being necessary to the security of a free State\u201d\nThe preamble to the Second Amendment makes three important points. It identifies the preservation of the militia as the\nAmendment's purpose; it explains that the militia is necessary to the security of a free State; and it recognizes that the militia\nmust be \u201cwell regulated.\u201d In all three respects it is comparable to provisions in several State Declarations *641 of Rights that\nwere adopted roughly contemporaneously **2825 with the Declaration of Independence. 5 Those state provisions highlight\nthe importance members of the founding generation attached to the maintenance of state militias; they also underscore the\nprofound fear shared by many in that era of the dangers posed by standing armies.6 While *642 the need for state militias has\nnot been a matter of significant public interest for almost two centuries, that fact should not obscure the contemporary concerns\nthat animated the Framers.\nThe parallels between the Second Amendment and these state declarations, and the Second Amendment's omission of any\nstatement of purpose related to the right to use firearms for hunting or personal self-defense, is especially striking in light of the\nfact that the Declarations of Rights of Pennsylvania and Vermont did expressly protect such civilian uses at the time. Article XIII\nof Pennsylvania's 1776 Declaration of Rights announced that \u201cthe people have a right to bear arms for the **2826 defence of\nthemselves and the state,\u201d 1 Schwartz 266 (emphasis added); \u00a7 43 of the Declaration ensured that \u201c[t]he inhabitants of this state\nshall have the liberty to fowl and hunt in seasonable times on the lands they hold, and on all other lands therein not inclosed,\u201d\nid., at 274. And Article XV of the 1777 Vermont Declaration of Rights guaranteed \u201c[t]hat the people have a right to bear arms\nfor the defence of themselves and the State.\u201d Id., at 324 (emphasis added). *643 The contrast between those two declarations\nand the Second Amendment reinforces the clear statement of purpose announced in the Amendment's preamble. It confirms\nthat the Framers' single-minded focus in crafting the constitutional guarantee \u201cto keep and bear Arms\u201d was on military uses of\nfirearms, which they viewed in the context of service in state militias.\nThe preamble thus both sets forth the object of the Amendment and informs the meaning of the remainder of its text. Such\ntext should not be treated as mere surplusage, for \u201c[i]t cannot be presumed that any clause in the constitution is intended to be\nwithout effect.\u201d Marbury v. Madison, 1 Cranch 137, 174, 2 L.Ed. 60 (1803).\nThe Court today tries to denigrate the importance of this clause of the Amendment by beginning its analysis with the\nAmendment's operative provision and returning to the preamble merely \u201cto ensure that our reading of the operative clause is\nconsistent with the announced purpose.\u201d Ante, at 2790. That is not how this Court ordinarily reads such texts, and it is not how\nthe preamble would have been viewed at the time the Amendment was adopted. While the Court makes the novel suggestion\nthat it need only find some \u201clogical connection\u201d between the preamble and the operative provision, it does acknowledge that\na prefatory clause may resolve an ambiguity in the text. Ante, at 2789. 7 Without *644 identifying any language in the text\nthat even mentions civilian uses of firearms, the Court proceeds to \u201cfind\u201d its preferred reading in what is at best an ambiguous\ntext, and then concludes that its reading is not foreclosed by the preamble. Perhaps the Court's approach to the text is acceptable\nadvocacy, but it is surely an unusual approach for judges to follow.\n\u201c[T]he right of the people\u201d", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4365, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf860b7e-516a-4f78-a709-7ce7f052ca49": {"__data__": {"id_": "bf860b7e-516a-4f78-a709-7ce7f052ca49", "embedding": null, "metadata": {"page_label": "28", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2615e661-07d6-4b96-b150-176712710820", "node_type": "4", "metadata": {"page_label": "28", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b0ecb83d766cdba259755be7784caa87d519d6c63f8aa80b515e618e20932cda", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "7c92c64c-5fa2-40af-a61d-84efb740473b", "node_type": "1", "metadata": {}, "hash": "efaed9e227230d88c0f214ea3472cef924b93c94221135866331f436304d5089", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 28\nThe centerpiece of the Court's textual argument is its insistence that the words \u201cthe people\u201d as used in the Second Amendment\nmust have the same meaning, and protect the same class of individuals, as when they are used in the First and Fourth\nAmendments. According to the Court, in all three provisions\u2014as well as **2827 the Constitution's preamble, \u00a7 2 of Article\nI, and the Tenth Amendment\u2014\u201cthe term unambiguously refers to all members of the political community, not an unspecified\nsubset.\u201d Ante, at 2790 \u2013 2791. But the Court itself reads the Second Amendment to protect a \u201csubset\u201d significantly narrower than\nthe class of persons protected by the First and Fourth Amendments; when it finally drills down on the substantive meaning of the\nSecond Amendment, the Court limits the protected class to \u201claw-abiding, responsible citizens,\u201d ante, at 2821. But the class of\npersons protected by the First and Fourth Amendments is not so limited; for even felons (and presumably irresponsible citizens\nas well) may invoke the protections of those constitutional provisions. The Court offers no way to harmonize its conflicting\npronouncements.\n*645 The Court also overlooks the significance of the way the Framers used the phrase \u201cthe people\u201d in these constitutional\nprovisions. In the First Amendment, no words define the class of individuals entitled to speak, to publish, or to worship; in\nthat Amendment it is only the right peaceably to assemble, and to petition the Government for a redress of grievances, that is\ndescribed as a right of \u201cthe people.\u201d These rights contemplate collective action. While the right peaceably to assemble protects\nthe individual rights of those persons participating in the assembly, its concern is with action engaged in by members of a group,\nrather than any single individual. Likewise, although the act of petitioning the Government is a right that can be exercised\nby individuals, it is primarily collective in nature. For if they are to be effective, petitions must involve groups of individuals\nacting in concert.\nSimilarly, the words \u201cthe people\u201d in the Second Amendment refer back to the object announced in the Amendment's preamble.\nThey remind us that it is the collective action of individuals having a duty to serve in the militia that the text directly protects\nand, perhaps more importantly, that the ultimate purpose of the Amendment was to protect the States' share of the divided\nsovereignty created by the Constitution.\nAs used in the Fourth Amendment, \u201cthe people\u201d describes the class of persons protected from unreasonable searches and seizures\nby Government officials. It is true that the Fourth Amendment describes a right that need not be exercised in any collective\nsense. But that observation does not settle the meaning of the phrase \u201cthe people\u201d when used in the Second Amendment. For,\nas we have seen, the phrase means something quite different in the Petition and Assembly Clauses of the First Amendment.\nAlthough the abstract definition of the phrase \u201cthe people\u201d could carry the same meaning in the Second Amendment as in\nthe Fourth Amendment, the preamble of the Second Amendment suggests that the uses of the phrase in the First and Second\nAmendments *646 are the same in referring to a collective activity. By way of contrast, the Fourth Amendment describes a\nright against governmental interference rather than an affirmative right to engage in protected conduct, and so refers to a right\nto protect a purely individual interest. As used in the Second Amendment, the words \u201cthe people\u201d do not enlarge the right to\nkeep and bear arms to encompass use or ownership of weapons outside the context of service in a well-regulated militia.\n\u201c[T]o keep and bear Arms\u201d\nAlthough the Court's discussion of these words treats them as two \u201cphrases\u201d\u2014as if they read \u201cto keep\u201d and \u201cto bear\u201d\u2014they\ndescribe a unitary right: to possess arms if needed for military purposes and to use them in conjunction with military activities.\n**2828 As a threshold matter, it is worth pausing to note an oddity in the Court's interpretation of \u201cto keep and bear Arms.\u201d\nUnlike the Court of Appeals, the Court does not read that phrase to create a right to possess arms for \u201clawful, private purposes.\u201d\nParker v. District of Columbia, 478 F.3d 370, 382 (C.A.D.C.2007) .", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4507, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7c92c64c-5fa2-40af-a61d-84efb740473b": {"__data__": {"id_": "7c92c64c-5fa2-40af-a61d-84efb740473b", "embedding": null, "metadata": {"page_label": "28", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2615e661-07d6-4b96-b150-176712710820", "node_type": "4", "metadata": {"page_label": "28", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b0ecb83d766cdba259755be7784caa87d519d6c63f8aa80b515e618e20932cda", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "bf860b7e-516a-4f78-a709-7ce7f052ca49", "node_type": "1", "metadata": {"page_label": "28", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d84a70d649cf585aab24981a39142cc903784ffa19c79133db0bb8a728fb833d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "As used in the Second Amendment, the words \u201cthe people\u201d do not enlarge the right to\nkeep and bear arms to encompass use or ownership of weapons outside the context of service in a well-regulated militia.\n\u201c[T]o keep and bear Arms\u201d\nAlthough the Court's discussion of these words treats them as two \u201cphrases\u201d\u2014as if they read \u201cto keep\u201d and \u201cto bear\u201d\u2014they\ndescribe a unitary right: to possess arms if needed for military purposes and to use them in conjunction with military activities.\n**2828 As a threshold matter, it is worth pausing to note an oddity in the Court's interpretation of \u201cto keep and bear Arms.\u201d\nUnlike the Court of Appeals, the Court does not read that phrase to create a right to possess arms for \u201clawful, private purposes.\u201d\nParker v. District of Columbia, 478 F.3d 370, 382 (C.A.D.C.2007) . Instead, the Court limits the Amendment's protection to\nthe right \u201cto possess and carry weapons in case of confrontation.\u201d Ante, at 2797. No party or amicus urged this interpretation;\nthe Court appears to have fashioned it out of whole cloth. But although this novel limitation lacks support in the text of the\nAmendment, the Amendment's text does justify a different limitation: The \u201cright to keep and bear Arms\u201d protects only a right\nto possess and use firearms in connection with service in a state-organized militia.", "mimetype": "text/plain", "start_char_idx": 3701, "end_char_idx": 5028, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "12b96c35-320d-4bbc-8cf0-4de78613af05": {"__data__": {"id_": "12b96c35-320d-4bbc-8cf0-4de78613af05", "embedding": null, "metadata": {"page_label": "29", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "db682d13-1ac3-478f-855b-3cece37ac8bb", "node_type": "4", "metadata": {"page_label": "29", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "111c468813d50d0227584ebf64e090f3c2df1d46991c8a47faff9f13b30fa80f", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "99047b82-41e1-499c-8fab-34b70540719e", "node_type": "1", "metadata": {}, "hash": "34dc316e64c01ac50ad1afa8f5fb617a78f011312c49e3e0d56b61f5597a9419", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 29\nThe term \u201cbear arms\u201d is a familiar idiom; when used unadorned by any additional words, its meaning is \u201cto serve as a soldier, do\nmilitary service, fight.\u201d 1 Oxford English Dictionary 634 (2d ed.1989). It is derived from the Latin arma ferre, which, translated\nliterally, means \u201cto bear [ferre] war equipment [arma].\u201d Brief for Professors of *647 Linguistics and English as Amici Curiae\n19. One 18th-century dictionary defined \u201carms\u201d as \u201c[w]eapons of offence, or armour of defence,\u201d 1 S. Johnson, A Dictionary of\nthe English Language (1755), and another contemporaneous source explained that \u201c[b]y arms, we understand those instruments\nof offence generally made use of in war; such as firearms, swords, &c. By weapons, we more particularly mean instruments\nof other kinds (exclusive of fire-arms), made use of as offensive, on special occasions.\u201d 1 J. Trusler, The Distinction Between\nWords Esteemed Synonymous in the English Language 37 (3d ed. 1794).8 Had the Framers wished to expand the meaning of\nthe phrase \u201cbear arms\u201d to encompass civilian possession and use, they could have done so by the addition of phrases such as\n\u201cfor the defense of themselves,\u201d as was done in the Pennsylvania and Vermont Declarations of Rights. The unmodified use of\n\u201cbear arms,\u201d by contrast, refers most naturally to a military purpose, as evidenced by its use in literally dozens of contemporary\ntexts. 9 The absence *648 of **2829 any reference to civilian uses of weapons tailors the text of the Amendment to the\npurpose identified in its preamble. 10 But when discussing these words, the Court simply ignores the preamble.\n*649 The Court argues that a \u201cqualifying phrase that contradicts the word or phrase it modifies is unknown this side of\nthe looking glass.\u201d Ante, at 2795. But this fundamentally fails to grasp the point. The stand-alone phrase \u201cbear arms\u201d most\nnaturally conveys a military meaning unless the addition of a qualifying phrase signals that a different meaning is intended.\nWhen, as in this case, there is no such qualifier, the most natural meaning is the military one; and, in the absence of any\nqualifier, it is all the more appropriate to look to the preamble to confirm the natural meaning of the text. 11 The Court's\n**2830 objection is particularly puzzling in light of its own contention that the addition of the modifier \u201cagainst\u201d changes the\nmeaning of \u201cbear arms.\u201d Compare ante, at 2793 (defining \u201cbear arms\u201d to mean \u201ccarrying [a weapon] for a particular purpose\u2014\nconfrontation\u201d), with *650 ante, at 2794 (\u201cThe phrase \u2018bear Arms' also had at the time of the founding an idiomatic meaning\nthat was significantly different from its natural meaning: to serve as a soldier, do military service, fight or to wage war. But it\nunequivocally bore that idiomatic meaning only when followed by the preposition \u2018against\u2019 \u201d (emphasis deleted; citations and\nsome internal quotation marks omitted)).\nThe Amendment's use of the term \u201ckeep\u201d in no way contradicts the military meaning conveyed by the phrase \u201cbear arms\u201d and\nthe Amendment's preamble. To the contrary, a number of state militia laws in effect at the time of the Second Amendment's\ndrafting used the term \u201ckeep\u201d to describe the requirement that militia members store their arms at their homes, ready to be\nused for service when necessary. The Virginia military law, for example, ordered that \u201cevery one of the said officers, non-\ncommissioned officers, and privates, shall constantly keep the aforesaid arms, accoutrements, and ammunition, ready to be\nproduced whenever called for by his commanding officer.\u201d Act ... for Regulating and Disciplining the Militia, 1785 Va. Acts\nch. 1, \u00a7 III, p. 2 (emphasis added). 12 \u201c[K]eep and bear arms\u201d thus perfectly *651 describes the responsibilities of a framing-\nera militia member.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4001, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99047b82-41e1-499c-8fab-34b70540719e": {"__data__": {"id_": "99047b82-41e1-499c-8fab-34b70540719e", "embedding": null, "metadata": {"page_label": "29", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "db682d13-1ac3-478f-855b-3cece37ac8bb", "node_type": "4", "metadata": {"page_label": "29", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "111c468813d50d0227584ebf64e090f3c2df1d46991c8a47faff9f13b30fa80f", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "12b96c35-320d-4bbc-8cf0-4de78613af05", "node_type": "1", "metadata": {"page_label": "29", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "525ca163ad2b21789e3609c5a98ee6213cf292a06f0b9c432d9f269a0ff12dbf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "To the contrary, a number of state militia laws in effect at the time of the Second Amendment's\ndrafting used the term \u201ckeep\u201d to describe the requirement that militia members store their arms at their homes, ready to be\nused for service when necessary. The Virginia military law, for example, ordered that \u201cevery one of the said officers, non-\ncommissioned officers, and privates, shall constantly keep the aforesaid arms, accoutrements, and ammunition, ready to be\nproduced whenever called for by his commanding officer.\u201d Act ... for Regulating and Disciplining the Militia, 1785 Va. Acts\nch. 1, \u00a7 III, p. 2 (emphasis added). 12 \u201c[K]eep and bear arms\u201d thus perfectly *651 describes the responsibilities of a framing-\nera militia member.\nThis reading is confirmed by the fact that the clause protects only one right, rather than two. It does not describe a right \u201cto\nkeep ... Arms\u201d and a separate right \u201cto bear ... Arms.\u201d Rather, the single right that it does describe is both a duty and a right to\nhave arms available and ready for military service, and to use them for military purposes when necessary.13 Different language\nsurely would have been used to protect nonmilitary use and possession of weapons from regulation if such an intent had played\nany role in the drafting of the Amendment.\n**2831 * * *\nWhen each word in the text is given full effect, the Amendment is most naturally read to secure to the people a right to use\nand possess arms in conjunction with service in a well-regulated militia. So far as appears, no more than that was contemplated\nby its drafters or is encompassed within its terms. Even if the meaning of the text were genuinely susceptible to more than", "mimetype": "text/plain", "start_char_idx": 3262, "end_char_idx": 4951, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "72d98900-a444-46aa-ab5d-2d30a56bf24b": {"__data__": {"id_": "72d98900-a444-46aa-ab5d-2d30a56bf24b", "embedding": null, "metadata": {"page_label": "30", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d00857e4-765e-4200-b2d2-7e7ce5dee666", "node_type": "4", "metadata": {"page_label": "30", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "91c905875821328111e25aea3ad5f2e9b7ef95e79806cc4b63defda03c675ac6", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "45116969-d656-48a0-9ecc-ddb03c4064fb", "node_type": "1", "metadata": {}, "hash": "3399eb05417004f61b6a1ed84853a284e64570d6fb4ffa8dbdb7a124db27aabc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 30\none interpretation, the burden would remain on those advocating a departure from the purpose identified in the preamble and\nfrom settled law to come forward with persuasive new arguments or evidence. The textual analysis offered by respondent and\nembraced by *652 the Court falls far short of sustaining that heavy burden.14 And the Court's emphatic reliance on the claim\n\u201cthat the Second Amendment ... codified a pre-existing right,\u201d ante, at 2804, is of course beside the point because the right to\nkeep and bear arms for service in a state militia was also a pre-existing right.\nIndeed, not a word in the constitutional text even arguably supports the Court's overwrought and novel description of the Second\nAmendment as \u201celevat [ing] above all other interests the right of law-abiding, responsible citizens to use arms in defense of\nhearth and home.\u201d Ante, at 2821.\nII\nThe proper allocation of military power in the new Nation was an issue of central concern for the Framers. The compromises\nthey ultimately reached, reflected in Article I's Militia Clauses and the Second Amendment, represent quintessential examples\nof the Framers' \u201csplit[ting] the atom of sovereignty.\u201d15\n*653 Two themes relevant to our current interpretive task ran through the debates on the original Constitution. \u201cOn the one\nhand, there was a widespread fear that a national standing Army posed an intolerable threat to individual liberty and to the\nsovereignty of the separate States.\u201d Perpich v. Department of Defense, 496 U.S. 334, 340, 110 S.Ct. 2418, 110 L.Ed.2d 312\n(1990). 16 Governor Edmund Randolph, reporting on the Constitutional Convention to the Virginia Ratification Convention,\nexplained: \u201cWith respect to a standing army, I believe there was not a member in the federal Convention, who did not feel\nindignation at such an institution.\u201d 3 J. Elliot, **2832 Debates in the Several State Conventions on the Adoption of the Federal\nConstitution 401 (2d ed. 1863) (hereinafter Elliot). On the other hand, the Framers recognized the dangers inherent in relying\non inadequately trained militia members \u201cas the primary means of providing for the common defense,\u201d Perpich, 496 U.S., at\n340, 110 S.Ct. 2418; during the Revolutionary War, \u201c[t]his force, though armed, was largely untrained, and its deficiencies were\nthe subject of bitter complaint.\u201d Wiener, The Militia Clause of the Constitution, 54 Harv. L.Rev. 181, 182 (1940) . 17 *654\nIn order to respond to those twin concerns, a compromise was reached: Congress would be authorized to raise and support a\nnational Army 18 and Navy, and also to organize, arm, discipline, and provide for the calling forth of \u201cthe Militia.\u201d U.S. Const.,\nArt. I, \u00a7 8, cls. 12\u201316. The President, at the same time, was empowered as the \u201cCommander in Chief of the Army and Navy of\nthe United States, and of the Militia of the several States, when called into the actual Service of the United States.\u201d Art. II, \u00a7\n2. But, with respect to the militia, a significant reservation was made to the States: Although Congress would have the power\nto call forth, 19 organize, arm, and discipline the militia, as well as to govern \u201csuch Part of them as may be employed in the\nService of the United States,\u201d the States respectively would retain the right to appoint the officers and to train the militia in\naccordance with the discipline prescribed by Congress. Art. I, \u00a7 8, cl. 16. 20\n*655 But the original Constitution's retention of the militia and its creation of divided authority over that body did not prove\nsufficient to allay fears about the dangers posed by a standing army. For it was perceived by some that Article I contained a\nsignificant gap: While it empowered **2833 Congress to organize, arm, and discipline the militia, it did not prevent Congress\nfrom providing for the militia's disarmament.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4032, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "45116969-d656-48a0-9ecc-ddb03c4064fb": {"__data__": {"id_": "45116969-d656-48a0-9ecc-ddb03c4064fb", "embedding": null, "metadata": {"page_label": "30", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d00857e4-765e-4200-b2d2-7e7ce5dee666", "node_type": "4", "metadata": {"page_label": "30", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "91c905875821328111e25aea3ad5f2e9b7ef95e79806cc4b63defda03c675ac6", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "72d98900-a444-46aa-ab5d-2d30a56bf24b", "node_type": "1", "metadata": {"page_label": "30", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4ec4cbffc8062154eb6fa22ba02c39fb547f786d75bfdd4605f4a445567c1109", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "But, with respect to the militia, a significant reservation was made to the States: Although Congress would have the power\nto call forth, 19 organize, arm, and discipline the militia, as well as to govern \u201csuch Part of them as may be employed in the\nService of the United States,\u201d the States respectively would retain the right to appoint the officers and to train the militia in\naccordance with the discipline prescribed by Congress. Art. I, \u00a7 8, cl. 16. 20\n*655 But the original Constitution's retention of the militia and its creation of divided authority over that body did not prove\nsufficient to allay fears about the dangers posed by a standing army. For it was perceived by some that Article I contained a\nsignificant gap: While it empowered **2833 Congress to organize, arm, and discipline the militia, it did not prevent Congress\nfrom providing for the militia's disarmament. As George Mason argued during the debates in Virginia on the ratification of\nthe original Constitution:\n\u201cThe militia may be here destroyed by that method which has been practised in other parts of the world before; that is,\nby rendering them useless\u2014by disarming them. Under various pretences, Congress may neglect to provide for arming and\ndisciplining the militia; and the state governments cannot do it, for Congress has the exclusive right to arm them.\u201d 3 Elliot 379.\nThis sentiment was echoed at a number of state ratification conventions; indeed, it was one of the primary objections to the\noriginal Constitution voiced by its opponents. The Antifederalists were ultimately unsuccessful in persuading state ratification", "mimetype": "text/plain", "start_char_idx": 3144, "end_char_idx": 4758, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c530f08c-d0fe-4afd-beb1-9107d81f9add": {"__data__": {"id_": "c530f08c-d0fe-4afd-beb1-9107d81f9add", "embedding": null, "metadata": {"page_label": "31", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "80e19c0d-183f-4fc3-bbf3-e2d14bce68d6", "node_type": "4", "metadata": {"page_label": "31", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1f47648e18174d1666d03b7c2881d8f00caabe66a91f63c16c403ef5d760eede", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 31\nconventions to condition their approval of the Constitution upon the eventual inclusion of any particular amendment. But a\nnumber of States did propose to the first Federal Congress amendments reflecting a desire to ensure that the institution of the\nmilitia would remain protected under the new Government. The proposed amendments sent by the States of Virginia, North\nCarolina, and New York focused on the importance of preserving the state militias and reiterated the dangers posed by standing\narmies. New Hampshire sent a proposal that differed significantly from the others; while also invoking the dangers of a standing\narmy, it suggested that the Constitution should more broadly protect the use and possession of weapons, without tying such\na guarantee expressly to the maintenance of the militia. The States of Maryland, Pennsylvania, and *656 Massachusetts\nsent no relevant proposed amendments to Congress, but in each of those States a minority of the delegates advocated related\namendments. While the Maryland minority proposals were exclusively concerned with standing armies and conscientious\nobjectors, the unsuccessful proposals in both Massachusetts and Pennsylvania would have protected a more broadly worded\nright, less clearly tied to service in a state militia. Faced with all of these options, it is telling that James Madison chose to craft\nthe Second Amendment as he did.\nThe relevant proposals sent by the Virginia Ratifying Convention read as follows:\n\u201c17th. That the people have a right to keep and bear arms; that a well-regulated militia, composed of the body of the people\ntrained to arms, is the proper, natural and safe defence of a free state; that standing armies, in time of peace, are dangerous to\nliberty, and therefore ought to be avoided, as far as the circumstances and protection of the community will admit; and that,\nin all cases, the military should be under strict subordination to, and be governed by, the civil power.\u201d Id., at 659.\n\u201c19th. That any person religiously scrupulous of bearing arms ought to be exempted, upon payment of an equivalent to\nemploy another to bear arms in his stead.\u201d Ibid.\nNorth Carolina adopted Virginia's proposals and sent them to Congress as its own, although it did not actually ratify the original\nConstitution until Congress had sent the proposed Bill of Rights to the States for ratification. 2 Schwartz 932\u2013933; see The\nComplete Bill of Rights 182\u2013183 (N. Cogan ed.1997) (hereinafter Cogan).\nNew York produced a proposal with nearly identical language. It read:\n*657 \u201cThat the people have a right to keep and bear Arms; that a well regulated Militia, including the body of the People\ncapable of bearing Arms, is the **2834 proper, natural, and safe defence of a free State .... That standing Armies, in time of\nPeace, are dangerous to Liberty, and ought not to be kept up, except in Cases of necessity; and that at all times, the Military\nshould be kept under strict Subordination to the civil Power.\u201d 2 Schwartz 912.\nNotably, each of these proposals used the phrase \u201ckeep and bear arms,\u201d which was eventually adopted by Madison. And each\nproposal embedded the phrase within a group of principles that are distinctly military in meaning. 21\nBy contrast, New Hampshire's proposal, although it followed another proposed amendment that echoed the familiar concern\nabout standing armies, 22 described the protection involved in more clearly personal terms. Its proposal read:\n\u201cTwelfth, Congress shall never disarm any Citizen unless such as are or have been in Actual Rebellion.\u201d Id., at 758, 761.\nThe proposals considered in the other three States, although ultimately rejected by their respective ratification *658\nconventions, are also relevant to our historical inquiry. First, the Maryland proposal, endorsed by a minority of the delegates\nand later circulated in pamphlet form, read:\n\u201c4. That no standing army shall be kept up in time of peace, unless with the consent of two thirds of the members present\nof each branch of Congress.\n.....", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4231, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7196a3ff-df61-42c2-83a8-9bdc332aac2c": {"__data__": {"id_": "7196a3ff-df61-42c2-83a8-9bdc332aac2c", "embedding": null, "metadata": {"page_label": "32", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1ae64888-27a5-4928-a4b3-5f429dc9c097", "node_type": "4", "metadata": {"page_label": "32", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "90eb19573aec4e90d21b54614878d8e59d41378e9dead54adc1794e73f4fe126", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "e46c0bb8-52b5-463a-9b7b-00194c3af9ac", "node_type": "1", "metadata": {}, "hash": "8705b5c8690bdc94b2695e767ece7b41939573d75772fb31eb3ac57ac5963c55", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 32\n\u201c10. That no person conscientiously scrupulous of bearing, arms, in any case, shall be compelled personally to serve as a\nsoldier.\u201d Id., at 729, 735.\nThe rejected Pennsylvania proposal, which was later incorporated into a critique of the Constitution titled \u201cThe Address and\nReasons of Dissent of the Minority of the Convention of the State of Pennsylvania to Their Constituents, 1787,\u201d signed by a\nminority of the State's delegates (those who had voted against ratification of the Constitution), id., at 628, 662, read:\n\u201c7. That the people have a right to bear arms for the defense of themselves and their own State, or the United States, or for\nthe purpose of killing game; and no law shall be passed for disarming the people or any of them unless for crimes committed,\nor real danger of public injury from individuals; and as standing armies in the time of peace are dangerous to liberty, they\nought not to be kept up; and that the military shall be kept under strict subordination to, and be governed by the civil powers.\u201d\nId., at 665.\nFinally, after the delegates at the Massachusetts Ratification Convention had compiled a list of proposed amendments and\nalterations, a motion was made to add to the list the following language: \u201cthat **2835 the said Constitution be never construed\nto authorize Congress to ... prevent the people of the United States, who are peaceable citizens, from keeping their own arms.\u201d\nCogan 181. This motion, however, failed to achieve the necessary support, and the proposal was excluded *659 from the list\nof amendments the State sent to Congress. 2 Schwartz 674\u2013675.\nMadison, charged with the task of assembling the proposals for amendments sent by the ratifying States, was the principal\ndraftsman of the Second Amendment.23 He had before him, or at the very least would have been aware of, all of these proposed\nformulations. In addition, Madison had been a member, some years earlier, of the committee tasked with drafting the Virginia\nDeclaration of Rights. That committee considered a proposal by Thomas Jefferson that would have included within the Virginia\nDeclaration the following language: \u201cNo freeman shall ever be debarred the use of arms [within his own lands or tenements].\u201d\n1 Papers of Thomas Jefferson 363 (J. Boyd ed.1950). But the committee rejected that language, adopting instead the provision\ndrafted by George Mason. 24\nWith all of these sources upon which to draw, it is strikingly significant that Madison's first draft omitted any mention of\nnonmilitary use or possession of weapons. Rather, his original draft repeated the essence of the two proposed amendments sent\nby Virginia, combining the substance of the two provisions succinctly into one, which read: \u201cThe *660 right of the people to\nkeep and bear arms shall not be infringed; a well armed, and well regulated militia being the best security of a free country; but\nno person religiously scrupulous of bearing arms, shall be compelled to render military service in person.\u201d Cogan 169.\nMadison's decision to model the Second Amendment on the distinctly military Virginia proposal is therefore revealing, since it\nis clear that he considered and rejected formulations that would have unambiguously protected civilian uses of firearms. When\nMadison prepared his first draft, and when that draft was debated and modified, it is reasonable to assume that all participants\nin the drafting process were fully aware of the other formulations that would have protected civilian use and possession of\nweapons and that their choice to craft the Amendment as they did represented a rejection of those alternative formulations.\nMadison's initial inclusion of an exemption for conscientious objectors sheds revelatory light on the purpose of the Amendment.\nIt confirms an intent to describe a duty as well as a right, and it unequivocally identifies the military character of both. The\nobjections voiced to the conscientious-objector clause only confirm the central **2836 meaning of the text.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4205, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e46c0bb8-52b5-463a-9b7b-00194c3af9ac": {"__data__": {"id_": "e46c0bb8-52b5-463a-9b7b-00194c3af9ac", "embedding": null, "metadata": {"page_label": "32", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1ae64888-27a5-4928-a4b3-5f429dc9c097", "node_type": "4", "metadata": {"page_label": "32", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "90eb19573aec4e90d21b54614878d8e59d41378e9dead54adc1794e73f4fe126", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "7196a3ff-df61-42c2-83a8-9bdc332aac2c", "node_type": "1", "metadata": {"page_label": "32", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5a6a4bf6dfaca1d3bf1e23a09f21eb1ad6b0229ead3bc61cc9a2a65394c20bc9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Madison's decision to model the Second Amendment on the distinctly military Virginia proposal is therefore revealing, since it\nis clear that he considered and rejected formulations that would have unambiguously protected civilian uses of firearms. When\nMadison prepared his first draft, and when that draft was debated and modified, it is reasonable to assume that all participants\nin the drafting process were fully aware of the other formulations that would have protected civilian use and possession of\nweapons and that their choice to craft the Amendment as they did represented a rejection of those alternative formulations.\nMadison's initial inclusion of an exemption for conscientious objectors sheds revelatory light on the purpose of the Amendment.\nIt confirms an intent to describe a duty as well as a right, and it unequivocally identifies the military character of both. The\nobjections voiced to the conscientious-objector clause only confirm the central **2836 meaning of the text. Although records\nof the debate in the Senate, which is where the conscientious-objector clause was removed, do not survive, the arguments raised\nin the House illuminate the perceived problems with the clause: Specifically, there was concern that Congress \u201ccan declare who\nare those religiously scrupulous, and prevent them from bearing arms.\u201d 25 The ultimate removal of the clause, therefore, only\nserves to confirm the purpose of the Amendment\u2014to protect *661 against congressional disarmament, by whatever means,\nof the States' militias.", "mimetype": "text/plain", "start_char_idx": 3210, "end_char_idx": 4747, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4a60d729-daef-4def-9eeb-dc87a848843d": {"__data__": {"id_": "4a60d729-daef-4def-9eeb-dc87a848843d", "embedding": null, "metadata": {"page_label": "33", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f3ca6720-4221-460e-898a-6e1e12d423b4", "node_type": "4", "metadata": {"page_label": "33", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "11d4bbc6d9de878557c93518624532cb812c6bb4271e6f4afe7d3a972dea160b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 33\nThe Court also contends that because \u201cQuakers opposed the use of arms not just for militia service, but for any violent purpose\nwhatsoever,\u201d ante, at 2796, the inclusion of a conscientious-objector clause in the original draft of the Amendment does not\nsupport the conclusion that the phrase \u201cbear Arms\u201d was military in meaning. But that claim cannot be squared with the record.\nIn the proposals cited supra, at 2833 \u2013 2834, both Virginia and North Carolina included the following language: \u201cThat any\nperson religiously scrupulous of bearing arms ought to be exempted, upon payment of an equivalent to employ another to bear\narms in his stead \u201d (emphasis added).26 There is no plausible argument that the use of \u201cbear arms\u201d in those provisions was not\nunequivocally and exclusively military: The State simply does not compel its citizens to carry arms for the purpose of private\n\u201cconfrontation,\u201d ante, at 2793, or for self-defense.\nThe history of the adoption of the Amendment thus describes an overriding concern about the potential threat to state sovereignty\nthat a federal standing army would pose, and a desire to protect the States' militias as the means by which to guard against that\ndanger. But state militias could not effectively check the prospect of a federal standing army so long as Congress retained the\npower to disarm them, and so a guarantee against such disarmament was needed.27 As we explained in Miller: \u201cWith obvious\npurpose to assure the continuation and render possible the effectiveness of such *662 forces the declaration and guarantee of\nthe Second Amendment were made. It must be interpreted and applied with that end in view.\u201d 307 U.S., at 178, 59 S.Ct. 816.\nThe evidence plainly refutes the claim that the Amendment was motivated by the Framers' fears that Congress might act to\nregulate any civilian uses of weapons. And even if the historical record were genuinely ambiguous, the burden would remain\non the parties advocating a change in the law to introduce facts or arguments \u201c \u2018newly ascertained,\u2019 \u201d Vasquez, 474 U.S., at 266,\n106 S.Ct. 617; the Court is unable to identify any such facts or arguments.\nIII\nAlthough it gives short shrift to the drafting history of the Second Amendment, **2837 the Court dwells at length on four\nother sources: the 17th-century English Bill of Rights; Blackstone's Commentaries on the Laws of England; postenactment\ncommentary on the Second Amendment; and post-Civil War legislative history.28 All of these sources shed only indirect light\non the question before us, and in any event offer little support for the Court's conclusion.29\n*663 The English Bill of Rights\nThe Court's reliance on Article VII of the 1689 English Bill of Rights\u2014which, like most of the evidence offered by the Court\ntoday, was considered in Miller 30 \u2014 **2838 is misguided *664 both because Article VII was enacted in response to different\nconcerns from those that motivated the Framers of the Second Amendment, and because the guarantees of the two provisions\nwere by no means coextensive. Moreover, the English text contained no preamble or other provision identifying a narrow,\nmilitia-related purpose.\nThe English Bill of Rights responded to abuses by the Stuart monarchs; among the grievances set forth in the Bill of Rights\nwas that the King had violated the law \u201c[b]y causing several good Subjects being Protestants to be disarmed at the same time\nwhen Papists were both armed and Employed contrary to Law.\u201d L. Schwoerer, The Declaration of Rights, 1689, App. 1, p. 295\n(1981). Article VII of the Bill of Rights was a response to that selective disarmament; it guaranteed that \u201cthe Subjects which\nare Protestants may have Armes for their defence, Suitable to their condition and as allowed by Law.\u201d Id., at 297. This grant did\nnot establish a general right of all persons, or even of all Protestants, to possess weapons. Rather, the right was qualified in two\ndistinct ways: First, it was restricted to those of adequate social and economic status (\u201csuitable to their Condition\u201d); second, it\nwas only available subject to regulation by Parliament (\u201cas allowed by Law\u201d). 31", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4336, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f52103d2-dc8d-4fdf-86ab-11327aa67c18": {"__data__": {"id_": "f52103d2-dc8d-4fdf-86ab-11327aa67c18", "embedding": null, "metadata": {"page_label": "34", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "da406491-6449-4aca-9174-fad6bf5cb954", "node_type": "4", "metadata": {"page_label": "34", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "49e0974af5ad04070240e35910e4436abc9c5798bc350fd6f5cfdafd2b43d3a3", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "22c9cb0e-7efc-489e-abf9-9700fae651f7", "node_type": "1", "metadata": {}, "hash": "4825d016caf7811649ab13dad0e5ba1af7a5fc9f1607de3e13d8128fb68bbba6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 34\nThe Court may well be correct that the English Bill of Rights protected the right of some English subjects to use some arms\nfor personal self-defense free from restrictions by the Crown (but not Parliament). But that right\u2014adopted *665 in a different\nhistorical and political context and framed in markedly different language\u2014tells us little about the meaning of the Second\nAmendment.\nBlackstone's Commentaries\nThe Court's reliance on Blackstone's Commentaries on the Laws of England is unpersuasive for the same reason as its reliance\non the English Bill of Rights. Blackstone's invocation of \u201c \u2018the natural right of resistance and self-preservation,\u2019 \u201d ante, at 2798,\nand \u201c \u2018the right of having and using arms for self-preservation and defence,\u2019 \u201d ibid., referred specifically to Article VII in the\nEnglish Bill of Rights. The excerpt from Blackstone offered by the Court, therefore, is, like Article VII itself, of limited use in\ninterpreting the very differently worded, and differently historically situated, Second Amendment.\nWhat is important about Blackstone is the instruction he provided on reading the sort of text before us today. Blackstone\ndescribed an interpretive approach that gave far more weight to preambles than the Court allows. Counseling that \u201c[t]he fairest\nand most rational method to interpret the will of the legislator, is by exploring his intentions at the time when the law was made,\nby signs the most natural and probable,\u201d Blackstone explained: \u201cIf words happen to be still dubious, we may establish their\nmeaning from the context; with which it may be of singular use to compare a word, or a sentence, whenever they are ambiguous,\nequivocal, or intricate. Thus, the proeme, or preamble, is often called in to help the construction of an act of parliament.\u201d 1\nCommentaries on the Laws of England 59\u201360 (1765). In light of the Court's invocation of Blackstone as \u201c \u2018the preeminent\nauthority on English law for **2839 the founding generation,\u2019 \u201d ante, at 2798 (quoting Alden v. Maine, 527 U.S. 706, 715,\n119 S.Ct. 2240, 144 L.Ed.2d 636 (1999)), its disregard for his guidance on matters of interpretation is striking.\n*666 Postenactment Commentary\nThe Court also excerpts, without any real analysis, commentary by a number of additional scholars, some near in time to the\nframing and others postdating it by close to a century. Those scholars are for the most part of limited relevance in construing the\nguarantee of the Second Amendment: Their views are not altogether clear, 32 they tended to collapse the Second Amendment\nwith Article VII of the English *667 Bill of Rights, and they appear to have been unfamiliar with the drafting history of the\nSecond Amendment. 33\nThe most significant of these commentators was Joseph Story. Contrary to the Court's assertions, however, Story actually\nsupports the view that the Amendment was designed to protect the right of each of the States to maintain a well-regulated\nmilitia. When Story used the term \u201cpalladium\u201d in discussions of the Second Amendment, he merely echoed the concerns that\nanimated the Framers of the Amendment and led to its adoption. An excerpt from his 1833 Commentaries on the Constitution\nof the United States\u2014the same passage cited by the Court in Miller 34 \u2014merits reproducing at some length:\n\u201cThe importance of [the Second Amendment] will scarcely be doubted by any persons who have duly reflected upon\nthe subject. The militia is the natural **2840 defence of a free country against sudden foreign invasions, domestic\ninsurrections, and domestic usurpations of power by rulers. It is against sound policy for a free people to keep up large military\nestablishments and standing armies in time of peace, both from the enormous expenses with which they are attended and the\nfacile means which they afford to ambitious and unprincipled rulers to subvert the government, or trample upon the rights of\nthe people.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4118, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "22c9cb0e-7efc-489e-abf9-9700fae651f7": {"__data__": {"id_": "22c9cb0e-7efc-489e-abf9-9700fae651f7", "embedding": null, "metadata": {"page_label": "34", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "da406491-6449-4aca-9174-fad6bf5cb954", "node_type": "4", "metadata": {"page_label": "34", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "49e0974af5ad04070240e35910e4436abc9c5798bc350fd6f5cfdafd2b43d3a3", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "f52103d2-dc8d-4fdf-86ab-11327aa67c18", "node_type": "1", "metadata": {"page_label": "34", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a78e9ad5849755dce5413168655ed0eb2d1a6bef4a35f6db59fa7636e7518a2b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "An excerpt from his 1833 Commentaries on the Constitution\nof the United States\u2014the same passage cited by the Court in Miller 34 \u2014merits reproducing at some length:\n\u201cThe importance of [the Second Amendment] will scarcely be doubted by any persons who have duly reflected upon\nthe subject. The militia is the natural **2840 defence of a free country against sudden foreign invasions, domestic\ninsurrections, and domestic usurpations of power by rulers. It is against sound policy for a free people to keep up large military\nestablishments and standing armies in time of peace, both from the enormous expenses with which they are attended and the\nfacile means which they afford to ambitious and unprincipled rulers to subvert the government, or trample upon the rights of\nthe people. The right of the citizens to keep and bear arms has justly been considered as the *668 palladium of the liberties\nof a republic, since it offers a strong moral check against the usurpation and arbitrary power of rulers, and will generally,\neven if these are successful in the first instance, enable the people to resist and triumph over them. And yet, though this truth", "mimetype": "text/plain", "start_char_idx": 3337, "end_char_idx": 4489, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9da34a3c-c97b-41f6-9f19-dc022dafd7f4": {"__data__": {"id_": "9da34a3c-c97b-41f6-9f19-dc022dafd7f4", "embedding": null, "metadata": {"page_label": "35", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fac0f3f2-6e9b-4d43-a810-6388eab12b8f", "node_type": "4", "metadata": {"page_label": "35", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5653ebdaef1c4e8f693fe3743a65e2e513c7e1eb8c31a4828a0a29863685d9df", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "5ea7565c-6786-4cda-934d-5139badad18e", "node_type": "1", "metadata": {}, "hash": "b578e93a8b0e11c50684d2a8ca467ae4d82da40c9be63641ab352bdac2deb71f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 35\nwould seem so clear, and the importance of a well-regulated militia would seem so undeniable, it cannot be disguised that,\namong the American people, there is a growing indifference to any system of militia discipline, and a strong disposition,\nfrom a sense of its burdens, to be rid of all regulations. How it is practicable to keep the people duly armed without some\norganization, it is difficult to see. There is certainly no small danger that indifference may lead to disgust, and disgust to\ncontempt; and thus gradually undermine all the protection intended by the clause of our national bill of rights.\u201d 2 J. Story,\nCommentaries on the Constitution of the United States \u00a7 1897, pp. 620\u2013621 (4th ed. 1873) (footnote omitted).\nStory thus began by tying the significance of the Amendment directly to the paramount importance of the militia. He then\ninvoked the fear that drove the Framers of the Second Amendment\u2014specifically, the threat to liberty posed by a standing army.\nAn important check on that danger, he suggested, was a \u201cwell-regulated militia,\u201d id., at 621, for which he assumed that arms\nwould have to be kept and, when necessary, borne. There is not so much as a whisper in the passage above that Story believed\nthat the right secured by the Amendment bore any relation to private use or possession of weapons for activities like hunting\nor personal self-defense.\nAfter extolling the virtues of the militia as a bulwark against tyranny, Story went on to decry the \u201cgrowing indifference to\nany system of militia discipline.\u201d Ibid. When he wrote, \u201c[h]ow it is practicable to keep the people duly armed without some\norganization it is difficult to see,\u201d ibid., he underscored *669 the degree to which he viewed the arming of the people and\nthe militia as indissolubly linked. Story warned that the \u201cgrowing indifference\u201d he perceived would \u201cgradually undermine all\nthe protection intended by this clause of our national bill of rights,\u201d ibid. In his view, the importance of the Amendment was\ndirectly related to the continuing vitality of an institution in the process of apparently becoming obsolete.\nIn an attempt to downplay the absence of any reference to nonmilitary uses of weapons in Story's commentary, the Court relies\non the fact that Story characterized Article VII of the English Declaration of Rights as a \u201c \u2018similar provision,\u2019 \u201d ante, at 2807.\nThe two provisions were indeed similar, in that both protected some uses of firearms. But Story's characterization in no way\nsuggests that he believed that the provisions had the same scope. To the contrary, Story's exclusive focus on the militia in his\ndiscussion of the Second Amendment confirms his understanding of the right protected by the Second Amendment as limited\nto military uses of arms.\n**2841 Story's writings as a Justice of this Court, to the extent that they shed light on this question, only confirm that Justice\nStory did not view the Amendment as conferring upon individuals any \u201cself-defense\u201d right disconnected from service in a state\nmilitia. Justice Story dissented from the Court's decision in Houston v. Moore, 5 Wheat. 1, 24, 5 L.Ed. 19 (1820) , which held\nthat a state court \u201chad a concurrent jurisdiction\u201d with the federal courts \u201cto try a militia man who had disobeyed the call of\nthe President, and to enforce the laws of Congress against such delinquent.\u201d Id., at 32. Justice Story believed that Congress'\npower to provide for the organizing, arming, and disciplining of the militia was, when Congress acted, plenary; but he explained\nthat in the absence of congressional action, \u201cI am certainly not prepared to deny the legitimacy of such an exercise of [state]\nauthority.\u201d Id., at 52. As to the Second Amendment, he wrote that it \u201cmay *670 not, perhaps, be thought to have any important\nbearing on this point. If it have, it confirms and illustrates, rather than impugns the reasoning already suggested.\u201d Id., at 52\u2013\n53.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4132, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5ea7565c-6786-4cda-934d-5139badad18e": {"__data__": {"id_": "5ea7565c-6786-4cda-934d-5139badad18e", "embedding": null, "metadata": {"page_label": "35", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fac0f3f2-6e9b-4d43-a810-6388eab12b8f", "node_type": "4", "metadata": {"page_label": "35", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5653ebdaef1c4e8f693fe3743a65e2e513c7e1eb8c31a4828a0a29863685d9df", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9da34a3c-c97b-41f6-9f19-dc022dafd7f4", "node_type": "1", "metadata": {"page_label": "35", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "992d7e21c3e65c7198ce6011fe6863972925847a4a3ff1dd306fc301b34c925f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "19 (1820) , which held\nthat a state court \u201chad a concurrent jurisdiction\u201d with the federal courts \u201cto try a militia man who had disobeyed the call of\nthe President, and to enforce the laws of Congress against such delinquent.\u201d Id., at 32. Justice Story believed that Congress'\npower to provide for the organizing, arming, and disciplining of the militia was, when Congress acted, plenary; but he explained\nthat in the absence of congressional action, \u201cI am certainly not prepared to deny the legitimacy of such an exercise of [state]\nauthority.\u201d Id., at 52. As to the Second Amendment, he wrote that it \u201cmay *670 not, perhaps, be thought to have any important\nbearing on this point. If it have, it confirms and illustrates, rather than impugns the reasoning already suggested.\u201d Id., at 52\u2013\n53. The Court contends that had Justice Story understood the Amendment to have a militia purpose, the Amendment would\nhave had \u201cenormous and obvious bearing on the point.\u201d Ante, at 2808. But the Court has it quite backwards: If Story had\nbelieved that the purpose of the Amendment was to permit civilians to keep firearms for activities like personal self-defense,\nwhat \u201cconfirm[ation] and illustrat[ion],\u201d Houston, 5 Wheat., at 53, 5 L.Ed. 19 , could the Amendment possibly have provided\nfor the point that States retained the power to organize, arm, and discipline their own militias?\nPost\u2013Civil War Legislative History\nThe Court suggests that by the post-Civil War period, the Second Amendment was understood to secure a right to firearm use\nand ownership for purely private purposes like personal self-defense. While it is true that some of the legislative history on\nwhich the Court relies supports that contention, see ante, at 2809 \u2013 2811, such sources are entitled to limited, if any, weight.\nAll of the statements the Court cites were made long after the framing of the Amendment and cannot possibly supply any", "mimetype": "text/plain", "start_char_idx": 3338, "end_char_idx": 5248, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e0b3ca43-0c41-4b12-bf82-dbf352bf65dc": {"__data__": {"id_": "e0b3ca43-0c41-4b12-bf82-dbf352bf65dc", "embedding": null, "metadata": {"page_label": "36", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ba2d068d-951e-4ee9-b44d-aa0ddfd7b5cc", "node_type": "4", "metadata": {"page_label": "36", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0b3509861a9758a0d7395d37d8501ce070bd76e0847a2d481985c9d26c0953d1", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "ce1264c4-a478-4cf2-aba0-79def8c91177", "node_type": "1", "metadata": {}, "hash": "eee9f50fee1c9af075f863be0945f3ea3c0fbd17453d6f93c9eaa7751768768f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 36\ninsight into the intent of the Framers; and all were made during pitched political debates, so that they are better characterized\nas advocacy than good-faith attempts at constitutional interpretation.\nWhat is more, much of the evidence the Court offers is decidedly less clear than its discussion allows. The Court notes: \u201cBlacks\nwere routinely disarmed by Southern States after the Civil War. Those who opposed these injustices frequently stated that they\ninfringed blacks' constitutional right to keep and bear arms.\u201d Ante, at 2810. The Court hastily concludes that \u201c[n]eedless to\nsay, the claim was not that blacks were being prohibited from carrying arms in an organized state militia,\u201d ibid. But some of\nthe claims of the *671 sort the Court cites may have been just that. In some Southern States, Reconstruction-era Republican\ngovernments created state militias in which both blacks and whites were permitted to serve. Because \u201c[t]he decision to allow\nblacks to serve alongside whites meant that most southerners refused to join the new militia,\u201d the bodies were dubbed \u201c \u2018Negro\nmilitia[s].\u2019 \u201d S. Cornell, A Well\u2013Regulated Militia 177 (2006). The \u201carming of the Negro militias met with especially fierce\nresistance in South Carolina .... The sight of organized, armed freedmen incensed opponents of Reconstruction and led to an\nintensified campaign of Klan terror. Leading members of the Negro militia were beaten or lynched and their weapons stolen.\u201d\nId., at 176 \u2013 177.\n**2842 One particularly chilling account of Reconstruction-era Klan violence directed at a black militia member is recounted\nin the memoir of Louis F. Post, A \u201cCarpetbagger\u201d in South Carolina, 10 Journal of Negro History 10 (1925). Post describes the\nmurder by local Klan members of Jim Williams, the captain of a \u201cNegro militia company,\u201d id., at 59, this way:\n\u201c[A] cavalcade of sixty cowardly white men, completely disguised with face masks and body gowns, rode up one night in\nMarch, 1871, to the house of Captain Williams ... in the wood [they] hanged [and shot] him ... [and on his body they] then\npinned a slip of paper inscribed, as I remember it, with these grim words: \u2018Jim Williams gone to his last muster.\u2019 \u201d Id., at 61.\nIn light of this evidence, it is quite possible that at least some of the statements on which the Court relies actually did mean to\nrefer to the disarmament of black militia members.\nIV\nThe brilliance of the debates that resulted in the Second Amendment faded into oblivion during the ensuing years, for the\nconcerns about Article I's Militia Clauses that generated such pitched debate during the ratification process and led to the\nadoption of the Second Amendment were short lived.\n*672 In 1792, the year after the Amendment was ratified, Congress passed a statute that purported to establish \u201can Uniform\nMilitia throughout the United States.\u201d 1 Stat. 271. The statute commanded every able-bodied white male citizen between the\nages of 18 and 45 to be enrolled therein and to \u201cprovide himself with a good musket or firelock\u201d and other specified weaponry.35\nIbid. The statute is significant, for it confirmed the way those in the founding generation viewed firearm ownership: as a duty\nlinked to military service. The statute they enacted, however, \u201cwas virtually ignored for more than a century,\u201d and was finally\nrepealed in 1901. See Perpich, 496 U.S., at 341, 110 S.Ct. 2418.\nThe postratification history of the Second Amendment is strikingly similar. The Amendment played little role in any legislative\ndebate about the civilian use of firearms for most of the 19th century, and it made few appearances in the decisions of this Court.\nTwo 19th-century cases, however, bear mentioning.\nIn United States v. Cruikshank, 92 U.S. 542, 23 L.Ed.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3957, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce1264c4-a478-4cf2-aba0-79def8c91177": {"__data__": {"id_": "ce1264c4-a478-4cf2-aba0-79def8c91177", "embedding": null, "metadata": {"page_label": "36", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ba2d068d-951e-4ee9-b44d-aa0ddfd7b5cc", "node_type": "4", "metadata": {"page_label": "36", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0b3509861a9758a0d7395d37d8501ce070bd76e0847a2d481985c9d26c0953d1", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "e0b3ca43-0c41-4b12-bf82-dbf352bf65dc", "node_type": "1", "metadata": {"page_label": "36", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ad5e6aea74a1528e416510c87a2e324f2b30f50c1011950cfa2a4127532424ba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The statute is significant, for it confirmed the way those in the founding generation viewed firearm ownership: as a duty\nlinked to military service. The statute they enacted, however, \u201cwas virtually ignored for more than a century,\u201d and was finally\nrepealed in 1901. See Perpich, 496 U.S., at 341, 110 S.Ct. 2418.\nThe postratification history of the Second Amendment is strikingly similar. The Amendment played little role in any legislative\ndebate about the civilian use of firearms for most of the 19th century, and it made few appearances in the decisions of this Court.\nTwo 19th-century cases, however, bear mentioning.\nIn United States v. Cruikshank, 92 U.S. 542, 23 L.Ed. 588 (1876), the Court sustained a challenge to respondents' convictions\nunder the Enforcement Act of 1870 for conspiring to deprive any individual of \u201c \u2018any right or privilege granted or secured to him\nby the constitution or laws of the United States.\u2019 \u201d Id., at 548. The Court wrote, as to counts 2 and 10 of respondents' indictment:", "mimetype": "text/plain", "start_char_idx": 3279, "end_char_idx": 4292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "43ce5aec-9d84-490d-ab1b-923a2073ea6f": {"__data__": {"id_": "43ce5aec-9d84-490d-ab1b-923a2073ea6f", "embedding": null, "metadata": {"page_label": "37", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b6a6436a-3fb7-4e67-b2ca-6ae6ae6ba45e", "node_type": "4", "metadata": {"page_label": "37", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a83029e3b766237d1686753d02ceeea0fa17855e65b200a83816aea53b759066", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "7b4c107a-8319-4745-b437-9ff271b97811", "node_type": "1", "metadata": {}, "hash": "d7237bdc27e164449e9a34d1358bcca49b2d5a2067e828de5f7eb41f7f5b45c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 37\n\u201cThe right there specified is that of \u2018bearing arms for a lawful purpose.\u2019 This is not a right granted by the Constitution. Neither\nis it in any manner dependent on *673 that instrument for its existence. The second amendment declares that it shall not\nbe infringed; but this, as has been seen, means no more than that it shall not be infringed by Congress. This is one of the\namendments that has no other effect than to restrict the powers of the national government.\u201d Id., at 553.\n**2843 The majority's assertion that the Court in Cruikshank \u201cdescribed the right protected by the Second Amendment as \u2018\n\u201cbearing arms for a lawful purpose,\u201d \u2019 \u201d ante, at 2813 (quoting Cruikshank, 92 U.S., at 553), is not accurate. The Cruikshank\nCourt explained that the defective indictment contained such language, but the Court did not itself describe the right, or endorse\nthe indictment's description of the right.\nMoreover, it is entirely possible that the basis for the indictment's counts 2 and 10, which charged respondents with depriving\nthe victims of rights secured by the Second Amendment, was the prosecutor's belief that the victims\u2014members of a group of\ncitizens, mostly black but also white, who were rounded up by the sheriff, sworn in as a posse to defend the local courthouse,\nand attacked by a white mob\u2014bore sufficient resemblance to members of a state militia that they were brought within the reach\nof the Second Amendment. See generally C. Lane, The Day Freedom Died: The Colfax Massacre, The Supreme Court, and\nthe Betrayal of Reconstruction (2008).\nOnly one other 19th-century case in this Court, Presser v. Illinois, 116 U.S. 252, 6 S.Ct. 580, 29 L.Ed. 615 (1886) , engaged\nin any significant discussion of the Second Amendment. The petitioner in Presser was convicted of violating a state statute\nthat prohibited organizations other than the Illinois National Guard from associating together as military companies or parading\nwith arms. Presser challenged his conviction, asserting, as relevant, that the statute violated both the Second and *674 the\nFourteenth Amendments. With respect to the Second Amendment, the Court wrote:\n\u201cWe think it clear that the sections under consideration, which only forbid bodies of men to associate together as military\norganizations, or to drill or parade with arms in cities and towns unless authorized by law, do not infringe the right of the\npeople to keep and bear arms. But a conclusive answer to the contention that this amendment prohibits the legislation in\nquestion lies in the fact that the amendment is a limitation only upon the power of Congress and the National government,\nand not upon that of the States.\u201d Id., at 264\u2013265, 6 S.Ct. 580.\nAnd in discussing the Fourteenth Amendment, the Court explained:\n\u201cThe plaintiff in error was not a member of the organized volunteer militia of the State of Illinois, nor did he belong to the\ntroops of the United States or to any organization under the militia law of the United States. On the contrary, the fact that\nhe did not belong to the organized militia or the troops of the United States was an ingredient in the offence for which he\nwas convicted and sentenced. The question is, therefore, had he a right as a citizen of the United States, in disobedience of\nthe State law, to associate with others as a military company, and to drill and parade with arms in the towns and cities of the\nState? If the plaintiff in error has any such privilege he must be able to point to the provision of the Constitution or statutes\nof the United States by which it is conferred.\u201d Id., at 266, 6 S.Ct. 580.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3805, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7b4c107a-8319-4745-b437-9ff271b97811": {"__data__": {"id_": "7b4c107a-8319-4745-b437-9ff271b97811", "embedding": null, "metadata": {"page_label": "37", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b6a6436a-3fb7-4e67-b2ca-6ae6ae6ba45e", "node_type": "4", "metadata": {"page_label": "37", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a83029e3b766237d1686753d02ceeea0fa17855e65b200a83816aea53b759066", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "43ce5aec-9d84-490d-ab1b-923a2073ea6f", "node_type": "1", "metadata": {"page_label": "37", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "53c31ef168a750679412e66e3ffea5dab9c98cdd2286eda9c2bac4ba81afb956", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "And in discussing the Fourteenth Amendment, the Court explained:\n\u201cThe plaintiff in error was not a member of the organized volunteer militia of the State of Illinois, nor did he belong to the\ntroops of the United States or to any organization under the militia law of the United States. On the contrary, the fact that\nhe did not belong to the organized militia or the troops of the United States was an ingredient in the offence for which he\nwas convicted and sentenced. The question is, therefore, had he a right as a citizen of the United States, in disobedience of\nthe State law, to associate with others as a military company, and to drill and parade with arms in the towns and cities of the\nState? If the plaintiff in error has any such privilege he must be able to point to the provision of the Constitution or statutes\nof the United States by which it is conferred.\u201d Id., at 266, 6 S.Ct. 580.\nPresser, therefore, both affirmed Cruikshank's holding that the Second Amendment posed no obstacle to regulation by state\ngovernments, and suggested that in any event nothing in the Constitution protected the use of arms outside the *675 context\nof a militia \u201cauthorized by law\u201d and organized by the State or Federal Government.36\n**2844 In 1901, the President revitalized the militia by creating \u201c \u2018the National Guard of the several States,\u2019 \u201d Perpich, 496\nU.S., at 341, and nn. 9\u201310, 110 S.Ct. 2418; meanwhile, the dominant understanding of the Second Amendment's inapplicability\nto private gun ownership continued well into the 20th century. The first two federal laws directly restricting civilian use and\npossession of firearms\u2014the 1927 Act prohibiting mail delivery of \u201cpistols, revolvers, and other firearms capable of being\nconcealed on the person,\u201d ch. 75, 44 Stat. 1059, and the 1934 Act prohibiting the possession of sawed-off shotguns and\nmachine guns\u2014were enacted over minor Second Amendment objections dismissed by the vast majority of the legislators who", "mimetype": "text/plain", "start_char_idx": 2906, "end_char_idx": 4877, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b625432-35dc-43e0-88aa-075869771f12": {"__data__": {"id_": "3b625432-35dc-43e0-88aa-075869771f12", "embedding": null, "metadata": {"page_label": "38", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5d97e345-c4b0-47fa-9b54-2f57b4cbf1c5", "node_type": "4", "metadata": {"page_label": "38", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "3364b9b8492bafefb5372553c48f8caf5e6da33019422df50c7e63ce9a18a63d", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "3d2bc89b-89f5-4961-b4d4-e582a1f349bd", "node_type": "1", "metadata": {}, "hash": "939e4c362e5d4b3c3c83831e34012eae425168a1702b6068d8b0d0317bf4ba33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 38\nparticipated in the debates. 37 Members of Congress clashed over the wisdom and efficacy of such laws as crime-control\nmeasures. But since the statutes did not infringe *676 upon the military use or possession of weapons, for most legislators\nthey did not even raise the specter of possible conflict with the Second Amendment.\nThus, for most of our history, the invalidity of Second\u2013Amendment\u2013based objections to firearms regulations has been well\nsettled and uncontroversial. 38 Indeed, the Second Amendment was not even mentioned **2845 in either full House of\nCongress during the legislative proceedings that led to the passage of the 1934 Act. Yet enforcement of that law produced the\njudicial decision that confirmed the status of the Amendment as limited in reach to military usage. After reviewing many of\nthe same sources that are discussed at *677 greater length by the Court today, the Miller Court unanimously concluded that\nthe Second Amendment did not apply to the possession of a firearm that did not have \u201csome reasonable relationship to the\npreservation or efficiency of a well regulated militia.\u201d 307 U.S., at 178, 59 S.Ct. 816.\nThe key to that decision did not, as the Court belatedly suggests, ante, at 2813 \u2013 2815, turn on the difference between muskets\nand sawed-off shotguns; it turned, rather, on the basic difference between the military and nonmilitary use and possession of\nguns. Indeed, if the Second Amendment were not limited in its coverage to military uses of weapons, why should the Court in\nMiller have suggested that some weapons but not others were eligible for Second Amendment protection? If use for self-defense\nwere the relevant standard, why did the Court not inquire into the suitability of a particular weapon for self-defense purposes?\nPerhaps in recognition of the weakness of its attempt to distinguish Miller, the Court argues in the alternative that Miller should\nbe discounted because of its decisional history. It is true that the appellees in Miller did not file a brief or make an appearance,\nalthough the court below had held that the relevant provision of the National Firearms Act violated the Second Amendment\n(albeit without any reasoned opinion). But, as our decision in Marbury v. Madison, 1 Cranch 137, 2 L.Ed. 60, in which only one\nside appeared and presented arguments, demonstrates, the absence of adversarial presentation alone is not a basis for refusing\nto accord stare decisis effect to a decision of this Court. See Bloch, Marbury Redux, in Arguing Marbury v. Madison 59, 63\n(M. Tushnet ed.2005). Of course, if it can be demonstrated that new evidence or arguments were genuinely not available to an\nearlier Court, that fact should be given special weight as we consider whether to overrule a prior case. But the Court does not\nmake that claim, because it cannot. Although it is true that the drafting history of the Amendment was not *678 discussed\nin the Government's brief, see ante, at 2814 \u2013 2815, it is certainly not the drafting history that the Court's decision today turns\non. And those sources upon which the Court today relies most heavily were available to the Miller Court. The Government\ncited the English Bill of Rights and quoted a lengthy passage from Aymette v. State, 21 Tenn. 154 (1840), detailing the history\nleading to the English guarantee, Brief for United States in United States v. Miller, O.T.1938, No. 696, pp 12\u201313; it also cited\nBlackstone, id., at 9, n. 2, Cooley, id., at 12, 15, and Story, id., at 15. The Court is reduced to critiquing the number of pages\nthe Government devoted to exploring the English legal sources. Only two (in a brief 21 pages in length)! Would the Court be\nsatisfied with four? Ten?\nThe Court is simply wrong when it intones that Miller contained \u201cnot a word \u201d about the Amendment's history. Ante, at 2815.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4039, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3d2bc89b-89f5-4961-b4d4-e582a1f349bd": {"__data__": {"id_": "3d2bc89b-89f5-4961-b4d4-e582a1f349bd", "embedding": null, "metadata": {"page_label": "38", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5d97e345-c4b0-47fa-9b54-2f57b4cbf1c5", "node_type": "4", "metadata": {"page_label": "38", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "3364b9b8492bafefb5372553c48f8caf5e6da33019422df50c7e63ce9a18a63d", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "3b625432-35dc-43e0-88aa-075869771f12", "node_type": "1", "metadata": {"page_label": "38", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b6a5dd432b7742c4ef0bb58cd9068de83ed5a743a5ba83d02c2f7c8cec8cda50", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The Government\ncited the English Bill of Rights and quoted a lengthy passage from Aymette v. State, 21 Tenn. 154 (1840), detailing the history\nleading to the English guarantee, Brief for United States in United States v. Miller, O.T.1938, No. 696, pp 12\u201313; it also cited\nBlackstone, id., at 9, n. 2, Cooley, id., at 12, 15, and Story, id., at 15. The Court is reduced to critiquing the number of pages\nthe Government devoted to exploring the English legal sources. Only two (in a brief 21 pages in length)! Would the Court be\nsatisfied with four? Ten?\nThe Court is simply wrong when it intones that Miller contained \u201cnot a word \u201d about the Amendment's history. Ante, at 2815.\nThe Court plainly looked to history to construe the term \u201cMilitia,\u201d and, on the best reading of Miller, the entire guarantee of\nthe Second Amendment. After noting the original Constitution's grant of power to Congress and to the States over the militia,\nthe Court explained:\n\u201cWith obvious purpose to assure the continuation and render possible the effectiveness of such forces the declaration and\nguarantee of the Second Amendment **2846 were made. It must be interpreted and applied with that end in view.\n\u201cThe Militia which the States were expected to maintain and train is set in contrast with Troops which they were forbidden to\nkeep without the consent of Congress. The sentiment of the time strongly disfavored standing armies; the common view was\nthat adequate defense of country and laws could be secured through the Militia\u2014civilians primarily, soldiers on occasion.\n\u201cThe signification attributed to the term Militia appears from the debates in the Convention, the history *679 and legislation\nof Colonies and States, and the writings of approved commentators.\u201d Miller, 307 U.S., at 178\u2013179, 59 S.Ct. 816.", "mimetype": "text/plain", "start_char_idx": 3363, "end_char_idx": 5156, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "744d69e1-6e50-4abe-82a6-0711b381bab5": {"__data__": {"id_": "744d69e1-6e50-4abe-82a6-0711b381bab5", "embedding": null, "metadata": {"page_label": "39", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "73a993c3-6382-40c6-bd98-66696b8ec897", "node_type": "4", "metadata": {"page_label": "39", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "961e0b2b8ece3a40cda80fde101a846fb922a50742d23fc22f2df3758e778983", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 39\nThe majority cannot seriously believe that the Miller Court did not consider any relevant evidence; the majority simply does not\napprove of the conclusion the Miller Court reached on that evidence. Standing alone, that is insufficient reason to disregard a\nunanimous opinion of this Court, upon which substantial reliance has been placed by legislators and citizens for nearly 70 years.\nV\nThe Court concludes its opinion by declaring that it is not the proper role of this Court to change the meaning of rights\n\u201censhrine[d]\u201d in the Constitution. Ante, at 2822. But the right the Court announces was not \u201censhrined\u201d in the Second\nAmendment by the Framers; it is the product of today's law-changing decision. The majority's exegesis has utterly failed to\nestablish that as a matter of text or history, \u201cthe right of law-abiding, responsible citizens to use arms in defense of hearth and\nhome\u201d is \u201celevate[d] above all other interests\u201d by the Second Amendment. Ante, at 2822.\nUntil today, it has been understood that legislatures may regulate the civilian use and misuse of firearms so long as they do not\ninterfere with the preservation of a well-regulated militia. The Court's announcement of a new constitutional right to own and\nuse firearms for private purposes upsets that settled understanding, but leaves for future cases the formidable task of defining\nthe scope of permissible regulations. Today judicial craftsmen have confidently asserted that a policy choice that denies a \u201claw-\nabiding, responsible citize[n]\u201d the right to keep and use weapons in the home for self-defense is \u201coff the table.\u201d Ante, at 2822.\nGiven the presumption that most citizens are law abiding, and the reality that the need to defend oneself may suddenly arise\nin a host of locations outside the home, *680 I fear that the District's policy choice may well be just the first of an unknown\nnumber of dominoes to be knocked off the table. 39\nI do not know whether today's decision will increase the labor of federal judges to **2847 the \u201cbreaking point\u201d envisioned\nby Justice Cardozo, but it will surely give rise to a far more active judicial role in making vitally important national policy\ndecisions than was envisioned at any time in the 18th, 19th, or 20th centuries.\nThe Court properly disclaims any interest in evaluating the wisdom of the specific policy choice challenged in this case, but it\nfails to pay heed to a far more important policy choice\u2014the choice made by the Framers themselves. The Court would have us\nbelieve that over 200 years ago, the Framers made a choice to limit the tools available to elected officials wishing to regulate\ncivilian uses of weapons, and to authorize this Court to use the common-law process of case-by-case judicial lawmaking to\ndefine the contours of acceptable gun-control policy. Absent compelling evidence that is nowhere to be found in the Court's\nopinion, I could not possibly conclude that the Framers made such a choice.\nFor these reasons, I respectfully dissent.\n*681 Justice BREYER, with whom Justice STEVENS, Justice SOUTER, and Justice GINSBURG join, dissenting.\nWe must decide whether a District of Columbia law that prohibits the possession of handguns in the home violates the Second\nAmendment. The Court, relying upon its view that the Second Amendment seeks to protect a right of personal self-defense,\nholds that this law violates that Amendment. In my view, it does not.\nI\nThe majority's conclusion is wrong for two independent reasons. The first reason is that set forth by Justice STEVENS\u2014namely,\nthat the Second Amendment protects militia-related, not self-defense-related, interests. These two interests are sometimes\nintertwined. To assure 18th-century citizens that they could keep arms for militia purposes would necessarily have allowed", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3998, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "324fcab3-3e33-4e3e-8b77-648bd55d0261": {"__data__": {"id_": "324fcab3-3e33-4e3e-8b77-648bd55d0261", "embedding": null, "metadata": {"page_label": "40", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a7969e2c-51ce-44f0-8a9a-c3fab2d158c0", "node_type": "4", "metadata": {"page_label": "40", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e54ccc92231acaaca22a1a28e347b3d1ade2a1265f6afdd519f1365952f24c98", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 40\nthem to keep arms that they could have used for self-defense as well. But self-defense alone, detached from any militia-related\nobjective, is not the Amendment's concern.\nThe second independent reason is that the protection the Amendment provides is not absolute. The Amendment permits\ngovernment to regulate the interests that it serves. Thus, irrespective of what those interests are\u2014whether they do or do not\ninclude an independent interest in self-defense\u2014the majority's view cannot be correct unless it can show that the District's\nregulation is unreasonable or inappropriate in Second Amendment terms. This the majority cannot do.\nIn respect to the first independent reason, I agree with Justice STEVENS, and I join his opinion. In this opinion I shall focus\nupon the second reason. I shall show that the District's law is consistent with the Second Amendment even if that Amendment\nis interpreted as protecting a wholly separate interest in individual self-defense. That is so because the District's regulation,\nwhich focuses upon the presence of handguns in high-crime urban areas, represents a *682 permissible legislative response\nto a serious, indeed life-threatening, problem.\nThus I here assume that one objective (but, as the majority concedes, ante, at 2801, not the primary objective) of those who\nwrote the Second Amendment was to help assure citizens that they would have arms available for purposes of self-defense.\nEven so, a legislature could reasonably conclude that the law will advance goals of great public importance, namely, saving\nlives, preventing injury, and reducing crime. The law is tailored to the urban crime problem in that it is local in scope **2848\nand thus affects only a geographic area both limited in size and entirely urban; the law concerns handguns, which are specially\nlinked to urban gun deaths and injuries, and which are the overwhelmingly favorite weapon of armed criminals; and at the\nsame time, the law imposes a burden upon gun owners that seems proportionately no greater than restrictions in existence at\nthe time the Second Amendment was adopted. In these circumstances, the District's law falls within the zone that the Second\nAmendment leaves open to regulation by legislatures.\nII\nThe Second Amendment says: \u201cA well regulated Militia, being necessary to the security of a free State, the right of the people\nto keep and bear Arms, shall not be infringed.\u201d In interpreting and applying this Amendment, I take as a starting point the\nfollowing four propositions, based on our precedent and today's opinions, to which I believe the entire Court subscribes:\n(1) The Amendment protects an \u201cindividual\u201d right\u2014i.e., one that is separately possessed, and may be separately enforced, by\neach person on whom it is conferred. See, e.g., ante, at 2799 (opinion of the Court); ante, at 2822 (STEVENS, J., dissenting).\n(2) As evidenced by its preamble, the Amendment was adopted \u201c[w]ith obvious purpose to assure the continuation *683 and\nrender possible the effectiveness of [militia] forces.\u201d United States v. Miller, 307 U.S. 174, 178, 59 S.Ct. 816, 83 L.Ed. 1206\n(1939); see ante, at 2801 (opinion of the Court); ante, at 2822 (STEVENS, J., dissenting).\n(3) The Amendment \u201cmust be interpreted and applied with that end in view.\u201d Miller, supra, at 178, 59 S.Ct. 816.\n(4) The right protected by the Second Amendment is not absolute, but instead is subject to government regulation. See Robertson\nv. Baldwin, 165 U.S. 275, 281\u2013282, 17 S.Ct. 326, 41 L.Ed. 715 (1897); ante, at 2799, 2816 (opinion of the Court).\nMy approach to this case, while involving the first three points, primarily concerns the fourth. I shall, as I said, assume with\nthe majority that the Amendment, in addition to furthering a militia-related purpose, also furthers an interest in possessing guns\nfor purposes of self-defense, at least to some degree. And I shall then ask whether the Amendment nevertheless permits the\nDistrict handgun restriction at issue here.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4190, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c293048a-7ee2-4867-866c-3812f3d145a5": {"__data__": {"id_": "c293048a-7ee2-4867-866c-3812f3d145a5", "embedding": null, "metadata": {"page_label": "41", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5ffa3258-a07b-4392-8e79-8f67e325ebd4", "node_type": "4", "metadata": {"page_label": "41", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f87948d9747102606dc270742d7557010a7bffe8a0321d7205f75b3946355385", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "0ffc8dde-7090-4f22-be02-0d50c6178815", "node_type": "1", "metadata": {}, "hash": "0e186dfcc7a3dbd22e6b5cb167593d43ef764d6e527828f62276c460503342e0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 41\nAlthough I adopt for present purposes the majority's position that the Second Amendment embodies a general concern about\nself-defense, I shall not assume that the Amendment contains a specific untouchable right to keep guns in the house to shoot\nburglars. The majority, which presents evidence in favor of the former proposition, does not, because it cannot, convincingly\nshow that the Second Amendment seeks to maintain the latter in pristine, unregulated form.\nTo the contrary, colonial history itself offers important examples of the kinds of gun regulation that citizens would then\nhave thought compatible with the \u201cright to keep and bear arms,\u201d whether embodied in Federal or State Constitutions, or the\nbackground common law. And those examples include substantial regulation of firearms in urban areas, including regulations\nthat imposed obstacles to the use of firearms for the protection of the home.\nBoston, Philadelphia, and New York City, the three largest cities in America during that period, all restricted the firing of guns\nwithin city limits to at least some degree. See *684 Churchill, **2849 Gun Regulation, the Police Power, and the Right\nTo Keep Arms in Early America, 25 Law & Hist. Rev. 139, 162 (2007) ; Dept. of Commerce, Bureau of Census, C. Gibson,\nPopulation of the 100 Largest Cities and Other Urban Places in the United States: 1790 to 1990 (1998) (Table 2), online at\nhttp://www.census.gov/population/www/documentation/twps0027/tab02.txt (all Internet materials as visited June 19, 2008, and\navailable in Clerk of Court's case file). Boston in 1746 had a law prohibiting the \u201cdischarge\u201d of \u201cany Gun or Pistol charged with\nShot or Ball in the Town\u201d on penalty of 40 shillings, a law that was later revived in 1778. See Act of May 28, 1746, ch. X, Acts\nand Laws of Mass. Bay, p. 208; An Act for Reviving and Continuing Sundry Laws that are Expired, and Near Expiring, 1778\nMass. Sess. Laws ch. V , pp. 193, 194. Philadelphia prohibited, on penalty of five shillings (or two days in jail if the fine were\nnot paid), firing a gun or setting off fireworks in Philadelphia without a \u201cgovernor's special license.\u201d See Act of Aug. 26, 1721,\n\u00a7 IV , in 3 Stat. at Large of Pa. 253\u2013254 (J. Mitchell & H. Flanders comm'rs 1896). And New York City banned, on penalty of\na 20\u2013shilling fine, the firing of guns (even in houses) for the three days surrounding New Year's Day. 5 Colonial Laws of New\nYork, ch. 1501, pp. 244\u2013246 (1894); see also An Act to Suppress the Disorderly Practice of Firing Guns, & c., on the Times\nTherein Mentioned (1774), in 8 Stat. at Large of Pa. 410\u2013412 (1902) (similar law for all \u201cinhabited parts\u201d of Pennsylvania).\nSee also An Act for preventing Mischief being done in the Town of Newport, or in any other Town in this Government, 1731\nRhode Island Session Laws, pp. 240 \u2013 241 (prohibiting, on penalty of five shillings for a first offense and more for subsequent\noffenses, the firing of \u201cany Gun or Pistol ... in the Streets of any of the Towns of this Government, or in any Tavern of the\nsame, after dark, on any Night whatsoever\u201d).\nFurthermore, several towns and cities (including Philadelphia, New York, and Boston) regulated, for fire-safety reasons, *685\nthe storage of gunpowder, a necessary component of an operational firearm. See Cornell & DeDino, A Well Regulated Right,\n73 Ford. L.Rev. 487, 510\u2013512 (2004). Boston's law in particular impacted the use of firearms in the home very much as the\nDistrict's law does today.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3683, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0ffc8dde-7090-4f22-be02-0d50c6178815": {"__data__": {"id_": "0ffc8dde-7090-4f22-be02-0d50c6178815", "embedding": null, "metadata": {"page_label": "41", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5ffa3258-a07b-4392-8e79-8f67e325ebd4", "node_type": "4", "metadata": {"page_label": "41", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f87948d9747102606dc270742d7557010a7bffe8a0321d7205f75b3946355385", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "c293048a-7ee2-4867-866c-3812f3d145a5", "node_type": "1", "metadata": {"page_label": "41", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "831330b2865c6ff17f731d095db5a45d5e52f372d822e766ce69f89df677c293", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "240 \u2013 241 (prohibiting, on penalty of five shillings for a first offense and more for subsequent\noffenses, the firing of \u201cany Gun or Pistol ... in the Streets of any of the Towns of this Government, or in any Tavern of the\nsame, after dark, on any Night whatsoever\u201d).\nFurthermore, several towns and cities (including Philadelphia, New York, and Boston) regulated, for fire-safety reasons, *685\nthe storage of gunpowder, a necessary component of an operational firearm. See Cornell & DeDino, A Well Regulated Right,\n73 Ford. L.Rev. 487, 510\u2013512 (2004). Boston's law in particular impacted the use of firearms in the home very much as the\nDistrict's law does today. Boston's gunpowder law imposed a \u00a310 fine upon \u201cany Person\u201d who \u201cshall take into any Dwelling\u2013\nHouse, Stable, Barn, Out-house, Ware-house, Store, Shop, or other Building, within the Town of Boston, any ... Fire\u2013Arm,\nloaded with, or having Gun\u2013Powder.\u201d An Act in Addition to the several Acts already made for the prudent Storage of Gun\u2013\nPowder within the Town of Boston, ch. XIII, 1783 Mass. Acts pp. 218\u2013219; see also 1 S. Johnson, A Dictionary of the English\nLanguage 751 (4th ed. 1773) (defining \u201cfirearms\u201d as \u201c[a]rms which owe their efficacy to fire; guns\u201d). Even assuming, as the\nmajority does, see ante, at 2819 \u2013 2820, that this law included an implicit self-defense exception, it would nevertheless have\nprevented a homeowner from keeping in his home a gun that he could immediately pick up and use against an intruder. Rather,\nthe homeowner would have had to get the gunpowder and load it into the gun, an operation that would have taken a fair amount\nof time to perform. See Hicks, United States Military Shoulder Arms, 1795\u20131935, 1 Journal of Am. Military Hist. Foundation\n23, 30 (1937) (experienced soldier could, with specially prepared cartridges as opposed to plain gunpowder and ball, load and\nfire musket 3\u2013to\u20134 times per minute); id., at 26\u201330 (describing the loading process); see also Grancsay, The Craft of the Early\nAmerican Gunsmith, 6 Metropolitan Museum of Art Bulletin 54, 60 (1947) (noting that rifles were slower to load and fire\nthan muskets).\n**2850 Moreover, the law would, as a practical matter, have prohibited the carrying of loaded firearms anywhere in the city,\nunless the carrier had no plans to enter any building or was willing to unload or discard his weapons before going inside.\nAnd Massachusetts residents must have believed this kind of law compatible with the provision in the Massachusetts *686", "mimetype": "text/plain", "start_char_idx": 3020, "end_char_idx": 5524, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9df41178-0edf-4f06-bad0-b37584a6aadf": {"__data__": {"id_": "9df41178-0edf-4f06-bad0-b37584a6aadf", "embedding": null, "metadata": {"page_label": "42", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e379bf22-1e75-4d65-8854-4e22d5118a15", "node_type": "4", "metadata": {"page_label": "42", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0c063bbcb56628e37fc9fa32fbf871db3f3508eae5dde3204a95a5f12e241899", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "0c6a5788-8cdc-48f7-974b-3cffa6eca624", "node_type": "1", "metadata": {}, "hash": "cc6fdde6b7c3e20d8096ddc10649fd80c8e6d8962a624416fcb1acbc8cba812c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 42\nConstitution that granted \u201c[t]he people ... a right to keep and to bear arms for the common defence\u201d\u2014a provision that the\nmajority says was interpreted as \u201csecur[ing] an individual right to bear arms for defensive purposes.\u201d Art. XVII (1780), in 3\nThe Federal and State Constitutions, Colonial Charters, and Other Organic Laws 1888, 1892 (F. Thorpe ed.1909) (hereinafter\nThorpe); ante, at 2802 \u2013 2803 (opinion of the Court).\nThe New York City law, which required that gunpowder in the home be stored in certain sorts of containers, and laws in certain\nPennsylvania towns, which required that gunpowder be stored on the highest story of the home, could well have presented\nsimilar obstacles to in-home use of firearms. See Act of Apr. 13, 1784, ch. 28, 1784 N.Y . Laws p. 627; An Act for Erecting the\nTown of Carlisle, in the County of Cumberland, into a Borough, ch. XIV , \u00a7 XLII, 1782 Pa. Laws p. 49; An Act for Erecting\nthe Town of Reading, in the County of Berks, into a Borough, ch. LXXVI, \u00a7 XLII, 1783 Pa. Laws p. 211. Although it is\nunclear whether these laws, like the Boston law, would have prohibited the storage of gunpowder inside a firearm, they would\nat the very least have made it difficult to reload the gun to fire a second shot unless the homeowner happened to be in the\nportion of the house where the extra gunpowder was required to be kept. See 7 United States Encyclopedia of History 1297 (P.\nOehser ed. 1967) (\u201cUntil 1835 all small arms [were] single-shot weapons, requiring reloading by hand after every shot\u201d). And\nPennsylvania, like Massachusetts, had at the time one of the self-defense-guaranteeing state constitutional provisions on which\nthe majority relies. See ante, at 2802 \u2013 2803 (citing Pa. Declaration of Rights, \u00a7 XIII (1776), in 5 Thorpe 3083).\nThe majority criticizes my citation of these colonial laws. See ante, at 2819 \u2013 2821. But, as much as it tries, it cannot ignore\ntheir existence. I suppose it is possible that, as the majority suggests, see ante, at 2819 \u2013 2820, they all in practice contained\nself-defense exceptions. But none of them expressly provided *687 one, and the majority's assumption that such exceptions\nexisted relies largely on the preambles to these acts\u2014an interpretive methodology that it elsewhere roundly derides. Compare\nibid. (interpreting 18th-century statutes in light of their preambles) with ante, at 2789 \u2013 2790, and n. 3 (contending that the\noperative language of an 18th-century enactment may extend beyond its preamble). And in any event, as I have shown, the\ngunpowder-storage laws would have burdened armed self-defense, even if they did not completely prohibit it.\nThis historical evidence demonstrates that a self-defense assumption is the beginning, rather than the end, of any constitutional\ninquiry. That the District law impacts self-defense merely raises questions about the law's constitutionality. But to answer the\nquestions that are raised (that is, to see whether the statute is unconstitutional) requires us to focus on practicalities, the statute's\nrationale, the problems that called it into being, its relation to those objectives\u2014in a word, the details. There are no purely\nlogical or conceptual answers to such questions. All of which to say that to raise a self-defense question is not to answer it.\nIII\nI therefore begin by asking a process-based question: How is a court to determine **2851 whether a particular firearm\nregulation (here, the District's restriction on handguns) is consistent with the Second Amendment? What kind of constitutional\nstandard should the court use? How high a protective hurdle does the Amendment erect?\nThe question matters.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3859, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0c6a5788-8cdc-48f7-974b-3cffa6eca624": {"__data__": {"id_": "0c6a5788-8cdc-48f7-974b-3cffa6eca624", "embedding": null, "metadata": {"page_label": "42", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e379bf22-1e75-4d65-8854-4e22d5118a15", "node_type": "4", "metadata": {"page_label": "42", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0c063bbcb56628e37fc9fa32fbf871db3f3508eae5dde3204a95a5f12e241899", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9df41178-0edf-4f06-bad0-b37584a6aadf", "node_type": "1", "metadata": {"page_label": "42", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a081cdebfd0f6f2b8ffe1942733096b00185ec001515691c8ec1a2ffafa48f83", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "That the District law impacts self-defense merely raises questions about the law's constitutionality. But to answer the\nquestions that are raised (that is, to see whether the statute is unconstitutional) requires us to focus on practicalities, the statute's\nrationale, the problems that called it into being, its relation to those objectives\u2014in a word, the details. There are no purely\nlogical or conceptual answers to such questions. All of which to say that to raise a self-defense question is not to answer it.\nIII\nI therefore begin by asking a process-based question: How is a court to determine **2851 whether a particular firearm\nregulation (here, the District's restriction on handguns) is consistent with the Second Amendment? What kind of constitutional\nstandard should the court use? How high a protective hurdle does the Amendment erect?\nThe question matters. The majority is wrong when it says that the District's law is unconstitutional \u201c[u]nder any of the standards\nof scrutiny that we have applied to enumerated constitutional rights.\u201d Ante, at 2817. How could that be? It certainly would not\nbe unconstitutional under, for example, a \u201crational-basis\u201d standard, which requires a court to uphold regulation so long as it\nbears a \u201crational relationship\u201d *688 to a \u201clegitimate governmental purpose.\u201d Heller v. Doe, 509 U.S. 312, 320, 113 S.Ct. 2637,\n125 L.Ed.2d 257 (1993). The law at issue here, which in part seeks to prevent gun-related accidents, at least bears a \u201crational\nrelationship\u201d to that \u201clegitimate\u201d life-saving objective. And nothing in the three 19th-century state cases to which the majority\nturns for support mandates the conclusion that the present District law must fall. See Andrews v. State, 50 Tenn. 165, 177, 186\u2013\n187, 192 (1871) (striking down, as violating a state constitutional provision adopted in 1870, a statewide ban on carrying a broad\nclass of weapons, insofar as it applied to revolvers); Nunn v. State, 1 Ga. 243, 246, 250\u2013251 (1846) (striking down similarly\nbroad ban on openly carrying weapons, based on erroneous view that the Federal Second Amendment applied to the States);\nState v. Reid, 1 Ala. 612, 614\u2013615, 622 (1840) (upholding a concealed-weapon ban against a state constitutional challenge).", "mimetype": "text/plain", "start_char_idx": 2988, "end_char_idx": 5241, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "91bdb95f-7974-4792-8a59-441c661ac12b": {"__data__": {"id_": "91bdb95f-7974-4792-8a59-441c661ac12b", "embedding": null, "metadata": {"page_label": "43", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a1960744-7195-4181-8b69-e11bb541bebb", "node_type": "4", "metadata": {"page_label": "43", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e5b64dce51746d000da15c40e63571a41a2ebb71d3ebbf9c893323d4786125c6", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "6d72a0e6-492a-4b5b-a726-65efd801dfd3", "node_type": "1", "metadata": {}, "hash": "3db2812284a279e616203f3c55c968b6cc19e2b1759b9c037878a225fc81dbdb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 43\nThese cases were decided well (80, 55, and 49 years, respectively) after the framing; they neither claim nor provide any special\ninsight into the intent of the Framers; they involve laws much less narrowly tailored than the one before us; and state cases in any\nevent are not determinative of federal constitutional questions, see, e.g., Garcia v. San Antonio Metropolitan Transit Authority,\n469 U.S. 528, 549, 105 S.Ct. 1005, 83 L.Ed.2d 1016 (1985) (citing Martin v. Hunter's Lessee, 1 Wheat. 304, 4 L.Ed. 97 (1816)).\nRespondent proposes that the Court adopt a \u201cstrict scrutiny\u201d test, which would require reviewing with care each gun law to\ndetermine whether it is \u201cnarrowly tailored to achieve a compelling governmental interest.\u201d Abrams v. Johnson, 521 U.S. 74,\n82, 117 S.Ct. 1925, 138 L.Ed.2d 285 (1997) ; see Brief for Respondent 54\u201362. But the majority implicitly, and appropriately,\nrejects that suggestion by broadly approving a set of laws\u2014prohibitions on concealed weapons, forfeiture by criminals of the\nSecond Amendment right, prohibitions on firearms in certain locales, and governmental regulation of commercial firearm sales\n\u2014whose constitutionality under a strict-scrutiny standard would be far from clear. See ante, at 2816.\n*689 Indeed, adoption of a true strict-scrutiny standard for evaluating gun regulations would be impossible. That is because\nalmost every gun-control regulation will seek to advance (as the one here does) a \u201cprimary concern of every government\u2014\na concern for the safety and indeed the lives of its citizens.\u201d United States v. Salerno, 481 U.S. 739, 755, 107 S.Ct. 2095, 95\nL.Ed.2d 697 (1987). The Court has deemed that interest, as well as \u201cthe Government's general interest in preventing crime,\u201d to\nbe \u201ccompelling,\u201d see id., at 750, 754, 107 S.Ct. 2095, and the Court has in a wide variety of constitutional contexts found such\npublic-safety concerns sufficiently forceful to justify restrictions on individual liberties, see, e.g., Brandenburg v. Ohio, 395\nU.S. 444, 447, 89 S.Ct. 1827, 23 L.Ed.2d 430 (1969) (per curiam) (First **2852 Amendment free speech rights); Sherbert v.\nVerner, 374 U.S. 398, 403, 83 S.Ct. 1790, 10 L.Ed.2d 965 (1963) (First Amendment religious rights); Brigham City v. Stuart,\n547 U.S. 398, 403\u2013404, 126 S.Ct. 1943, 164 L.Ed.2d 650 (2006) (Fourth Amendment protection of the home); New York v.\nQuarles, 467 U.S. 649, 655, 104 S.Ct. 2626, 81 L.Ed.2d 550 (1984) (Fifth Amendment rights under Miranda v. Arizona, 384\nU.S. 436, 86 S.Ct. 1602, 16 L.Ed.2d 694 (1966) ); Salerno, supra, at 755 (Eighth Amendment bail rights). Thus, any attempt\nin theory to apply strict scrutiny to gun regulations will in practice turn into an interest-balancing inquiry, with the interests\nprotected by the Second Amendment on one side and the governmental public-safety concerns on the other, the only question\nbeing whether the regulation at issue impermissibly burdens the former in the course of advancing the latter.\nI would simply adopt such an interest-balancing inquiry explicitly. The fact that important interests lie on both sides of the\nconstitutional equation suggests that review of gun-control regulation is not a context in which a court should effectively\npresume either constitutionality (as in rational-basis review) or unconstitutionality (as in strict scrutiny).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3539, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6d72a0e6-492a-4b5b-a726-65efd801dfd3": {"__data__": {"id_": "6d72a0e6-492a-4b5b-a726-65efd801dfd3", "embedding": null, "metadata": {"page_label": "43", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a1960744-7195-4181-8b69-e11bb541bebb", "node_type": "4", "metadata": {"page_label": "43", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e5b64dce51746d000da15c40e63571a41a2ebb71d3ebbf9c893323d4786125c6", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "91bdb95f-7974-4792-8a59-441c661ac12b", "node_type": "1", "metadata": {"page_label": "43", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "620dff14bb9d6085b4498080fa0397589c917855379a753622066cbf7069da37", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "436, 86 S.Ct. 1602, 16 L.Ed.2d 694 (1966) ); Salerno, supra, at 755 (Eighth Amendment bail rights). Thus, any attempt\nin theory to apply strict scrutiny to gun regulations will in practice turn into an interest-balancing inquiry, with the interests\nprotected by the Second Amendment on one side and the governmental public-safety concerns on the other, the only question\nbeing whether the regulation at issue impermissibly burdens the former in the course of advancing the latter.\nI would simply adopt such an interest-balancing inquiry explicitly. The fact that important interests lie on both sides of the\nconstitutional equation suggests that review of gun-control regulation is not a context in which a court should effectively\npresume either constitutionality (as in rational-basis review) or unconstitutionality (as in strict scrutiny). Rather, \u201cwhere a law\nsignificantly implicates competing constitutionally protected interests in complex ways,\u201d the Court generally asks whether the\nstatute burdens a protected interest in a way or to an extent that is out of *690 proportion to the statute's salutary effects upon\nother important governmental interests. See Nixon v. Shrink Missouri Government P AC, 528 U.S. 377, 402, 120 S.Ct. 897, 145\nL.Ed.2d 886 (2000) (BREYER, J., concurring). Any answer would take account both of the statute's effects upon the competing\ninterests and the existence of any clearly superior less restrictive alternative. See ibid. Contrary to the majority's unsupported\nsuggestion that this sort of \u201cproportionality\u201d approach is unprecedented, see ante, at 2820 \u2013 2821, the Court has applied it in\nvarious constitutional contexts, including election-law cases, speech cases, and due process cases. See 528 U.S., at 403, 120\nS.Ct. 897 (citing examples where the Court has taken such an approach); see also, e.g., Thompson v. Western States Medical\nCenter, 535 U.S. 357, 388, 122 S.Ct. 1497, 152 L.Ed.2d 563 (2002) (BREYER, J., dissenting) (commercial speech); Burdick\nv. Takushi, 504 U.S. 428, 433, 112 S.Ct. 2059, 119 L.Ed.2d 245 (1992) (election regulation); Mathews v. Eldridge, 424 U.S.\n319, 339\u2013349, 96 S.Ct. 893, 47 L.Ed.2d 18 (1976) (procedural due process); Pickering v. Board of Ed. of Township High School\nDist. 205, Will Cty., 391 U.S. 563, 568, 88 S.Ct. 1731, 20 L.Ed.2d 811 (1968) (government employee speech).\nIn applying this kind of standard the Court normally defers to a legislature's empirical judgment in matters where a legislature\nis likely to have greater expertise and greater institutional factfinding capacity. See Turner Broadcasting System, Inc. v. FCC,\n520 U.S. 180, 195\u2013196, 117 S.Ct. 1174, 137 L.Ed.2d 369 (1997) ; see also Nixon, supra, at 403, 120 S.Ct. 897 (BREYER,\nJ., concurring). Nonetheless, a court, not a legislature, must make the ultimate constitutional conclusion, exercising its\n\u201cindependent judicial judgment\u201d in light of the whole record to determine whether a law exceeds constitutional boundaries.", "mimetype": "text/plain", "start_char_idx": 2697, "end_char_idx": 5677, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "81799b67-5d97-4c8f-8b7c-61b934fe97dc": {"__data__": {"id_": "81799b67-5d97-4c8f-8b7c-61b934fe97dc", "embedding": null, "metadata": {"page_label": "44", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c0b28c08-6f67-4705-be98-a243077d7fc6", "node_type": "4", "metadata": {"page_label": "44", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5fa6daaa44e5f60ece3b26bec50f6e7a4c2a53463d7dd4d4a44be483c88f16fd", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "ef6e4763-9e32-4029-9d17-2815a17861e8", "node_type": "1", "metadata": {}, "hash": "eecc38b48ff9df0f2a2a247a878e5204dd11363ff364e3da5acb2fd71e77afd8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 44\nRandall v. Sorrell, 548 U.S. 230, 249, 126 S.Ct. 2479, 165 L.Ed.2d 482 (2006) (opinion of BREYER, J.) (citing Bose Corp. v.\nConsumers Union of United States, Inc., 466 U.S. 485, 499, 104 S.Ct. 1949, 80 L.Ed.2d 502 (1984)).\nThe above-described approach seems preferable to a more rigid approach here for a further reason. Experience as much as\nlogic has led the Court to decide that in one area of constitutional law or another **2853 the interests are likely to prove\n*691 stronger on one side of a typical constitutional case than on the other. See, e.g., United States v. Virginia, 518 U.S.\n515, 531\u2013534, 116 S.Ct. 2264, 135 L.Ed.2d 735 (1996) (applying heightened scrutiny to gender-based classifications, based\nupon experience with prior cases); Williamson v. Lee Optical of Okla., Inc., 348 U.S. 483, 488, 75 S.Ct. 461, 99 L.Ed. 563\n(1955) (applying rational-basis scrutiny to economic legislation, based upon experience with prior cases). Here, we have little\nprior experience. Courts that do have experience in these matters have uniformly taken an approach that treats empirically\nbased legislative judgment with a degree of deference. See Winkler, Scrutinizing the Second Amendment, 105 Mich. L.Rev.\n683, 687, 716\u2013718 (2007) (describing hundreds of gun-law decisions issued in the last half century by Supreme Courts in 42\nStates, which courts with \u201csurprisingly little variation\u201d have adopted a standard more deferential than strict scrutiny). While\nthese state cases obviously are not controlling, they are instructive. Cf., e.g., Bartkus v. Illinois, 359 U.S. 121, 134, 79 S.Ct.\n676, 3 L.Ed.2d 684 (1959) (looking to the \u201cexperience of state courts\u201d as informative of a constitutional question). And they\nthus provide some comfort regarding the practical wisdom of following the approach that I believe our constitutional precedent\nwould in any event suggest.\nIV\nThe present suit involves challenges to three separate District firearm restrictions. The first requires a license from the District's\nchief of police in order to carry a \u201cpistol,\u201d i.e., a handgun, anywhere in the District. See D.C.Code \u00a7 22\u20134504(a) (2001); see also\n\u00a7\u00a7 22\u20134501(a), 22\u20134506. Because the District assures us that respondent could obtain such a license so long as he meets the\nstatutory eligibility criteria, and because respondent concedes that those criteria are facially constitutional, I, like the majority,\nsee no need to address the constitutionality of the licensing requirement. See ante, at 2818 \u2013 2819.\n*692 The second District restriction requires that the lawful owner of a firearm keep his weapon \u201cunloaded and disassembled or\nbound by a trigger lock or similar device\u201d unless it is kept at his place of business or being used for lawful recreational purposes.\nSee \u00a7 7\u20132507.02. The only dispute regarding this provision appears to be whether the Constitution requires an exception that\nwould allow someone to render a firearm operational when necessary for self-defense ( i.e., that the firearm may be operated\nunder circumstances where the common law would normally permit a self-defense justification in defense against a criminal\ncharge). See Parker v. District of Columbia, 478 F.3d 370, 401 (2007) (case below); ante, at 2817 \u2013 2818 (opinion of the Court);\nBrief for Respondent 52\u201354. The District concedes that such an exception exists. See Brief for Petitioners 56\u201357. This Court has\nfinal authority (albeit not often used) to definitively interpret District law, which is, after all, simply a species of federal law.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3736, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ef6e4763-9e32-4029-9d17-2815a17861e8": {"__data__": {"id_": "ef6e4763-9e32-4029-9d17-2815a17861e8", "embedding": null, "metadata": {"page_label": "44", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c0b28c08-6f67-4705-be98-a243077d7fc6", "node_type": "4", "metadata": {"page_label": "44", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5fa6daaa44e5f60ece3b26bec50f6e7a4c2a53463d7dd4d4a44be483c88f16fd", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "81799b67-5d97-4c8f-8b7c-61b934fe97dc", "node_type": "1", "metadata": {"page_label": "44", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "66c4a58541038c44ed31f2e587f7ded14eaf1d800fe9d3f9e487465e0092c4fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See \u00a7 7\u20132507.02. The only dispute regarding this provision appears to be whether the Constitution requires an exception that\nwould allow someone to render a firearm operational when necessary for self-defense ( i.e., that the firearm may be operated\nunder circumstances where the common law would normally permit a self-defense justification in defense against a criminal\ncharge). See Parker v. District of Columbia, 478 F.3d 370, 401 (2007) (case below); ante, at 2817 \u2013 2818 (opinion of the Court);\nBrief for Respondent 52\u201354. The District concedes that such an exception exists. See Brief for Petitioners 56\u201357. This Court has\nfinal authority (albeit not often used) to definitively interpret District law, which is, after all, simply a species of federal law. See,\ne.g., Whalen v. United States, 445 U.S. 684, 687\u2013688, 100 S.Ct. 1432, 63 L.Ed.2d 715 (1980); see also Griffin v. United States,\n336 U.S. 704, 716\u2013718, 69 S.Ct. 814, 93 L.Ed. 993 (1949) . And because I see nothing in the District law that would preclude\nthe existence of a background common-law self-defense exception, I would avoid the constitutional question by interpreting\nthe statute to include it. See Ashwander v. TVA, 297 U.S. 288, 348, 56 S.Ct. 466, 80 L.Ed. 688 (1936) (Brandeis, J., concurring).\nI am puzzled by the majority's unwillingness to adopt a similar approach. It readily reads unspoken self-defense exceptions into\nevery colonial law, but it refuses **2854 to accept the District's concession that this law has one. Compare ante, at 2819 \u2013\n2820, with ante, at 2817 \u2013 2818. The one District case it cites to support that refusal, McIntosh v. Washington, 395 A.2d 744,\n755\u2013756 (1978), merely concludes that the District Legislature had a rational basis for applying the trigger-lock law in homes\nbut not in places of business. Nowhere does that case say that the statute precludes a self-defense exception of the sort that I\nhave just described. And even if it did, *693 we are not bound by a lower court's interpretation of federal law.\nThe third District restriction prohibits (in most cases) the registration of a handgun within the District. See \u00a7 7\u20132502.02(a)(4).\nBecause registration is a prerequisite to firearm possession, see \u00a7 7\u20132502.01(a), the effect of this provision is generally to prevent", "mimetype": "text/plain", "start_char_idx": 2973, "end_char_idx": 5265, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9100e1da-cd25-44e9-922a-b44dbe3e9adb": {"__data__": {"id_": "9100e1da-cd25-44e9-922a-b44dbe3e9adb", "embedding": null, "metadata": {"page_label": "45", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2e126897-77c0-46e6-a66f-27d3b704ac78", "node_type": "4", "metadata": {"page_label": "45", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7013a6bbd6c5531ff039a5cdc0a1997dcf40b909051b1980298457358eda78d7", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "011a72ce-6c19-485f-8e97-8b89762e9476", "node_type": "1", "metadata": {}, "hash": "8a496eda202cc82c1496ca57b7a0e40a34b97c8a53110837edab32d8c3b2444f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 45\npeople in the District from possessing handguns. In determining whether this regulation violates the Second Amendment, I\nshall ask how the statute seeks to further the governmental interests that it serves, how the statute burdens the interests that the\nSecond Amendment seeks to protect, and whether there are practical less burdensome ways of furthering those interests. The\nultimate question is whether the statute imposes burdens that, when viewed in light of the statute's legitimate objectives, are\ndisproportionate. See Nixon, 528 U.S., at 402, 120 S.Ct. 897 (BREYER, J., concurring).\nA\nNo one doubts the constitutional importance of the statute's basic objective, saving lives. See, e.g., Salerno, 481 U.S., at 755,\n107 S.Ct. 2095 . But there is considerable debate about whether the District's statute helps to achieve that objective. I begin\nby reviewing the statute's tendency to secure that objective from the perspective of (1) the legislature (namely, the Council\nof the District of Columbia (hereinafter Council)) that enacted the statute in 1976, and (2) a court that seeks to evaluate the\nCouncil's decision today.\n1\nFirst, consider the facts as the legislature saw them when it adopted the District statute. As stated by the local council committee\nthat recommended its adoption, the major substantive goal of the District's handgun restriction is \u201cto reduce the potentiality for\ngun-related crimes and gun-related deaths from occurring within the *694 District of Columbia.\u201d Firearms Control Regualtions\nAct of 1975 (Council Act No. 1-142), Hearing and Disposition before the House Committee on the District of Columbia, 94th\nCong., 2d Sess., on H. Con. Res. 694, Ser. No. 94\u201324, p. 25 (1976) (hereinafter DC Rep.) (reproducing, inter alia, the Council\nCommittee Report). The Committee concluded, on the basis of \u201cextensive public hearings\u201d and \u201clengthy research,\u201d that \u201c[t]he\neasy availability of firearms in the United States has been a major factor contributing to the drastic increase in gun-related\nviolence and crime over the past 40 years.\u201d Id., at 24, 25. It reported to the Council \u201cstartling statistics,\u201d id., at 26, regarding\ngun-related crime, accidents, and deaths, focusing particularly on the relation between handguns and crime and the proliferation\nof handguns within the District. See id., at 25\u201326.\nThe Committee informed the Council that guns were \u201cresponsible for 69 deaths in this country each day,\u201d for a total of\n\u201c[a]pproximately 25,000 gun-deaths ... each year,\u201d along with an additional 200,000 gun-related injuries. Id., at 25. Three\nthousand of these deaths, the report stated, were accidental. Ibid. A quarter of the victims in those accidental deaths were children\nunder the age of 14. Ibid. And according to the Committee, \u201c[f]or **2855 every intruder stopped by a homeowner with a\nfirearm, there are 4 gun-related accidents within the home.\u201d Ibid.\nIn respect to local crime, the Committee observed that there were 285 murders in the District during 1974\u2014a record number.\nId., at 26. The Committee also stated that, \u201c[c]ontrary to popular opinion on the subject, firearms are more frequently involved\nin deaths and violence among relatives and friends than in premeditated criminal activities.\u201d Ibid. Citing an article from the\nAmerican Journal of Psychiatry, the Committee reported that \u201c[m]ost murders are committed by previously law-abiding citizens,\nin situations where spontaneous violence is generated by anger, passion or intoxication, and where the killer and victim are\nacquainted.\u201d Ibid. \u201cTwenty-five percent of these murders,\u201d *695 the Committee informed the Council, \u201coccur within families.\u201d\nIbid.\nThe Committee Report furthermore presented statistics strongly correlating handguns with crime. Of the 285 murders in the\nDistrict in 1974, 155 were committed with handguns. Ibid.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4047, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "011a72ce-6c19-485f-8e97-8b89762e9476": {"__data__": {"id_": "011a72ce-6c19-485f-8e97-8b89762e9476", "embedding": null, "metadata": {"page_label": "45", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2e126897-77c0-46e6-a66f-27d3b704ac78", "node_type": "4", "metadata": {"page_label": "45", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7013a6bbd6c5531ff039a5cdc0a1997dcf40b909051b1980298457358eda78d7", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9100e1da-cd25-44e9-922a-b44dbe3e9adb", "node_type": "1", "metadata": {"page_label": "45", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5f34519c78701a6a386a3249b38b0567cb230d933cc8bc263cbb020d795e1c89", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Id., at 26. The Committee also stated that, \u201c[c]ontrary to popular opinion on the subject, firearms are more frequently involved\nin deaths and violence among relatives and friends than in premeditated criminal activities.\u201d Ibid. Citing an article from the\nAmerican Journal of Psychiatry, the Committee reported that \u201c[m]ost murders are committed by previously law-abiding citizens,\nin situations where spontaneous violence is generated by anger, passion or intoxication, and where the killer and victim are\nacquainted.\u201d Ibid. \u201cTwenty-five percent of these murders,\u201d *695 the Committee informed the Council, \u201coccur within families.\u201d\nIbid.\nThe Committee Report furthermore presented statistics strongly correlating handguns with crime. Of the 285 murders in the\nDistrict in 1974, 155 were committed with handguns. Ibid. This did not appear to be an aberration, as the report revealed that\n\u201chandguns [had been] used in roughly 54% of all murders\u201d (and 87% of murders of law enforcement officers) nationwide over\nthe preceding several years. Ibid. Nor were handguns only linked to murders, as statistics showed that they were used in roughly\n60% of robberies and 26% of assaults. Ibid. \u201cA crime committed with a pistol,\u201d the Committee reported, \u201cis 7 times more\nlikely to be lethal than a crime committed with any other weapon.\u201d Id., at 25. The Committee furthermore presented statistics", "mimetype": "text/plain", "start_char_idx": 3228, "end_char_idx": 4613, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4713e071-a6d2-41ed-aaf2-00c315f0188a": {"__data__": {"id_": "4713e071-a6d2-41ed-aaf2-00c315f0188a", "embedding": null, "metadata": {"page_label": "46", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d55d68cd-e013-46c9-bf85-bcbe005861ea", "node_type": "4", "metadata": {"page_label": "46", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "48948b01202aba400d44fe01f01e71f426a308a0b7f324cc5a041eb20f57da98", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "e4052a00-190a-4ebd-976d-5ac985730e3c", "node_type": "1", "metadata": {}, "hash": "5578c43e54ba359cc95f86ec20251a64434e9f4c190087ff965cbb6d2f9aa787", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 46\nregarding the availability of handguns in the United States, ibid., and noted that they had \u201cbecome easy for juveniles to obtain,\u201d\neven despite then-current District laws prohibiting juveniles from possessing them, id., at 26.\nIn the Committee's view, the current District firearms laws were unable \u201cto reduce the potentiality for gun-related violence,\u201d or\nto \u201ccope with the problems of gun control in the District\u201d more generally. Ibid. In the absence of adequate federal gun legislation,\nthe Committee concluded, it \u201cbecomes necessary for local governments to act to protect their citizens, and certainly the District\nof Columbia as the only totally urban statelike jurisdiction should be strong in its approach.\u201d Id., at 27. It recommended that\nthe Council adopt a restriction on handgun registration to reflect \u201ca legislative decision that, at this point in time and due to the\ngun-control tragedies and horrors enumerated previously\u201d in the Committee Report, \u201cpistols ... are no longer justified in this\njurisdiction.\u201d Id., at 31; see also ibid. (handgun restriction \u201cdenotes a policy decision that handguns ... have no legitimate use\nin the purely urban environment of the District\u201d).\n*696 The District's special focus on handguns thus reflects the fact that the Committee Report found them to have a particularly\nstrong link to undesirable activities in the District's exclusively urban environment. See id., at 25\u201326. The District did not seek to\nprohibit possession of other sorts of weapons deemed more suitable for an \u201curban area.\u201d See id., at 25. Indeed, an original draft\nof the bill, and the original Committee recommendations, had sought to prohibit registration of shotguns as well as handguns,\nbut the Council as a whole decided to narrow the prohibition. Compare id., at 30 (describing early version of the bill), with\nD.C.Code \u00a7 7\u20132502.02).\n2\nNext, consider the facts as a court must consider them looking at the matter as of today. See, e.g., Turner, 520 U.S., at 195, 117\nS.Ct. 1174 (discussing role of court as **2856 factfinder in a constitutional case). Petitioners, and their amici, have presented\nus with more recent statistics that tell much the same story that the Committee Report told 30 years ago. At the least, they\npresent nothing that would permit us to second-guess the Council in respect to the numbers of gun crimes, injuries, and deaths,\nor the role of handguns.\nFrom 1993 to 1997, there were 180,533 firearm-related deaths in the United States, an average of over 36,000 per year. Dept. of\nJustice, Bureau of Justice Statistics, M. Zawitz & K. Strom, Firearm Injury and Death From Crime, 1993\u201397, p. 2 (Oct.2000),\nonline at http://www.ojp.usdoj.gov/bjs/pub/pdf/fidc9397.pdf (hereinafter Firearm Injury and Death From Crime). Fifty-one\npercent were suicides, 44% were homicides, 1% were legal interventions, 3% were unintentional accidents, and 1% were of\nundetermined causes. See ibid. Over that same period there were an additional 411,800 nonfatal firearm-related injuries treated\nin U.S. hospitals, an average of over 82,000 per year. Ibid. Of these, 62% resulted from assaults, 17% were unintentional, 6%\n*697 were suicide attempts, 1% were legal interventions, and 13% were of unknown causes. Ibid.\nThe statistics are particularly striking in respect to children and adolescents. In over one in every eight firearm-related deaths\nin 1997, the victim was someone under the age of 20. American Academy of Pediatrics, Firearm\u2013Related Injuries Affecting\nthe Pediatric Population, 105 Pediatrics 888 (2000) (hereinafter Firearm\u2013Related Injuries). Firearm-related deaths account for\n22.5% of all injury deaths between the ages of 1 and 19. Ibid. More male teenagers die from firearms than from all natural causes\ncombined.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3967, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e4052a00-190a-4ebd-976d-5ac985730e3c": {"__data__": {"id_": "e4052a00-190a-4ebd-976d-5ac985730e3c", "embedding": null, "metadata": {"page_label": "46", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d55d68cd-e013-46c9-bf85-bcbe005861ea", "node_type": "4", "metadata": {"page_label": "46", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "48948b01202aba400d44fe01f01e71f426a308a0b7f324cc5a041eb20f57da98", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "4713e071-a6d2-41ed-aaf2-00c315f0188a", "node_type": "1", "metadata": {"page_label": "46", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9088204b3f39641d956fab62e8af5902e0092747e31b5693604f0054898a4b02", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "hospitals, an average of over 82,000 per year. Ibid. Of these, 62% resulted from assaults, 17% were unintentional, 6%\n*697 were suicide attempts, 1% were legal interventions, and 13% were of unknown causes. Ibid.\nThe statistics are particularly striking in respect to children and adolescents. In over one in every eight firearm-related deaths\nin 1997, the victim was someone under the age of 20. American Academy of Pediatrics, Firearm\u2013Related Injuries Affecting\nthe Pediatric Population, 105 Pediatrics 888 (2000) (hereinafter Firearm\u2013Related Injuries). Firearm-related deaths account for\n22.5% of all injury deaths between the ages of 1 and 19. Ibid. More male teenagers die from firearms than from all natural causes\ncombined. Dresang, Gun Deaths in Rural and Urban Settings, 14 J. Am. Bd. Family Practice 107 (2001). Persons under 25\naccounted for 47% of hospital-treated firearm injuries between June 1, 1992, and May 31, 1993. Firearm\u2013Related Injuries 891.\nHandguns are involved in a majority of firearm deaths and injuries in the United States. Id., at 888. From 1993 to 1997, 81% of\nfirearm-homicide victims were killed by handgun. Firearm Injury and Death From Crime 4; see also Dept. of Justice, Bureau\nof Justice Statistics, C. Perkins, Weapon Use and Violent Crime 8 (Sept.2003) (Table 10), http://www.ojp.usdoj.gov/bjs/pub/\npdf/wuvc01.pdf (hereinafter Weapon Use and Violent Crime) (statistics indicating roughly the same rate for 1993\u20132001). In the\nsame period, for the 41% of firearm injuries for which the weapon type is known, 82% of them were from handguns. Firearm\nInjury and Death from Crime 4. And among children under the age of 20, handguns account for approximately 70% of all", "mimetype": "text/plain", "start_char_idx": 3236, "end_char_idx": 4938, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aaa96581-8c2d-4da4-92d7-f7262b6396f4": {"__data__": {"id_": "aaa96581-8c2d-4da4-92d7-f7262b6396f4", "embedding": null, "metadata": {"page_label": "47", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "270521dd-ab06-4994-b12d-8a12071828fe", "node_type": "4", "metadata": {"page_label": "47", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "96a441d34ff7715092caaf454b2f4954ec279d29d37251bcc83b416ecb0978cf", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "68889eaf-2d44-4291-934d-41187c3df005", "node_type": "1", "metadata": {}, "hash": "66025868cb8153db93c423c7a317521c8f040e281d99688cc8c5d7c8dd2c20d8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 47\nunintentional firearm-related injuries and deaths. Firearm\u2013Related Injuries 890. In particular, 70% of all firearm-related teenage\nsuicides in 1996 involved a handgun. Id., at 889; see also Zwerling, Lynch, Burmeister, & Goertz, The Choice of Weapons in\nFirearm Suicides in Iowa, 83 Am. J. Pub. Health 1630, 1631 (1993) (Table 1) (handguns used in 36.6% of all firearm suicides\nin Iowa from 1980\u20131984 and 43.8% from 1990\u20131991).\n*698 Handguns also appear to be a very popular weapon among criminals. In a 1997 survey of inmates who were armed during\nthe crime for which they were incarcerated, 83.2% of state inmates and 86.7% of federal inmates said that they were armed\nwith a handgun. See Dept. of Justice, Bureau of Justice Statistics, C. Harlow, Firearm Use by Offenders 3 (Nov.2001), online\nat http://www.ojp.usdoj.gov/bjs/pub/pdf/fuo.pdf; see also Weapon Use and Violent Crime 2 (Table 2) (statistics indicating that\nhandguns were used in over **2857 84% of nonlethal violent crimes involving firearms from 1993 to 2001). And handguns\nare not only popular tools for crime, but popular objects of it as well: the Federal Bureau of Investigation received on average\nover 274,000 reports of stolen guns for each year between 1985 and 1994, and almost 60% of stolen guns are handguns. Dept.\nof Justice, Bureau of Justice Statistics, M. Zawitz, Guns Used in Crime 3 (July 1995), online at http://www.ojp.usdoj.gov/bjs/\npub/pdf/guic.pdf. Department of Justice studies have concluded that stolen handguns in particular are an important source of\nweapons for both adult and juvenile offenders. Ibid.\nStatistics further suggest that urban areas, such as the District, have different experiences with gun-related death, injury, and\ncrime than do less densely populated rural areas. A disproportionate amount of violent and property crimes occur in urban areas,\nand urban criminals are more likely than other offenders to use a firearm during the commission of a violent crime. See Dept.\nof Justice, Bureau of Justice Statistics, D. Duhart, Urban, Suburban, and Rural Victimization, 1993\u201398, pp. 1, 9 (Oct.2000),\nonline at http://www.ojp.usdoj.gov/bjs/pub/pdf/usrv98.pdf. Homicide appears to be a much greater issue in urban areas; from\n1985 to 1993, for example, \u201chalf of all homicides occurred in 63 cities with 16% of the nation's population.\u201d Wintemute, The\nFuture of Firearm Violence Prevention, 282 JAMA 475 (1999). One study concluded that although the overall rate of gun death\nbetween 1989 and 1999 was roughly the same in urban and *699 rural areas, the urban homicide rate was three times as high;\neven after adjusting for other variables, it was still twice as high. Branas, Nance, Elliott, Richmond, & Schwab, Urban\u2013Rural\nShifts in Intentional Firearm Death, 94 Am. J. Pub. Health 1750, 1752 (2004); see also ibid. (noting that rural areas appear to\nhave a higher rate of firearm suicide). And a study of firearm injuries to children and adolescents in Pennsylvania between 1987\nand 2000 showed an injury rate in urban counties 10 times higher than in nonurban counties. Nance et al., The Rural\u2013Urban\nContinuum, 156 Archives of Pediatrics & Adolescent Medicine 781, 782 (2002).\nFinally, the linkage of handguns to firearms deaths and injuries appears to be much stronger in urban than in rural areas.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3514, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "68889eaf-2d44-4291-934d-41187c3df005": {"__data__": {"id_": "68889eaf-2d44-4291-934d-41187c3df005", "embedding": null, "metadata": {"page_label": "47", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "270521dd-ab06-4994-b12d-8a12071828fe", "node_type": "4", "metadata": {"page_label": "47", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "96a441d34ff7715092caaf454b2f4954ec279d29d37251bcc83b416ecb0978cf", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "aaa96581-8c2d-4da4-92d7-f7262b6396f4", "node_type": "1", "metadata": {"page_label": "47", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "23b24945d216e003a8ba31970bc37983e1f4e28030330030c4b69897d174ef7d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Branas, Nance, Elliott, Richmond, & Schwab, Urban\u2013Rural\nShifts in Intentional Firearm Death, 94 Am. J. Pub. Health 1750, 1752 (2004); see also ibid. (noting that rural areas appear to\nhave a higher rate of firearm suicide). And a study of firearm injuries to children and adolescents in Pennsylvania between 1987\nand 2000 showed an injury rate in urban counties 10 times higher than in nonurban counties. Nance et al., The Rural\u2013Urban\nContinuum, 156 Archives of Pediatrics & Adolescent Medicine 781, 782 (2002).\nFinally, the linkage of handguns to firearms deaths and injuries appears to be much stronger in urban than in rural areas.\n\u201c[S]tudies to date generally support the hypothesis that the greater number of rural gun deaths are from rifles or shotguns,\nwhereas the greater number of urban gun deaths are from handguns.\u201d Dresang, supra, at 108. And the Pennsylvania study\nreached a similar conclusion with respect to firearm injuries\u2014they are much more likely to be caused by handguns in urban\nareas than in rural areas. See Nance et al., supra, at 784.\n3\nRespondent and his many amici for the most part do not disagree about the figures set forth in the preceding subsection, but\nthey do disagree strongly with the District's predictive judgment that a ban on handguns will help solve the crime and accident\nproblems that those figures disclose. In particular, they disagree with the District Council's assessment that \u201cfreezing the pistol ...\npopulation within the District,\u201d DC Rep., at 26, will reduce crime, accidents, and deaths related to guns. And they provide facts\nand figures designed to show that it has not done so in the past, and hence will not do so in the future.\nFirst, they point out that, since the ban took effect, violent crime in the District has increased, not decreased. See *700 Brief\nfor Criminologists et al. as Amici Curiae 4\u20138, 3a (hereinafter Criminologists' Brief); Brief for Congress of Racial Equality as\n**2858 Amicus Curiae 35\u201336; Brief for National Rifle Association et al. as Amici Curiae 28\u201330 (hereinafter NRA Brief).\nIndeed, a comparison with 49 other major cities reveals that the District's homicide rate is actually substantially higher relative", "mimetype": "text/plain", "start_char_idx": 2880, "end_char_idx": 5077, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b84357c-8b3b-4414-a458-2ba577cdf1b0": {"__data__": {"id_": "6b84357c-8b3b-4414-a458-2ba577cdf1b0", "embedding": null, "metadata": {"page_label": "48", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "68bda86b-1129-40f5-ad93-f8da9dc62b9c", "node_type": "4", "metadata": {"page_label": "48", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "29dbe1feffa4da840a08442b83d7f60a27d6d97500814551e1c049eb454fc03f", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "a34a8564-b22c-42b4-b8ad-3245c7adf2a6", "node_type": "1", "metadata": {}, "hash": "d11bcb93cc5ac8688450edd4992b276678c02bda8725bf18e1ee8f9c927c8472", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 48\nto these other cities than it was before the handgun restriction went into effect. See Brief for Academics et al. as Amici Curiae\n7\u201310 (hereinafter Academics' Brief); see also Criminologists' Brief 6\u20139, 3a\u20134a, 7a. Respondent's amici report similar results in\ncomparing the District's homicide rates during that period to that of the neighboring States of Maryland and Virginia (neither\nof which restricts handguns to the same degree), and to the homicide rate of the Nation as a whole. See Academics' Brief 11\u2013\n17; Criminologists' Brief 6a, 8a.\nSecond, respondent's amici point to a statistical analysis that regresses murder rates against the presence or absence of strict gun\nlaws in 20 European nations. See Criminologists' Brief 23 (citing Kates & Mauser, Would Banning Firearms Reduce Murder\nand Suicide? 30 Harv. J.L. & Pub. Pol'y 649, 651\u2013694 (2007)). That analysis concludes that strict gun laws are correlated with\nmore murders, not fewer. See Criminologists' Brief 23; see also id., at 25\u201328. They also cite domestic studies, based on data\nfrom various cities, States, and the Nation as a whole, suggesting that a reduction in the number of guns does not lead to a\nreduction in the amount of violent crime. See id., at 17\u201320. They further argue that handgun bans do not reduce suicide rates,\nsee id., at 28\u201331, 9a, or rates of accidents, even those involving children, see App. to Brief for International Law Enforcement\nEducators and Trainers Association et al. as Amici Curiae App. 7\u201315 (hereinafter ILEETA Brief).\nThird, they point to evidence indicating that firearm ownership does have a beneficial self-defense effect. Based on a 1993\nsurvey, the authors of one study estimated that there *701 were 2.2\u2013to\u20132.5 million defensive uses of guns (mostly brandishing,\nabout a quarter involving the actual firing of a gun) annually. See Kleck & Gertz, Armed Resistance to Crime, 86 J.Crim.\nL. & C. 150, 164 (1995) ; see also ILEETA Brief App. 1\u20136 (summarizing studies regarding defensive uses of guns). Another\nstudy estimated that for a period of 12 months ending in 1994, there were 503,481 incidents in which a burglar found himself\nconfronted by an armed homeowner, and that in 497,646 (98.8%) of them, the intruder was successfully scared away. See\nIkeda, Dahlberg, Sacks, Mercy, & Powell, Estimating Intruder\u2013Related Firearms Retrievals in U.S. Households, 12 Violence\n& Victims 363 (1997). A third study suggests that gun-armed victims are substantially less likely than non-gun-armed victims\nto be injured in resisting robbery or assault. Barnett & Kates, Under Fire, 45 Emory L.J. 1139, 1243\u20131244, n. 478 (1996). And\nadditional evidence suggests that criminals are likely to be deterred from burglary and other crimes if they know the victim\nis likely to have a gun. See Kleck, Crime Control Through the Private Use of Armed Force, 35 Social Problems 1, 15 (1988)\n(reporting a substantial drop in the burglary rate in an Atlanta suburb that required heads of households to own guns); see also\nILEETA Brief 17\u201318 (describing decrease in sexual assaults in Orlando when women were trained in the use of guns).\nFourth, respondent's amici argue that laws criminalizing gun possession are self-defeating, as evidence suggests that they will\nhave the effect only of restricting law-abiding citizens, but not criminals, from acquiring guns. See, e.g., Brief for President Pro\nTempore of Senate of Pennsylvania as Amicus Curiae 35, 36, and n. 15.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3660, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a34a8564-b22c-42b4-b8ad-3245c7adf2a6": {"__data__": {"id_": "a34a8564-b22c-42b4-b8ad-3245c7adf2a6", "embedding": null, "metadata": {"page_label": "48", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "68bda86b-1129-40f5-ad93-f8da9dc62b9c", "node_type": "4", "metadata": {"page_label": "48", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "29dbe1feffa4da840a08442b83d7f60a27d6d97500814551e1c049eb454fc03f", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "6b84357c-8b3b-4414-a458-2ba577cdf1b0", "node_type": "1", "metadata": {"page_label": "48", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c8779778420819a454e6cd9cbf4469f498707e60abc7122387804aa8303868b6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "478 (1996). And\nadditional evidence suggests that criminals are likely to be deterred from burglary and other crimes if they know the victim\nis likely to have a gun. See Kleck, Crime Control Through the Private Use of Armed Force, 35 Social Problems 1, 15 (1988)\n(reporting a substantial drop in the burglary rate in an Atlanta suburb that required heads of households to own guns); see also\nILEETA Brief 17\u201318 (describing decrease in sexual assaults in Orlando when women were trained in the use of guns).\nFourth, respondent's amici argue that laws criminalizing gun possession are self-defeating, as evidence suggests that they will\nhave the effect only of restricting law-abiding citizens, but not criminals, from acquiring guns. See, e.g., Brief for President Pro\nTempore of Senate of Pennsylvania as Amicus Curiae 35, 36, and n. 15. That effect, they argue, will be especially pronounced\nin the District, whose proximity **2859 to Virginia and Maryland will provide criminals with a steady supply of guns. See\nBrief for Heartland Institute as Amicus Curiae 20.\nIn the view of respondent's amici, this evidence shows that other remedies\u2014such as less restriction on gun ownership, *702\nor liberal authorization of law-abiding citizens to carry concealed weapons\u2014better fit the problem. See, e.g., Criminologists'\nBrief 35\u201337 (advocating easily obtainable gun licenses); Brief for Southeastern Legal Foundation, Inc., et al. as Amici Curiae\n15 (hereinafter SLF Brief) (advocating \u201cwidespread gun ownership\u201d as a deterrent to crime); see also J. Lott, More Guns, Less\nCrime (2d ed.2000). They further suggest that at a minimum the District fails to show that its remedy, the gun ban, bears a\nreasonable relation to the crime and accident problems that the District seeks to solve. See, e.g., Brief for Respondent 59\u201361.\nThese empirically based arguments may have proved strong enough to convince many legislatures, as a matter of legislative\npolicy, not to adopt total handgun bans. But the question here is whether they are strong enough to destroy judicial confidence\nin the reasonableness of a legislature that rejects them. And that they are not. For one thing, they can lead us more deeply into\nthe uncertainties that surround any effort to reduce crime, but they cannot prove either that handgun possession diminishes\ncrime or that handgun bans are ineffective. The statistics do show a soaring District crime rate. And the District's crime rate\nwent up after the District adopted its handgun ban. But, as students of elementary logic know, after it does not mean because", "mimetype": "text/plain", "start_char_idx": 2823, "end_char_idx": 5402, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7fa8b6ee-051e-43f2-8dff-2a534b0cd611": {"__data__": {"id_": "7fa8b6ee-051e-43f2-8dff-2a534b0cd611", "embedding": null, "metadata": {"page_label": "49", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3f14eea4-a471-4300-a64f-33aefdb9d886", "node_type": "4", "metadata": {"page_label": "49", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "bd6ae8908f2541798895fcf0309ef8a9dfac15b28814173e10e2877cb7a77388", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "0b4aaeba-381e-4cda-a169-f4628a06f7cd", "node_type": "1", "metadata": {}, "hash": "9e272b2f48935d5f730628bb47c374a9a1aecda73800eedad5fdc862d6518ab7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 49\nof it. What would the District's crime rate have looked like without the ban? Higher? Lower? The same? Experts differ; and\nwe, as judges, cannot say.\nWhat about the fact that foreign nations with strict gun laws have higher crime rates? Which is the cause and which the effect?\nThe proposition that strict gun laws cause crime is harder to accept than the proposition that strict gun laws in part grow out of\nthe fact that a nation already has a higher crime rate. And we are then left with the same question as before: What would have\nhappened to crime without the gun laws\u2014a question that respondent and his amici do not convincingly answer.\n*703 Further, suppose that respondent's amici are right when they say that householders' possession of loaded handguns help\nto frighten away intruders. On that assumption, one must still ask whether that benefit is worth the potential death-related cost.\nAnd that is a question without a directly provable answer.\nFinally, consider the claim of respondent's amici that handgun bans cannot work; there are simply too many illegal guns already\nin existence for a ban on legal guns to make a difference. In a word, they claim that, given the urban sea of pre-existing legal\nguns, criminals can readily find arms regardless. Nonetheless, a legislature might respond, we want to make an effort to try to\ndry up that urban sea, drop by drop. And none of the studies can show that effort is not worthwhile.\nIn a word, the studies to which respondent's amici point raise policy-related questions. They succeed in proving that the District's\npredictive judgments are controversial. But they do not by themselves show that those judgments are incorrect; nor do they\ndemonstrate a consensus, academic or otherwise, supporting that conclusion.\nThus, it is not surprising that the District and its amici support the District's **2860 handgun restriction with studies of their\nown. One in particular suggests that, statistically speaking, the District's law has indeed had positive life-saving effects. See\nLoftin, McDowall, Wiersema, & Cottey, Effects of Restrictive Licensing of Handguns on Homicide and Suicide in the District\nof Columbia, 325 New England J. Med. 1615 (1991) (hereinafter Loftin study). Others suggest that firearm restrictions as a\ngeneral matter reduce homicides, suicides, and accidents in the home. See, e.g., Duggan, More Guns, More Crime, 109 J. Pol.\nEcon. 1086 (2001); Kellermann, Somes, Rivara, Lee, & Banton, Injuries and Deaths Due to Firearms in the Home, 45 J. Trauma:\nInjury, Infection & Critical Care 263 (1998); Miller, Azrael, & Hemenway, Household Firearm Ownership and Suicide Rates\nin *704 the United States, 13 Epidemiology 517 (2002). Still others suggest that the defensive uses of handguns are not as\ngreat in number as respondent's amici claim. See, e.g., Brief for American Public Health Association et al. as Amici Curiae 17\u2013\n19 (hereinafter APHA Brief) (citing studies).\nRespondent and his amici reply to these responses; and in doing so, they seek to discredit as methodologically flawed the\nstudies and evidence relied upon by the District. See, e.g., Criminologists' Brief 9\u201317, 20\u201324; Brief for Association of American\nPhysicians and Surgeons, Inc., as Amicus Curiae 12\u201318; SLF Brief 17\u201322; Britt, Kleck, & Bordua, A Reassessment of the\nD.C. Gun Law, 30 Law & Soc. Rev. 361 (1996) (criticizing the Loftin study). And, of course, the District's amici produce\ncounterrejoinders, referring to articles that defend their studies. See, e.g., APHA Brief 23, n. 5 (citing McDowall, Loftin, &\nWiersema, Using Quasi\u2013Experiments To Evaluate Firearm Laws, 30 Law & Soc. Rev.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3850, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0b4aaeba-381e-4cda-a169-f4628a06f7cd": {"__data__": {"id_": "0b4aaeba-381e-4cda-a169-f4628a06f7cd", "embedding": null, "metadata": {"page_label": "49", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3f14eea4-a471-4300-a64f-33aefdb9d886", "node_type": "4", "metadata": {"page_label": "49", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "bd6ae8908f2541798895fcf0309ef8a9dfac15b28814173e10e2877cb7a77388", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "7fa8b6ee-051e-43f2-8dff-2a534b0cd611", "node_type": "1", "metadata": {"page_label": "49", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a805b2c658c84b33e2eb129e9c364b41512df4d60325ff0b4f375aeb557e3c06", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See, e.g., Criminologists' Brief 9\u201317, 20\u201324; Brief for Association of American\nPhysicians and Surgeons, Inc., as Amicus Curiae 12\u201318; SLF Brief 17\u201322; Britt, Kleck, & Bordua, A Reassessment of the\nD.C. Gun Law, 30 Law & Soc. Rev. 361 (1996) (criticizing the Loftin study). And, of course, the District's amici produce\ncounterrejoinders, referring to articles that defend their studies. See, e.g., APHA Brief 23, n. 5 (citing McDowall, Loftin, &\nWiersema, Using Quasi\u2013Experiments To Evaluate Firearm Laws, 30 Law & Soc. Rev. 381 (1996)).\nThe upshot is a set of studies and counterstudies that, at most, could leave a judge uncertain about the proper policy conclusion.\nBut from respondent's perspective any such uncertainty is not good enough. That is because legislators, not judges, have primary\nresponsibility for drawing policy conclusions from empirical fact. And, given that constitutional allocation of decisionmaking\nresponsibility, the empirical evidence presented here is sufficient to allow a judge to reach a firm legal conclusion.\nIn particular this Court, in First Amendment cases applying intermediate scrutiny, has said that our \u201csole obligation\u201d in reviewing\na legislature's \u201cpredictive judgments\u201d is \u201cto assure that, in formulating its judgments,\u201d the legislature \u201chas drawn reasonable\ninferences based on substantial evidence.\u201d Turner, 520 U.S., at 195, 117 S.Ct. 1174 (internal quotation marks omitted). And\njudges, looking at the evidence before us, should agree that the District Legislature's predictive judgments satisfy that legal", "mimetype": "text/plain", "start_char_idx": 3326, "end_char_idx": 4882, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc1bcdbc-3909-499a-bb95-6f7311ac9970": {"__data__": {"id_": "dc1bcdbc-3909-499a-bb95-6f7311ac9970", "embedding": null, "metadata": {"page_label": "50", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6bde58a7-52d7-401c-a9dc-b3398bd77340", "node_type": "4", "metadata": {"page_label": "50", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e41de57e31ce2326c436679e91f0f4204f0a0b84bbe63a636ed4c638a71587c4", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "526642ea-f296-473a-8b15-123104aeee45", "node_type": "1", "metadata": {}, "hash": "2cc8c68bf07cbbbbf42a7eba0326b92ba4916afad07a261ca2587746f68f2b62", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 50\nstandard. That is to say, the *705 District's judgment, while open to question, is nevertheless supported by \u201csubstantial\nevidence.\u201d\nThere is no cause here to depart from the standard set forth in Turner, for the District's decision represents the kind of empirically\nbased judgment that legislatures, not courts, are best suited to make. See Nixon, 528 U.S., at 402, 120 S.Ct. 897 (BREYER, J.,\nconcurring). In fact, deference to legislative judgment seems particularly appropriate here, where the judgment has been made\nby a local legislature, with particular knowledge of local problems and insight into appropriate local solutions. See Los Angeles v.\nAlameda Books, Inc., 535 U.S. 425, 440, 122 S.Ct. 1728, 152 L.Ed.2d 670 (2002) (plurality opinion) (\u201c[W]e must acknowledge\nthat the Los Angeles City Council is in a better **2861 position than the Judiciary to gather and evaluate data on local\nproblems\u201d); cf. DC Rep., at 67 (statement of Rep. Gude) (describing District's law as \u201ca decision made on the local level after\nextensive debate and deliberations\u201d). Different localities may seek to solve similar problems in different ways, and a \u201ccity must\nbe allowed a reasonable opportunity to experiment with solutions to admittedly serious problems.\u201d Renton v. Playtime Theatres,\nInc., 475 U.S. 41, 52, 106 S.Ct. 925, 89 L.Ed.2d 29 (1986) (internal quotation marks omitted). \u201cThe Framers recognized that the\nmost effective democracy occurs at local levels of government, where people with firsthand knowledge of local problems have\nmore ready access to public officials responsible for dealing with them.\u201d Garcia v. San Antonio Metropolitan Transit Authority,\n469 U.S. 528, 575, n. 18, 105 S.Ct. 1005, 83 L.Ed.2d 1016 (1985) (Powell, J., dissenting) (citing The Federalist No. 17, p. 107\n(J. Cooke ed.1961) (A. Hamilton)). We owe that democratic process some substantial weight in the constitutional calculus.\nFor these reasons, I conclude that the District's statute properly seeks to further the sort of life-preserving and public-safety\ninterests that the Court has called \u201ccompelling.\u201d Salerno, 481 U.S., at 750, 754, 107 S.Ct. 2095.\n*706 B\nI next assess the extent to which the District's law burdens the interests that the Second Amendment seeks to protect. Respondent\nand his amici, as well as the majority, suggest that those interests include: (1) the preservation of a \u201cwell regulated Militia\u201d; (2)\nsafeguarding the use of firearms for sporting purposes, e.g., hunting and marksmanship; and (3) assuring the use of firearms\nfor self-defense. For argument's sake, I shall consider all three of those interests here.\n1\nThe District's statute burdens the Amendment's first and primary objective hardly at all. As previously noted, there is general\nagreement among the Members of the Court that the principal (if not the only) purpose of the Second Amendment is found in the\nAmendment's text: the preservation of a \u201cwell regulated Militia.\u201d See supra, at 2848. What scant Court precedent there is on the\nSecond Amendment teaches that the Amendment was adopted \u201c[w]ith obvious purpose to assure the continuation and render\npossible the effectiveness of [militia] forces\u201d and \u201cmust be interpreted and applied with that end in view.\u201d Miller, 307 U.S., at\n178, 59 S.Ct. 816. Where that end is implicated only minimally (or not at all), there is substantially less reason for constitutional\nconcern. Compare ibid.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3623, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "526642ea-f296-473a-8b15-123104aeee45": {"__data__": {"id_": "526642ea-f296-473a-8b15-123104aeee45", "embedding": null, "metadata": {"page_label": "50", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6bde58a7-52d7-401c-a9dc-b3398bd77340", "node_type": "4", "metadata": {"page_label": "50", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e41de57e31ce2326c436679e91f0f4204f0a0b84bbe63a636ed4c638a71587c4", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "dc1bcdbc-3909-499a-bb95-6f7311ac9970", "node_type": "1", "metadata": {"page_label": "50", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "544d9e5dad488e498adbab155ed11e8f40ecc6348d0662fb505e6ac7248f5db5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "For argument's sake, I shall consider all three of those interests here.\n1\nThe District's statute burdens the Amendment's first and primary objective hardly at all. As previously noted, there is general\nagreement among the Members of the Court that the principal (if not the only) purpose of the Second Amendment is found in the\nAmendment's text: the preservation of a \u201cwell regulated Militia.\u201d See supra, at 2848. What scant Court precedent there is on the\nSecond Amendment teaches that the Amendment was adopted \u201c[w]ith obvious purpose to assure the continuation and render\npossible the effectiveness of [militia] forces\u201d and \u201cmust be interpreted and applied with that end in view.\u201d Miller, 307 U.S., at\n178, 59 S.Ct. 816. Where that end is implicated only minimally (or not at all), there is substantially less reason for constitutional\nconcern. Compare ibid. (\u201cIn the absence of any evidence tending to show that possession or use of a \u2018shotgun having a barrel\nof less than eighteen inches in length\u2019 at this time has some reasonable relationship to the preservation or efficiency of a well\nregulated militia, we cannot say that the Second Amendment guarantees the right to keep and bear such an instrument\u201d).\nTo begin with, the present case has nothing to do with actual military service. The question presented presumes that respondent\nis \u201cnot affiliated with any state-regulated militia.\u201d 552 U.S. 1035, 128 S.Ct. 645, 169 L.Ed.2d 417 (2007) (emphasis added).\nI am aware of no indication that the District either now or in the *707 recent past has called up its citizenry to serve in a\nmilitia, that it has any inkling of doing so anytime in the foreseeable future, or that this law must be construed to prevent the use\nof handguns during legitimate militia activities. Moreover, even if **2862 the District were to call up its militia, respondent\nwould not be among the citizens whose service would be requested. The District does not consider him, at 66 years of age, to", "mimetype": "text/plain", "start_char_idx": 2761, "end_char_idx": 4743, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4dcf984d-2348-44c4-b9be-4af4611d7b56": {"__data__": {"id_": "4dcf984d-2348-44c4-b9be-4af4611d7b56", "embedding": null, "metadata": {"page_label": "51", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "df0d90d1-f48b-4eb6-a0aa-d6b2e6fc4b75", "node_type": "4", "metadata": {"page_label": "51", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "578cd727f8934625877277d6a6bcf60a48af40db2306a33e1eb2a8118aead6f7", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "d90a6e64-b54d-4b75-a61a-e3a6a8b29519", "node_type": "1", "metadata": {}, "hash": "efbad9d48a6e5a8eb37af269cd5e962aedeb841402e79481967e047f174986ba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 51\nbe a member of its militia. See D.C.Code \u00a7 49\u2013401 (2001) (militia includes only male residents ages 18 to 45); App. to Pet.\nfor Cert. 120a (indicating respondent's date of birth).\nNonetheless, as some amici claim, the statute might interfere with training in the use of weapons, training useful for military\npurposes. The 19th-century constitutional scholar, Thomas Cooley, wrote that the Second Amendment protects \u201clearning to\nhandle and use [arms] in a way that makes those who keep them ready for their efficient use\u201d during militia service. General\nPrinciples of Constitutional Law 271 (1880); ante, at 2811 \u2013 2812 (opinion of the Court); see also ante, at 2811 \u2013 2812 (citing\nother scholars agreeing with Cooley on that point). And former military officers tell us that \u201cprivate ownership of firearms makes\nfor a more effective fighting force\u201d because \u201c[m]ilitary recruits with previous firearms experience and training are generally\nbetter marksmen, and accordingly, better soldiers.\u201d Brief for Retired Military Officers as Amici Curiae 1\u20132 (hereinafter Military\nOfficers' Brief). An amicus brief filed by retired Army generals adds that a \u201cwell-regulated militia\u2014whether ad hoc or as part\nof our organized military\u2014depends on recruits who have familiarity and training with firearms\u2014rifles, pistols, and shotguns.\u201d\nBrief for Major General John D. Altenburg, Jr., et al. as Amici Curiae 4 (hereinafter Generals' Brief). Both briefs point out the\nimportance of handgun training. Military Officers' Brief 26\u201328; Generals' Brief 4. Handguns are used in military service, see\nMilitary Officers' Brief 26, and \u201ccivilians who are familiar with handgun marksmanship *708 and safety are much more likely\nto be able to safely and accurately fire a rifle or other firearm with minimal training upon entering military service,\u201d id., at 28.\nRegardless, to consider the military-training objective a modern counterpart to a similar militia-related colonial objective and to\ntreat that objective as falling within the Amendment's primary purposes makes no difference here. That is because the District's\nlaw does not seriously affect military-training interests. The law permits residents to engage in activities that will increase their\nfamiliarity with firearms. They may register (and thus possess in their homes) weapons other than handguns, such as rifles\nand shotguns. See D.C.Code \u00a7\u00a7 7\u20132502.01 , 7\u20132502.02(a) (only weapons that cannot be registered are sawed-off shotguns,\nmachineguns, short-barreled rifles, and pistols not registered before 1976); compare Generals' Brief 4 (listing \u201c rifles, pistols,\nand shotguns\u201d as useful military weapons (emphasis added). And they may operate those weapons within the District \u201cfor\nlawful recreational purposes.\u201d \u00a7 7\u20132507.02; see also \u00a7 7\u20132502.01(b)(3) (nonresidents \u201cparticipating in any lawful recreational\nfirearm-related activity in the District, or on his way to or from such activity in another jurisdiction,\u201d may carry even weapons\nnot registered in the District). These permissible recreations plainly include actually using and firing the weapons, as evidenced\nby a specific D.C.Code provision contemplating the existence of local firing ranges. See \u00a7 7\u20132507.03.\nAnd while the District law prevents citizens from training with handguns within the District, the District consists of only 61.4\nsquare miles of urban area. See Dept. of Commerce, Bureau of Census, United States: 2000 (pt. 1), p. 11 (2002) (Table 8).\nThe adjacent States do permit the use of handguns for target practice, and those States are only a brief subway ride away.\nSee Md.Crim. Law Code Ann.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3817, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d90a6e64-b54d-4b75-a61a-e3a6a8b29519": {"__data__": {"id_": "d90a6e64-b54d-4b75-a61a-e3a6a8b29519", "embedding": null, "metadata": {"page_label": "51", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "df0d90d1-f48b-4eb6-a0aa-d6b2e6fc4b75", "node_type": "4", "metadata": {"page_label": "51", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "578cd727f8934625877277d6a6bcf60a48af40db2306a33e1eb2a8118aead6f7", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "4dcf984d-2348-44c4-b9be-4af4611d7b56", "node_type": "1", "metadata": {"page_label": "51", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "bee01a82eb52c2ade39d1599c9182c18a0b8fb22a3196a1bf2777f801bf0e2f4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "These permissible recreations plainly include actually using and firing the weapons, as evidenced\nby a specific D.C.Code provision contemplating the existence of local firing ranges. See \u00a7 7\u20132507.03.\nAnd while the District law prevents citizens from training with handguns within the District, the District consists of only 61.4\nsquare miles of urban area. See Dept. of Commerce, Bureau of Census, United States: 2000 (pt. 1), p. 11 (2002) (Table 8).\nThe adjacent States do permit the use of handguns for target practice, and those States are only a brief subway ride away.\nSee Md.Crim. Law Code Ann. **2863 \u00a7 4\u2013203(b)(4) (Lexis Supp.2007) (general handgun restriction does not apply to \u201cthe\nwearing, carrying, or transporting by *709 a person of a handgun used in connection with,\u201d inter alia, \u201ca target shoot, formal or\ninformal target practice, sport shooting event, hunting, [or] a Department of Natural Resources-sponsored firearms and hunter\nsafety class\u201d); Va.Code Ann. \u00a7 18.2\u2013287.4 (Lexis Supp.2007) (general restriction on carrying certain loaded pistols in certain\npublic areas does not apply \u201cto any person actually engaged in lawful hunting or lawful recreational shooting activities at an\nestablished shooting range or shooting contest\u201d); Washington Metropolitan Area Transit Authority, Metrorail System Map,\nonline at http://www.wmata.com/ metrorail/systemmap.cfm.\nOf course, a subway rider must buy a ticket, and the ride takes time. It also costs money to store a pistol, say, at a target range,\noutside the District. But given the costs already associated with gun ownership and firearms training, I cannot say that a subway\nticket and a short subway ride (and storage costs) create more than a minimal burden. Cf. Crawford v. Marion County Election\nBd., 553 U.S. 181, 238 \u2013 239, 128 S.Ct. 1610, 1614\u20131615, 170 L.Ed.2d 574 (2008) (BREYER, J., dissenting) (acknowledging\ntravel burdens on indigent persons in the context of voting where public transportation options were limited). Indeed, respondent\nand two of his coplaintiffs below may well use handguns outside the District on a regular basis, as their declarations indicate\nthat they keep such weapons stored there. See App. to Pet. for Cert. 77a (respondent); see also id., at 78a, 84a (coplaintiffs). I\nconclude that the District's law burdens the Second Amendment's primary objective little, or not at all.", "mimetype": "text/plain", "start_char_idx": 3217, "end_char_idx": 5599, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "02e25d7c-18fe-4b01-84c2-246320251797": {"__data__": {"id_": "02e25d7c-18fe-4b01-84c2-246320251797", "embedding": null, "metadata": {"page_label": "52", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "55df7199-dfb5-4d4e-8d8f-7ccd1678457e", "node_type": "4", "metadata": {"page_label": "52", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "beab9bfce927f5422c77a6f49daa165b721744eaadd878a0c00ebe2eacad953f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 52\n2\nThe majority briefly suggests that the \u201cright to keep and bear Arms\u201d might encompass an interest in hunting. See, e.g., ante, at\n2801. But in enacting the present provisions, the District sought to \u201ctake nothing away from sportsmen.\u201d DC Rep., at 33. And\nany inability of District residents to hunt near where they live has much to do with the jurisdiction's exclusively urban character\nand little to do with the *710 District's firearm laws. For reasons similar to those I discussed in the preceding subsection\u2014\nthat the District's law does not prohibit possession of rifles or shotguns, and the presence of opportunities for sporting activities\nin nearby States\u2014I reach a similar conclusion, namely, that the District's law burdens any sports-related or hunting-related\nobjectives that the Amendment may protect little, or not at all.\n3\nThe District's law does prevent a resident from keeping a loaded handgun in his home. And it consequently makes it more\ndifficult for the householder to use the handgun for self-defense in the home against intruders, such as burglars. As the Court of\nAppeals noted, statistics suggest that handguns are the most popular weapon for self-defense. See 478 F.3d, at 400 (citing Kleck\n& Gertz, 86 J.Crim. L. & C., at 182\u2013183 ). And there are some legitimate reasons why that would be the case: Amici suggest\n(with some empirical support) that handguns are easier to hold and control (particularly for persons with physical infirmities),\neasier to carry, easier to maneuver in enclosed spaces, and that a person using one will still have a hand free to dial 911. See\nILEETA Brief 37\u201339; NRA Brief 32\u201333; see also ante, at 2818. But see Brief for Petitioners 54\u201355 (citing sources preferring\nshotguns and rifles to handguns for purposes of self-defense). To that extent the law burdens to some **2864 degree an interest\nin self-defense that for present purposes I have assumed the Amendment seeks to further.\nC\nIn weighing needs and burdens, we must take account of the possibility that there are reasonable, but less restrictive, alternatives.\nAre there other potential measures that might similarly promote the same goals while imposing lesser restrictions? See Nixon,\n528 U.S., at 402, 120 S.Ct. 897 (BREYER, J., concurring) (\u201cexistence of a clearly superior, less restrictive alternative\u201d *711\ncan be a factor in determining whether a law is constitutionally proportionate). Here I see none.\nThe reason there is no clearly superior, less restrictive alternative to the District's handgun ban is that the ban's very objective\nis to reduce significantly the number of handguns in the District, say, for example, by allowing a law enforcement officer\nimmediately to assume that any handgun he sees is an illegal handgun. And there is no plausible way to achieve that objective\nother than to ban the guns.\nIt does not help respondent's case to describe the District's objective more generally as an \u201ceffort to diminish the dangers\nassociated with guns.\u201d That is because the very attributes that make handguns particularly useful for self-defense are also what\nmake them particularly dangerous. That they are easy to hold and control means that they are easier for children to use. See\nBrief for American Academy of Pediatrics et al. as Amici Curiae 19 (\u201c[C]hildren as young as three are able to pull the trigger\nof most handguns\u201d). That they are maneuverable and permit a free hand likely contributes to the fact that they are by far the\nfirearm of choice for crimes such as rape and robbery. See Weapon Use and Violent Crime 2 (Table 2). That they are small and\nlight makes them easy to steal, see supra, at 2797 \u2013 2798, and concealable, cf. ante, at 2816 (opinion of the Court) (suggesting\nthat concealed-weapon bans are constitutional).\nThis symmetry suggests that any measure less restrictive in respect to the use of handguns for self-defense will, to that same\nextent, prove less effective in preventing the use of handguns for illicit purposes. If a resident has a handgun in the home that\nhe can use for self-defense, then he has a handgun in the home that he can use to commit suicide or engage in acts of domestic", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4361, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "781dc339-d858-4c89-a1f9-46afa6c1c838": {"__data__": {"id_": "781dc339-d858-4c89-a1f9-46afa6c1c838", "embedding": null, "metadata": {"page_label": "53", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "670371a6-ba32-465e-b09d-b856ad588836", "node_type": "4", "metadata": {"page_label": "53", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5921869737af8afb522e34ff4fd19670e108b7f8ba98689a52b04dd5d411f48a", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "ebdf1ad1-79e8-4189-8978-9220710d45ef", "node_type": "1", "metadata": {}, "hash": "5e9b308ad0e43c5391063e334d119a73202e26cc94bc375e7addaa1d52d36044", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 53\nviolence. See supra, at 2856 (handguns prevalent in suicides); Brief for National Network to End Domestic Violence et al.\nas Amici Curiae 27 (handguns prevalent in domestic violence). If it is indeed the case, as the District believes, that *712\nthe number of guns contributes to the number of gun-related crimes, accidents, and deaths, then, although there may be less\nrestrictive, less effective substitutes for an outright ban, there is no less restrictive equivalent of an outright ban.\nLicensing restrictions would not similarly reduce the handgun population, and the District may reasonably fear that even if guns\nare initially restricted to law-abiding citizens, they might be stolen and thereby placed in the hands of criminals. See supra, at\n2856 \u2013 2857. Permitting certain types of handguns, but not others, would affect the commercial market for handguns, but not\ntheir availability. And requiring safety devices such as trigger locks, or imposing safe-storage requirements would interfere with\nany self-defense interest while simultaneously leaving operable weapons in the hands of owners (or others capable of acquiring\nthe weapon and disabling the safety device) who might use them for domestic violence or other crimes.\nThe absence of equally effective alternatives to a complete prohibition finds support in the empirical fact that other States\n**2865 and urban centers prohibit particular types of weapons. Chicago has a law very similar to the District's, and many\nof its suburbs also ban handgun possession under most circumstances. See Chicago, Ill., Municipal Code \u00a7\u00a7 8\u201320\u2013030(k), 8\u2013\n20\u201340, 8\u201320\u201350(c) (2008); Evanston, Ill., City Code \u00a7 9\u20138\u20132 (2007); Morton Grove, Ill., Village Code \u00a7 6\u20132\u20133(C) (2007);\nOak Park, Ill., Village Code \u00a7 27\u20132\u20131 (2007); Winnetka, Ill., Village Ordinance \u00a7 9.12.020(B) (2008), online at http://\nwww.amlegal.com/library/il/Winnetka.shtml; Wilmette, Ill., Ordinance \u00a7 12\u201324(b) (2008), online at http://www.amlegal.com/\nlibrary/il/Wilmette.shtml. Toledo bans certain types of handguns. Toledo, Ohio, Municipal Code, \u00a7 549.25 (2008). And San\nFrancisco in 2005 enacted by popular referendum a ban on most handgun possession by city residents; it has been precluded from\nenforcing that prohibition, however, by state-court decisions deeming it pre-empted by state law. See *713 Fiscal v. City and\nCounty of San Francisco, 158 Cal.App.4th 895, 900\u2013902, 70 Cal.Rptr.3d 324, 326\u2013328 (2008). (Indeed, the fact that as many\nas 41 States may pre-empt) local gun regulation suggests that the absence of more regulation like the District's may perhaps\nhave more to do with state law than with a lack of locally perceived need for them. See Legal Community Against Violence,\nRegulating Guns in America 14 (2006), http://www.lcav.org/Library/reports_analyses/National_Audit_Total_8.16.06.pdf.\nIn addition, at least six States and Puerto Rico impose general bans on certain types of weapons, in particular assault weapons\nor semiautomatic weapons. See Cal.Penal Code.Ann. \u00a7 12280(b) (West Supp.2008) ; Conn. Gen.Stat. \u00a7 53\u2013202c (2007);\nHaw.Rev.Stat. \u00a7 134\u20138 (1993); Md.Crim. Law Code Ann. \u00a7 4\u2013303(a) (Lexis 2002); Mass. Gen. Laws, ch. 140, \u00a7 131M (West\n2006); N.Y . Penal Law Ann. \u00a7 265.02(7) (West Supp.2008); 25 Laws P.R. Ann. \u00a7 456m (Supp.2006); see also 18 U.S.C. \u00a7 922(o)\n(federal machinegun ban).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3542, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ebdf1ad1-79e8-4189-8978-9220710d45ef": {"__data__": {"id_": "ebdf1ad1-79e8-4189-8978-9220710d45ef", "embedding": null, "metadata": {"page_label": "53", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "670371a6-ba32-465e-b09d-b856ad588836", "node_type": "4", "metadata": {"page_label": "53", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5921869737af8afb522e34ff4fd19670e108b7f8ba98689a52b04dd5d411f48a", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "781dc339-d858-4c89-a1f9-46afa6c1c838", "node_type": "1", "metadata": {"page_label": "53", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f34cc44b06f0829deb7c270c8561a54aff995671de5b24db88c9f412b274e27b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See Cal.Penal Code.Ann. \u00a7 12280(b) (West Supp.2008) ; Conn. Gen.Stat. \u00a7 53\u2013202c (2007);\nHaw.Rev.Stat. \u00a7 134\u20138 (1993); Md.Crim. Law Code Ann. \u00a7 4\u2013303(a) (Lexis 2002); Mass. Gen. Laws, ch. 140, \u00a7 131M (West\n2006); N.Y . Penal Law Ann. \u00a7 265.02(7) (West Supp.2008); 25 Laws P.R. Ann. \u00a7 456m (Supp.2006); see also 18 U.S.C. \u00a7 922(o)\n(federal machinegun ban). And at least 14 municipalities do the same. See Albany, N. Y ., Municipal Code \u00a7 193\u201316(A) (2005);\nAurora, Ill., Ordinance \u00a7 29\u201349(a) (2007); Buffalo, N. Y ., City Code \u00a7 180\u20131(F) (2000); Chicago, Ill., Municipal Code \u00a7 8\u2013\n24\u2013025(a), 8\u201320\u2013030(h); Cincinnati, Ohio, Municipal Code \u00a7 708\u201337(a) (Supp.2008); Cleveland, Ohio, Ordinance \u00a7 628.03(a)\n(2007); Columbus, Ohio, City Code \u00a7 2323.31 (2007); Denver, Colo., Revised Municipal Code \u00a7 38\u2013130(e) (2008); Morton\nGrove, Ill., Village Code \u00a7 6\u20132\u20133(B) (1996 and Supp. 2007); N.Y .C. Admin. Code \u00a7 10\u2013303.1 (2007); Oak Park, Ill., Village\nCode \u00a7 27\u20132\u20131 (2007); Rochester, N. Y ., Code \u00a7 47\u20135(f) (2008), online at http://www.ci.rochester.ny.us/index.cfm?id=112;\nSouth Bend, Ind., Ordinance \u00a7\u00a7 13\u201397(b), 13\u201398 (2008), online at http://library2.municode.com//default/DocView13974/1/2;\nToledo, Ohio, Municipal Code \u00a7 549.23(a). These bans, too, suggest that there may be no substitute to an outright prohibition\nin cases where a governmental body has deemed a particular type of weapon especially dangerous.\n*714 D\nThe upshot is that the District's objectives are compelling; its predictive judgments as to its law's tendency to achieve those\nobjectives are adequately supported; the law does impose a burden upon any self-defense interest that the Amendment seeks\nto secure; and there is no clear less restrictive alternative. I turn now to the final portion of the \u201cpermissible regulation\u201d\nquestion: Does the District's law disproportionately burden Amendment-protected interests? Several considerations, taken\ntogether, convince me that it does not.", "mimetype": "text/plain", "start_char_idx": 3187, "end_char_idx": 5137, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa2e2347-de35-4ef5-82ae-d4c8522bed41": {"__data__": {"id_": "fa2e2347-de35-4ef5-82ae-d4c8522bed41", "embedding": null, "metadata": {"page_label": "54", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9734b56e-f035-4853-8553-7a05c3a8e22a", "node_type": "4", "metadata": {"page_label": "54", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "48464ea0aa4d9b015f4f0cc628abb317c9eb78956c0caef0fb3e9e970b526bb8", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "4c75878d-9f4c-4244-8120-d57ad7c2ae65", "node_type": "1", "metadata": {}, "hash": "21ea2165e72930560d1564f0cc9023dfbd4645d1f595e1abf475003695de21fd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 54\nFirst, the District law is tailored to the life-threatening problems it attempts to address. The law concerns one class of weapons,\nhandguns, leaving residents free to possess shotguns and rifles, along with ammunition. The area that falls within its scope is\ntotally urban. Cf. Lorillard Tobacco Co. v. Reilly, 533 U.S. 525, 563, 121 S.Ct. 2404, 150 L.Ed.2d 532 (2001) (varied **2866\neffect of statewide speech restriction in \u201crural, urban, or suburban\u201d locales \u201cdemonstrates a lack of narrow tailoring\u201d). That\nurban area suffers from a serious handgun-fatality problem. The District's law directly aims at that compelling problem. And\nthere is no less restrictive way to achieve the problem-related benefits that it seeks.\nSecond, the self-defense interest in maintaining loaded handguns in the home to shoot intruders is not the primary interest, but at\nmost a subsidiary interest, that the Second Amendment seeks to serve. The Second Amendment's language, while speaking of a\n\u201cMilitia,\u201d says nothing of \u201cself-defense.\u201d As JUSTICE STEVENS points out, the Second Amendment's drafting history shows\nthat the language reflects the Framers' primary, if not exclusive, objective. See ante, at 2831 \u2013 2837 (dissenting opinion). And\nthe majority itself says that \u201cthe threat that the new Federal Government would destroy the citizens' militia by taking away their\narms was the reason that right ... was codified in a written Constitution.\u201d *715 Ante, at 2836 (emphasis added). The way in\nwhich the Amendment's operative clause seeks to promote that interest\u2014by protecting a right \u201cto keep and bear Arms\u201d\u2014may\nin fact help further an interest in self-defense. But a factual connection falls far short of a primary objective. The Amendment\nitself tells us that militia preservation was first and foremost in the Framers' minds. See Miller, 307 U.S., at 178, 59 S.Ct. 816\n(\u201cWith obvious purpose to assure the continuation and render possible the effectiveness of [militia] forces the declaration and\nguarantee of the Second Amendment were made,\u201d and the Amendment \u201cmust be interpreted and applied with that end in view\u201d).\nFurther, any self-defense interest at the time of the framing could not have focused exclusively upon urban-crime-related\ndangers. Two hundred years ago, most Americans, many living on the frontier, would likely have thought of self-defense\nprimarily in terms of outbreaks of fighting with Indian tribes, rebellions such as Shays' Rebellion, marauders, and crime-related\ndangers to travelers on the roads, on footpaths, or along waterways. See Dept. of Commerce, Bureau of Census, Population: 1790\nto 1990 (1998) (Table 4), online at http://www.census.gov/population/censusdata/table\u20134.pdf (of the 3,929,214 Americans in\n1790, only 201,655\u2014about 5%\u2014lived in urban areas). Insofar as the Framers focused at all on the tiny fraction of the population\nliving in large cities, they would have been aware that these city dwellers were subject to firearm restrictions that their rural\ncounterparts were not. See supra, at 2848 \u2013 2850. They are unlikely then to have thought of a right to keep loaded handguns in\nhomes to confront intruders in urban settings as central. And the subsequent development of modern urban police departments,\nby diminishing the need to keep loaded guns nearby in case of intruders, would have moved any such right even further away\nfrom the heart of the Amendment's more basic protective ends. See, e.g., Sklansky, *716 The Private Police, 46 UCLA L.Rev.\n1165, 1206\u20131207 (1999) (professional urban police departments did not develop until roughly the mid\u201319th century).\nNor, for that matter, am I aware of any evidence that handguns in particular were central to the Framers' conception of the\nSecond Amendment.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3953, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4c75878d-9f4c-4244-8120-d57ad7c2ae65": {"__data__": {"id_": "4c75878d-9f4c-4244-8120-d57ad7c2ae65", "embedding": null, "metadata": {"page_label": "54", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9734b56e-f035-4853-8553-7a05c3a8e22a", "node_type": "4", "metadata": {"page_label": "54", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "48464ea0aa4d9b015f4f0cc628abb317c9eb78956c0caef0fb3e9e970b526bb8", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "fa2e2347-de35-4ef5-82ae-d4c8522bed41", "node_type": "1", "metadata": {"page_label": "54", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2f4e524b0f0a1a9f79534239cb989f9cc3adefbe1d1de01003514d3a4a488508", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See supra, at 2848 \u2013 2850. They are unlikely then to have thought of a right to keep loaded handguns in\nhomes to confront intruders in urban settings as central. And the subsequent development of modern urban police departments,\nby diminishing the need to keep loaded guns nearby in case of intruders, would have moved any such right even further away\nfrom the heart of the Amendment's more basic protective ends. See, e.g., Sklansky, *716 The Private Police, 46 UCLA L.Rev.\n1165, 1206\u20131207 (1999) (professional urban police departments did not develop until roughly the mid\u201319th century).\nNor, for that matter, am I aware of any evidence that handguns in particular were central to the Framers' conception of the\nSecond Amendment. The lists of militia-related weapons in the late-18th-century state statutes appear primarily to refer to\nother sorts of weapons, muskets in particular. See Miller, supra, at 180\u2013182, 59 S.Ct. 816 (reproducing colonial militia laws).\nRespondent points out in his brief that the Federal Government and two States at the time of the founding had **2867 enacted\nstatutes that listed handguns as \u201cacceptable\u201d militia weapons. Brief for Respondent 47. But these statutes apparently found them\n\u201cacceptable\u201d only for certain special militiamen (generally, certain soldiers on horseback), while requiring muskets or rifles for\nthe general infantry. See Act of May 8, 1792, ch. XXXIII, 1 Stat. 271; Laws of the State of North Carolina 592 (1791); First\nLaws of the State of Connecticut 150 (J. Cushing ed. 1982); see also 25 Journals of the Continental Congress 1774\u20131789, pp.\n741\u2013742 (G. Hunt ed. 1922).\nThird, irrespective of what the Framers could have thought, we know what they did think. Samuel Adams, who lived in\nBoston, advocated a constitutional amendment that would have precluded the Constitution from ever being \u201c \u2018construed\u2019 \u201d\nto \u201c \u2018prevent the people of the United States, who are peaceable citizens, from keeping their own arms.\u2019 \u201d 6 Documentary\nHistory of the Ratification of the Constitution 1453 (J. Kaminski & G. Saladino eds.2000). Samuel Adams doubtless knew\nthat the Massachusetts Constitution contained somewhat similar protection. And he doubtless knew that Massachusetts law\nprohibited Bostonians from keeping loaded guns in the house. So how could Samuel Adams have advocated such protection\nunless he thought that the protection was consistent with local regulation that seriously impeded urban residents from using", "mimetype": "text/plain", "start_char_idx": 3221, "end_char_idx": 5690, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4d97541e-d268-42c1-aea6-76f4242be1f8": {"__data__": {"id_": "4d97541e-d268-42c1-aea6-76f4242be1f8", "embedding": null, "metadata": {"page_label": "55", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d0ad5319-88cf-4d45-920b-e5b1b4d55dcf", "node_type": "4", "metadata": {"page_label": "55", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "fe64eb3845e9be5d232657eda4e64e985940fc7d7a6d289cec3f30657e1f3b63", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "8f85c303-6c8d-42f1-bf51-817e83a35c30", "node_type": "1", "metadata": {}, "hash": "157badf5c3782410a61cfdf1e96b34f32f25217a50a9d1f963a763a37e277864", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 55\ntheir arms *717 against intruders? It seems unlikely that he meant to deprive the Federal Government of power (to enact\nBoston-type weapons regulation) that he knew Boston had and (as far as we know) he would have thought constitutional under\nthe Massachusetts Constitution. Indeed, since the District of Columbia (the subject of the Seat of Government Clause, U.S.\nConst., Art. I, \u00a7 8, cl. 17) was the only urban area under direct federal control, it seems unlikely that the Framers thought about\nurban gun control at all. Cf. Palmore v. United States, 411 U.S. 389, 398, 93 S.Ct. 1670, 36 L.Ed.2d 342 (1973) (Congress can\n\u201clegislate for the District in a manner with respect to subjects that would exceed its powers, or at least would be very unusual,\nin the context of national legislation enacted under other powers delegated to it\u201d).\nOf course the District's law and the colonial Boston law are not identical. But the Boston law disabled an even wider class\nof weapons (indeed, all firearms). And its existence shows at the least that local legislatures could impose (as here) serious\nrestrictions on the right to use firearms. Moreover, as I have said, Boston's law, though highly analogous to the District's, was\nnot the only colonial law that could have impeded a homeowner's ability to shoot a burglar. Pennsylvania's and New York's laws\ncould well have had a similar effect. See supra, at 2849 \u2013 2850. And the Massachusetts and Pennsylvania laws were not only\nthought consistent with an unwritten common-law gun-possession right, but also consistent with written state constitutional\nprovisions providing protections similar to those provided by the Federal Second Amendment. See ibid. I cannot agree with\nthe majority that these laws are largely uninformative because the penalty for violating them was civil, rather than criminal.\nAnte, at 2820 \u2013 2821. The Court has long recognized that the exercise of a constitutional right can be burdened by penalties far\nshort of jail time. See, e.g., Murdock v. Pennsylvania, 319 U.S. 105, 63 S.Ct. 870, 87 L.Ed. 1292 (1943) (invalidating $7 per\nweek solicitation fee as applied to religious group); *718 see also Forsyth County v. Nationalist Movement, 505 U.S. 123, 136,\n112 S.Ct. 2395, 120 L.Ed.2d 101 (1992) (\u201cA tax based on the content of speech does not become **2868 more constitutional\nbecause it is a small tax\u201d).\nRegardless, why would the majority require a precise colonial regulatory analogue in order to save a modern gun regulation\nfrom constitutional challenge? After all, insofar as we look to history to discover how we can constitutionally regulate a right to\nself-defense, we must look, not to what 18th-century legislatures actually did enact, but to what they would have thought they\ncould enact. There are innumerable policy-related reasons why a legislature might not act on a particular matter, despite having\nthe power to do so. This Court has \u201cfrequently cautioned that it is at best treacherous to find in congressional silence alone\nthe adoption of a controlling rule of law.\u201d United States v. Wells, 519 U.S. 482, 496, 117 S.Ct. 921, 137 L.Ed.2d 107 (1997)\n(internal quotation marks and brackets omitted). It is similarly \u201ctreacherous\u201d to reason from the fact that colonial legislatures\ndid not enact certain kinds of legislation to a conclusion that a modern legislature cannot do so. The question should not be\nwhether a modern restriction on a right to self-defense duplicates a past one, but whether that restriction, when compared with\nrestrictions originally thought possible, enjoys a similarly strong justification. At a minimum that similarly strong justification\nis what the District's modern law, compared with Boston's colonial law, reveals.\nFourth, a contrary view, as embodied in today's decision, will have unfortunate consequences.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4035, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8f85c303-6c8d-42f1-bf51-817e83a35c30": {"__data__": {"id_": "8f85c303-6c8d-42f1-bf51-817e83a35c30", "embedding": null, "metadata": {"page_label": "55", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d0ad5319-88cf-4d45-920b-e5b1b4d55dcf", "node_type": "4", "metadata": {"page_label": "55", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "fe64eb3845e9be5d232657eda4e64e985940fc7d7a6d289cec3f30657e1f3b63", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "4d97541e-d268-42c1-aea6-76f4242be1f8", "node_type": "1", "metadata": {"page_label": "55", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "62c421572eb2ca9a5ca285dd0569ce829301acf73915f7805fd976f5cc02f56a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "482, 496, 117 S.Ct. 921, 137 L.Ed.2d 107 (1997)\n(internal quotation marks and brackets omitted). It is similarly \u201ctreacherous\u201d to reason from the fact that colonial legislatures\ndid not enact certain kinds of legislation to a conclusion that a modern legislature cannot do so. The question should not be\nwhether a modern restriction on a right to self-defense duplicates a past one, but whether that restriction, when compared with\nrestrictions originally thought possible, enjoys a similarly strong justification. At a minimum that similarly strong justification\nis what the District's modern law, compared with Boston's colonial law, reveals.\nFourth, a contrary view, as embodied in today's decision, will have unfortunate consequences. The decision will encourage\nlegal challenges to gun regulation throughout the Nation. Because it says little about the standards used to evaluate regulatory\ndecisions, it will leave the Nation without clear standards for resolving those challenges. See ante, at 2836, and n. 26. And\nlitigation over the course of many years, or the mere specter of such litigation, threatens to leave cities without effective\nprotection against gun violence and accidents during that time.\n*719 As important, the majority's decision threatens severely to limit the ability of more knowledgeable, democratically elected\nofficials to deal with gun-related problems. The majority says that it leaves the District \u201ca variety of tools for combating\u201d such\nproblems. Ante, at 2822. It fails to list even one seemingly adequate replacement for the law it strikes down. I can understand\nhow reasonable individuals can disagree about the merits of strict gun control as a crime-control measure, even in a totally\nurbanized area. But I cannot understand how one can take from the elected branches of government the right to decide whether\nto insist upon a handgun-free urban populace in a city now facing a serious crime problem and which, in the future, could well\nface environmental or other emergencies that threaten the breakdown of law and order.", "mimetype": "text/plain", "start_char_idx": 3297, "end_char_idx": 5360, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b5d66f0-1114-457b-a3e3-67da1e8d6d99": {"__data__": {"id_": "6b5d66f0-1114-457b-a3e3-67da1e8d6d99", "embedding": null, "metadata": {"page_label": "56", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a8a8894c-2001-4641-a7fc-7b4e033c16cc", "node_type": "4", "metadata": {"page_label": "56", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d103299a774aeabe7a6f7ad0b79c50817ba99a3738f95fa49ac0b4f4148b6611", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "abd0c3b2-9ec6-40bb-89ec-30a864369492", "node_type": "1", "metadata": {}, "hash": "87d2827709adf2e4b4e2f4286ef91755556525ab9ca0e4235d4f4d6ab7569a0b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 56\nV\nThe majority derides my approach as \u201cjudge-empowering.\u201d Ante, at 2821. I take this criticism seriously, but I do not think it\naccurate. As I have previously explained, this is an approach that the Court has taken in other areas of constitutional law. See\nsupra, at 2852 \u2013 2853. Application of such an approach, of course, requires judgment, but the very nature of the approach\u2014\nrequiring careful identification of the relevant interests and evaluating the law's effect upon them\u2014limits the judge's choices;\nand the method's necessary transparency lays bare the judge's reasoning for all to see and to criticize.\nThe majority's methodology is, in my view, substantially less transparent than mine. At a minimum, I find it difficult to\nunderstand the reasoning that seems to underlie certain conclusions that it reaches.\n**2869 The majority spends the first 54 pages of its opinion attempting to rebut JUSTICE STEVENS' evidence that the\nAmendment was enacted with a purely militia-related purpose. In the majority's view, the Amendment also protects *720 an\ninterest in armed personal self-defense, at least to some degree. But the majority does not tell us precisely what that interest\nis. \u201cPutting all of [the Second Amendment's] textual elements together,\u201d the majority says, \u201cwe find that they guarantee the\nindividual right to possess and carry weapons in case of confrontation.\u201d Ante, at 2797. Then, three pages later, it says that \u201cwe\ndo not read the Second Amendment to permit citizens to carry arms for any sort of confrontation.\u201d Ante, at 2799. Yet, with one\ncritical exception, it does not explain which confrontations count. It simply leaves that question unanswered.\nThe majority does, however, point to one type of confrontation that counts, for it describes the Amendment as \u201celevat[ing]\nabove all other interests the right of law-abiding, responsible citizens to use arms in defense of hearth and home.\u201d Ante, at 2846.\nWhat is its basis for finding that to be the core of the Second Amendment right? The only historical sources identified by the\nmajority that even appear to touch upon that specific matter consist of an 1866 newspaper editorial discussing the Freedmen's\nBureau Act, see ante, at 2810, two quotations from that 1866 Act's legislative history, see ante, at 2810 \u2013 2811, and a 1980\nstate-court opinion saying that in colonial times the same were used to defend the home as to maintain the militia, see ante, at\n2815. How can citations such as these support the far-reaching proposition that the Second Amendment's primary concern is\nnot its stated concern about the militia, but rather a right to keep loaded weapons at one's bedside to shoot intruders?\nNor is it at all clear to me how the majority decides which loaded \u201carms\u201d a homeowner may keep. The majority says that\nthat Amendment protects those weapons \u201ctypically possessed by law-abiding citizens for lawful purposes.\u201d Ante, at 2816. This\ndefinition conveniently excludes machineguns, but permits handguns, which the majority describes as \u201cthe most popular weapon\nchosen by Americans for self-defense *721 in the home.\u201d Ante, at 2818; see also ante, at 2816 \u2013 2817. But what sense does\nthis approach make? According to the majority's reasoning, if Congress and the States lift restrictions on the possession and use\nof machineguns, and people buy machineguns to protect their homes, the Court will have to reverse course and find that the\nSecond Amendment does, in fact, protect the individual self-defense-related right to possess a machinegun. On the majority's\nreasoning, if tomorrow someone invents a particularly useful, highly dangerous self-defense weapon, Congress and the States\nhad better ban it immediately, for once it becomes popular Congress will no longer possess the constitutional authority to do so.\nIn essence, the majority determines what regulations are permissible by looking to see what existing regulations permit. There\nis no basis for believing that the Framers intended such circular reasoning.\nI am similarly puzzled by the majority's list, in Part III of its opinion, of provisions that in its view would survive Second\nAmendment scrutiny.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4365, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "abd0c3b2-9ec6-40bb-89ec-30a864369492": {"__data__": {"id_": "abd0c3b2-9ec6-40bb-89ec-30a864369492", "embedding": null, "metadata": {"page_label": "56", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a8a8894c-2001-4641-a7fc-7b4e033c16cc", "node_type": "4", "metadata": {"page_label": "56", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d103299a774aeabe7a6f7ad0b79c50817ba99a3738f95fa49ac0b4f4148b6611", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "6b5d66f0-1114-457b-a3e3-67da1e8d6d99", "node_type": "1", "metadata": {"page_label": "56", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1b60fdce81f1cf9029a6730995532a9b92a4a36fb09cdaae5f8d7868fe20ed85", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "But what sense does\nthis approach make? According to the majority's reasoning, if Congress and the States lift restrictions on the possession and use\nof machineguns, and people buy machineguns to protect their homes, the Court will have to reverse course and find that the\nSecond Amendment does, in fact, protect the individual self-defense-related right to possess a machinegun. On the majority's\nreasoning, if tomorrow someone invents a particularly useful, highly dangerous self-defense weapon, Congress and the States\nhad better ban it immediately, for once it becomes popular Congress will no longer possess the constitutional authority to do so.\nIn essence, the majority determines what regulations are permissible by looking to see what existing regulations permit. There\nis no basis for believing that the Framers intended such circular reasoning.\nI am similarly puzzled by the majority's list, in Part III of its opinion, of provisions that in its view would survive Second\nAmendment scrutiny. These consist of (1) \u201cprohibitions on carrying concealed weapons\u201d; (2) \u201cprohibitions on the possession\nof firearms by felons\u201d; (3) \u201cprohibitions on the possession of firearms by ... the mentally ill\u201d; (4) \u201claws forbidding the carrying\nof firearms in sensitive places such as schools and government buildings\u201d; and (5) government \u201cconditions and qualifications\u201d\nattached to \u201cthe commercial sale of arms.\u201d Ante, at 2816. Why these? Is it **2870 that similar restrictions existed in the\nlate-18th century? The majority fails to cite any colonial analogues. And even were it possible to find analogous colonial laws\nin respect to all these restrictions, why should these colonial laws count, while the Boston loaded-gun restriction (along with\nthe other laws I have identified) apparently does not count? See supra, at 2849 \u2013 2850, 2867 \u2013 2868.", "mimetype": "text/plain", "start_char_idx": 3363, "end_char_idx": 5207, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "016d6195-182e-46c6-b8a3-be732245c0e7": {"__data__": {"id_": "016d6195-182e-46c6-b8a3-be732245c0e7", "embedding": null, "metadata": {"page_label": "57", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fe8e6459-ab0c-440d-ba38-af73b34d13d1", "node_type": "4", "metadata": {"page_label": "57", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "374d280bd3df772851bed9bc6a880a965e301032be53da1c5ab2a84b96b020d8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 57\nAt the same time the majority ignores a more important question: Given the purposes for which the Framers enacted *722\nthe Second Amendment, how should it be applied to modern-day circumstances that they could not have anticipated? Assume,\nfor argument's sake, that the Framers did intend the Amendment to offer a degree of self-defense protection. Does that mean\nthat the Framers also intended to guarantee a right to possess a loaded gun near swimming pools, parks, and playgrounds? That\nthey would not have cared about the children who might pick up a loaded gun on their parents' bedside table? That they (who\ncertainly showed concern for the risk of fire, see supra, at 2849 \u2013 2850) would have lacked concern for the risk of accidental\ndeaths or suicides that readily accessible loaded handguns in urban areas might bring? Unless we believe that they intended\nfuture generations to ignore such matters, answering questions such as the questions in this case requires judgment\u2014judicial\njudgment exercised within a framework for constitutional analysis that guides that judgment and which makes its exercise\ntransparent. One cannot answer those questions by combining inconclusive historical research with judicial ipse dixit.\nThe argument about method, however, is by far the less important argument surrounding today's decision. Far more important\nare the unfortunate consequences that today's decision is likely to spawn. Not least of these, as I have said, is the fact that the\ndecision threatens to throw into doubt the constitutionality of gun laws throughout the United States. I can find no sound legal\nbasis for launching the courts on so formidable and potentially dangerous a mission. In my view, there simply is no untouchable\nconstitutional right guaranteed by the Second Amendment to keep loaded handguns in the house in crime-ridden urban areas.\nVI\nFor these reasons, I conclude that the District's measure is a proportionate, not a disproportionate, response to the compelling\nconcerns that led the District to adopt it. And, *723 for these reasons as well as the independently sufficient reasons set forth\nby Justice STEVENS, I would find the District's measure consistent with the Second Amendment's demands.\nWith respect, I dissent.\nAll Citations\n554 U.S. 570, 128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060, 2008 Daily Journal D.A.R.\n9613, 21 Fla. L. Weekly Fed. S 497\nFootnotes\n* The syllabus constitutes no part of the opinion of the Court but has been prepared by the Reporter of Decisions for\nthe convenience of the reader. See United States v. Detroit Timber & Lumber Co., 200 U.S. 321, 337, 26 S.Ct. 282,\n50 L.Ed. 499.\n1 There are minor exceptions to all of these prohibitions, none of which is relevant here.\n2 That construction has not been challenged here.\n3 As Sutherland explains, the key 18th-century English case on the effect of preambles, Copeman v. Gallant, 1 P. Wms.\n314, 24 Eng. Rep. 404 (1716), stated that \u201cthe preamble could not be used to restrict the effect of the words used in the\npurview.\u201d 2A N. Singer, Sutherland on Statutory Construction \u00a7 47.04, pp. 145 \u2013 146 (rev. 5th ed.1992). This rule was\nmodified in England in an 1826 case to give more importance to the preamble, but in America \u201cthe settled principle of", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3498, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "38b2c6a0-c770-4716-9062-f32e30148c7e": {"__data__": {"id_": "38b2c6a0-c770-4716-9062-f32e30148c7e", "embedding": null, "metadata": {"page_label": "58", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4e01b025-b557-419d-ac46-26cf780961d3", "node_type": "4", "metadata": {"page_label": "58", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "13231779e57f394c5db61535c1998eecc4a86b789e12db2daa569938f2be79d2", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "29dd9225-31e0-4d76-8661-a05b73337d1c", "node_type": "1", "metadata": {}, "hash": "2fe49115d0fda13a47cba34457d4dbe838a797f6249c729d8b64460b98614450", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 58\nlaw is that the preamble cannot control the enacting part of the statute in cases where the enacting part is expressed in\nclear, unambiguous terms.\u201d Id., at 146.\nJustice STEVENS says that we violate the general rule that every clause in a statute must have effect. Post, at 2826.\nBut where the text of a clause itself indicates that it does not have operative effect, such as \u201cwhereas\u201d clauses in federal\nlegislation or the Constitution's preamble, a court has no license to make it do what it was not designed to do. Or to put\nthe point differently, operative provisions should be given effect as operative provisions, and prologues as prologues.\n4 Justice STEVENS criticizes us for discussing the prologue last. Ibid. But if a prologue can be used only to clarify an\nambiguous operative provision, surely the first step must be to determine whether the operative provision is ambiguous.\nIt might be argued, we suppose, that the prologue itself should be one of the factors that go into the determination of\nwhether the operative provision is ambiguous\u2014but that would cause the prologue to be used to produce ambiguity\nrather than just to resolve it. In any event, even if we considered the prologue along with the operative provision we\nwould reach the same result we do today, since (as we explain) our interpretation of \u201cthe right of the people to keep\nand bear arms\u201d furthers the purpose of an effective militia no less than (indeed, more than) the dissent's interpretation.\nSee infra, at 2801 \u2013 2802.\n5 Justice STEVENS is of course correct, post, at 2827, that the right to assemble cannot be exercised alone, but it is still\nan individual right, and not one conditioned upon membership in some defined \u201cassembly,\u201d as he contends the right\nto bear arms is conditioned upon membership in a defined militia. And Justice STEVENS is dead wrong to think that\nthe right to petition is \u201cprimarily collective in nature.\u201d Ibid. See McDonald v. Smith, 472 U.S. 479, 482\u2013484, 105 S.Ct.\n2787, 86 L.Ed.2d 384 (1985) (describing historical origins of right to petition).\n6 If we look to other founding-era documents, we find that some state constitutions used the term \u201cthe people\u201d to refer\nto the people collectively, in contrast to \u201ccitizen,\u201d which was used to invoke individual rights. See Heyman, Natural\nRights and the Second Amendment, in The Second Amendment in Law and History 179, 193\u2013195 (C. Bogus ed.2000)\n(hereinafter Bogus). But that usage was not remotely uniform. See, e.g., N.C. Declaration of Rights \u00a7 XIV (1776), in\n5 The Federal and State Constitutions, Colonial Charters, and Other Organic Laws 2787, 2788 (F. Thorpe ed.1909)\n(hereinafter Thorpe) (jury trial); Md. Declaration of Rights \u00a7 XVIII (1776), in 3 id., at 1686, 1688 (vicinage requirement);\nVt. Declaration of Rights, ch. 1, \u00a7 XI (1777), in 6 id., at 3737, 3741 (searches and seizures); Pa. Declaration of Rights\n\u00a7 XII (1776), in 5 id., at 3082, 3083 (free speech). And, most importantly, it was clearly not the terminology used in the\nFederal Constitution, given the First, Fourth, and Ninth Amendments.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3279, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "29dd9225-31e0-4d76-8661-a05b73337d1c": {"__data__": {"id_": "29dd9225-31e0-4d76-8661-a05b73337d1c", "embedding": null, "metadata": {"page_label": "58", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4e01b025-b557-419d-ac46-26cf780961d3", "node_type": "4", "metadata": {"page_label": "58", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "13231779e57f394c5db61535c1998eecc4a86b789e12db2daa569938f2be79d2", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "38b2c6a0-c770-4716-9062-f32e30148c7e", "node_type": "1", "metadata": {"page_label": "58", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "721bd81da1e11e1134f29efd8ad5149949887373d1a7f1113f3bd30f1e28efd6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See, e.g., N.C. Declaration of Rights \u00a7 XIV (1776), in\n5 The Federal and State Constitutions, Colonial Charters, and Other Organic Laws 2787, 2788 (F. Thorpe ed.1909)\n(hereinafter Thorpe) (jury trial); Md. Declaration of Rights \u00a7 XVIII (1776), in 3 id., at 1686, 1688 (vicinage requirement);\nVt. Declaration of Rights, ch. 1, \u00a7 XI (1777), in 6 id., at 3737, 3741 (searches and seizures); Pa. Declaration of Rights\n\u00a7 XII (1776), in 5 id., at 3082, 3083 (free speech). And, most importantly, it was clearly not the terminology used in the\nFederal Constitution, given the First, Fourth, and Ninth Amendments.\n7 See, e.g., 3 A Compleat Collection of State\u2013Tryals 185 (1719) ( \u201cHath not every Subject power to keep Arms, as well as\nServants in his House for defence of his Person?\u201d); T. Wood, A New Institute of the Imperial or Civil Law 282 (1730)\n(\u201cThose are guilty of publick Force, who keep Arms in their Houses, and make use of them otherwise than upon Journeys\nor Hunting, or for Sale ...\u201d); A Collection of All the Acts of Assembly, Now in Force, in the Colony of Virginia 596\n(1733) (\u201cFree Negros, Mulattos, or Indians, and Owners of Slaves, seated at Frontier Plantations, may obtain Licence\nfrom a Justice of Peace, for keeping Arms, &c.\u201d); J. Ayliffe, A New Pandect of Roman Civil Law 195 (1734) (\u201cYet\na Person might keep Arms in his House, or on his Estate, on the Account of Hunting, Navigation, Travelling, and on\nthe Score of Selling them in the way of Trade or Commerce, or such Arms as accrued to him by way of Inheritance\u201d);\nJ. Trusler, A Concise View of the Common Law and Statute Law of England 270 (1781) (\u201c[I]f [papists] keep arms in\ntheir houses, such arms may be seized by a justice of the peace\u201d); Some Considerations on the Game Laws 54 (1796)\n(\u201cWho has been deprived by [the law] of keeping arms for his own defence? What law forbids the veriest pauper, if\nhe can raise a sum sufficient for the purchase of it, from mounting his Gun on his Chimney Piece ... ?\u201d); 3 B. Wilson,\nThe Works of the Honourable James Wilson 84 (1804) (with reference to state constitutional right: \u201cThis is one of our\nmany renewals of the Saxon regulations. \u2018They were bound,\u2019 says Mr. Selden, \u2018to keep arms for the preservation of the\nkingdom, and of their own persons' \u201d); W. Duer, Outlines of the Constitutional Jurisprudence of the United States 31\u201332\n(1833) (with reference to colonists' English rights: \u201cThe right of every individual to keep arms for his defence, suitable\nto his condition and degree; which was the public allowance, under due restrictions of the natural right of resistance\nand self-preservation\u201d); 3 R. Burn, Justice of Peace and Parish Officer 88 (29th ed. 1845) (\u201cIt is, however, laid down", "mimetype": "text/plain", "start_char_idx": 2674, "end_char_idx": 5388, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9d08900e-783e-46cb-9a10-d3ba38dd11b7": {"__data__": {"id_": "9d08900e-783e-46cb-9a10-d3ba38dd11b7", "embedding": null, "metadata": {"page_label": "59", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "126443c2-698b-4747-8b05-e3b7790a77b8", "node_type": "4", "metadata": {"page_label": "59", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "fa0ec804914e8c54fb1e142d7d085640d584f111d8f848a880532319181df2d6", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "30765315-99d9-4c2b-9cef-575712e3dbec", "node_type": "1", "metadata": {}, "hash": "33637cacbbd7aec15d60c721df5fe6c31374da985c27d572e0350fbc97d09e12", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 59\nby Serjeant Hawkins, ... that if a lessee, after the end of the term, keep arms in his house to oppose the entry of the\nlessor, ...\u201d); State v. Dempsey, 31 N.C. 384, 385 (1849) (citing 1840 state law making it a misdemeanor for a member of\ncertain racial groups \u201cto carry about his person or keep in his house any shot gun or other arms\u201d).\n8 See Pa. Declaration of Rights \u00a7 XIII, in 5 Thorpe 3083 (\u201cThat the people have a right to bear arms for the defence of\nthemselves and the state ... \u201d); Vt. Declaration of Rights, ch. 1, \u00a7 XV , in 6 id., at 3741 (\u201cThat the people have a right\nto bear arms for the defence of themselves and the State ...\u201d); Ky. Const., Art. XII, \u00a7 23 (1792), in 3 id., at 1264, 1275\n(\u201cThat the right of the citizens to bear arms in defence of themselves and the State shall not be questioned\u201d); Ohio Const.,\nArt. VIII, \u00a7 20 (1802), in 5 id., at 2901, 2911 (\u201cThat the people have a right to bear arms for the defence of themselves\nand the State ... \u201d); Ind. Const., Art. First, \u00a7 20 (1816), in 2 id., at 1057, 1059 (\u201cThat the people have a right to bear arms\nfor the defense of themselves and the State ... \u201d); Miss. Const., Art. I, \u00a7 23 (1817), in 4 id., at 2032, 2034 (\u201cEvery citizen\nhas a right to bear arms, in defense of himself and the State\u201d); Conn. Const., Art. First, \u00a7 17 (1818), in id., at 536, 538\n(\u201cEvery citizen has a right to bear arms in defense of himself and the state\u201d); Ala. Const., Art. I, \u00a7 23 (1819), in id., at\n96, 98 (\u201cEvery citizen has a right to bear arms in defence of himself and the State\u201d); Mo. Const., Art. XIII, \u00a7 3 (1820),\nin 4 id., at 2150, 2163 (\u201c[T]hat their right to bear arms in defence of themselves and of the State cannot be questioned\u201d).\nSee generally V olokh, State Constitutional Rights to Keep and Bear Arms, 11 Tex. Rev. L. & Politics 191 (2006).\n9 See Bliss v. Commonwealth, 12 Ky. 90, 2 Litt. 90, 91\u201392 (1822) ; State v. Reid, 1 Ala. 612, 616\u2013617 (1840) ; State v.\nSchoultz, 25 Mo. 128, 155 (1857); see also Simpson v. State, 13 Tenn. 356, 5 Yer. 356, 360 (1833) (interpreting similar\nprovision with \u201c \u2018common defence\u2019 \u201d purpose); State v. Huntly, 25 N.C. 418, 422\u2013423 (1843) (same); cf. Nunn v. State, 1\nGa. 243, 250\u2013251 (1846) (construing Second Amendment); State v. Chandler, 5 La. Ann. 489, 489\u2013490 (1850) (same).\n10 See J. Brydall, Privilegia Magnatud apud Anglos 14 (1704) (Privilege XXXIII) (\u201cIn the 21st Year of King Edward\nthe Third, a Proclamation Issued, that no Person should bear any Arms within London, and the Suburbs\u201d); J. Bond, A\nCompleat Guide to Justices of the Peace 43 (3d ed.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2771, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "30765315-99d9-4c2b-9cef-575712e3dbec": {"__data__": {"id_": "30765315-99d9-4c2b-9cef-575712e3dbec", "embedding": null, "metadata": {"page_label": "59", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "126443c2-698b-4747-8b05-e3b7790a77b8", "node_type": "4", "metadata": {"page_label": "59", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "fa0ec804914e8c54fb1e142d7d085640d584f111d8f848a880532319181df2d6", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9d08900e-783e-46cb-9a10-d3ba38dd11b7", "node_type": "1", "metadata": {"page_label": "59", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "fbbca6afbf02a0fca38b618adfcd0890512a621498531b6549034ff2daf48adc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "356, 360 (1833) (interpreting similar\nprovision with \u201c \u2018common defence\u2019 \u201d purpose); State v. Huntly, 25 N.C. 418, 422\u2013423 (1843) (same); cf. Nunn v. State, 1\nGa. 243, 250\u2013251 (1846) (construing Second Amendment); State v. Chandler, 5 La. Ann. 489, 489\u2013490 (1850) (same).\n10 See J. Brydall, Privilegia Magnatud apud Anglos 14 (1704) (Privilege XXXIII) (\u201cIn the 21st Year of King Edward\nthe Third, a Proclamation Issued, that no Person should bear any Arms within London, and the Suburbs\u201d); J. Bond, A\nCompleat Guide to Justices of the Peace 43 (3d ed. 1707) (\u201cSheriffs, and all other Officers in executing their Offices,\nand all other persons pursuing Hu[e] and Cry may lawfully bear Arms\u201d); 1 An Abridgment of the Public Statutes in\nForce and Use Relative to Scotland (1755) (entry for \u201cArms\u201d: \u201cAnd if any person above described shall have in his\ncustody, use, or bear arms, being thereof convicted before one justice of peace, or other judge competent, summarily,\nhe shall for the first offense forfeit all such arms\u201d (citing 1 Geo., ch. 54, \u00a7 1, in 5 Eng. Stat. at Large 90 (1668))); Statute\nLaw of Scotland Abridged 132\u2013133 (2d ed. 1769) (\u201cActs for disarming the highlands\u201d but \u201cexempting those who have\nparticular licenses to bear arms\u201d); E. de Vattel, The Law of Nations, or, Principles of the Law of Nature 144 (1792)\n(\u201cSince custom has allowed persons of rank and gentlemen of the army to bear arms in time of peace, strict care should\nbe taken that none but these should be allowed to wear swords\u201d); E. Roche, Proceedings of a Court\u2013Martial, Held at the\nCouncil\u2013Chamber, in the City of Cork 3 (1798) (charge VI: \u201cWith having held traitorous conferences, and with having\nconspired, with the like intent, for the purpose of attacking and despoiling of the arms of several of the King's subjects,\nqualified by law to bear arms\u201d); C. Humphreys, A Compendium of the Common Law in Force in Kentucky 482 (1822)\n(\u201c[I]n this country the constitution guarranties to all persons the right to bear arms; then it can only be a crime to exercise\nthis right in such a manner, as to terrify people unnecessarily\u201d).\n11 Justice STEVENS contends, post, at 2830, that since we assert that adding \u201cagainst\u201d to \u201cbear arms\u201d gives it a military\nmeaning we must concede that adding a purposive qualifying phrase to \u201cbear arms\u201d can alter its meaning. But the\ndifference is that we do not maintain that \u201cagainst\u201d alters the meaning of \u201cbear arms\u201d but merely that it clarifies which\nof various meanings (one of which is military) is intended. Justice STEVENS, however, argues that \u201c[t]he term \u2018bear\narms' is a familiar idiom; when used unadorned by any additional words, its meaning is \u2018to serve as a soldier, do military\nservice, fight.\u2019 \u201d Post, at 2828. He therefore must establish that adding a contradictory purposive phrase can alter a\nword's meaning.\n12 Justice STEVENS finds support for his legislative history inference from the recorded views of one Antifederalist\nmember of the House. Post, at 2836, n. 25. \u201cThe claim that the best or most representative reading of the [language of", "mimetype": "text/plain", "start_char_idx": 2221, "end_char_idx": 5293, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a2a83a21-c192-4650-a894-3ae1c7c43c47": {"__data__": {"id_": "a2a83a21-c192-4650-a894-3ae1c7c43c47", "embedding": null, "metadata": {"page_label": "60", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8a1e1e52-e76e-4cc1-889f-8aa84f7b70c3", "node_type": "4", "metadata": {"page_label": "60", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "61df0d281b6ad9ee33d844a50124a70cae007b8de7ae954bc62b82b037833f19", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "7819aa04-ab48-47be-ad02-d3509ac7c1a4", "node_type": "1", "metadata": {}, "hash": "6cb2aea85bce58f4e1cbd378a98620c1cf70a9973b5c70555e9972fac2fcaf5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 60\nthe] amendments would conform to the understanding and concerns of [the Antifederalists] is ... highly problematic.\u201d\nRakove, The Second Amendment: The Highest Stage of Originalism, in Bogus 74, 81.\n13 The same applies to the conscientious-objector amendments proposed by Virginia and North Carolina, which said: \u201cThat\nany person religiously scrupulous of bearing arms ought to be exempted upon payment of an equivalent to employ\nanother to bear arms in his stead.\u201d See Veit 19; 4 J. Eliot, The Debates in the Several State Constitutions on the Adoption\nof the Federal Constitution 243, 244 (2d ed. 1836) (reprinted 1941). Certainly their second use of the phrase (\u201cbear arms\nin his stead\u201d) refers, by reason of context, to compulsory bearing of arms for military duty. But their first use of the\nphrase (\u201cany person religiously scrupulous of bearing arms\u201d) assuredly did not refer to people whose God allowed them\nto bear arms for defense of themselves but not for defense of their country.\n14 Faced with this clear historical usage, Justice STEVENS resorts to the bizarre argument that because the word \u201cto\u201d is not\nincluded before \u201cbear\u201d (whereas it is included before \u201cpetition\u201d in the First Amendment), the unitary meaning of \u201c \u2018to\nkeep and bear\u2019 \u201d is established. Post, at 2830, n. 13. We have never heard of the proposition that omitting repetition of\nthe \u201cto\u201d causes two verbs with different meanings to become one. A promise \u201cto support and to defend the Constitution\nof the United States\u201d is not a whit different from a promise \u201cto support and defend the Constitution of the United States.\u201d\n15 Cf. 21 Geo. II, ch. 34, \u00a7 3, in 7 Eng. Stat. at Large 126 (1748) (\u201cThat the Prohibition contained ... in this Act, of having,\nkeeping, bearing, or wearing any Arms or Warlike Weapons ... shall not extend ... to any Officers or their Assistants,\nemployed in the Execution of Justice ...\u201d).\n16 Contrary to Justice STEVENS' wholly unsupported assertion, post, at 2831, there was no pre-existing right in English\nlaw \u201cto use weapons for certain military purposes\u201d or to use arms in an organized militia.\n17 Article I, \u00a7 8, cl. 16, of the Constitution gives Congress the power\n\u201c[t]o provide for organizing, arming, and disciplining, the Militia, and for governing such Part of\nthem as may be employed in the Service of the United States, reserving to the States respectively,\nthe Appointment of the Officers, and the Authority of training the Militia according to the\ndiscipline prescribed by Congress.\u201d\nIt could not be clearer that Congress's \u201corganizing\u201d power, unlike its \u201cgoverning\u201d power, can be invoked even for that\npart of the militia not \u201cemployed in the Service of the United States.\u201d Justice STEVENS provides no support whatever\nfor his contrary view, see post, at 2832, n. 20. Both the Federalists and Antifederalists read the provision as it was written,\nto permit the creation of a \u201cselect\u201d militia. See The Federalist No. 29, pp. 226, 227 (B. Wright ed.1961); Centinel,\nRevived, No. XXIX, Philadelphia Independent Gazetteer, Sept. 9, 1789, in Young 711, 712.\n18 Justice STEVENS says that the drafters of the Virginia Declaration of Rights rejected this proposal and adopted \u201cinstead\u201d\na provision written by George Mason stressing the importance of the militia. See post, at 2835, and n. 24. There is no\nevidence that the drafters regarded the Mason proposal as a substitute for the Jefferson proposal.\n19 JUSTICE STEVENS quotes some of Tucker's unpublished notes, which he claims show that Tucker had ambiguous\nviews about the Second Amendment. See post, at 31, and n. 32.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3787, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7819aa04-ab48-47be-ad02-d3509ac7c1a4": {"__data__": {"id_": "7819aa04-ab48-47be-ad02-d3509ac7c1a4", "embedding": null, "metadata": {"page_label": "60", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8a1e1e52-e76e-4cc1-889f-8aa84f7b70c3", "node_type": "4", "metadata": {"page_label": "60", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "61df0d281b6ad9ee33d844a50124a70cae007b8de7ae954bc62b82b037833f19", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "a2a83a21-c192-4650-a894-3ae1c7c43c47", "node_type": "1", "metadata": {"page_label": "60", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7d8890bd541d5c2d22fc5dd99d9b7677f9f449d89ab6ebcf97f42c7047d1e014", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See The Federalist No. 29, pp. 226, 227 (B. Wright ed.1961); Centinel,\nRevived, No. XXIX, Philadelphia Independent Gazetteer, Sept. 9, 1789, in Young 711, 712.\n18 Justice STEVENS says that the drafters of the Virginia Declaration of Rights rejected this proposal and adopted \u201cinstead\u201d\na provision written by George Mason stressing the importance of the militia. See post, at 2835, and n. 24. There is no\nevidence that the drafters regarded the Mason proposal as a substitute for the Jefferson proposal.\n19 JUSTICE STEVENS quotes some of Tucker's unpublished notes, which he claims show that Tucker had ambiguous\nviews about the Second Amendment. See post, at 31, and n. 32. But it is clear from the notes that Tucker located\nthe power of States to arm their militias in the Tenth Amendment, and that he cited the Second Amendment for the\nproposition that such armament could not run afoul of any power of the Federal Government (since the Amendment\nprohibits Congress from ordering disarmament). Nothing in the passage implies that the Second Amendment pertains\nonly to the carrying of arms in the organized militia.", "mimetype": "text/plain", "start_char_idx": 3114, "end_char_idx": 4230, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0a35eb35-ad0e-4b2a-a887-1ae52d0caf61": {"__data__": {"id_": "0a35eb35-ad0e-4b2a-a887-1ae52d0caf61", "embedding": null, "metadata": {"page_label": "61", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "70f03fdc-17c1-4a2c-8499-fe56d2de4667", "node_type": "4", "metadata": {"page_label": "61", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "24be27c2414b4a5daf2ac31e1c76b9f2e98f677b597506c83775c1c057f1fab6", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "548fb47c-8295-4687-86ca-eadab0daefe3", "node_type": "1", "metadata": {}, "hash": "25c1589b7e42bf21f5636bda59566f341d39efc57b5002e19ae2253a906e9621", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 61\n20 Rawle, writing before our decision in Barron ex rel. Tiernan v. Mayor of Baltimore, 7 Pet. 243, 8 L.Ed. 672 (1833) ,\nbelieved that the Second Amendment could be applied against the States. Such a belief would of course be nonsensical\non petitioners' view that it protected only a right to possess and carry arms when conscripted by the State itself into\nmilitia service.\n21 Justice STEVENS suggests that this is not obvious because free blacks in Virginia had been required to muster without\narms. See post, at 2837, n. 29 (citing Siegel, The Federal Government's Power to Enact Color\u2013Conscious Laws, 92 Nw.\nU.L.Rev. 477, 497 (1998)). But that could not have been the type of law referred to in Aldridge, because that practice\nhad stopped 30 years earlier when blacks were excluded entirely from the militia by the first militia Act. See Siegel,\nsupra, at 498, n. 120. Justice STEVENS further suggests that laws barring blacks from militia service could have been\nsaid to violate the \u201cright to bear arms.\u201d But under Justice STEVENS' reading of the Second Amendment (we think),\nthe protected right is the right to carry arms to the extent one is enrolled in the militia, not the right to be in the militia.\nPerhaps Justice STEVENS really does adopt the full-blown idiomatic meaning of \u201cbear arms,\u201d in which case every man\nand woman in this country has a right \u201cto be a soldier\u201d or even \u201cto wage war.\u201d In any case, it is clear to us that Aldridge's\nallusion to the existing Virginia \u201crestriction\u201d upon the right of free blacks \u201cto bear arms\u201d could only have referred to\n\u201claws prohibiting free blacks from keeping weapons,\u201d Siegel, supra, at 497\u2013498.\n22 Justice STEVENS' accusation that this is \u201cnot accurate,\u201d post, at 2843, is wrong. It is true it was the indictment that\ndescribed the right as \u201cbearing arms for a lawful purpose.\u201d But, in explicit reference to the right described in the\nindictment, the Court stated that \u201c[t]he second amendment declares that it [ i.e., the right of bearing arms for a lawful\npurpose] shall not be infringed.\u201d 92 U.S., at 553.\n23 With respect to Cruikshank's continuing validity on incorporation, a question not presented by this case, we note that\nCruikshank also said that the First Amendment did not apply against the States and did not engage in the sort of\nFourteenth Amendment inquiry required by our later cases. Our later decisions in Presser v. Illinois, 116 U.S. 252, 265,\n6 S.Ct. 580, 29 L.Ed. 615 (1886), and Miller v. Texas, 153 U.S. 535, 538, 14 S.Ct. 874, 38 L.Ed. 812 (1894), reaffirmed\nthat the Second Amendment applies only to the Federal Government.\n24 As for the \u201chundreds of judges,\u201d post, at 2823, who have relied on the view of the Second Amendment Justice STEVENS\nclaims we endorsed in Miller: If so, they overread Miller. And their erroneous reliance upon an uncontested and virtually\nunreasoned case cannot nullify the reliance of millions of Americans (as our historical analysis has shown) upon the\ntrue meaning of the right to keep and bear arms. In any event, it should not be thought that the cases decided by these\njudges would necessarily have come out differently under a proper interpretation of the right.\n25 Miller was briefly mentioned in our decision in Lewis v. United States, 445 U.S. 55, 100 S.Ct. 915, 63 L.Ed.2d 198 (1980),\nan appeal from a conviction for being a felon in possession of a firearm. The challenge was based on the contention\nthat the prior felony conviction had been unconstitutional. No Second Amendment claim was raised or briefed by any\nparty.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3746, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "548fb47c-8295-4687-86ca-eadab0daefe3": {"__data__": {"id_": "548fb47c-8295-4687-86ca-eadab0daefe3", "embedding": null, "metadata": {"page_label": "61", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "70f03fdc-17c1-4a2c-8499-fe56d2de4667", "node_type": "4", "metadata": {"page_label": "61", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "24be27c2414b4a5daf2ac31e1c76b9f2e98f677b597506c83775c1c057f1fab6", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "0a35eb35-ad0e-4b2a-a887-1ae52d0caf61", "node_type": "1", "metadata": {"page_label": "61", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b7bf2c9f5b29c404d40a0abcdfdf21b5be279f8b6259357cc322c1483babb87f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "And their erroneous reliance upon an uncontested and virtually\nunreasoned case cannot nullify the reliance of millions of Americans (as our historical analysis has shown) upon the\ntrue meaning of the right to keep and bear arms. In any event, it should not be thought that the cases decided by these\njudges would necessarily have come out differently under a proper interpretation of the right.\n25 Miller was briefly mentioned in our decision in Lewis v. United States, 445 U.S. 55, 100 S.Ct. 915, 63 L.Ed.2d 198 (1980),\nan appeal from a conviction for being a felon in possession of a firearm. The challenge was based on the contention\nthat the prior felony conviction had been unconstitutional. No Second Amendment claim was raised or briefed by any\nparty. In the course of rejecting the asserted challenge, the Court commented gratuitously, in a footnote, that \u201c[t]hese\nlegislative restrictions on the use of firearms are neither based upon constitutionally suspect criteria, nor do they trench\nupon any constitutionally protected liberties. See United States v. Miller ... (the Second Amendment guarantees no right\nto keep and bear a firearm that does not have \u2018some reasonable relationship to the preservation or efficiency of a well\nregulated militia\u2019).\u201d Id., at 65\u201366, n. 8, 100 S.Ct. 915 . The footnote then cites several Court of Appeals cases to the\nsame effect. It is inconceivable that we would rest our interpretation of the basic meaning of any guarantee of the Bill\nof Rights upon such a footnoted dictum in a case where the point was not at issue and was not argued.\n26 We identify these presumptively lawful regulatory measures only as examples; our list does not purport to be exhaustive.\n27 Justice BREYER correctly notes that this law, like almost all laws, would pass rational-basis scrutiny. Post, at 2850\n\u2013 2851. But rational-basis scrutiny is a mode of analysis we have used when evaluating laws under constitutional\ncommands that are themselves prohibitions on irrational laws. See, e.g., Engquist v. Oregon Dept. of Agriculture, 553\nU.S. 591, 602, 128 S.Ct. 2146, 2153 \u2013 2154, 2008 WL 2329768, *6\u20137, 170 L.Ed.2d 975 (2008). In those cases, \u201crational", "mimetype": "text/plain", "start_char_idx": 2988, "end_char_idx": 5163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c457b770-efbe-45ae-9abb-15f5915f50e7": {"__data__": {"id_": "c457b770-efbe-45ae-9abb-15f5915f50e7", "embedding": null, "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9117bb24-9114-44c6-a872-19b7b8539913", "node_type": "4", "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6a4c6dddbd98777ba217180a37c41fe3b3bdd1aa5a4f46c6d8f67dbdc2bd1fe1", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "e2a7ab99-f8f8-4c3f-8019-e9d46f67e496", "node_type": "1", "metadata": {}, "hash": "b4c14e840d7ac5bc0346f969a606ad3b183f2ce814b84396c239ebefd4f0c84d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 62\nbasis\u201d is not just the standard of scrutiny, but the very substance of the constitutional guarantee. Obviously, the same\ntest could not be used to evaluate the extent to which a legislature may regulate a specific, enumerated right, be it the\nfreedom of speech, the guarantee against double jeopardy, the right to counsel, or the right to keep and bear arms. See\nUnited States v. Carolene Products Co., 304 U.S. 144, 152, n. 4, 58 S.Ct. 778, 82 L.Ed. 1234 (1938) (\u201cThere may be\nnarrower scope for operation of the presumption of constitutionality [i.e., narrower than that provided by rational-basis\nreview] when legislation appears on its face to be within a specific prohibition of the Constitution, such as those of the\nfirst ten amendments ...\u201d). If all that was required to overcome the right to keep and bear arms was a rational basis,\nthe Second Amendment would be redundant with the separate constitutional prohibitions on irrational laws, and would\nhave no effect.\n28 McIntosh upheld the law against a claim that it violated the Equal Protection Clause by arbitrarily distinguishing between\nresidences and businesses. See 395 A.2d, at 755. One of the rational bases listed for that distinction was the legislative\nfinding \u201cthat for each intruder stopped by a firearm there are four gun-related accidents within the home.\u201d Ibid. That\ntradeoff would not bear mention if the statute did not prevent stopping intruders by firearms.\n29 The Supreme Court of Pennsylvania described the amount of five shillings in a contract matter in 1792 as \u201cnominal\nconsideration.\u201d Morris's Lessee v. Smith, 4 Dall. 119, 120, 1 L.Ed. 766 (Pa.1792) . Many of the laws cited punished\nviolation with fine in a similar amount; the 1783 Massachusetts gunpowder-storage law carried a somewhat larger fine\nof \u00a3 10 (200 shillings) and forfeiture of the weapon.\n1 There was some limited congressional activity earlier: A 10% federal excise tax on firearms was passed as part of the\nRevenue Act of 1918, 40 Stat. 1057, and in 1927 a statute was enacted prohibiting the shipment of handguns, revolvers,\nand other concealable weapons through the United States mails. Ch. 75, 44 Stat. 1059\u20131060 (hereinafter 1927 Act).\n2 Until the Fifth Circuit's decision in United States v. Emerson, 270 F.3d 203 (2001), every Court of Appeals to consider\nthe question had understood Miller to hold that the Second Amendment does not protect the right to possess and use\nguns for purely private, civilian purposes. See, e.g., United States v. Haney, 264 F.3d 1161, 1164\u20131166 (C.A.10 2001);\nUnited States v. Napier, 233 F.3d 394, 402\u2013404 (C.A.6 2000); Gillespie v. Indianapolis, 185 F.3d 693, 710\u2013711 (C.A.7\n1999); United States v. Scanio, No.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2908, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e2a7ab99-f8f8-4c3f-8019-e9d46f67e496": {"__data__": {"id_": "e2a7ab99-f8f8-4c3f-8019-e9d46f67e496", "embedding": null, "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9117bb24-9114-44c6-a872-19b7b8539913", "node_type": "4", "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6a4c6dddbd98777ba217180a37c41fe3b3bdd1aa5a4f46c6d8f67dbdc2bd1fe1", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "c457b770-efbe-45ae-9abb-15f5915f50e7", "node_type": "1", "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c0d235d7a73253fe7564322e77410f06faed82f921a41a37c7fc2fcceaa3489a", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "f68121b6-7ab1-4668-9610-b3a0322ed1a1", "node_type": "1", "metadata": {}, "hash": "babce9f665b0676eccb2abeec3275c9b4f4ee4aa1c5f227e953b9555ba053cca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Ch. 75, 44 Stat. 1059\u20131060 (hereinafter 1927 Act).\n2 Until the Fifth Circuit's decision in United States v. Emerson, 270 F.3d 203 (2001), every Court of Appeals to consider\nthe question had understood Miller to hold that the Second Amendment does not protect the right to possess and use\nguns for purely private, civilian purposes. See, e.g., United States v. Haney, 264 F.3d 1161, 1164\u20131166 (C.A.10 2001);\nUnited States v. Napier, 233 F.3d 394, 402\u2013404 (C.A.6 2000); Gillespie v. Indianapolis, 185 F.3d 693, 710\u2013711 (C.A.7\n1999); United States v. Scanio, No. 97\u20131584, 1998 WL 802060, *2 (C.A.2, Nov.12, 1998) (unpublished opinion); United\nStates v. Wright, 117 F.3d 1265, 1271\u20131274 (C.A.11 1997); United States v. Rybar, 103 F.3d 273, 285\u2013286 (C.A.3 1996);\nHickman v. Block, 81 F.3d 98, 100\u2013103 (C.A.9 1996); United States v. Hale, 978 F.2d 1016, 1018\u20131020 (C.A.8 1992);\nThomas v. City Council of Portland, 730 F.2d 41, 42 (C.A.1 1984) (per curiam); United States v. Johnson, 497 F.2d\n548, 550 (C.A.4 1974) (per curiam); United States v. Johnson, 441 F.2d 1134, 1136 (C.A.5 1971); see also Sandidge v.\nUnited States, 520 A.2d 1057, 1058\u20131059 (D.C.App.1987). And a number of courts have remained firm in their prior\npositions, even after considering Emerson. See, e.g., United States v. Lippman, 369 F.3d 1039, 1043\u20131045 (C.A.8 2004);\nUnited States v. Parker, 362 F.3d 1279, 1282\u20131284 (C.A.10 2004) ; United States v. Jackubowski, 63 Fed.Appx. 959,\n961 (C.A.7 2003) (unpublished opinion); Silveira v. Lockyer, 312 F.3d 1052, 1060\u20131066 (C.A.9 2002) ; United States\nv. Milheron, 231 F.Supp.2d 376, 378 (Me.2002); Bach v. Pataki, 289 F.Supp.2d 217, 224\u2013226 (N.D.N.Y .2003); United\nStates v. Smith, 56 M.J. 711, 716 (Air Force Ct. Crim. App. 2001).\n3 Our discussion in Lewis was brief but significant. Upholding a conviction for receipt of a firearm by a felon, we wrote:\n\u201cThese legislative restrictions on the use of firearms are neither based upon constitutionally suspect criteria, nor do they\ntrench upon any constitutionally protected liberties. See United States v. Miller, 307 U.S. 174, 178[, 59 S.Ct. 816, 83\nL.Ed. 1206] (1939) (the Second Amendment guarantees no right to keep and bear a firearm that does not have \u2018some\nreasonable relationship to the preservation or efficiency of a well regulated militia\u2019).\u201d 445 U.S., at 65 \u2013 66, n. 8, 100\nS.Ct. 915.\n4 See Vasquez v. Hillery, 474 U.S. 254, 265 \u2013 266, 106 S.Ct. 617, 88 L.Ed.2d 598 (1986) (\u201c[Stare decisis] permits society\nto presume that bedrock principles are founded in the law rather than in the proclivities of individuals, and thereby\ncontributes to the integrity of our constitutional system of government, both in appearance and in fact.", "mimetype": "text/plain", "start_char_idx": 2349, "end_char_idx": 5053, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f68121b6-7ab1-4668-9610-b3a0322ed1a1": {"__data__": {"id_": "f68121b6-7ab1-4668-9610-b3a0322ed1a1", "embedding": null, "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9117bb24-9114-44c6-a872-19b7b8539913", "node_type": "4", "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6a4c6dddbd98777ba217180a37c41fe3b3bdd1aa5a4f46c6d8f67dbdc2bd1fe1", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "e2a7ab99-f8f8-4c3f-8019-e9d46f67e496", "node_type": "1", "metadata": {"page_label": "62", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "55eaf1ba6c745f6e7867c081ddbe9da49fee09a691487b4dc868b0c635911db2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See United States v. Miller, 307 U.S. 174, 178[, 59 S.Ct. 816, 83\nL.Ed. 1206] (1939) (the Second Amendment guarantees no right to keep and bear a firearm that does not have \u2018some\nreasonable relationship to the preservation or efficiency of a well regulated militia\u2019).\u201d 445 U.S., at 65 \u2013 66, n. 8, 100\nS.Ct. 915.\n4 See Vasquez v. Hillery, 474 U.S. 254, 265 \u2013 266, 106 S.Ct. 617, 88 L.Ed.2d 598 (1986) (\u201c[Stare decisis] permits society\nto presume that bedrock principles are founded in the law rather than in the proclivities of individuals, and thereby\ncontributes to the integrity of our constitutional system of government, both in appearance and in fact. While stare\ndecisis is not an inexorable command, the careful observer will discern that any detours from the straight path of stare", "mimetype": "text/plain", "start_char_idx": 4397, "end_char_idx": 5186, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9a302642-0d11-4eb8-9ce1-5c7302ddcdd3": {"__data__": {"id_": "9a302642-0d11-4eb8-9ce1-5c7302ddcdd3", "embedding": null, "metadata": {"page_label": "63", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2de5941f-0a8b-42d9-ad57-2c7f696bbbbf", "node_type": "4", "metadata": {"page_label": "63", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "091b5a5d46c1576ce93e813cd69f614e0224828f571014c5357d8a0dc3131003", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "cb62514e-a30a-443c-a871-a02a475ef5ea", "node_type": "1", "metadata": {}, "hash": "4890d090227272354b9826acb15ff73cdd00868da86304f8e76dc289a5244989", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 63\ndecisis in our past have occurred for articulable reasons, and only when the Court has felt obliged \u2018to bring its opinions\ninto agreement with experience and with facts newly ascertained.\u2019 Burnet v. Coronado Oil & Gas Co., 285 U.S. 393,\n412[, 52 S.Ct. 443, 76 L.Ed. 815] (1932) (Brandeis, J., dissenting)\u201d); Pollock v. Farmers' Loan & Trust Co., 157 U.S.\n429, 652, 15 S.Ct. 673, 39 L.Ed. 759 (1895) (White, J., dissenting) (\u201cThe fundamental conception of a judicial body is\nthat of one hedged about by precedents which are binding on the court without regard to the personality of its members.\nBreak down this belief in judicial continuity, and let it be felt that on great constitutional questions this court is to depart\nfrom the settled conclusions of its predecessors, and to determine them all according to the mere opinion of those who\ntemporarily fill its bench, and our Constitution will, in my judgment, be bereft of value and become a most dangerous\ninstrument to the rights and liberties of the people\u201d).\n5 The Virginia Declaration of Rights \u00b6 13 (1776) provided: \u201cThat a well-regulated Militia, composed of the body of the\npeople, trained to arms, is the proper, natural, and safe defence of a free State; that Standing Armies, in time of peace,\nshould be avoided, as dangerous to liberty; and that, in all cases, the military should be under strict subordination to,\nand governed by, the civil power.\u201d 1 B. Schwartz, The Bill of Rights 235 (1971) (hereinafter Schwartz).\nMaryland's Declaration of Rights, Arts. XXV\u2013XXVII (1776), provided: \u201cThat a well-regulated militia is the proper and\nnatural defence of a free government\u201d; \u201cThat standing armies are dangerous to liberty, and ought not to be raised or\nkept up, without consent of the Legislature\u201d; \u201cThat in all cases, and at all times, the military ought to be under strict\nsubordination to and control of the civil power.\u201d 1 Schwartz 282.\nDelaware's Declaration of Rights \u00a7\u00a7 18\u201320 (1776) provided: \u201cThat a well regulated militia is the proper, natural, and\nsafe defence of a free government\u201d; \u201cThat standing armies are dangerous to liberty, and ought not to be raised or kept\nup without the consent of the Legislature\u201d; \u201cThat in all cases and at all times the military ought to be under strict\nsubordination to and governed by the civil power.\u201d 1 Schwartz 278.\nFinally, New Hampshire's Bill of Rights, Arts. XXIV\u2013XXVI (1783), read: \u201cA well regulated militia is the proper, natural,\nand sure defence of a state\u201d; \u201cStanding armies are dangerous to liberty, and ought not to be raised or kept up without\nconsent of the legislature\u201d; \u201cIn all cases, and at all times, the military ought to be under strict subordination to, and\ngoverned by the civil power.\u201d 1 Schwartz 378. It elsewhere provided: \u201cNo person who is conscientiously scrupulous\nabout the lawfulness of bearing arms, shall be compelled thereto, provided he will pay an equivalent.\u201d Id., at 377 (Art.\nXIII).\n6 The language of the Amendment's preamble also closely tracks the language of a number of contemporaneous state\nmilitia statutes, many of which began with nearly identical statements. Georgia's 1778 militia statute, for example,\nbegan, \u201c[w]hereas a well ordered and disciplined Militia, is essentially necessary, to the Safety, peace and prosperity,\nof this State.\u201d Act of Nov. 15, 1778, 19 Colonial Records of the State of Georgia 103 (Candler ed.1911 (pt. 2)). North\nCarolina's 1777 militia statute started with this language: \u201c[w]hereas a well regulated Militia is absolutely necessary\nfor the defending and securing the Liberties of a free State.\u201d N.C. Sess. Laws ch. 1, \u00a7 I, p. 1.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3822, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cb62514e-a30a-443c-a871-a02a475ef5ea": {"__data__": {"id_": "cb62514e-a30a-443c-a871-a02a475ef5ea", "embedding": null, "metadata": {"page_label": "63", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2de5941f-0a8b-42d9-ad57-2c7f696bbbbf", "node_type": "4", "metadata": {"page_label": "63", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "091b5a5d46c1576ce93e813cd69f614e0224828f571014c5357d8a0dc3131003", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9a302642-0d11-4eb8-9ce1-5c7302ddcdd3", "node_type": "1", "metadata": {"page_label": "63", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "23fe728a2626b1e0902cf5e7c4273ba1750e1d1bb77b634520c77b3983b719d7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "XIII).\n6 The language of the Amendment's preamble also closely tracks the language of a number of contemporaneous state\nmilitia statutes, many of which began with nearly identical statements. Georgia's 1778 militia statute, for example,\nbegan, \u201c[w]hereas a well ordered and disciplined Militia, is essentially necessary, to the Safety, peace and prosperity,\nof this State.\u201d Act of Nov. 15, 1778, 19 Colonial Records of the State of Georgia 103 (Candler ed.1911 (pt. 2)). North\nCarolina's 1777 militia statute started with this language: \u201c[w]hereas a well regulated Militia is absolutely necessary\nfor the defending and securing the Liberties of a free State.\u201d N.C. Sess. Laws ch. 1, \u00a7 I, p. 1. And Connecticut's 1782\n\u201cActs and Laws Regulating the Militia\u201d began, \u201c[w]hereas the Defence and Security of all free States depends (under\nGod) upon the Exertions of a well regulated Militia, and the Laws heretofore enacted have proved inadequate to the End\ndesigned.\u201d Conn. Acts and Laws p. 585 (hereinafter 1782 Conn. Acts).\nThese state militia statutes give content to the notion of a \u201cwell-regulated militia.\u201d They identify those persons who\ncompose the State's militia; they create regiments, brigades, and divisions; they set forth command structures and provide\nfor the appointment of officers; they describe how the militia will be assembled when necessary and provide for training;\nand they prescribe penalties for nonappearance, delinquency, and failure to keep the required weapons, ammunition,\nand other necessary equipment. The obligation of militia members to \u201ckeep\u201d certain specified arms is detailed further,\nn. 12, infra, and accompanying text.\n7 The sources the Court cites simply do not support the proposition that some \u201clogical connection\u201d between the two\nclauses is all that is required. The Dwarris treatise, for example, merely explains that \u201c[t]he general purview of a statute", "mimetype": "text/plain", "start_char_idx": 3129, "end_char_idx": 5024, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ad3150f-a64b-414f-aabd-bc167128898d": {"__data__": {"id_": "9ad3150f-a64b-414f-aabd-bc167128898d", "embedding": null, "metadata": {"page_label": "64", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0b988ea1-8646-4c73-ba8e-a111123a9719", "node_type": "4", "metadata": {"page_label": "64", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e1b1cf6d34926485ca819a53177c69d4ba1458a50bbf2c34047d8c4b913520b6", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "3f131cd0-709c-42bb-8811-6fe27ad78d00", "node_type": "1", "metadata": {}, "hash": "1f7e24da9aefd7540e0347ad03187abf9c26cddc9d6f50e07e7513f2ff6b328b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 64\nis not ... necessarily to be restrained by any words introductory to the enacting clauses.\u201d F. Dwarris, A General Treatise\non Statutes 268 (P. Potter ed. 1871) (emphasis added). The treatise proceeds to caution that \u201cthe preamble cannot control\nthe enacting part of a statute, which is expressed in clear and unambiguous terms, yet, if any doubt arise on the words\nof the enacting part, the preamble may be resorted to, to explain it.\u201d Id., at 269. Sutherland makes the same point.\nExplaining that \u201c[i]n the United States preambles are not as important as they are in England,\u201d the treatise notes that in\nthe United States \u201cthe settled principle of law is that the preamble cannot control the enacting part of the statute in cases\nwhere the enacting part is expressed in clear, unambiguous terms.\u201d 2A N. Singer, Sutherland on Statutory Construction\n\u00a7 47.04, p. 146 (rev. 5th ed.1992) (emphasis added). Surely not even the Court believes that the Amendment's operative\nprovision, which, though only 14 words in length, takes the Court the better part of 18 pages to parse, is perfectly \u201cclear\nand unambiguous.\u201d\n8 The Court's repeated citation to the dissenting opinion in Muscarello v. United States, 524 U.S. 125, 118 S.Ct. 1911, 141\nL.Ed.2d 111 (1998), ante, at 2793, 2794, as illuminating the meaning of \u201cbear arms,\u201d borders on the risible. At issue\nin Muscarello was the proper construction of the word \u201ccarries\u201d in 18 U.S.C. \u00a7 924(c) (1994 ed.) ; the dissent in that\ncase made passing reference to the Second Amendment only in the course of observing that both the Constitution and\nBlack's Law Dictionary suggested that something more active than placement of a gun in a glove compartment might\nbe meant by the phrase \u201c carries a firearm.' \u201d 524 U.S., at 143, 118 S.Ct. 1911.\n9 Amici professors of linguistics and English reviewed uses of the term \u201cbear arms\u201d in a compilation of books, pamphlets,\nand other sources disseminated in the period between the Declaration of Independence and the adoption of the Second\nAmendment. See Brief for Professors of Linguistics and English as 23\u201325. Amici determined that of 115 texts that\nemployed the term, all but five usages were in a clearly military context, and in four of the remaining five instances,\nfurther qualifying language conveyed a different meaning.\nThe Court allows that the phrase \u201cbear Arms\u201d did have as an idiomatic meaning, \u201c \u2018to serve as a soldier, do military\nservice, fight,\u2019 \u201d ante, at 2794, but asserts that it \u201c unequivocally bore that idiomatic meaning only when followed by\nthe preposition \u2018against,\u2019 which was in turn followed by the target of the hostilities,\u201d ante, at 2794. But contemporary\nsources make clear that the phrase \u201cbear arms\u201d was often used to convey a military meaning without those additional\nwords. See, e.g., To the Printer, Providence Gazette (May 27, 1775) (\u201cBy the common estimate of three millions of\npeople in America, allowing one in five to bear arms, there will be found 600,000 fighting men\u201d); Letter of Henry\nLaurens to the Mass. Council (Jan. 21, 1778), in Letters of Delegates to Congress 1774\u20131789, p. 622 (P. Smith ed. 1981)\n(\u201cCongress were yesterday informed ... that those Canadians who returned from Saratoga ... had been compelled by\nSir Guy Carleton to bear Arms\u201d); Of the Manner of Making War Among the Indians of North\u2013America, Connecticut\nCourant (May 23, 1785) (\u201cThe Indians begin to bear arms at the age of fifteen, and lay them aside when they arrive\nat the age of sixty.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3691, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3f131cd0-709c-42bb-8811-6fe27ad78d00": {"__data__": {"id_": "3f131cd0-709c-42bb-8811-6fe27ad78d00", "embedding": null, "metadata": {"page_label": "64", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0b988ea1-8646-4c73-ba8e-a111123a9719", "node_type": "4", "metadata": {"page_label": "64", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e1b1cf6d34926485ca819a53177c69d4ba1458a50bbf2c34047d8c4b913520b6", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9ad3150f-a64b-414f-aabd-bc167128898d", "node_type": "1", "metadata": {"page_label": "64", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "373bc1fc9adcbcd377e82f7ce6471bd954ee9b3e6b36dfc1be85e0fee0ea47c6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "See, e.g., To the Printer, Providence Gazette (May 27, 1775) (\u201cBy the common estimate of three millions of\npeople in America, allowing one in five to bear arms, there will be found 600,000 fighting men\u201d); Letter of Henry\nLaurens to the Mass. Council (Jan. 21, 1778), in Letters of Delegates to Congress 1774\u20131789, p. 622 (P. Smith ed. 1981)\n(\u201cCongress were yesterday informed ... that those Canadians who returned from Saratoga ... had been compelled by\nSir Guy Carleton to bear Arms\u201d); Of the Manner of Making War Among the Indians of North\u2013America, Connecticut\nCourant (May 23, 1785) (\u201cThe Indians begin to bear arms at the age of fifteen, and lay them aside when they arrive\nat the age of sixty. Some nations to the southward, I have been informed, do not continue their military exercises after\nthey are fifty\u201d); 28 Journals of the Continental Congress 1030 (G. Hunt ed. 1910) (\u201cThat hostages be mutually given\nas a security that the Convention troops and those received in exchange for them do not bear arms prior to the first day\nof May next\u201d); H.R. J., 9th Cong., 1st Sess., 217 (Feb. 12, 1806) (\u201cWhereas the commanders of British armed vessels\nhave impressed many American seamen, and compelled them to bear arms on board said vessels, and assist in fighting\ntheir battles with nations in amity and peace with the United States\u201d); H.R. J., 15th Cong., 2d Sess., 182\u2013183 (Jan. 14,\n1819) (\u201c[The petitioners] state that they were residing in the British province of Canada, at the commencement of the\nlate war, and that owing to their attachment to the United States, they refused to bear arms, when called upon by the\nBritish authorities ...\u201d).\n10 Aymette v. State, 21 Tenn. 154, 156 (1840) , a case we cited in Miller, further confirms this reading of the phrase. In\nAymette, the Tennessee Supreme Court construed the guarantee in Tennessee's 1834 Constitution that \u201c \u2018the free white\nmen of this State, have a right to keep and bear arms for their common defence.\u2019 \u201d Explaining that the provision was\nadopted with the same goals as the Federal Constitution's Second Amendment, the court wrote: \u201cThe words \u2018bear arms' ...\nhave reference to their military use, and were not employed to mean wearing them about the person as part of the dress.\nAs the object for which the right to keep and bear arms is secured, is of general and public nature, to be exercised", "mimetype": "text/plain", "start_char_idx": 2993, "end_char_idx": 5358, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "98f2f163-8bb7-4021-9a9e-fd4c87b2e1ae": {"__data__": {"id_": "98f2f163-8bb7-4021-9a9e-fd4c87b2e1ae", "embedding": null, "metadata": {"page_label": "65", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a6667b95-a83c-40b9-91e6-8bd41e77f90e", "node_type": "4", "metadata": {"page_label": "65", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "be1c9ac8ef36b4b2ce1381bc0c62ad7d030095fe2c56fa4565b13af0047a2c89", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "a4d9224b-eee6-4a07-a1d1-252dd935e981", "node_type": "1", "metadata": {}, "hash": "c19bf42b407612f0401f16f5c3999d52fbfabe71cfb0a09e549bfbd63cff1639", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 65\nby the people in a body, for their common defence, so the arms, the right to keep which is secured, are such as are\nusually employed in civilized warfare, and that constitute the ordinary military equipment.\u201d 21 Tenn., at 158. The court\nelaborated: \u201c[W]e may remark, that the phrase, \u2018 bear arms,\u2019 is used in the Kentucky Constitution as well as our own,\nand implies, as has already been suggested, their military use .... A man in the pursuit of deer, elk, and buffaloes, might\ncarry his rifle every day, for forty years, and, yet, it would never be said of him, that he had borne arms, much less\ncould it be said, that a private citizen bears arms, because he has a dirk or pistol concealed under his clothes, or a spear\nin a cane.\u201d Id., at 161.\n11 As lucidly explained in the context of a statute mandating a sentencing enhancement for any person who \u201cuses\u201d a firearm\nduring a crime of violence or drug trafficking crime:\n\u201cTo use an instrumentality ordinarily means to use it for its intended purpose. When someone asks, \u2018Do you use a cane?,\u2019\nhe is not inquiring whether you have your grandfather's silver-handled walking stick on display in the hall; he wants\nto know whether you walk with a cane. Similarly, to speak of \u2018using a firearm\u2019 is to speak of using it for its distinctive\npurpose, i.e., as a weapon. To be sure, one can use a firearm in a number of ways, including as an article of exchange,\njust as one can \u2018use\u2019 a cane as a hall decoration\u2014but that is not the ordinary meaning of \u2018using\u2019 the one or the other. The\nCourt does not appear to grasp the distinction between how a word can be used and how it ordinarily is used.\u201d Smith\nv. United States, 508 U.S. 223, 242, 113 S.Ct. 2050, 124 L.Ed.2d 138 (1993) (SCALIA, J., dissenting) (some internal\nquotation marks, footnotes, and citations omitted).\n12 See also Act for the regulating, training, and arraying of the Militia, ... of the State, 1781 N.J. Laws, ch. XIII, \u00a7 12,\np. 43 (\u201cAnd be it Enacted, That each Person enrolled as aforesaid, shall also keep at his Place of Abode one Pound of\ngood merchantable Gunpowder and three Pounds of Ball sized to his Musket or Rifle\u201d (emphasis added)); An Act for\nestablishing a Militia, 1785 Del. Laws \u00a7 7, p. 59 (\u201cAnd be it enacted, That every person between the ages of eighteen and\nfifty ... shall at his own expence, provide himself ... with a musket or firelock, with a bayonet, a cartouch box to contain\ntwenty three cartridges, a priming wire, a brush and six flints, all in good order, on or before the first day of April next,\nunder the penalty of forty shillings, and shall keep the same by him at all times, ready and fit for service, under the penalty\nof two shillings and six pence for each neglect or default thereof on every muster day\u201d (second emphasis added)); 1782\nConn. Acts p. 590 (\u201cAnd it shall be the duty of the Regional Quarter\u2013Master to provide and keep a sufficient quantity\nof Ammunition and warlike stores for the use of their respective Regiments, to be kept in such Place or Places as shall\nbe ordered by the Field Officers\u201d (emphasis added)).\n13 The Court notes that the First Amendment protects two separate rights with the phrase \u201cthe \u2018right [singular] of the people\npeaceably to assemble, and to petition the Government for a redress of grievances.\u2019 \u201d Ante, at 2797. But this only proves\nthe point: In contrast to the language quoted by the Court, the Second Amendment does not protect a \u201cright to keep and\nto bear arms,\u201d but rather a \u201cright to keep and bear Arms.\u201d The State Constitutions cited by the Court are distinguishable\non the same ground.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3794, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a4d9224b-eee6-4a07-a1d1-252dd935e981": {"__data__": {"id_": "a4d9224b-eee6-4a07-a1d1-252dd935e981", "embedding": null, "metadata": {"page_label": "65", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a6667b95-a83c-40b9-91e6-8bd41e77f90e", "node_type": "4", "metadata": {"page_label": "65", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "be1c9ac8ef36b4b2ce1381bc0c62ad7d030095fe2c56fa4565b13af0047a2c89", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "98f2f163-8bb7-4021-9a9e-fd4c87b2e1ae", "node_type": "1", "metadata": {"page_label": "65", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "309f38556e3715fd7ac323e179ca9b3d490d2ee67f9cd96e54028d3bf70f9b27", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Acts p. 590 (\u201cAnd it shall be the duty of the Regional Quarter\u2013Master to provide and keep a sufficient quantity\nof Ammunition and warlike stores for the use of their respective Regiments, to be kept in such Place or Places as shall\nbe ordered by the Field Officers\u201d (emphasis added)).\n13 The Court notes that the First Amendment protects two separate rights with the phrase \u201cthe \u2018right [singular] of the people\npeaceably to assemble, and to petition the Government for a redress of grievances.\u2019 \u201d Ante, at 2797. But this only proves\nthe point: In contrast to the language quoted by the Court, the Second Amendment does not protect a \u201cright to keep and\nto bear arms,\u201d but rather a \u201cright to keep and bear Arms.\u201d The State Constitutions cited by the Court are distinguishable\non the same ground.\n14 The Court's atomistic, word-by-word approach to construing the Amendment calls to mind the parable of the six blind\nmen and the elephant, famously set in verse by John Godfrey Saxe. The Poems of John Godfrey Saxe 135\u2013136 (1873).\nIn the parable, each blind man approaches a single elephant; touching a different part of the elephant's body in isolation,\neach concludes that he has learned its true nature. One touches the animal's leg, and concludes that the elephant is like\na tree; another touches the trunk and decides that the elephant is like a snake; and so on. Each of them, of course, has\nfundamentally failed to grasp the nature of the creature.\n15 By \u201c \u2018split[ting] the atom of sovereignty,\u2019 \u201d the Framers created \u201c \u2018two political capacities, one state and one federal,\neach protected from incursion by the other. The resulting Constitution created a legal system unprecedented in form\nand design, establishing two orders of government, each with its own direct relationship, its own privity, its own set of\nmutual rights and obligations to the people who sustain it and are governed by it.\u2019 \u201d Saenz v. Roe, 526 U.S. 489, 504, n.", "mimetype": "text/plain", "start_char_idx": 3001, "end_char_idx": 4936, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8058d037-ec0e-4218-8911-4cd1d325fb0a": {"__data__": {"id_": "8058d037-ec0e-4218-8911-4cd1d325fb0a", "embedding": null, "metadata": {"page_label": "66", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4402408b-272d-4e52-8a62-6dd7dfc8ec19", "node_type": "4", "metadata": {"page_label": "66", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f4c76a5dc657c6f4108db8ee73e14777bd6a1bf07bc47a488ddb49727725968f", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "bae5443b-c8a1-47a7-9068-0628106ec594", "node_type": "1", "metadata": {}, "hash": "8a149f0d250e3ec6066e1cadfba31646906168f6cd32596000f777f4642635c4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 66\n17, 119 S.Ct. 1518, 143 L.Ed.2d 689 (1999) (quoting U.S. Term Limits, Inc. v. Thornton, 514 U.S. 779, 838, 115 S.Ct.\n1842, 131 L.Ed.2d 881 (1995) (KENNEDY, J., concurring)).\n16 Indeed, this was one of the grievances voiced by the colonists: Paragraph 13 of the Declaration of Independence charged\nof King George, \u201cHe has kept among us, in times of peace, Standing Armies without the Consent of our legislatures.\u201d\n17 George Washington, writing to Congress on September 24, 1776, warned that for Congress \u201c[t]o place any dependance\nupon Militia, is, assuredly, resting upon a broken staff.\u201d 6 Writings of George Washington 106, 110 (J. Fitzpatrick\ned.1932). Several years later he reiterated this view in another letter to Congress: \u201cRegular Troops alone are equal to the\nexigencies of modern war, as well for defence as offence .... No Militia will ever acquire the habits necessary to resist\na regular force .... The firmness requisite for the real business of fighting is only to be attained by a constant course\nof discipline and service.\u201d 20 id., at 49, 49\u201350 (Sept. 15, 1780). And Alexander Hamilton argued this view in many\ndebates. In 1787, he wrote:\n\u201cHere I expect we shall be told that the militia of the country is its natural bulwark, and would be at all times equal\nto the national defense. This doctrine, in substance, had like to have lost us our independence.... War, like most other\nthings, is a science to be acquired and perfected by diligence, by perseverance, by time, and by practice.\u201d The Federalist\nNo. 25, p. 166 (C. Rossiter ed.1961).\n18 \u201c[B]ut no Appropriation of Money to that Use [raising and supporting Armies] shall be for a longer Term than two\nYears.\u201d U.S. Const., Art. I, \u00a7 8, cl. 12\n19 This \u201ccalling forth\u201d power was only permitted in order for the militia \u201cto execute the Laws of the Union, suppress\nInsurrections and repel Invasions.\u201d Art. I, \u00a7 8, cl. 15.\n20 The Court assumes\u2014incorrectly, in my view\u2014that even when a state militia was not called into service, Congress would\nhave had the power to exclude individuals from enlistment in that state militia. See ante, at 2802. That assumption is\nnot supported by the text of the Militia Clauses of the original Constitution, which confer upon Congress the power to\n\u201corganiz[e], ar[m], and disciplin[e], the Militia,\u201d Art. I, \u00a7 8, cl. 16, but not the power to say who will be members of\na state militia. It is also flatly inconsistent with the Second Amendment. The States' power to create their own militias\nprovides an easy answer to the Court's complaint that the right as I have described it is empty because it merely guarantees\n\u201ccitizens' right to use a gun in an organization from which Congress has plenary authority to exclude them.\u201d Ante, at 2802.\n21 In addition to the cautionary references to standing armies and to the importance of civil authority over the military, each\nof the proposals contained a guarantee that closely resembled the language of what later became the Third Amendment.\nThe 18th proposal from Virginia and North Carolina read: \u201cThat no soldier in time of peace ought to be quartered in any\nhouse without the consent of the owner, and in time of war in such manner only as the law directs.\u201d 3 Elliot 659. And\nNew York's language read: \u201cThat in time of Peace no Soldier ought to be quartered in any House without the consent of\nthe Owner, and in time of War only by the Civil Magistrate in such manner as the Laws may direct.\u201d 2 Schwartz 912.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3659, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bae5443b-c8a1-47a7-9068-0628106ec594": {"__data__": {"id_": "bae5443b-c8a1-47a7-9068-0628106ec594", "embedding": null, "metadata": {"page_label": "66", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4402408b-272d-4e52-8a62-6dd7dfc8ec19", "node_type": "4", "metadata": {"page_label": "66", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f4c76a5dc657c6f4108db8ee73e14777bd6a1bf07bc47a488ddb49727725968f", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "8058d037-ec0e-4218-8911-4cd1d325fb0a", "node_type": "1", "metadata": {"page_label": "66", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "61116a20f3a38e6c0e34e5508229846720c3203fc41d3a113ce8cf7239752a16", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "21 In addition to the cautionary references to standing armies and to the importance of civil authority over the military, each\nof the proposals contained a guarantee that closely resembled the language of what later became the Third Amendment.\nThe 18th proposal from Virginia and North Carolina read: \u201cThat no soldier in time of peace ought to be quartered in any\nhouse without the consent of the owner, and in time of war in such manner only as the law directs.\u201d 3 Elliot 659. And\nNew York's language read: \u201cThat in time of Peace no Soldier ought to be quartered in any House without the consent of\nthe Owner, and in time of War only by the Civil Magistrate in such manner as the Laws may direct.\u201d 2 Schwartz 912.\n22 \u201cTenth, That no standing Army shall be Kept up in time of Peace unless with the consent of three fourths of the Members\nof each branch of Congress, nor shall Soldiers in Time of Peace be quartered upon private Houses with out the consent\nof the Owners.\u201d Id., at 761.\n23 Madison explained in a letter to Richard Peters, Aug. 19, 1789, the paramount importance of preparing a list of\namendments to placate those States that had ratified the Constitution in reliance on a commitment that amendments\nwould follow: \u201cIn many States the [Constitution] was adopted under a tacit compact in [favor] of some subsequent\nprovisions on this head. In [Virginia]. It would have been certainly rejected, had no assurances been given by its\nadvocates that such provisions would be pursued. As an honest man I feel my self bound by this consideration.\u201d Creating\nthe Bill of Rights 281, 282 (H. Veit, K. Bowling, & C. Bickford eds.1991) (hereinafter Veit).", "mimetype": "text/plain", "start_char_idx": 2944, "end_char_idx": 4600, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23105f73-d96e-4520-ba21-b824675c5639": {"__data__": {"id_": "23105f73-d96e-4520-ba21-b824675c5639", "embedding": null, "metadata": {"page_label": "67", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "137bceab-370b-4526-b524-5d373b9cca23", "node_type": "4", "metadata": {"page_label": "67", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c893d862d0c0d71b6c4aa675cd7f58863d7551aadf784302e5bd36c1f79a1a2a", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "3a927d8f-e5a7-45af-895f-c8963ae0a533", "node_type": "1", "metadata": {}, "hash": "209d6641a4193ad0ed2b5bf51b76549e1a1edf442cdded8185bdb3350ceb2f29", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 67\n24 The adopted language, Virginia Declaration of Rights \u00b6 13 (1776), read as follows: \u201cThat a well-regulated Militia,\ncomposed of the body of the people, trained to arms, is the proper, natural, and safe defence of a free State; that Standing\nArmies, in time of peace, should be avoided as dangerous to liberty; and that, in all cases, the military should be under\nstrict subordination to, and governed by, the civil power.\u201d 1 Schwartz 235.\n25 Veit 182. This was the objection voiced by Elbridge Gerry, who went on to remark, in the next breath: \u201cWhat, sir, is\nthe use of a militia? It is to prevent the establishment of a standing army, the bane of liberty .... Whenever government\nmean to invade the rights and liberties of the people, they always attempt to destroy the militia, in order to raise an\narmy upon their ruins.\u201d Ibid.\n26 The failed Maryland proposals contained similar language. See supra, at 2834.\n27 The Court suggests that this historical analysis casts the Second Amendment as an \u201codd outlier,\u201d ante, at 2803; if by\n\u201coutlier,\u201d the Court means that the Second Amendment was enacted in a unique and novel context, and responded\nto the particular challenges presented by the Framers' federalism experiment, I have no quarrel with the Court's\ncharacterization.\n28 The Court's fixation on the last two types of sources is particularly puzzling, since both have the same characteristics\nas postenactment legislative history, which is generally viewed as the least reliable source of authority for ascertaining\nthe intent of any provision's drafters. As has been explained:\n\u201cThe legislative history of a statute is the history of its consideration and enactment. \u2018Subsequent legislative history\u2019\u2014\nwhich presumably means the post-enactment history of a statute's consideration and enactment\u2014is a contradiction in\nterms. The phrase is used to smuggle into judicial consideration legislators' expression not of what a bill currently under\nconsideration means (which, the theory goes, reflects what their colleagues understood they were voting for), but of\nwhat a law previously enacted means. ... In my opinion, the views of a legislator concerning a statute already enacted\nare entitled to no more weight than the views of a judge concerning a statute not yet passed.\u201d Sullivan v. Finkelstein,\n496 U.S. 617, 631\u2013632, 110 S.Ct. 2658, 110 L.Ed.2d 563 (1990) (SCALIA, J., concurring in part).\n29 The Court stretches to derive additional support from scattered state-court cases primarily concerned with state\nconstitutional provisions. See ante, at 2807 \u2013 2810. To the extent that those state courts assumed that the Second\nAmendment was coterminous with their differently worded state constitutional arms provisions, their discussions were\nof course dicta. Moreover, the cases on which the Court relies were decided between 30 and 60 years after the ratification\nof the Second Amendment, and there is no indication that any of them engaged in a careful textual or historical analysis\nof the federal constitutional provision. Finally, the interpretation of the Second Amendment advanced in those cases is\nnot as clear as the Court apparently believes. In Aldridge v. Commonwealth, 4 Va. 447, 2 Va. Cas. 447 (Gen.Ct.1824), for\nexample, a Virginia court pointed to the restriction on free blacks' \u201cright to bear arms\u201d as evidence that the protections\nof the State and Federal Constitutions did not extend to free blacks. The Court asserts that \u201c[t]he claim was obviously\nnot that blacks were prevented from carrying guns in the militia .\u201d Ante, at 2808. But it is not obvious at all. For in\nmany States, including Virginia, free blacks during the colonial period were prohibited from carrying guns in the militia,\ninstead being required to \u201cmuste[r] without arms\u201d; they were later barred from serving in the militia altogether. See\nSiegel, The Federal Government's Power to Enact Color\u2013Conscious Laws: An Originalist Inquiry, 92 Nw. U.L.Rev.\n477, 497\u2013498, and n. 120 (1998).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4182, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3a927d8f-e5a7-45af-895f-c8963ae0a533": {"__data__": {"id_": "3a927d8f-e5a7-45af-895f-c8963ae0a533", "embedding": null, "metadata": {"page_label": "67", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "137bceab-370b-4526-b524-5d373b9cca23", "node_type": "4", "metadata": {"page_label": "67", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c893d862d0c0d71b6c4aa675cd7f58863d7551aadf784302e5bd36c1f79a1a2a", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "23105f73-d96e-4520-ba21-b824675c5639", "node_type": "1", "metadata": {"page_label": "67", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "256abc72d2d1c4f27a57352bce73d1f9d3a18c218b22bfa79ee42d911f7bcd88", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Cas. 447 (Gen.Ct.1824), for\nexample, a Virginia court pointed to the restriction on free blacks' \u201cright to bear arms\u201d as evidence that the protections\nof the State and Federal Constitutions did not extend to free blacks. The Court asserts that \u201c[t]he claim was obviously\nnot that blacks were prevented from carrying guns in the militia .\u201d Ante, at 2808. But it is not obvious at all. For in\nmany States, including Virginia, free blacks during the colonial period were prohibited from carrying guns in the militia,\ninstead being required to \u201cmuste[r] without arms\u201d; they were later barred from serving in the militia altogether. See\nSiegel, The Federal Government's Power to Enact Color\u2013Conscious Laws: An Originalist Inquiry, 92 Nw. U.L.Rev.\n477, 497\u2013498, and n. 120 (1998). But my point is not that the Aldridge court endorsed my view of the Amendment\u2014\nplainly it did not, as the premise of the relevant passage was that the Second Amendment applied to the States. Rather,\nmy point is simply that the court could have understood the Second Amendment to protect a militia-focused right, and\nthus that its passing mention of the right to bear arms provides scant support for the Court's position.\n30 The Government argued in its brief:\n\u201c[I]t would seem that the early English law did not guarantee an unrestricted right to bear arms. Such recognition as\nexisted of a right in the people to keep and bear arms appears to have resulted from oppression by rulers who disarmed", "mimetype": "text/plain", "start_char_idx": 3408, "end_char_idx": 4879, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8abfeb21-760e-4235-b5a1-e5e0c36919d2": {"__data__": {"id_": "8abfeb21-760e-4235-b5a1-e5e0c36919d2", "embedding": null, "metadata": {"page_label": "68", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "433e5758-8a5a-408a-b537-6e55204f9f9b", "node_type": "4", "metadata": {"page_label": "68", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e0021b46a2a64dc15ffc08a83f0d5ff06694ecfdc38b6972d1ec4895570d5eec", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "8f0045a4-502e-4c25-9e1a-8d9366e86ef5", "node_type": "1", "metadata": {}, "hash": "7294024522d83fe0631872e1e6af603cb7c6c936b84c63d88fe1234f2ede269f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 68\ntheir political opponents and who organized large standing armies which were obnoxious and burdensome to the people.\nThis right, however, it is clear, gave sanction only to the arming of the people as a body to defend their rights against\ntyrannical and unprincipled rulers. It did not permit the keeping of arms for purposes of private defense.\u201d Brief for\nUnited States in United States v. Miller, O.T.1938, No. 696, pp. 11\u201312 (citations omitted). The Government then cited\nat length the Tennessee Supreme Court's opinion in Aymette, 21 Tenn. 154, which further situated the English Bill of\nRights in its historical context. See n. 10, supra.\n31 Moreover, it was the Crown, not Parliament, that was bound by the English provision; indeed, according to some\nprominent historians, Article VII is best understood not as announcing any individual right to unregulated firearm\nownership (after all, such a reading would fly in the face of the text), but as an assertion of the concept of parliamentary\nsupremacy. See Brief for Jack N. Rakove et al. as Amici Curiae 6\u20139.\n32 For example, St. George Tucker, on whom the Court relies heavily, did not consistently adhere to the position that the\nAmendment was designed to protect the \u201cBlackstonian\u201d self-defense right, ante, at 2805. In a series of unpublished\nlectures, Tucker suggested that the Amendment should be understood in the context of the compromise over military\npower represented by the original Constitution and the Second and Tenth Amendments:\n\u201cIf a State chooses to incur the expense of putting arms into the Hands of its own Citizens for their defense, it would\nrequire no small ingenuity to prove that they have no right to do it, or that it could by any means contravene the Authority\nof the federal Govt. It may be alleged indeed that this might be done for the purpose of resisting the laws of the federal\nGovernment, or of shaking off the Union: to which the plainest answer seems to be, that whenever the States think\nproper to adopt either of these measures, they will not be with-held by the fear of infringing any of the powers of the\nfederal Government. But to contend that such a power would be dangerous for the reasons above-mentioned, would be\nsubversive of every principle of Freedom in our Government; of which the first Congress appears to have been sensible\nby proposing an Amendment to the Constitution, which has since been ratified and has become part of it, viz., \u2018That a\nwell regulated militia being necessary to the Security of a free State, the right of the people to keep & bear arms shall\nnot be infringed.\u2019 To this we may add that this power of arming the militia, is not one of those prohibited to the States\nby the Constitution, and, consequently, is reserved to them under the twelfth Article of the ratified aments.\u201d 4 S. Tucker,\nTen Notebooks of Law Lectures, 1790s, pp. 127 \u2013 128, in Tucker\u2013Coleman Papers (College of William and Mary).\nSee also Cornell, St. George Tucker and the Second Amendment: Original Understandings and Modern\nMisunderstandings, 47 Wm. & Mary L.Rev. 1123 (2006).\n33 The Court does acknowledge that at least one early commentator described the Second Amendment as creating a right\nconditioned upon service in a state militia. See ante, at 2807 \u2013 2808 (citing B. Oliver, The Rights of an American Citizen\n(1832)). Apart from the fact that Oliver is the only commentator in the Court's exhaustive survey who appears to have\ninquired into the intent of the drafters of the Amendment, what is striking about the Court's discussion is its failure to\nrefute Oliver's description of the meaning of the Amendment or the intent of its drafters; rather, the Court adverts to\nsimple nose counting to dismiss his view.\n34 Miller, 307 U.S., at 182, n. 3, 59 S.Ct. 816.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3974, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8f0045a4-502e-4c25-9e1a-8d9366e86ef5": {"__data__": {"id_": "8f0045a4-502e-4c25-9e1a-8d9366e86ef5", "embedding": null, "metadata": {"page_label": "68", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "433e5758-8a5a-408a-b537-6e55204f9f9b", "node_type": "4", "metadata": {"page_label": "68", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e0021b46a2a64dc15ffc08a83f0d5ff06694ecfdc38b6972d1ec4895570d5eec", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "8abfeb21-760e-4235-b5a1-e5e0c36919d2", "node_type": "1", "metadata": {"page_label": "68", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f348cffd2e201165b9f94ca4a33b058cbe1370ce8a0f018f17c3d93a51dcfea4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "& Mary L.Rev. 1123 (2006).\n33 The Court does acknowledge that at least one early commentator described the Second Amendment as creating a right\nconditioned upon service in a state militia. See ante, at 2807 \u2013 2808 (citing B. Oliver, The Rights of an American Citizen\n(1832)). Apart from the fact that Oliver is the only commentator in the Court's exhaustive survey who appears to have\ninquired into the intent of the drafters of the Amendment, what is striking about the Court's discussion is its failure to\nrefute Oliver's description of the meaning of the Amendment or the intent of its drafters; rather, the Court adverts to\nsimple nose counting to dismiss his view.\n34 Miller, 307 U.S., at 182, n. 3, 59 S.Ct. 816.\n35 The additional specified weaponry included: \u201ca sufficient bayonet and belt, two spare flints, and a knapsack, a pouch\nwith a box therein to contain not less than twenty-four cartridges, suited to the bore of his musket or firelock, each\ncartridge to contain a proper quantity of powder and ball: or with a good rifle, knapsack, shot-pouch and powder-horn,\ntwenty balls suited to the bore of his rifle and a quarter of a pound of powder.\u201d 1 Stat. 271.\n36 In another case the Court endorsed, albeit indirectly, the reading of Miller that has been well settled until today. In Burton\nv. Sills, 394 U.S. 812, 89 S.Ct. 1486, 22 L.Ed.2d 748 (1969) (per curiam), the Court dismissed for want of a substantial\nfederal question an appeal from a decision of the New Jersey Supreme Court upholding, against a Second Amendment\nchallenge, New Jersey's gun-control law. Although much of the analysis in the New Jersey court's opinion turned on", "mimetype": "text/plain", "start_char_idx": 3256, "end_char_idx": 4907, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0f74543a-ea51-4d04-af29-d39b1d047dd5": {"__data__": {"id_": "0f74543a-ea51-4d04-af29-d39b1d047dd5", "embedding": null, "metadata": {"page_label": "69", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1bd50407-7ef1-4ae3-bafd-79cc04e3f54e", "node_type": "4", "metadata": {"page_label": "69", "file_name": "District of Columbia v. Heller (07-290).pdf", "file_path": "data/District of Columbia v. Heller (07-290).pdf", "file_type": "application/pdf", "file_size": 1245700, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6a0ba227624970986e78aa78f6df3d784e86ffacd9d4b58d72450e253f39f95b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "District of Columbia v. Heller, 554 U.S. 570 (2008)\n128 S.Ct. 2783, 171 L.Ed.2d 637, 76 USLW 4631, 08 Cal. Daily Op. Serv. 8060...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 69\nthe inapplicability of the Second Amendment as a constraint on the States, the court also quite correctly read Miller to\nhold that \u201cCongress, though admittedly governed by the second amendment, may regulate interstate firearms so long\nas the regulation does not impair the maintenance of the active, organized militia of the states.\u201d Burton v. Sills, 53 N.J.\n86, 99, 248 A.2d 521, 527 (1968).\n37 The 1927 Act was enacted with no mention of the Second Amendment as a potential obstacle, although an earlier\nversion of the bill had generated some limited objections on Second Amendment grounds, see 66 Cong. Rec. 725\u2013735\n(1924). And the 1934 Act featured just one colloquy, during the course of lengthy Committee debates, on whether the\nSecond Amendment constrained Congress' ability to legislate in this sphere, see Hearings on H.R. 9066 before the House\nCommittee on Ways and Means, 73d Cong., 2d Sess., 19 (1934).\n38 The majority appears to suggest that even if the meaning of the Second Amendment has been considered settled by courts\nand legislatures for over two centuries, that settled meaning is overcome by the \u201creliance of millions of Americans\u201d\n\u201cupon the true meaning of the right to keep and bear arms.\u201d Ante, at 2835, n. 24. Presumably by this the Court means that\nmany Americans own guns for self-defense, recreation, and other lawful purposes, and object to government interference\nwith their gun ownership. I do not dispute the correctness of this observation. But it is hard to see how Americans have\n\u201crelied,\u201d in the usual sense of the word, on the existence of a constitutional right that, until 2001, had been rejected\nby every federal court to take up the question. Rather, gun owners have \u201crelied\u201d on the laws passed by democratically\nelected legislatures, which have generally adopted only limited gun-control measures.\nIndeed, reliance interests surely cut the other way: Even apart from the reliance of judges and legislators who properly\nbelieved, until today, that the Second Amendment did not reach possession of firearms for purely private activities,\n\u201cmillions of Americans\u201d have relied on the power of government to protect their safety and well-being, and that of their\nfamilies. With respect to the case before us, the legislature of the District of Columbia has relied on its ability to act to\n\u201creduce the potentiality for gun-related crimes and gun-related deaths from occurring within the District of Columbia,\u201d\nH. Con. Res. 694, Ser. No. 94-24, p. 25 (1976); see post, at 2854 \u2013 2856 (BREYER, J., dissenting); so, too, have the\nresidents of the District.\n39 It was just a few years after the decision in Miller that Justice Frankfurter (by any measure a true judicial conservative)\nwarned of the perils that would attend this Court's entry into the \u201cpolitical thicket\u201d of legislative districting. Colegrove\nv. Green, 328 U.S. 549, 556, 66 S.Ct. 1198, 90 L.Ed. 1432 (1946) (plurality opinion). The equally controversial political\nthicket that the Court has decided to enter today is qualitatively different from the one that concerned Justice Frankfurter:\nWhile our entry into that thicket was justified because the political process was manifestly unable to solve the problem\nof unequal districts, no one has suggested that the political process is not working exactly as it should in mediating the\ndebate between the advocates and opponents of gun control. What impact the Court's unjustified entry into this thicket\nwill have on that ongoing debate\u2014or indeed on the Court itself\u2014is a matter that future historians will no doubt discuss\nat length. It is, however, clear to me that adherence to a policy of judicial restraint would be far wiser than the bold\ndecision announced today.\nEnd of Document \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4006, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f063f5f-5659-4f67-9d1e-b9d70c0a1bb0": {"__data__": {"id_": "9f063f5f-5659-4f67-9d1e-b9d70c0a1bb0", "embedding": null, "metadata": {"page_label": "1", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "10394f42-35fc-4590-956c-e2560e932aa3", "node_type": "4", "metadata": {"page_label": "1", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3d12bb01206f17317b12cc73016ab2f63a3949af690d272d3f0ac1c80b5cfc5d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata 04\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 128, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "16574fa1-75cf-4d52-a934-6121a89cd11b": {"__data__": {"id_": "16574fa1-75cf-4d52-a934-6121a89cd11b", "embedding": null, "metadata": {"page_label": "2", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8bf12b64-8306-4b09-b710-f3083615d607", "node_type": "4", "metadata": {"page_label": "2", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "73e91e3c8af43d351358687754c98597e9c1a67c842fba9e70fef6d2704dd759", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions\nA regular expressioncan be constructed using the following\nrules:\n1 a is a regular expression for some a in the alphabet \u03a3,\n2 \u03b5 is a regular expression\n3 \u2205is a regular expression\n4 If R1 and R2 are regular expressions, R1 \u222aR2 is a regular\nexpression\n5 If R1 and R2 are regular expressions, R1 \u25e6R2 or R1R2 is a\nregular expression\n6 If R is a regular expression, R\u2217 is a regular expression\nNote that to use rules 4, 5, or 6, you need to have regular\nexpressions R1, R2, or R \ufb01rst which can only be constructed\nfrom rules 1, 2, or 3\nThis is a recursive de\ufb01nition\nOnce you get regular expressions, you can apply rules 4, 5, or 6\nmultiple time to obtain more and more regular expressions\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 766, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64a2026e-5108-4a9a-9a29-98ed34d3ad3f": {"__data__": {"id_": "64a2026e-5108-4a9a-9a29-98ed34d3ad3f", "embedding": null, "metadata": {"page_label": "3", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "73f36a54-c93a-40a6-8dc5-20fff6b4d625", "node_type": "4", "metadata": {"page_label": "3", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "0a327a7f28094dce1f0d443c10b996257f277cbd84961c5d13ed22c3c40707b0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression Examples\nSuppose \u03a3 = {0, 1}\nFrom rule 1, we have:\n0 is a regular expression\n1 is a regular expression\nFrom rule 2, we have:\n\u03b5 is a regular expression\nFrom rule 3, we have:\n\u2205is a regular expression\nSo far, we have four regular expressions, 0, 1, \u03b5, and \u2205\nFrom rule 4, 0 \u222a1 is a regular expression\nFrom rule 5, 11 is a regular expression\nFrom rule 6, 0\u2217 is a regular expression\nWe can keep building larger and larger regular expressions by\napplying rules 4, 5, and 6 multiple times\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 562, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "481f8cfd-84c9-4318-80b0-9fb753817978": {"__data__": {"id_": "481f8cfd-84c9-4318-80b0-9fb753817978", "embedding": null, "metadata": {"page_label": "4", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6611b480-b8ae-47d7-a786-df17580de002", "node_type": "4", "metadata": {"page_label": "4", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4342fb24b1981c9996e4a124370ca02762bd148cb1bb5fd4eb81e82baad08263", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression Examples\nSuppose \u03a3 = {0, 1}\nFrom rule 1, 0 and 1 are regular expressions\nFrom rule 4, 0 \u222a1 is a regular expression\nFrom rule 6, (0 \u222a1)\u2217 is a regular expression\nFrom rule 5, 01 is a regular expression\nFrom rule 5, 011 is a regular expression\nFrom rule 5, (0 \u222a1)\u2217011 is a regular expression\nFrom rule 5, (0 \u222a1)\u2217011(0 \u222a1)\u2217 is a regular expression\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 426, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b3a76d4c-a414-4ac9-92f2-edae53fdd0c7": {"__data__": {"id_": "b3a76d4c-a414-4ac9-92f2-edae53fdd0c7", "embedding": null, "metadata": {"page_label": "5", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "88314352-f86d-4ab3-95ce-dd5ce9d68e21", "node_type": "4", "metadata": {"page_label": "5", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ed4a8e5dc778c55d6fde8eedc487b7a7da57d73abe3f7e300dc58eb68d06cc4e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions\nIn arithmetic, an arithmetic expression can be used to\nrepresent its object (number)\n5 + 12 is an arithmetic expression\n5 + 12 can be used to represent 17\nWe usually write 5 + 12 = 17\nIn theory of computation, a regular expression can be used to\nexpress a language\nLet \u03a3 = {0, 1}\nThe regular expression 0 = {0}\nThe regular expression 1 = {1}\nThe regular expression \u03b5 = {\u03b5}\nThe regular expression \u2205= {}\nSuppose regular expressions R1 = A and R2 = B for\nlanguages A and B, the regular expression R1 \u222aR2 = A \u222aB\nSuppose regular expressions R1 = A and R2 = B for\nlanguages A and B, the regular expression R1R2 = AB\nSuppose the regular expression R = A for a language A,\nR\u2217 = A\u2217\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 756, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "627f12ce-a0b4-47bd-8794-89b16c8be51d": {"__data__": {"id_": "627f12ce-a0b4-47bd-8794-89b16c8be51d", "embedding": null, "metadata": {"page_label": "6", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "18f7632e-b5f7-440f-b068-c6dbbf3e87fb", "node_type": "4", "metadata": {"page_label": "6", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f8f7079d9bd43caa2b68ae9a79a1c4ea7d2f48c312d14c5c6edc7ef319e9f003", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions (Other Notations)\nR+ is a shorthand notation for RR\u2217 for a regular expression R\nAll strings that are 1 or more concatenations of strings from R\nExamples:\n1+ = 11\u2217\n(0 \u222a1)+ = (0 \u222a1)(0 \u222a1)\u2217\nRk is a shorthand notation for the concatenation of k R\u2019s\nwith each other\nExamples:\n15 = 11111\n(0 \u222a1)3 = (0 \u222a1)(0 \u222a1)(0 \u222a1)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 394, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4a4c9101-c64e-48c3-9332-7e09aaafb852": {"__data__": {"id_": "4a4c9101-c64e-48c3-9332-7e09aaafb852", "embedding": null, "metadata": {"page_label": "7", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6b70a31d-f201-49e9-89dd-c5569c06e4ad", "node_type": "4", "metadata": {"page_label": "7", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "71251ba9ba5bf77f19626e665a0818e53ac2ea2b0720267cae7e9fe6f88b22c3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions (By Examples)\nA regular expression expresses a language:\n0 \u222a1\n0 \u222a1 = {0}\u222a{1}= {0, 1}\nA language that consists of two strings,0 and 1\n0\u2217\n0\u2217 = {0}\u2217\nRecall that A\u2217 = {x1x2 . . . xk |k \u22650 and each xi \u2208A}\n{0}\u2217 = {\u03b5, 0, 00, 000, 0000, 00000, . . .}\n0\u2217 expresses the language that consists of all string that\ncontains nothing but0s including the empty string\n(0 \u222a1)0\u2217\n(0 \u222a1)0\u2217 = {0, 1}\u25e60\u2217 = {0, 1}\u25e6{\u03b5, 0, 00, 000, . . .}\nRecall that A \u25e6B = {xy |x \u2208A and y \u2208B}\n{0, 1}0\u2217 = {0, 1, 00, 10, 000, 100, 0000, 1000, . . .}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 591, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e9afe7a-1103-4ed9-ab8e-326d03f11817": {"__data__": {"id_": "2e9afe7a-1103-4ed9-ab8e-326d03f11817", "embedding": null, "metadata": {"page_label": "8", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "59855c4f-335d-4391-9e83-8a4acfc0bd19", "node_type": "4", "metadata": {"page_label": "8", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "08fb6ae445565363b5df23e73f22a8352ac3c2a06e5a894b8f2fa57bf9b83cbf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions (By Examples)\nA regular expression expresses a language:\n(0 \u222a1)\u2217\n(0 \u222a1)\u2217 = {0, 1}\u2217 = {\u03b5, 0, 1, 00, 01, 10, 11, 000, 001, . . .}\nThis is the set of all strings over0 and 1\nWe generally use\u03a3\u2217 instead of (0 \u222a1)\u2217\n0\u221710\u2217\n0\u221710\u2217 = {0}\u2217 \u25e6{1}\u25e6{0}\u2217\n{0}\u2217 is a language consisting of all strings containing zero or\nmore 0s ({\u03b5, 0, 00, 000, . . .})\n0\u221710\u2217 = {w |w contains a single 1}\n\u03a3\u22171\u03a3\u2217\n\u03a3\u22171\u03a3\u2217 = \u03a3\u2217 \u25e6{1}\u25e6\u03a3\u2217\n\u03a3\u2217 is the language consisting of all stings over\u03a3\n\u03a3\u22171\u03a3\u2217 = {w |w has at least one 1}\n\u03a3\u2217001\u03a3\u2217\n\u03a3\u2217001\u03a3\u2217 = \u03a3\u2217 \u25e6{001}\u25e6\u03a3\u2217\n\u03a3\u2217001\u03a3\u2217 = {w |w contains the string 001 as a substring}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 649, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "910a5a03-ec10-4792-aefe-814c6fdd3590": {"__data__": {"id_": "910a5a03-ec10-4792-aefe-814c6fdd3590", "embedding": null, "metadata": {"page_label": "9", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "aa5625ba-d371-46fd-9ee0-6f5b1a0ab90a", "node_type": "4", "metadata": {"page_label": "9", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ff64ac874e6be9da6deb060d35101619d6b8d77dd87350cc7daec2b5b53e2a0d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions (By Examples)\nA regular expression expresses a language:\n1\u2217(01+)\u2217\n1\u2217(01+)\u2217 = {1}\u2217 \u25e6(01+)\u2217\n{1}\u2217 is a language consisting of all strings containing zero or\nmore 1s ({\u03b5, 1, 11, 111, . . .})\n01+ = {0}\u25e6{1}+ = {0}\u25e6({1}\u25e6{1}\u2217) = {01, 011, 0111, . . .}\n(01+)\u2217 = {01, 011, 0111, . . .}\u2217 =\n{\u03b5, 01, 0101, 01011, 01101, 011011, . . .}\n1\u2217(01+)\u2217 = {w |every 0 inw is followed by at least one 1}\n(\u03a3\u03a3)\u2217\n\u03a3\u03a3 = \u03a3 \u25e6\u03a3 = {0, 1}\u25e6{0, 1}= {00, 01, 10, 11}\n(\u03a3\u03a3)\u2217 = {00, 01, 10, 11}\u2217\n(\u03a3\u03a3)\u2217 = {w |w is a string of even length}\n(\u03a3\u03a3\u03a3)\u2217\n\u03a3\u03a3\u03a3 = {0, 1}\u25e6{0, 1}\u25e6{0, 1}=\n{000, 001, 010, 011, 100, 101, 110, 111}\n(\u03a3\u03a3\u03a3)\u2217 = {000, 001, 010, 011, 100, 101, 110, 111}\u2217\n(\u03a3\u03a3\u03a3)\u2217 = {w |the length ofw is a multiple of 3}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 756, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b413ecf-433e-47ab-8f80-3a9b97c4eabb": {"__data__": {"id_": "3b413ecf-433e-47ab-8f80-3a9b97c4eabb", "embedding": null, "metadata": {"page_label": "10", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a1749e84-25e2-45b7-bb03-49c37dd49bb1", "node_type": "4", "metadata": {"page_label": "10", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "61b053cb0844610661b5857fe6c09a6f574df3a1e631daf5ca26ab568fde21b9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions (By Examples)\nA regular expression expresses a language:\n01 \u222a10\n01 \u222a10 = ({0}\u25e6{1}) \u222a({1}\u25e6{0}) = {01}\u222a{10}= {01, 10}\n0\u03a3\u22170 \u222a1\u03a3\u22171 \u222a0 \u222a1\n0\u03a3\u22170 = {0}\u25e6\u03a3\u2217 \u25e6{0}is a set of all string that start and end\nwith 0\n1\u03a3\u22171 is a set of all string that start and end with 1\n0\u03a3\u22170 \u222a1\u03a3\u22171 \u222a0 \u222a1 =\n{w |w starts and ends with the same symbol}\n(0 \u222a\u03b5)1\u2217\n0 \u222a\u03b5 = {0}\u222a{\u03b5}= {0, \u03b5}\n1\u2217 = {\u03b5, 1, 11, 111, . . .}\n(0 \u222a\u03b5)1\u2217 = {0, \u03b5}\u25e6{\u03b5, 1, 11, 111, . . .}\n(0 \u222a\u03b5)1\u2217 = {\u03b5, 0, 01, 011, . . . ,1, 11, 111, . . .}\n(0 \u222a\u03b5)1\u2217 = 01\u2217 \u222a1\u2217\n(0 \u222a\u03b5)(1 \u222a\u03b5) = {0, \u03b5}\u25e6{1, \u03b5}= {\u03b5, 0, 1, 01}\n1\u2217\u2205= {1}\u2217 \u25e6\u2205 = \u2205\n\u2205\u2217 = {\u03b5}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 643, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c4d832b3-2758-4507-98c7-a31f99e7aeb0": {"__data__": {"id_": "c4d832b3-2758-4507-98c7-a31f99e7aeb0", "embedding": null, "metadata": {"page_label": "11", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1f19ace0-9a90-47be-95ff-23ec376c9d59", "node_type": "4", "metadata": {"page_label": "11", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3d43ded0795ee8aef974ed27c31024efd5cb75d7a7e92789a5fd294fe2b693b8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Operator Precedences and Identities\nOperator Precedences:\n\u2217 has the highest precedence.\n\u222ahas the lowest precedence.\nSome properties:\nR \u222a\u2205 = R\nAdding the empty language to any other language will not\nchange it\nR \u25e6\u03b5 = R\nJoining the empty string to any string will not change it\nR \u222a{\u03b5}\u0338= R\nIf R = {0, 1}, R \u222a{\u03b5}= {0, 1, \u03b5}\u0338= R\nR \u25e6\u2205\u0338 = R\nIf R = {0, 1}, R \u25e6\u2205= {0, 1}\u25e6\u2205\n{0, 1}\u25e6= {xy |x \u2208{0, 1}and y \u2208\u2205} = \u2205\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 464, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "55d66bad-b7e7-48af-990b-672e99a74a7f": {"__data__": {"id_": "55d66bad-b7e7-48af-990b-672e99a74a7f", "embedding": null, "metadata": {"page_label": "12", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1a6ffbce-b766-4645-a3f1-9ff8e5f099fe", "node_type": "4", "metadata": {"page_label": "12", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4962fb2ea216bd1c636a4f5b41f1fec78cf078712832e4fbfe30ec0d01013134", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example: Regular Expression\nProblem: Write a program to evaluate a string representing a\n\ufb02oating-point number\n72 \u21ddtrue\n35.9 \u21ddtrue\n20 67 \u21ddfalse\n+7. \u21ddtrue\n71a3 \u21ddfalse\n-.29 \u21ddtrue\nSolution\nCreate a DFA that recognize a set of all strings that are valid\n\ufb02oating-point numbers and turn it into a program\nIt would be great if there is an easy way to do this\nFor now, can we create a regular expression that express the\nset of all valid \ufb02oating-point representations?\n(+ \u222a\u2212\u222a \u03b5)(D+ \u222aD+.D\u2217 \u222aD\u2217.D+)\nwhere D = {0, 1, 2, . . . ,9}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 581, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e6d86c7a-dfdf-4f59-9ee0-06a4e9013df4": {"__data__": {"id_": "e6d86c7a-dfdf-4f59-9ee0-06a4e9013df4", "embedding": null, "metadata": {"page_label": "13", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f380c042-fe55-4440-a2f2-542598f35cb6", "node_type": "4", "metadata": {"page_label": "13", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "8ac5fa28163751d92a9b4d0f49fa135140daec47185396a40fcc37ba7ce852d1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression and Finite Automata\nNow we know that a regular expression can be used to express\na language\nQuestion: Is language expressed by a regular expression\nregular?\nLet\u2019s try to prove that a regular expression expresses a regular\nlanguage\nRecall a regular expression:\nA regular expression is de\ufb01ned recursively (those 6 rules)\nSo, we need to show that a regular expressions constructed\nfrom those rules expresses a regular language\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 506, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23a4432a-69ca-4a2c-8e00-30c57ba15c15": {"__data__": {"id_": "23a4432a-69ca-4a2c-8e00-30c57ba15c15", "embedding": null, "metadata": {"page_label": "14", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "89e09443-5e2c-4a1a-8bce-7316e006d6d2", "node_type": "4", "metadata": {"page_label": "14", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "92cdb7f55ca6954243eadd6f08bcfa88e781d672b3f6f11f5f086861e1f4486f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Lemma 1.55\nFrom rule 1: a for some a in the alphabet \u03a3 is a regular\nexpression\nWe need to show that a language expressed by a regular\nexpression generated from this rule is regular\nGiven a symbol a \u2208\u03a3, according to this rule, a is a regular\nexpression\na expresses the language {a}\nIs {a}regular?\nCan we construct a DFA that recognizes the language{a}?\nThis is an NFA that recognizes {a}\nq1 q2\na\nFor every NFA, there is an equivalent DFA\nThus {a}is a regular language\nTherefore, a expresses a regular language\nA regular expression constructed by rule 1 expresses a regular\nlanguage\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 644, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c6a96fdf-1139-4482-9c9a-de48a1fdce78": {"__data__": {"id_": "c6a96fdf-1139-4482-9c9a-de48a1fdce78", "embedding": null, "metadata": {"page_label": "15", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "50344488-04f3-4bb9-a752-2466d79f196f", "node_type": "4", "metadata": {"page_label": "15", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "45cbe76478c5e2e86e1e7988eb26d1fbfae30fcbae1f1e9577526da8512ec52a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Lamma 1.55\nFrom rule 2: \u03b5 is a regular expression\nAgain, we need to show that a language expressed by \u03b5 is\nregular\nRecall that \u03b5 expresses the language {\u03b5}\nIs {\u03b5}regular?\nCan we construct a DFA that recognizes the language{\u03b5}?\nThis is an NFA that recognizes {\u03b5}\nq1\nFor every NFA, there is an equivalent DFA\nThus, {\u03b5}is a regular language\nTherefore, \u03b5 expresses a regular language\nA regular expression constructed by rule 2 expresses a regular\nlanguage\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 515, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b3d31cc8-1043-4d2e-a34b-5be6865b43a6": {"__data__": {"id_": "b3d31cc8-1043-4d2e-a34b-5be6865b43a6", "embedding": null, "metadata": {"page_label": "16", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4b83be5c-3d59-46f1-b11a-98c359a78ed6", "node_type": "4", "metadata": {"page_label": "16", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "399a6b0b97f2858a96dba79f48e820b144de91b347dc19e27eb0b70374ad5413", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Lamma 1.55\nFrom rule 3: \u2205is a regular expression\nAgain, we need to show that a language expressed by \u2205is\nregular\nRecall that \u2205expresses the language {}\nIs {} regular?\nCan we construct a DFA that recognizes the language{}?\nThis is an NFA that recognizes {}\nq\nFor every NFA, there is an equivalent DFA\nThus, \u2205is a regular language\nTherefore, \u2205expresses a regular language\nA regular expression constructed by rule 3 expresses a regular\nlanguage\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 505, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "016d2eae-5d6e-4e92-afa5-67a2de30d57b": {"__data__": {"id_": "016d2eae-5d6e-4e92-afa5-67a2de30d57b", "embedding": null, "metadata": {"page_label": "17", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c76da34e-7ea9-4e1c-8701-a5a4b2c4d549", "node_type": "4", "metadata": {"page_label": "17", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "caa401658fbb66fefdb3f728fd704ba62fe285a7e72de27411be53359b39bc72", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Lemma 1.55\nRecall that you cannot use rules 4, 5, and 6 to create a new\nregular expressions unless you already have some regular\nexpressions created by rules 1, 2, or 3\nWe already prove that each regular expression created by rules\n1, 2, or 3 expresses a regular language\nFor rule 4:\nR1 and R2 are regular expressions that express regular\nlanguages (from rules 1, 2, or 3)\nRecall that R1 = A and R2 = B for some languages A and B,\nR1 \u222aR2 = A \u222aB\nWe already prove that if A and B are regular languages, A \u222aB\nis regular (regular language is closed under union operation)\nThus, a regular expression obtain by rule 4 express a regular\nlanguage\nSame for rules 5 and 6\nRegular language is closed under concatenation and star\noperations\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 792, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8c24cc1e-9370-40ae-9f15-0a3db1e3c547": {"__data__": {"id_": "8c24cc1e-9370-40ae-9f15-0a3db1e3c547", "embedding": null, "metadata": {"page_label": "18", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cf0e6cac-6adc-4175-95a9-72ce24cf8188", "node_type": "4", "metadata": {"page_label": "18", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "c9d4f1a129a496d77d03a8c4acda261ae06f6d5c9b53b3f91c7937f21bba78c2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Lemma 1.55\nLemma 1.55\nIf a language is described by a regular expression, then it is regular.\nWe just proved the above lemma\nBy proving the above lemma, it gives us a tool to construct\nan NFA that recognizes the language expressed by a regular\nexpression\nBased on how we prove that regular language is closed under\nunion, concatenation, and star operations\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 420, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "830ecf92-5635-4028-8af3-2e8c6db0230d": {"__data__": {"id_": "830ecf92-5635-4028-8af3-2e8c6db0230d", "embedding": null, "metadata": {"page_label": "19", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "460f22cc-661b-4909-9d3c-4ae719a99a5a", "node_type": "4", "metadata": {"page_label": "19", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "916c67ad908bf30c2eb3cd88143f58c6090ede01180fa4ea3a6b385ceaa622be", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions to NFA\nSuppose we want to construct an NFA that recognizes the\nlanguage expressed by the regular expression (ab \u222aa)\u2217 where\n\u03a3 = {a, b}\nWe need to apply those 6 rules to obtain the regular expression\nThis will be a guideline step-by-step to construct an NFA\nHere are steps to construct the regular expression (ab \u222aa)\u2217\n1 a is a regular expression (rule 1)\n2 b is a regular expression (rule 1)\n3 ab is a regular expression (rule 5 with (1) and (2))\n4 ab \u222aa is a regular expression (rule 4 with (3) and (1))\n5 (ab \u222aa)\u2217 is a regular expression (rule 6 with (4))\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 639, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6e6be80d-75a0-4c44-a907-46129ad9bb48": {"__data__": {"id_": "6e6be80d-75a0-4c44-a907-46129ad9bb48", "embedding": null, "metadata": {"page_label": "20", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b5e09ec4-cc9f-43c3-a206-317f3aac3d01", "node_type": "4", "metadata": {"page_label": "20", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "11243fa7b1dd5dcd63bca88d48785d19ed4ee5d7b0cd2072f8f19c33a3c240d1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\n(ab U a) *\na\nb\nab\nab U a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 165, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d5c1f22-d098-4f23-a152-af2284dd3652": {"__data__": {"id_": "5d5c1f22-d098-4f23-a152-af2284dd3652", "embedding": null, "metadata": {"page_label": "21", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c1052afc-ed3f-431d-867a-2a5d652d3d1f", "node_type": "4", "metadata": {"page_label": "21", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d648d0d46dcb531e6b10969c2ebc3f1f3e4f138f3145a801a241884112d55411", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\n(ab U a) *\na\na\nb\nab\nab U a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "62d84c78-c987-464d-827c-584ff3be00ba": {"__data__": {"id_": "62d84c78-c987-464d-827c-584ff3be00ba", "embedding": null, "metadata": {"page_label": "22", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "54695d38-e8eb-46c3-86c9-f4f91f28228a", "node_type": "4", "metadata": {"page_label": "22", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d6b3ab85bdfc76dbb606f106da11ae7f18674683aba74a7801e2c1d9803ad094", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\n(ab U a) *\na\nb\na\nb\nab\nab U a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 169, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1c821ebd-3e87-45d4-ba54-306443b336d5": {"__data__": {"id_": "1c821ebd-3e87-45d4-ba54-306443b336d5", "embedding": null, "metadata": {"page_label": "23", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8f922c41-c0c3-4728-9a86-7aa0aebd10fe", "node_type": "4", "metadata": {"page_label": "23", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "493a147f1b1d7c806e96b4b36200b62e704ef7e8672adcf58a56cb7b4d55f9ab", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\n(ab U a) *\na\nb\na\nb\nab\nab U a\na\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 171, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bc9356ca-2520-4c59-9026-2f398569de33": {"__data__": {"id_": "bc9356ca-2520-4c59-9026-2f398569de33", "embedding": null, "metadata": {"page_label": "24", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d2eff9e8-03e0-4a2a-aa6f-1fb967333d5a", "node_type": "4", "metadata": {"page_label": "24", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "6af3a356e02ffdcce00b5d8fcfd535026cf2983c20c04a47c1ed85bdc9357a81", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\n(ab U a) *\na\nb\na\nb\nab\nab U a\na b\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 173, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7778f03-a372-4606-9308-63b985488d92": {"__data__": {"id_": "e7778f03-a372-4606-9308-63b985488d92", "embedding": null, "metadata": {"page_label": "25", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3ff27585-7985-406e-9aa2-fc9bea23307c", "node_type": "4", "metadata": {"page_label": "25", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "eb8a57b7d69b3a4f7a07e360ae1cfb6bcd8f7028e2935488144299d520bac13f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\n(ab U a) *\na\nb\na\nb\nab\nab U a\na b \u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 175, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d3667365-403f-49e6-b8cd-1e39ccc56c71": {"__data__": {"id_": "d3667365-403f-49e6-b8cd-1e39ccc56c71", "embedding": null, "metadata": {"page_label": "26", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1395a7f2-4e6c-4dc8-beab-da74aef3ee62", "node_type": "4", "metadata": {"page_label": "26", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "a1e09dff08802319078bd7132df424f2ab0be4b4d79ec9551c0c6d482644cad3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\na b \u03b5\n(ab U a) *\na\nb\na\nb\nab\nab U a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 175, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ae2cf901-51d0-45fe-86b1-d2a99802cfcb": {"__data__": {"id_": "ae2cf901-51d0-45fe-86b1-d2a99802cfcb", "embedding": null, "metadata": {"page_label": "27", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3e3044ce-1509-41c5-a557-60b20de22061", "node_type": "4", "metadata": {"page_label": "27", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "47dd49d271eac562ea09f7bffaf8b73460d27be9a031ebc252a6b4577d4b9326", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\na b \u03b5\n(ab U a) *\na\nb\na\nb\nab\nab U a\na b \u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 181, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53945ba5-c990-4e7e-8f22-88d7a59146db": {"__data__": {"id_": "53945ba5-c990-4e7e-8f22-88d7a59146db", "embedding": null, "metadata": {"page_label": "28", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8c112790-838e-4736-af6a-4623feac1257", "node_type": "4", "metadata": {"page_label": "28", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "22c616e5a3270387974b545d38d69a978f7695d3e0aacf6024468efe072b7a4d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\na b \u03b5\n(ab U a) *\na\nb\na\nb\nab\nab U a\na\na b \u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 183, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79107f28-55a2-4e84-ac14-749e8cea3e43": {"__data__": {"id_": "79107f28-55a2-4e84-ac14-749e8cea3e43", "embedding": null, "metadata": {"page_label": "29", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4db5aff1-480a-4e2d-983f-d6f8ba002d4b", "node_type": "4", "metadata": {"page_label": "29", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d1d5ef2e058dec3748f3790551029537d64cfbf94cb987dca94822f509cab2d4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\na b \u03b5\na\na b \u03b5\n\u03b5\n\u03b5\n(ab U a) *\na\nb\na\nb\nab\nab U a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 187, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b82337a6-389c-4e03-b48c-527f43ecf23d": {"__data__": {"id_": "b82337a6-389c-4e03-b48c-527f43ecf23d", "embedding": null, "metadata": {"page_label": "30", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "10bb1224-58c2-45c6-aca1-2d2278d263fd", "node_type": "4", "metadata": {"page_label": "30", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1bfe8ad4189a13f681f68b5571879f643d23d5bcda559bfcbad45f8b56515af5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\na b \u03b5\na\na b \u03b5\n\u03b5\n\u03b5\n(ab U a) *\na\nb\na\na b \u03b5\n\u03b5\n\u03b5\na\nb\nab\nab U a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 199, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "01eb6ed3-097a-4bdc-9c5d-b971ccb866d7": {"__data__": {"id_": "01eb6ed3-097a-4bdc-9c5d-b971ccb866d7", "embedding": null, "metadata": {"page_label": "31", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "38261782-6ceb-4335-afee-4d2b4d129b9c", "node_type": "4", "metadata": {"page_label": "31", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d6acb977ff2e4eabedd03717ae40369d7a51b4392ffebf52e6427956a9bd9dc1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\na b \u03b5\na\na b \u03b5\n\u03b5\n\u03b5\n(ab U a) *\na\nb\na\na b \u03b5\n\u03b5\n\u03b5\n\u03b5\na\nb\nab\nab U a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 201, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3bac20e3-6bd5-47bb-add6-d0bf64b19638": {"__data__": {"id_": "3bac20e3-6bd5-47bb-add6-d0bf64b19638", "embedding": null, "metadata": {"page_label": "32", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9168f233-dae9-45ad-8abe-93abed1b5fe7", "node_type": "4", "metadata": {"page_label": "32", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d5f136846d9815885f03bf387eb9ebb51971a397c4c110c3dd70617e9f81bffa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (ab \u222aa)\u2217 to an NFA.\na b \u03b5\na\na b \u03b5\n\u03b5\n\u03b5\n(ab U a) *\na\nb\na\na b \u03b5\n\u03b5\n\u03b5\n\u03b5\n\u03b5\n\u03b5\na\nb\nab\nab U a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 205, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "caf48bca-9fb5-4344-acec-81a0d6753b45": {"__data__": {"id_": "caf48bca-9fb5-4344-acec-81a0d6753b45", "embedding": null, "metadata": {"page_label": "33", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "eac62f56-be14-4c81-b14e-2d9684f1db5a", "node_type": "4", "metadata": {"page_label": "33", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "14f1bc2d71d23954aa2b571c039461fb20efe7e1eaa9602591b82c54f3d805a9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expressions to NFA\nSuppose we want to construct an NFA that recognizes the\nlanguage expressed by the regular expression (a \u222ab)\u2217aba\nwhere \u03a3 = {a, b}\nAgain, we need to apply those 6 rules to get a guideline\nHere are steps to construct the regular expression (a \u222ab)\u2217aba\n1 a is a regular expression (rule 1)\n2 b is a regular expression (rule 1)\n3 a \u222ab is a regular expression (rule 4 with (1) and (2))\n4 (a \u222ab)\u2217 is a regular expression (rule 6 with (3))\n5 ab is a regular expression (rule 5 with (1) and (2))\n6 aba is a regular expression (rule 5 with (5) and (1))\n7 (a \u222ab)\u2217aba is a regular expression (rule 5 with (4) and (6))\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 695, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b7ca8406-a7e7-4eb4-b89c-d97e37c3a6f7": {"__data__": {"id_": "b7ca8406-a7e7-4eb4-b89c-d97e37c3a6f7", "embedding": null, "metadata": {"page_label": "34", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e72b2881-ebb5-4147-b7cd-51297ad6551f", "node_type": "4", "metadata": {"page_label": "34", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "edfe852215f5dd9abc43eb239813c89c4d8468aac06ee0c37300c6cbbaf89e0b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\nb\na U b\n(a U b) *\naba\n(a U b) *aba\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 179, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e2464ca-053c-4e70-9072-3a979fc9790d": {"__data__": {"id_": "8e2464ca-053c-4e70-9072-3a979fc9790d", "embedding": null, "metadata": {"page_label": "35", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c4636b61-d9fb-4cf4-ada9-d3d3271c618c", "node_type": "4", "metadata": {"page_label": "35", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "e07b749bdbd50865245d2b2ec4cb116d401adcf643c5e939356d11d0c857da87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\na U b\n(a U b) *\naba\n(a U b) *aba\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 181, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8b03040e-e89d-4226-8090-46f285a22ba8": {"__data__": {"id_": "8b03040e-e89d-4226-8090-46f285a22ba8", "embedding": null, "metadata": {"page_label": "36", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ea1fdca2-572c-48a9-bfc6-3009e9585843", "node_type": "4", "metadata": {"page_label": "36", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "7f1c55f66e86c9cf00437962fa6aa055cb4aaaae9951aa4b25e152575ff5e83f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na U b\n(a U b) *\naba\n(a U b) *aba\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 183, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2b6e40be-dd63-4724-a881-eccfa637ac42": {"__data__": {"id_": "2b6e40be-dd63-4724-a881-eccfa637ac42", "embedding": null, "metadata": {"page_label": "37", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "be4dbe9e-06af-4285-8ccb-79fe623ef33c", "node_type": "4", "metadata": {"page_label": "37", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d4c92c9ac2164007e9aa21b49de2554d200cee6de3ac93e96e7365edb8906b3e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\na U b\n(a U b) *\naba\n(a U b) *aba\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 185, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "46f58001-b5f5-40e7-bf3b-7899e55c94ea": {"__data__": {"id_": "46f58001-b5f5-40e7-bf3b-7899e55c94ea", "embedding": null, "metadata": {"page_label": "38", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4551556a-98d1-44ad-8536-cf6a5eba0449", "node_type": "4", "metadata": {"page_label": "38", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "236bc3cd30024e034f6f9b4318493aff3134450cb3b834bf78598dc432293bd7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\na U b\n(a U b) *\naba\n(a U b) *aba\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 187, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e239097c-ba5a-4cc2-852b-a68892ac94a1": {"__data__": {"id_": "e239097c-ba5a-4cc2-852b-a68892ac94a1", "embedding": null, "metadata": {"page_label": "39", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f856d32b-03f1-4c57-bf34-ce38624f506f", "node_type": "4", "metadata": {"page_label": "39", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "91a8cb308e51e8a267d25251d4f7ec36b3348e432c84094ad1be04f1fa9ea681", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\na U b\n(a U b) *\naba\n(a U b) *aba\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 191, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b13249ce-a164-448b-9131-b54a2f2032d2": {"__data__": {"id_": "b13249ce-a164-448b-9131-b54a2f2032d2", "embedding": null, "metadata": {"page_label": "40", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "50783030-ebb0-4fdf-bd12-6d558fb91473", "node_type": "4", "metadata": {"page_label": "40", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "45933b8b95a092164c99f860e984016d8ee1e60dccc6cbfebe9588ae9542f3b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\na\nb\n\u03b5\n\u03b5\na U b\n(a U b) *\naba\n(a U b) *aba\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 199, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b150701e-a2c4-4ddd-8f20-142efb3a9e3e": {"__data__": {"id_": "b150701e-a2c4-4ddd-8f20-142efb3a9e3e", "embedding": null, "metadata": {"page_label": "41", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ebce0090-8e32-44b6-a16b-3c35a7a6f517", "node_type": "4", "metadata": {"page_label": "41", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f390d9ef88475986ee110a7e4f91e25d41d6a7216b6e734e6e0fd3a2a222b433", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\n\u03b5\na\nb\n\u03b5\n\u03b5\na U b\n(a U b) *\naba\n(a U b) *aba\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 201, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ec029116-f1b8-45fb-997c-f4e2f7e82e92": {"__data__": {"id_": "ec029116-f1b8-45fb-997c-f4e2f7e82e92", "embedding": null, "metadata": {"page_label": "42", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "df38730e-0a34-49ad-957c-bd2607f80521", "node_type": "4", "metadata": {"page_label": "42", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1eba7f6faf74563e20edea3171309c41efeb9a3883114d8798fdeea6e736f76b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\n\u03b5\na\nb\n\u03b5\n\u03b5\na U b\n(a U b) *\naba\n(a U b) *aba\n\u03b5\n\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 205, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7e92c5e1-e311-4567-848e-17ab35c6cfd5": {"__data__": {"id_": "7e92c5e1-e311-4567-848e-17ab35c6cfd5", "embedding": null, "metadata": {"page_label": "43", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "044ec92c-448c-4ed7-8df9-e76b97075c9e", "node_type": "4", "metadata": {"page_label": "43", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "dd31ebe718a899eeaca11009d1e769b0399fc43e6e11c5fed2a8acc4d405f64c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\n\u03b5\na\nb\n\u03b5\n\u03b5\na \u03b5 b \u03b5 a\na U b\n(a U b) *\naba\n(a U b) *aba\n\u03b5\n\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 215, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "afd60cdc-ccec-488d-95ab-f990c8584abc": {"__data__": {"id_": "afd60cdc-ccec-488d-95ab-f990c8584abc", "embedding": null, "metadata": {"page_label": "44", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "07b23a38-40af-4c4d-9388-ca2720904281", "node_type": "4", "metadata": {"page_label": "44", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3d7e09588952aeaf8649b1e49050e4bc58cd05415579d97399c63bd3e89a6ca4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\n\u03b5\na\nb\n\u03b5\n\u03b5\na \u03b5 b \u03b5 a\n\u03b5\n\u03b5\n\u03b5\na\nb\na U b\n(a U b) *\naba\n(a U b) *aba\n\u03b5\n\u03b5\n\u03b5\n\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 229, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c7e9b39a-59e1-4f81-9a4d-0281710a36f7": {"__data__": {"id_": "c7e9b39a-59e1-4f81-9a4d-0281710a36f7", "embedding": null, "metadata": {"page_label": "45", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "11af0922-d576-4b5e-ae2f-c3549607116d", "node_type": "4", "metadata": {"page_label": "45", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "13a2e570b2b2efebe172a9e8587a6119ab5dba85f72f175802f95eeebb7be1c8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\n\u03b5\na\nb\n\u03b5\n\u03b5\na \u03b5 b \u03b5 a\n\u03b5\n\u03b5\n\u03b5\na\nb\na \u03b5 b \u03b5 a\na U b\n(a U b) *\naba\n(a U b) *aba\n\u03b5\n\u03b5\n\u03b5\n\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f6ad4367-1725-4063-a121-8c10644a3577": {"__data__": {"id_": "f6ad4367-1725-4063-a121-8c10644a3577", "embedding": null, "metadata": {"page_label": "46", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "918e1af8-855c-43c8-857c-b57f2913d517", "node_type": "4", "metadata": {"page_label": "46", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "6394f42f1b0531e4c06ddb3680cda4623a37d34132e680690d1e42f8afee0755", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\n\u03b5\na\nb\n\u03b5\n\u03b5\na \u03b5 b \u03b5 a\n\u03b5\n\u03b5\n\u03b5\na\nb\na \u03b5 b \u03b5 a\n\u03b5\n\u03b5\n\u03b5\na U b\n(a U b) *\naba\n(a U b) *aba\n\u03b5\n\u03b5\n\u03b5\n\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 245, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "00d33e93-b2f7-4a35-92b0-e2bbe39e0de2": {"__data__": {"id_": "00d33e93-b2f7-4a35-92b0-e2bbe39e0de2", "embedding": null, "metadata": {"page_label": "47", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "940e8cf1-face-45d4-8940-0487fac93d23", "node_type": "4", "metadata": {"page_label": "47", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "be6a7299cb214ce9cc1e55442de557cb8e785f5be84c33d189f84999249eb094", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Expression to NFA\nConvert the regular expression (a \u222ab)\u2217aba to an NFA.\na\na\nb\nb\na\nb\n\u03b5\n\u03b5\n\u03b5\na\nb\n\u03b5\n\u03b5\na \u03b5 b \u03b5 a\n\u03b5\n\u03b5\n\u03b5\na\nb\na \u03b5 b \u03b5 a\n\u03b5\n\u03b5\n\u03b5\na U b\n(a U b) *\naba\n(a U b) *aba\n\u03b5\n\u03b5\n\u03b5\n\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 245, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "df954e97-b5b5-40e3-ad12-437e0d73a9f0": {"__data__": {"id_": "df954e97-b5b5-40e3-ad12-437e0d73a9f0", "embedding": null, "metadata": {"page_label": "48", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "89fed957-f366-4e31-a87a-4599a8780f60", "node_type": "4", "metadata": {"page_label": "48", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "264d20e520f7b41cdc7cab03e5634e89067085f683f29a72d1b3b3d69302b3ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Useful Tool\nRecall that the set of all valid \ufb02oating-point representation is\nexpressed by a regular expression\n(+ \u222a\u2212\u222a \u03b5)(D+ \u222aD+.D\u2217 \u222aD\u2217.D+)\nwhere\nD = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}\nNow, we can easily convert the above regular expression into\nan NFA, construct an equivalent DFA, and turn the DFA into\na program\nThis process is done by computer\nOften used in compiler\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 429, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "08a1b59e-b813-4a88-ac48-bb413953c1d6": {"__data__": {"id_": "08a1b59e-b813-4a88-ac48-bb413953c1d6", "embedding": null, "metadata": {"page_label": "49", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b91e099a-3135-4d70-be08-23bd1dd5c9e9", "node_type": "4", "metadata": {"page_label": "49", "file_name": "finite_automata_04_handout.pdf", "file_path": "data/finite_automata_04_handout.pdf", "file_type": "application/pdf", "file_size": 362988, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "0daa6a40b06e4780eb0a733844b38cfe055312432fc31eed0aa2042811830486", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Conclusion\nA regular expression expresses a regular language\nWe have a tool to convert a regular expression into an\nequivalent NFA\nWhat is next?\nWe still do not know whether every regular language can be\nexpressed by a regular expression\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 301, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c131b625-eb03-4754-be81-5c6bd75f1905": {"__data__": {"id_": "c131b625-eb03-4754-be81-5c6bd75f1905", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0170703b-d0c4-4348-ba91-ca1efc8a9622", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e33da21bf0211e1e233cb7d91e213f855f6216ce4ede85f68681bfe78ca65ccf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL14 Dynamic Modeling\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 156, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ed3a5288-7470-4209-ac97-1fb2e176d581": {"__data__": {"id_": "ed3a5288-7470-4209-ac97-1fb2e176d581", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "469753a1-9fc5-49ec-86cc-738ad17c0a6a", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "50bd04f532d535bd49e25557fb49dd98cf89acf8a4136f7b09d82306b0228834", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1418, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7b18d53d-90dd-4b3b-ad3c-fb606afd12aa": {"__data__": {"id_": "7b18d53d-90dd-4b3b-ad3c-fb606afd12aa", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8013ac9d-3081-448f-b2de-e97e88658bf1", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "18b80cdf2ce59fbced8d316bb389b815b7b4b7fe8d8e9455cd7318eb95842f08", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nLearning goals\n\u2022 You can model an UML activity diagram\n\u2022 You can model an UML state chart diagram\n\u2022 You understand the purpose of a UML communication diagram\n3", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 220, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d7c298f1-0594-4b4d-bee9-a5eebe80a1a9": {"__data__": {"id_": "d7c298f1-0594-4b4d-bee9-a5eebe80a1a9", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5c0da684-1f8d-4b34-81fb-130444e5b610", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "dab501fe6fd1bdfab0f9be0d8e91b2ae399cdbb24a6cf1f31acae9730ebf0dba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\n[Example] Battery\n\u2022 Design Goal 1: Battery Capacity (Range)\n\u2022 Maximize the battery capacity to provide an extended driving range for electric \nvehicles, allowing users to travel longer distances on a single charge.\n\u2022 Design Goal 2: Battery Weight and Size (Ef\ufb01ciency)\n\u2022 Minimize the weight and size of the battery pack to improve vehicle ef\ufb01ciency and \nreduce energy consumption.\n\u2022 Design Goal 3: Battery Lifespan (Longevity)\n\u2022 Design the battery to have a long lifespan, reducing the frequency and cost of battery \nreplacements for EV owners.\n4", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 606, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dea8506f-66df-4cbf-8c4f-a6bc88e5911b": {"__data__": {"id_": "dea8506f-66df-4cbf-8c4f-a6bc88e5911b", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e08ff3f0-c1b3-439a-b235-201483086321", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3e76246277b7629ce9b7f3f790e629cedfc249afe59808ad369ac4f8d8059adb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\n[Example] SIMCity\n\u2022 DG Usability: After completing a 10-minute tutorial, \u2265 80% of users can independently navigate the \nmain menu and recall the core functions of the system.\n\u2022 DG2 Reliability: The system ensures end-to-end data integrity by synchronizing veri\ufb01ed sinkhole \nstatus changes across all clients within 5 minutes.\n\u2022 NFRs\n\u2022 NFR1 Usability (Learnability): The system should provide a 10min tutorial to help users understand its core \nfeatures (\u2026).\n\u2022 NFR2 Usability (Navigation): Users should be able to access the menu within two steps.\n\u2022 NFR3 Usability (Accessibility): The system should support text-to-speech for improved accessibility.\n\u2022 NFR4 Robustness: The system should handle increased tra\ufb03c (+ 60%) during rush hours, with higher loads in \nwinter than in summer (+ 70%).\n\u2022 NFR5 Performance: The map should re\ufb02ect new and updated reports within \ufb01ve minutes.\n\u2022 NFR6 Reliability: The sinkhole status should be updated within \ufb01ve minutes after verifying a sinkhole and after \nremoving a sinkhole.\n\u2022 NFR7 Portability: The system should be available as a mobile app.\n\u2022 NFR8 Availability: The system should require and verify Internet connectivity for (\u2026) functionality.\n5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1245, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a4c39a4f-5bdd-4fc6-8c0c-79c825f80234": {"__data__": {"id_": "a4c39a4f-5bdd-4fc6-8c0c-79c825f80234", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "919413f3-4b34-4115-a4b7-205cb2b230a3", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ab8a82f125683f2e96cd6991e1fd6bf181d96bceab3e788405ca3640070c2153", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nSystem design concepts \u2014 Overview\n\u2022 Design goals\n\u2022 Control \ufb02ow \n\u2022 Subsystem decomposition\n\u2022 HW/SW mapping\n\u2022 Data management\n\u2022 Access control\n\u2022 Boundary conditions\n6\n\u2705\n\u2192", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 229, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "75c25815-2ee1-4999-aef0-12aa2ad234e0": {"__data__": {"id_": "75c25815-2ee1-4999-aef0-12aa2ad234e0", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "69643f39-218c-47ce-9b8c-687714a406f0", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b36c1ec23a41bae8ad9b5e57f9a1de93277112b54d85c1dcefe4393376b8c6ba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Please complete the \nMidterm Survey\u2028\nThank you!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 47, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "070bbedb-7b70-4e13-8d6e-8f645940f1be": {"__data__": {"id_": "070bbedb-7b70-4e13-8d6e-8f645940f1be", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "29e5951b-e72b-4e48-9f59-4a26a771fff8", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ee9a9e54e4852ef50133e813872d05324e60828a8b5f653fd08590ec9ce011e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nToday\u2019s roadmap\n\u2022 Dynamic modeling\n\u2022 Overview\n\u2022 Modeling work\ufb02ows (UML Activity Diagram)\n8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 151, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1e6c31e0-91be-4e24-894a-17be19b78f89": {"__data__": {"id_": "1e6c31e0-91be-4e24-894a-17be19b78f89", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9716e860-dcb6-4d91-8d87-efed44460d97", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0dc3df8e87316f7979b9e2637156f57500c2354a61baf5696191a8edaf840f6d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nDynamic modeling\n\u2022 Describes the dynamic behavior of parts (components) of the system\n\u2022 Typically, we focus on interesting behavior\n\u2022 e.g., speci\ufb01c work\ufb02ows involving the user/system with many actions\n\u2022 Dynamic model can be described in many ways\n\u2022 An entity\u2019s state\n\u2022 An entity\u2019s internal behavior / behavior with the system / behavior with other entities\n9", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 419, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7c3f92c6-8ae5-48ab-8422-fba966069999": {"__data__": {"id_": "7c3f92c6-8ae5-48ab-8422-fba966069999", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b5a3587a-5387-4166-9797-9d41b326e718", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "63cb58f9b93ba591b37ef8463d15d49f67ba8bef29b36a23d2c37e0b9d55c910", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nDynamic modeling tools\n\u2022 Activity Diagram \n\u2022 Purpose: Represent work\ufb02ows within use cases\n\u2022 Usage: Visualize complex user interactions with multiple actions/decision points\n\u2022 State Chart Diagram \n\u2022 Purpose: Model the dynamic states and transitions of a single entity or object\n\u2022 Usage: E\ufb00ective for illustrating how an object changes states in response to events\n\u2022 Communication Diagrams \n\u2022 Purpose: Illustrate the interactions and messages exchanged among multiple entities\n\u2022 Usage: Useful for modeling collaboration and communication patterns in a system\n\u2022 Sequence Diagrams \n\u2022 Purpose: Visualize the interactions between objects in a system over time\n\u2022 Usage: Show message sequence exchanged between objects to perform a speci\ufb01c function\n10", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 804, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1c710b36-8375-4c23-8b0f-1a35d58d6a7b": {"__data__": {"id_": "1c710b36-8375-4c23-8b0f-1a35d58d6a7b", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a59e102e-39b0-4f02-b623-cc445c9b5682", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5fcbba9541ed5331f0b820c96ee5381f578331975160900304ec17dd1008b8eb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nUML activity diagrams\n\u2022 Organize and represent the \ufb02ow of activities and actions, grouping them by \nthe interacting system or actor\n\u2022 Help to more easily understand complex work\ufb02ows\n\u2022 Show the order of execution, enabling modeling of both simple and complex \nbehaviors\n11", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 332, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3891bbc1-d439-46ca-8bd7-7806173cd1eb": {"__data__": {"id_": "3891bbc1-d439-46ca-8bd7-7806173cd1eb", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2a3403e5-e127-4309-8343-011bbcdc17a5", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "17add210fe7518300ddce736bc0b1fd90b475e79cd3aeb15b4d871c4165b819f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nUML activity diagrams\n\u2022 Consist of nodes and edges\n\u2022 Nodes describe activities and objects\n\u2022 Control nodes\n\u2022 Executable nodes \n\u2022 Object nodes (an object, e.g., a document, a \nSLF)\n\u2022 An edge is a directed connection between \nnodes\n12\nActor: Patient\nView Calendar\nCalendar\nView available \nappointments\nSinkholeAvailable \nappointments\nAction node\nObject node\nMultiple objects\nStart node\nEnd node\nEdge", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 458, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fcf6de11-bbb3-4a3c-991e-4665156206e4": {"__data__": {"id_": "fcf6de11-bbb3-4a3c-991e-4665156206e4", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f6937158-68c5-423d-95ed-7863f1a58a31", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a4327d1775eafc498581b564bd332b95a94f9deb72e5ab0c68de924633b0c65e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nUML activity diagram syntax\n13\nAction node A Action node B Action node\nAction node\nStart or initial node\nEnd or \ufb01nal node\nControl \ufb02ow: action A is followed by \naction B\nDecision node: Decide \non the control \ufb02ow\nMerge node: If the \ndi\ufb00erent control \ufb02ows \nmerge again \nAction node\nAction node\n[true condition]\n[false condition]\nFork node: Concurrent actions \n(order is not important)\nJoin node: Indicates the end \nof the concurrent actions\nAction node\nObject node\nDescribes an action\nDescribes an object\u2028\n(often hints at data)", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 585, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2be2d239-3829-4fb9-bf6b-c39a23648f51": {"__data__": {"id_": "2be2d239-3829-4fb9-bf6b-c39a23648f51", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4a0779cc-03bb-4408-bc8e-7975080c96b3", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5e9d18e4bbe7e455994ebff0b3182a247ccea7c1ef5c74be4fe96dcbff34ab7f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nActivity diagrams can use swimlanes\n\u2022 Purpose: Group actions by viewpoint/role to indicate responsibilities within \na process or work\ufb02ow \n\u2022 A swimlane within an activity diagram represents a boundary \n\u2022 Helps in separating responsibilities and interactions\n\u2022 Swimlanes combine the system's high-level logic with responsibilities and \ninteractions\n14\nPatient\nThe Patient\u2019s (actor) actions", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "37d7e496-4d67-431e-ad6c-9fe9403f33c4": {"__data__": {"id_": "37d7e496-4d67-431e-ad6c-9fe9403f33c4", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "48ca6ba7-3608-4441-8971-25995fdabfad", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5aaafc126acb4e0e43432a8ab5615ee5f5fdd2462da38574232bfe7726e4f115", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\n[Example] Swimlanes\n15\nPatient PatConnect\nSelect new \nappointment\nCheck for next \navailable date\nCon\ufb01rm \nappointment\nPossible \nAppointment\n[select appointment]\n[reject appointment]\nAppointment\nSwimlane: Describe the activities from \none actor\u2019s or system\u2019s point of view\nActor\u2019s \nresponsibility\nSystem\u2019s \nresponsibility\n\"Depth\" of the model \ndepends on the context!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 426, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23de831c-04d9-4fc4-9286-8d96091b38bf": {"__data__": {"id_": "23de831c-04d9-4fc4-9286-8d96091b38bf", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c8e7225b-a4fd-4e11-9b8a-86b15763edf1", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c6348dc71ccee951f015a9b9485140cc15eb1a50dbb9fc92c595228fe4ccc539", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\n[Example] Dynamic model - activity diagram\n16\nActivity\nMerge node\nObject node\nInitial node / \nstart\nFinal node / \nend\nConditionCondition\nDecision node", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 211, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2280c4c6-642f-477d-8f5c-64cfc8dba4c5": {"__data__": {"id_": "2280c4c6-642f-477d-8f5c-64cfc8dba4c5", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6bbc7683-bd13-4f04-b2a4-b5de187a74dc", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7694f3d059fc38b11ee913077cc967c6833384c273e37c3c708e385d9d2f61ab", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nHow to model an activity diagram\n\u2022 Activity diagrams serve to illustrate various work\ufb02ows, such as:\n\u2022 User-speci\ufb01c work\ufb02ows\n\u2022 System work\ufb02ows\n\u2022 Logical work\ufb02ows\n\u2022 \u2026 \n\u2022 These work\ufb02ows are frequently derived from:\n\u2022 The \ufb02ow of events within use cases\n\u2022 Associations found in the analysis object model\n17", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "60e41624-77e5-428b-ae75-5817f76da9b6": {"__data__": {"id_": "60e41624-77e5-428b-ae75-5817f76da9b6", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "34fef496-1ca7-4b28-9953-c02ede808d32", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3001a894f7f06f92dc64ea2818d3ae73e5b33abed0207d11ae1a0410e0b1416e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\n[Example] Login Activity\n18\nEnter username\nEnter password\nSubmit login \ndetails\nLogin details match \nuser record?\nno\nApproved \nLogin\nTry again?\nyes\nno\nUser Login", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 222, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "20c7886e-5de2-4ccb-9c32-a0da6786fb45": {"__data__": {"id_": "20c7886e-5de2-4ccb-9c32-a0da6786fb45", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "87c648e6-47c1-4b86-b905-7508e0715706", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0f6ed5fe2a73e226fcb9099edece7a2815105fc801248fd3143136eeda5e5205", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\n[Example] Login Activity\n19\nEnter username\nEnter password\nSubmit login \ndetails\nLogin details \nvalid?\nnoyesSend 2FA \nnoti\ufb01cation\nLogin \napproved?\nyes\nno\nApproved \nLogin\nTry again?\nyes\nno\n2FA \nNoti\ufb01cation\nValid Login \nDetails", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 285, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "335875ad-a325-4ab4-a8e5-31626ffaae75": {"__data__": {"id_": "335875ad-a325-4ab4-a8e5-31626ffaae75", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "320e192a-1134-40d2-b7ed-e3b1891e95bd", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e05ee610465dfdb1178fbe206d3840213deddbe079473c1e88129f3c6ec797a1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\n[Example] Login \nActivity (2FA)\n20\nEnter username\nEnter password\nSubmit login \ndetails\nLogin details valid?\nnoyes\nRequest \nauthentication \ncode\nLogin valid?\nyes\nno\nApproved \nLogin\nTry again?\nyes\nno\nAuthentication \nCode\nAuthentication-Device User\nGenerate \nauthentication \ncode\nLogin Details\nEnter \nauthentication \ncode\nUser Authentication \nCode", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 405, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f3ba2599-94e6-4369-91d6-95b8fbdf1b64": {"__data__": {"id_": "f3ba2599-94e6-4369-91d6-95b8fbdf1b64", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "822b294d-bfba-42f9-bcc2-46d3e97eb8aa", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1db4d921b19fd6e2f0b8722af6468ed644fb64e6cb1fd1a79909ee60383c924e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nL14 \u2014 In-class: Activity diagram\nModel a UML activity diagram to describe an interesting, non-trivial work\ufb02ow,|\ne.g.:\n\u2022 The enduser\u2019s work\ufb02ow to submit a report\n\u2022 The city o\ufb03cial\u2019s work\ufb02ow to con\ufb01rm a report\n\u2022 \u2026 (pick your own work \ufb02ow!)\n21\n \n\u23f320 min\n \ud83e\uddd1\ud83d\udcbb\n\ud83e\uddd1\ud83d\udcbb Pairs\nI12 Dynamic Model\n2 points", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 352, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9d744d44-68af-4e4c-8669-35e1d4119f6b": {"__data__": {"id_": "9d744d44-68af-4e4c-8669-35e1d4119f6b", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5dbacaa6-59be-4a89-8257-f82a4f0cbd52", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3d8b9d2ca882c3c8348198b81f62f68277adba6bb5e86b535d1c0a0d6ecf3504", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L14 Dynamic Modeling\nReferences\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, \npatterns, and Java. Pearson, 2009.\n\u2022 Object Management Group. Uni\ufb01ed Modeling Language. Version 2.5.1, 2017\n22", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 253, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6e5436fc-7997-4412-a418-f7a0a9009fc4": {"__data__": {"id_": "6e5436fc-7997-4412-a418-f7a0a9009fc4", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c7ade4a1-4dae-4828-9e2d-a4abadb3ad80", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L14 Dynamic Modeling.pdf", "file_path": "data/Fall25 1530 - L14 Dynamic Modeling.pdf", "file_type": "application/pdf", "file_size": 4713623, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a583ede48e90aa08824284ccd92e41ab01d26d52207524e23b01a33431641483", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL14 Dynamic Modeling\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 156, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b65302d3-2037-41d3-bccf-dc3d7e002445": {"__data__": {"id_": "b65302d3-2037-41d3-bccf-dc3d7e002445", "embedding": null, "metadata": {"page_label": "1", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "738a1616-55e1-4fc4-917c-f00c33851467", "node_type": "4", "metadata": {"page_label": "1", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "8d7f0ff2fdc15823c66d8619654baa0d6c6093b4e061a49f01edfaacd686c4e9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machine 02\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 126, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d448005f-4628-4aba-b014-5cf6cc4d4bbb": {"__data__": {"id_": "d448005f-4628-4aba-b014-5cf6cc4d4bbb", "embedding": null, "metadata": {"page_label": "2", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a2406327-a05c-43ab-a523-b94b71dfb8e8", "node_type": "4", "metadata": {"page_label": "2", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "363440d3703c5d5669ca8887ba7b0805da3b51742879002d526f71d847c21470", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machine Example\nDesign a Turing machine that recognizes the language B\nwhere\nB = {w#w |w \u2208\u03a3\u2217}\nOn input string w:\n1 Zig-zag across the tape to corresponding positions on either\nside of the # symbol to check whether those positions contain\nthe same symbol. If they do not, or if no # is found, reject.\nCross o\ufb00 symbols as they are checked to keep track of which\nsymbols correspond.\n2 When all symbols to the left of the # have been crossed o\ufb00,\ncheck for any remaining symbols to the right of the #. If any\nsymbols remain, reject; otherwise, accept.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 616, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ea670127-b831-478e-8089-691603dc8bbc": {"__data__": {"id_": "ea670127-b831-478e-8089-691603dc8bbc", "embedding": null, "metadata": {"page_label": "3", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "459cbe4f-864b-4ee6-84e4-9d5528f0ab2b", "node_type": "4", "metadata": {"page_label": "3", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4427d500aad71489f2c3afead903767b87388df1b85a32e888f39431e09cc35e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing MachineM1\nA Turing machine that decides B = {w#w |w \u2208\u03a3\u2217}.\nx\u2192R 0,1\u2192L\n#\u2192L\n0,1,x\u2192Lq6\nq7\n0,1\u2192Rq3\n#\u2192R\nx\u2192Rq5\n1\u2192x,R\n1\u2192x,L\nq1\n\u2294\u2192R\nqaccept\nx\u2192Rq8\n#\u2192R0\u2192x,R\n0\u2192x,L\nq2\nq4x\u2192R\n0,1\u2192R\n#\u2192R\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "18254b7b-c554-4f13-ad9f-e8fdf4c4cc78": {"__data__": {"id_": "18254b7b-c554-4f13-ad9f-e8fdf4c4cc78", "embedding": null, "metadata": {"page_label": "4", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "96e64037-016b-434b-86d3-50909c995059", "node_type": "4", "metadata": {"page_label": "4", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "b0441894fdeeb948a3c137be6d01523addb909866e32054a8adbf4c36cc68766", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing MachineM1\n\u03a3 = {0, 1, #}\n\u0393 = {0, 1, #, x, \u2294}\n1 \u2192x, R\nRead 1, write x, and move the tape head to the right direction\n# \u2192R\nA shorthand notation for # \u2192#, R\nRead #, write #, and move the tape head to the right direction\n0, 1 \u2192L\nA shorthand notation representing two transitions:\n0 \u2192 L which is 0 \u2192 0, L\n1 \u2192 L which is 1 \u2192 1, L\nqreject is omitted\nAll missing exiting arrows go to qreject\nAssume that it moves the tape head to the right direction\nbefore entering qreject without writing a symbol (writing the\nsame symbol it read)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 593, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d15626c3-9419-4cc3-9433-91bfdc6f0b3b": {"__data__": {"id_": "d15626c3-9419-4cc3-9433-91bfdc6f0b3b", "embedding": null, "metadata": {"page_label": "5", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ede9cdd6-df47-4547-a6a8-9dc311207c26", "node_type": "4", "metadata": {"page_label": "5", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "27d4c930088b8a6aacccb03c6083fddcdd86a0e46a9ae34eba0306f34f76c55a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing MachineM1\nComputing 01#01\nx\u2192R 0,1\u2192L\n#\u2192L\n0,1,x\u2192Lq6\nq7\n0,1\u2192Rq3\n#\u2192R\nx\u2192Rq5\n1\u2192x,R\n1\u2192x,L\nq1\n\u2294\u2192R\nqaccept\nx\u2192Rq8\n#\u2192R0\u2192x,R\n0\u2192x,L\nq2\nq4x\u2192R\n0,1\u2192R\n#\u2192R\nq101#01\nxq21#01\nx1q2#01\nx1#q401\nx1q6#x1\nxq71#x1\nq7x1#x1\nxq11#x1\nxxq3#x1\nxx#q5x1\nxx#xq51\nxx#q6xx\nxxq6#xx\nxq7x#xx\nxxq1#xx\nxx#q8xx\nxx#xq8x\nxx#xxq8\u2294\nxx#xx\u2294qaccept\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 366, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9480335b-cdb1-4f51-be2e-bcb0a5c20329": {"__data__": {"id_": "9480335b-cdb1-4f51-be2e-bcb0a5c20329", "embedding": null, "metadata": {"page_label": "6", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "34cc02b7-aba4-42a7-a0f4-b5f8d795f066", "node_type": "4", "metadata": {"page_label": "6", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "a7705e196b833bd516a8437fba49d90c1295fa7a9c1cb75b1d671991925c5ab5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing MachineM1\nComputing 01#10\nx\u2192R 0,1\u2192L\n#\u2192L\n0,1,x\u2192Lq6\nq7\n0,1\u2192Rq3\n#\u2192R\nx\u2192Rq5\n1\u2192x,R\n1\u2192x,L\nq1\n\u2294\u2192R\nqaccept\nx\u2192Rq8\n#\u2192R0\u2192x,R\n0\u2192x,L\nq2\nq4x\u2192R\n0,1\u2192R\n#\u2192R\nq101#10\nxq21#10\nx1q2#10\nx1#q410\nx1#1qreject0\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 252, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "106200a2-0389-4779-900f-293f1b1d6816": {"__data__": {"id_": "106200a2-0389-4779-900f-293f1b1d6816", "embedding": null, "metadata": {"page_label": "7", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "13d67913-a837-4132-a899-9806a0dd2e28", "node_type": "4", "metadata": {"page_label": "7", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "fec8a7d4b47c02244fa3e5dcf40913a087264c3737ff28fd74595b05292441ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing MachineM1\nComputing 01 (no # symbol)\nx\u2192R 0,1\u2192L\n#\u2192L\n0,1,x\u2192Lq6\nq7\n0,1\u2192Rq3\n#\u2192R\nx\u2192Rq5\n1\u2192x,R\n1\u2192x,L\nq1\n\u2294\u2192R\nqaccept\nx\u2192Rq8\n#\u2192R0\u2192x,R\n0\u2192x,L\nq2\nq4x\u2192R\n0,1\u2192R\n#\u2192R q101\nxq21\nx1q2\u2294\nx1\u2294qreject\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 245, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d66ca358-ebec-4061-89e4-50d8d8c795d3": {"__data__": {"id_": "d66ca358-ebec-4061-89e4-50d8d8c795d3", "embedding": null, "metadata": {"page_label": "8", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "024cee3e-501a-4949-8819-ba8ee5c71dd3", "node_type": "4", "metadata": {"page_label": "8", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "100ec3cb425ddc2351400cf8537079a499f9d3e7c8889fb195b25438bb25f634", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machine Example\nDesign a Turing machine that recognizes the language A\nwhere\nA = {02n\n|n \u22650}\nOn input string w:\n1 Sweep left to right across the tape, crossing o\ufb00 every other 0\n2 If in stage 1 the tape contained a single 0, accept\n3 If in stage 1 the tape contained more than a single 0 and the\nnumber of 0s was odd, reject\n4 Return the head to the left-hand end of the tape\n5 Go to stage 1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 460, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "be3f978b-d76e-4f49-99f2-98840691b73a": {"__data__": {"id_": "be3f978b-d76e-4f49-99f2-98840691b73a", "embedding": null, "metadata": {"page_label": "9", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0bc29098-04d0-4476-96c6-6985df1b9511", "node_type": "4", "metadata": {"page_label": "9", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "491d50c68670c9ddb574b4c442313c5b2b5b4dbeec96b1e8698557e8ea03380a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Moving the Tape Head Back\nSuppose we want to move the tape head back to the left most\nend of the tape\nNeed a state to do that\n0,1,x \u2192L\nThis will result in an in\ufb01nite loop\nRecall that if the tape head is at the left-most square and the\ntransition is L, it will stay at the same place\nThere is no signal telling a TM that its tape head is currently\nat the left-most square\nThe trick is to mark the left-most symbol (depending on \u0393)\nTurn 0 or 1 to \u2294\nTurn 0 to \u02d90 or x\nTurn 1 to \u02d91 or \u2294\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 545, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7c55d182-7372-46dd-b968-32daf467dbe6": {"__data__": {"id_": "7c55d182-7372-46dd-b968-32daf467dbe6", "embedding": null, "metadata": {"page_label": "10", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "dfe9cd7b-7607-40a8-b84d-0ddb2dcfb902", "node_type": "4", "metadata": {"page_label": "10", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4089d0acade470ea3c598fe93de24e4ca1ff4bb9434a273173d2c72194a0e73d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing MachineM2\nA Turing machine that decides A = {02n\n|n \u22650}.\nq4\n0\u2192x,R\nq3\nx\u2192R\n\u2294\u2192L\n0\u2192R\nx\u2192R\nq5\n0\u2192L\nx\u2192L\n\u2294\u2192R\nq2\nx\u2192R\n0\u2192x,R0\u2192\u2294,R\n\u2294\u2192R\nqacceptqreject\n\u2294\u2192R\nx\u2192R\nq1\n\u2294\u2192R\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 221, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a4df9aeb-60b6-4aab-8cda-d96bf3fe966e": {"__data__": {"id_": "a4df9aeb-60b6-4aab-8cda-d96bf3fe966e", "embedding": null, "metadata": {"page_label": "11", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "500a3a9d-ec76-423f-8d3a-989b0622fd77", "node_type": "4", "metadata": {"page_label": "11", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "230072eaec9bd0773670fa336942d34fb077eaa7b4366b73f175aa7ea5859ff0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing MachineM2\nComputing 0000\nq4\n0\u2192x,R\nq3\nx\u2192R\n\u2294\u2192L\n0\u2192R\nx\u2192R\nq5\n0\u2192Lx\u2192L\n\u2294\u2192R\nq2\nx\u2192R\n0\u2192x,R0\u2192\u2294,R\n\u2294\u2192R\nqacceptqreject\n\u2294\u2192Rx\u2192R\nq1\n\u2294\u2192R\nq10000\n\u2294q2000\n\u2294xq300\n\u2294x0q40\n\u2294x0xq3\u2294\n\u2294x0q5x\n\u2294xq50x\n\u2294q5x0x\nq5\u2294x0x\n\u2294q2x0x\n\u2294xq20x\n\u2294xxq3x\n\u2294xxxq3\u2294\n\u2294xxq5x\n\u2294xq5xx\n\u2294q5xxx\nq5\u2294xxx\n\u2294q2xxx\n\u2294xq2xx\n\u2294xxq2x\n\u2294xxxq2\u2294\n\u2294xxx\u2294qaccept\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 350, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f1e27185-aa99-4fd9-8a02-99a6f36c9fb8": {"__data__": {"id_": "f1e27185-aa99-4fd9-8a02-99a6f36c9fb8", "embedding": null, "metadata": {"page_label": "12", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0380dfb7-1021-4932-842a-2cda8b103062", "node_type": "4", "metadata": {"page_label": "12", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3f9a4b9205922756466cb79811f94c1be5cc8adef58be767cca9da87b309e359", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing MachineM2\nComputing 000\nq4\n0\u2192x,R\nq3\nx\u2192R\n\u2294\u2192L\n0\u2192R\nx\u2192R\nq5\n0\u2192Lx\u2192L\n\u2294\u2192R\nq2\nx\u2192R\n0\u2192x,R0\u2192\u2294,R\n\u2294\u2192R\nqacceptqreject\n\u2294\u2192Rx\u2192R\nq1\n\u2294\u2192R\nq1000\n\u2294q200\n\u2294xq30\n\u2294x0q4\u2294\n\u2294x0\u2294qreject\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 223, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3c23f89c-8775-477c-8649-0e98717d8c5b": {"__data__": {"id_": "3c23f89c-8775-477c-8649-0e98717d8c5b", "embedding": null, "metadata": {"page_label": "13", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ac32c456-417e-49d9-9f5f-bd21b075e559", "node_type": "4", "metadata": {"page_label": "13", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "669d4fc857140506531bd8ccfe46871245f67b00932f401acb0496e671e3b781", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Designing a TM\nDesigning a TM in a form of a state diagram is hard\nNeed to keep in mind out the content of the tape\nNeed to worry about moving tape head\nBut for a simple problem, it is not that bad\nLet\u2019s create a TM that shift all symbols on the tape to the\nright by one square by inserting the blank symbol at the\nleft-most square and move the tape head back to the\nleft-most square\nLet \u03a3 = {0, 1}and \u0393 = {0, 1, \u2294}\nHere are some input/output (on the tape)\nInput Output\n01101 \u229401101\n0 \u22940\n111 \u2294111\n\u03b5 \u03b5\nNote that this TM always accepts all strings over \u03a3\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 615, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "563c0d1b-2c13-4504-8a1f-0816c0f703c5": {"__data__": {"id_": "563c0d1b-2c13-4504-8a1f-0816c0f703c5", "embedding": null, "metadata": {"page_label": "14", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e0da3927-abff-4ebc-9da3-b1b4b1081d67", "node_type": "4", "metadata": {"page_label": "14", "file_name": "turing_machine_02_handout.pdf", "file_path": "data/turing_machine_02_handout.pdf", "file_type": "application/pdf", "file_size": 212408, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2775236324ae9bf96c7ab0212141dba654da79db30d0f89d38947abca86160cb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Designing a TM\nSolution\nq0\nq1\nq2\n0\u2192R\n1\u2192R\n0\u2192\u2294, R\n1\u2192\u2294, R\nq3\n1\u21920, R\n0\u21921, R\n\u2294\u21921, L\n\u2294\u21920, L\n0,1\u2192L\nqaccept\n\u2294\u2192L\n\u2294\u2192L\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 170, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "91c780f2-e00c-42e1-988f-5b4c379400ea": {"__data__": {"id_": "91c780f2-e00c-42e1-988f-5b4c379400ea", "embedding": null, "metadata": {"page_label": "1", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "47159003-0512-450f-846f-3541daf0bedf", "node_type": "4", "metadata": {"page_label": "1", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1cb80429d5db5292653cc5a678a1e4a61a964121e3ef2d6c8826251420c8d6d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata 01\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 128, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "637c2fb9-2c58-4ac3-9fff-7ee4474f2ab2": {"__data__": {"id_": "637c2fb9-2c58-4ac3-9fff-7ee4474f2ab2", "embedding": null, "metadata": {"page_label": "2", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ba457e8d-f38e-435c-acef-3a3ca2d16b2f", "node_type": "4", "metadata": {"page_label": "2", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2e701874210405f59e61ddd4fbb7fc83f61b960085809bdd04a274f9d8d3bb61", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata\nSuppose you are asked to write a software to control an\nautomatic door as shown below:\nfront\npad\nrear\npad\ndoor\nAssume we have the following methods:\ngetFrontPad(): returns true if there is a person standing on\nthe front pad. Otherwise, it returns false.\ngetRearPad(): returns true if there is a person standing on\nthe rear pad. Otherwise, it returns false.\nopenDoor(): when called it will open the door.\ncloseDoor(): when called it will close the door.\nHow the write the program in Java?\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 567, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "05742c33-5a3e-4f48-9562-b43d68de0187": {"__data__": {"id_": "05742c33-5a3e-4f48-9562-b43d68de0187", "embedding": null, "metadata": {"page_label": "3", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c2de9332-bb6c-4412-98fb-5b7e36011ebe", "node_type": "4", "metadata": {"page_label": "3", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "695ebe435ee77b183b465d6129068cfbe9f9280d1614b7b11c013e6b5d33532e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata\nProgram to control the automatic door:\npublic class DoorController {\npublic static void main(String[] args) {\nboolean isDoorOpen = false;\nwhile(true) {\nif(getFrontPad() && !getRearPad() && !isDoorOpen) {\nopenDoor();\nisDoorOpen = true;\n}\nif(!getFrontPad() && !getRearPad() && isDoorOpen) {\ncloseDoor();\nisDoorOpen = false;\n}\n}\n}\n}\nThe variable isDoorOpen of type boolean is used to record\nthe status of the door (1 bit of memory is required).\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 521, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1677548a-0abe-450e-8a62-b4b87242c011": {"__data__": {"id_": "1677548a-0abe-450e-8a62-b4b87242c011", "embedding": null, "metadata": {"page_label": "4", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "dc895550-ebb2-4cd2-a2e4-4d1f52920ee9", "node_type": "4", "metadata": {"page_label": "4", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f718f7d31363aed34f053a74057122ff82657ee8a27c31d22ad6c633be483a2c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata\ngetFrontPad() and getRearPad() together acts as external\ninput to the program:\ngetFrontPad() getRearPad() Input\ntrue true Both\ntrue false Front\nfalse true Rear\nfalse false Neither\nWe can de\ufb01ne the behavior of our program based on its input\nas well as the status of the door whether it is current open or\nclose\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 389, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f6d91c48-260f-46bd-b7ff-9c16806b590e": {"__data__": {"id_": "f6d91c48-260f-46bd-b7ff-9c16806b590e", "embedding": null, "metadata": {"page_label": "5", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "98cd22be-4fe2-49b4-9ce1-180f1674d6a1", "node_type": "4", "metadata": {"page_label": "5", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f5f740f09c5711fd608a609b45d4ed6d4e667faa5ac2583d91aa1490b5173f3c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Representations\nThe program can be represented in two standard ways\nState Diagram:\nOpenClosed\nFront\nNeither\nRear\nBoth\nNeither\nRear\nBoth\nFront\nState Transition Table:\nNeither Front Rear Both\nClosed Closed Open Closed Closed\nOpen Closed Open Open Open\nBut how to represent these in a mathematical way?\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 363, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce986c5f-e23d-4d65-8d51-00dd825485ff": {"__data__": {"id_": "ce986c5f-e23d-4d65-8d51-00dd825485ff", "embedding": null, "metadata": {"page_label": "6", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ead5e181-28b1-46dc-bc30-b2cda2aee85d", "node_type": "4", "metadata": {"page_label": "6", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "fe0860fbe7f67acec016e6e764169c857a0a93acf99e5f91a543a842a6d9a540", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite State Machine\nConsider the following \ufb01nite state machine M1:\n0\nq0 q1\n1\n0\n0, 1\nq2\n1\nMachine M1 consists of:\nThree states: q0, q1, and q2\nThe start state q0 (arrow pointing to it from nowhere)\nAn accept state q1 (double circle)\nAll single circle states are called non-accept state\nArrows represent transition functions\nThe label 0,1 represents two transitions\nq1 q2\n0\n1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 438, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0fa35980-8ecc-44db-9b93-2d4c2c704a54": {"__data__": {"id_": "0fa35980-8ecc-44db-9b93-2d4c2c704a54", "embedding": null, "metadata": {"page_label": "7", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7ebd468d-8ad7-48f7-90d9-54e94a44710c", "node_type": "4", "metadata": {"page_label": "7", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d5710ac8e7c5ef12c64e2b33b65a5362362f89bef07acc8881ee108a8a7ed76f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite State Machine\nConsider the following \ufb01nite state machine M1:\n0\nq0 q1\n1\n0\n0,1\nq2\n1\nWhen an input string is given to this machine, it returns\neither accept or reject.\n1101: accept\nq0\n1\n\u2192q1\n1\n\u2192q1\n0\n\u2192q2\n1\n\u2192q1 (an accept state )\n0010: reject\nq0\n0\n\u2192q0\n0\n\u2192q0\n1\n\u2192q1\n0\n\u2192q2 (a non-accept state )\n0100: accept\nq0\n0\n\u2192q0\n1\n\u2192q1\n0\n\u2192q2\n0\n\u2192q1 (an accept state )\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 415, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ec84fca1-2917-4f94-9c99-15045fb8a2bf": {"__data__": {"id_": "ec84fca1-2917-4f94-9c99-15045fb8a2bf", "embedding": null, "metadata": {"page_label": "8", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "85eb2f03-bedf-4763-8f1d-b3faa72838f6", "node_type": "4", "metadata": {"page_label": "8", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "891ed65b3aaaed0b1f2a2aee3dd9cfab820b26322b80cc7f455b0392f9695597", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite State Machine\nConsider the following \ufb01nite state machine M1:\n0\nq0 q1\n1\n0\n0, 1\nq2\n1\nCan we de\ufb01ne the set of inputs that is accepted by the above\nmachine?\nM1 accepts any strings that end with a 1\nM1 also accepts a string that ends with a 0 but it needs to\nhave even number of 0s after the last 1\nThe set of all strings accepted by this machine is\n{x|x ends with a 1 and x is a string\nthat ends with an even number of 0s following the last 1 }\nThe above set is called the language of the machine M1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 566, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "009985dd-369a-437f-a9a0-d476ad6ecbfc": {"__data__": {"id_": "009985dd-369a-437f-a9a0-d476ad6ecbfc", "embedding": null, "metadata": {"page_label": "9", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "da441aeb-0a98-4cb2-928e-8278e2e9e4b7", "node_type": "4", "metadata": {"page_label": "9", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "884d8eada9960d38fca35795d48e028e5ab3aa391b32324dcf4ea5cdb3b8ad9c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite-State Automaton\nA \ufb01nite state machine M can be de\ufb01ned as \ufb01ve tuple\nM = (Q,\u03a3,\u03b4,q0,F)\nQ is a non-empty \ufb01nite set of states\nM must have at least one state\n\u03a3 is an alphabet (a \ufb01nite set of symbols)\n\u03b4: Q\u00d7\u03a3 \u2192Q is the transition functions\nWe generally use a table to represent \u03b4\nq0 \u2208Q is the starting state\nA \ufb01nite automata can only have exactly one start state\nF \u2286Q is the set of accept states\nF can be \u2205 \u21ddM can have no accept state (rejects all strings)\n|F| can be more than 1 \u21ddM has more than one accept states\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 577, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e30b37c-66c9-4333-971c-beae3904bdb8": {"__data__": {"id_": "8e30b37c-66c9-4333-971c-beae3904bdb8", "embedding": null, "metadata": {"page_label": "10", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "df296e86-3ed4-47f7-830b-6231dadbd94d", "node_type": "4", "metadata": {"page_label": "10", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "dabac975879849e92b7df2a815181dd30c1eacc5a18059462201abd9105240c3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example: Machine M1\n0\nq0 q1\n1\n0\n0, 1\nq2\n1\nM1 = (Q,\u03a3,\u03b4,q0,F)\nQ= {q0,q1,q2}\n\u03a3 = {0,1}\n\u03b4 can be de\ufb01ned using the table below:\n\u03b4 0 1\nq0 q0 q1\nq1 q2 q1\nq2 q1 q1\nq0 is the start state\nF = {q1}\nThe state diagram and its formal de\ufb01nition are equivalent\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 308, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7bff3ef9-85ac-4bd2-997a-6ba6f6f7dc4c": {"__data__": {"id_": "7bff3ef9-85ac-4bd2-997a-6ba6f6f7dc4c", "embedding": null, "metadata": {"page_label": "11", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "360123c7-2220-4213-ae4f-0fdd58de1dce", "node_type": "4", "metadata": {"page_label": "11", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1b727aa6121ae3f1a4ce3a929620316addfbc9aa82461d49d34b1ddfdd6739c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Formal De\ufb01nition of Machine M1\nM1 = ({q0,q1,q2},{0,1},\u03b4,q0,{q1}) where \u03b4 is as follows:\n\u03b4 0 1\nq0 q0 q1\nq1 q2 q1\nq2 q1 q1\nThe above formal de\ufb01nition allows use to precisely answer\nquestions about M1:\nIs 0101 is a valid input for this machine?\nYes. 0 \u2208 {0,1} and 1 \u2208 {0,1}.\nIs 01a0 is a valid input for this machine?\nNo. a\u0338\u2208 {0,1}\nIs input 010 accepted by this machine?\nNo. q0\n0\n\u2192 q0\n1\n\u2192 q1\n0\n\u2192 q2 and q2 \u0338\u2208 {q1}.\nIs input 101 accepted by this machine?\nYes. q0\n1\n\u2192 q1\n0\n\u2192 q2\n1\n\u2192 q1 and q1 \u2208 {q1}.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 558, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dbd8ef2c-aae2-4d49-b487-93c305b1645f": {"__data__": {"id_": "dbd8ef2c-aae2-4d49-b487-93c305b1645f", "embedding": null, "metadata": {"page_label": "12", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5056afae-9e29-4423-876e-974c69b47b59", "node_type": "4", "metadata": {"page_label": "12", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "bf58f930d64fe2eb7c971bfd090bfff35ac351f2b0804efbdc845c0db0136b5f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Language Recognized\nA string w= w1w2 ...w n is accepted by M if and only if\nafter processing each symbol wi of w, where 1 \u2264i\u2264n, M\n\ufb01nds itself in an accept state (a state belonging to F).\nOtherwise, we say w is rejected by M.\nIf A is the set of all strings accepted by M, we say A is the\nlanguage of \ufb01nite-state machine M, denoted by\nL(M) = A\nWe say that M recognizes A\nA machine may accept several strings but it always recognizes\nonly one language.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 513, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0775778f-2e80-40e8-b3a6-c343d02b1b1e": {"__data__": {"id_": "0775778f-2e80-40e8-b3a6-c343d02b1b1e", "embedding": null, "metadata": {"page_label": "13", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3ee165b1-d5d3-4eb6-b21a-759e12d5e62e", "node_type": "4", "metadata": {"page_label": "13", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "194259c931c7df2f4b3a7f1d8bce3b14af7b37cd85dac58e9e4f4584407ccbfd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\n1\n0\n0 1\nq2q1\nM2 = (Q,\u03a3,\u03b4,start state,F)\nWhat is the formal de\ufb01nition of the above machine and the\nlanguage that it recognises?\nQ= {q1,q2}\n\u03a3 = {0,1}\n\u03b4 0 1\nq1 q1 q2\nq2 q1 q2\nThe start state is q1\nF = {q2}\nL(M2) = {w|w ends in a 1 }\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 301, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4a268878-05fa-488b-9f62-45d882265e10": {"__data__": {"id_": "4a268878-05fa-488b-9f62-45d882265e10", "embedding": null, "metadata": {"page_label": "14", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ad4b58a7-9f70-482e-b9c0-49e492104513", "node_type": "4", "metadata": {"page_label": "14", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "09265ded6ab5bfc1373cd3e0862d248d3039b6f51d8722d738b588a57f5d0ad1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\n0 1\n0\n1\nq1 q2\nM3 = (Q,\u03a3,\u03b4,start state,F)\nWhat is the formal de\ufb01nition of the above machine and the\nlanguage that it recognises?\nQ= {q1,q2}\n\u03a3 = {0,1}\n\u03b4 0 1\nq1 q1 q2\nq2 q1 q2\nStart state is q1\nF = {q1}\nL(M2) = {w|w is the empty string \u03b5 or ends in a 0 }\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 323, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fe559364-d6a5-4d03-8fd4-fcd789455bc8": {"__data__": {"id_": "fe559364-d6a5-4d03-8fd4-fcd789455bc8", "embedding": null, "metadata": {"page_label": "15", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "73b33eb7-22dd-4ee6-a733-977e67167ca2", "node_type": "4", "metadata": {"page_label": "15", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d83b233fe2c8f87cb3277294d2dad563219849392ad58139245eb1daca7ec1dc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\na b\na\nb\nb\nb a a b\na\ns\nr1\nr2\nq1\nq2\nM4 = (Q,\u03a3,\u03b4,start state,F)\nWhat is the formal de\ufb01nition of\nthe above machine and the lan-\nguage that it recognises?\nQ= {s,q1,q2,r1,r2}\n\u03a3 = {a,b}\nTransition Functions:\n\u03b4 a b\ns q1 r1\nq1 q1 q2\nq2 q1 q2\nr1 r2 r1\nr2 r2 r1\nStart state is s\nF = {q1,r1}\nL(M2) =\n{w|w starts and ends\nwith the same symbol }\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 403, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4ff6ead6-613f-47e9-8b1a-a10aec732d85": {"__data__": {"id_": "4ff6ead6-613f-47e9-8b1a-a10aec732d85", "embedding": null, "metadata": {"page_label": "16", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2538f572-4f95-4240-adb0-85a953fbac78", "node_type": "4", "metadata": {"page_label": "16", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "13a322594b616c5ab479fdce5731b43711ac039ff597ebebd7a8e306c13bbb00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\n0\n0\n1\n21\n2\n\n0\n\n\n1\n2\nq0\nq1\nq2\nM5 = (Q,\u03a3,\u03b4,start state,F)\nWhat is the formal de\ufb01nition of\nthe above machine and the lan-\nguage that it recognises?\nQ= {q0,q1,q2}\n\u03a3 = {0,1,2,}\nTransition Functions:\n\u03b4 0 1 2 \nq0 q0 q1 q2 q0\nq1 q1 q2 q0 q0\nq2 q2 q0 q1 q0\nStart state is q0\nF = {q0}\nL(M2) =\n{w|w is the empty string \u03b5 or\nends with or\nsum of input is multiple\nof 3 after the last\n}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 494, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4ec4f539-6fea-4775-9f79-50a91aa4701a": {"__data__": {"id_": "4ec4f539-6fea-4775-9f79-50a91aa4701a", "embedding": null, "metadata": {"page_label": "17", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1af466b1-c965-4493-b940-01336d5e20a2", "node_type": "4", "metadata": {"page_label": "17", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "b0d380ad67190e80c83ee87cbeea30a60a78fa12f05123114930355fcc6972f6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Designing a Finite-State Machine\nA computation model simulates a set of algorithms\nDesigning a \ufb01nite-state machine is the same as writing a\nprogram\nUse states to capture state-of-minds\nI just see a 1\nI just see two consecutive 0s\nI already saw 00 or 11\nDo not force yourself to use the least number of states\nNobody asks you to write a shortest possible program\nUnless you are asked to do so\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 455, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "03a065b3-c424-456c-b532-b1ae6885b411": {"__data__": {"id_": "03a065b3-c424-456c-b532-b1ae6885b411", "embedding": null, "metadata": {"page_label": "18", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ee4531e0-8ebd-4ba2-b55a-9d1ee792f8c4", "node_type": "4", "metadata": {"page_label": "18", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9b94396a07476a790bdedf933ec3776cfa617ace2b9355533a2b730ca9b69c57", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Designing Finite Automata\nSuppose the alphabet \u03a3 is {0,1}. Create a machine such that its\nlanguage is the set of all strings that contain either 11 or 00 as a\nsubstring.\n0\n1 1\n0\n01 0,1\nq0\nq1\nq3\nq2\nCommon mistakes:\n\u03b4(q1,0) = q0\n\u03b4(q2,1) = q0\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 303, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "56233dd2-61cb-4b65-aa74-a4ecf1e62ccd": {"__data__": {"id_": "56233dd2-61cb-4b65-aa74-a4ecf1e62ccd", "embedding": null, "metadata": {"page_label": "19", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ecabaec9-7053-4fef-a028-7a5e90451106", "node_type": "4", "metadata": {"page_label": "19", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2bf3ce03a1d07b9bb7d952a364d21bd1ba20f9270bac2a5c11e20608d9c3447f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Designing Finite Automata\nSuppose the alphabet \u03a3 is {0,1}. Create a machine such that its\nlanguage is the set of all strings that contain 011 as a substring.\n0\n0\n1\n1\n0\n1\n0\n1\nqs q0 q01 q011\nCommon mistakes:\n\u03b4(q0,0) = qs\n\u03b4(q01,0) = qs\nHint: Name of a state can be used to indicate a state-of-mind\nq01 means \u201cI just see a 0 immediately followed by a 1\u201d\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 413, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6a028ebf-c93a-45cf-bc23-bd8af32af4ff": {"__data__": {"id_": "6a028ebf-c93a-45cf-bc23-bd8af32af4ff", "embedding": null, "metadata": {"page_label": "20", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fb9e593d-47c3-47f6-9436-b3ead9af19a8", "node_type": "4", "metadata": {"page_label": "20", "file_name": "finite_automata_01_handout.pdf", "file_path": "data/finite_automata_01_handout.pdf", "file_type": "application/pdf", "file_size": 255070, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "24adae9af0326c6aabcb98cd7d3800abe67246d45b3f41828007f8bcbb1732c4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Designing Finite Automata\nSuppose the alphabet \u03a3 is {0,1}. Create a machine such that its\nlanguage is the set of all strings that ends with 0110.\n0 1 0\n1\n0\n0\n1\n1\n0\nq0 q1 q2 q3 q4\nCommon mistakes:\n\u03b4(q2,0) = q0\n\u03b4(q4,0) = q0\n\u03b4(q4,1) = q0\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "94a60deb-68d8-48d4-8109-1033c555d3fc": {"__data__": {"id_": "94a60deb-68d8-48d4-8109-1033c555d3fc", "embedding": null, "metadata": {"page_label": "1", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b9d9f8af-944e-455a-b554-6eb573f8b5af", "node_type": "4", "metadata": {"page_label": "1", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "becb479786c3001327bef4d6aca90a1169814470e35a2fd6a59e0b9823dd5ad7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata 02\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 128, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "af281cb5-f6cc-42ea-bc43-8b5c1fe4208c": {"__data__": {"id_": "af281cb5-f6cc-42ea-bc43-8b5c1fe4208c", "embedding": null, "metadata": {"page_label": "2", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c561844d-c9ad-48fa-adcb-0ef7a4761663", "node_type": "4", "metadata": {"page_label": "2", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "afaa855df0d646995f6b7897aa434ae51e4bb2089bce2e5312db6b6807dfd23e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata\nThe computational model called \ufb01nite automata can be used\nto simulate a set of simple algorithms\nCheck whether a string starts with 010\nCheck whether a string ends with 111\nCheck whether a string contains 0101 as a substring\nCheck whether a string contains substrings 000 and 111 where\n000 comes before 111\nIt is a powerful tool in compiler\nAccept or reject your source code based on a programming\nsyntax\nExample: the for statement:\nstarts with for\nfollowed by (\nfollowed by assignment statement(s)\nfollowed by ;\nfollowed by conditional statement(s)\nfollowed by ;\nfollowed by assignment statement(s)\nfollowed by )\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 693, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "252fde62-e6d8-41a5-b9ad-d5e64f528247": {"__data__": {"id_": "252fde62-e6d8-41a5-b9ad-d5e64f528247", "embedding": null, "metadata": {"page_label": "3", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ef020027-009d-4754-a551-7febde25fa66", "node_type": "4", "metadata": {"page_label": "3", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3e24749ef97e8b8d44ca7c643f522bae40d54f59c1f1dbdfbe0bb8667ec7f4d1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Formal De\ufb01nition of Computation\nLet M = (Q,\u03a3,\u03b4,q0,F) be a \ufb01nite automaton and let\nw= w1w2 ...w n be a string where each wi is a member of\nthe alphabet \u03a3.\nM accepts w if a sequence of states r0,r1,...,r n in Q exists\nwith three conditions:\n1 r0 = q0\n2 \u03b4(ri,wi+1) = ri+1, where i= 0,...,n \u22121\n3 rn \u2208F\nThink in terms of processing the input string w\nr0\nw1\n\u2192r1\nw2\n\u2192r2\nw3\n\u2192r3\nw4\n\u2192r4\nw5\n\u2192...\nwn\u22121\n\u2192 rn\u22121\nwn\n\u2192rn\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 467, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "67497bd6-5a50-4182-b7fb-75130a4a74b3": {"__data__": {"id_": "67497bd6-5a50-4182-b7fb-75130a4a74b3", "embedding": null, "metadata": {"page_label": "4", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6b9915d2-15a5-462d-bfe0-af34959c5def", "node_type": "4", "metadata": {"page_label": "4", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9826c5c9d67d8c9a8978b0ca565c3e9a081fdb25c0da5aa61e51899a07d7cb84", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Languages\nA language L over an alphabet \u03a3 is said to be a regular\nlanguage if some \ufb01nite-state automaton recognizes it.\nConsider the following machine M:\n0 0\n1\n1\nq0 q1\nWhat is the language of this machine?\nL(M) = {w|w contains an odd number of 1s }\n\u201cThe set of all strings consisting of an odd number of 1s\u201d is a\nregular language\nL(M) is a regular language\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 428, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "38659c88-b43c-4412-bb92-1d810c529020": {"__data__": {"id_": "38659c88-b43c-4412-bb92-1d810c529020", "embedding": null, "metadata": {"page_label": "5", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b29f7818-33e7-41d2-960f-2d02af5cdb51", "node_type": "4", "metadata": {"page_label": "5", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "fd1eb8d3ec5e10f731f94e808f4113013a6e635a160bd904df04e693a25bcab8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Languages\nWhy regular language is important in our discussion?\nDe\ufb01nition: A language is regular if some \ufb01nite-state machines\nrecognize it.\nIf we can prove that a language is regular\nWe must be able to construct a \ufb01nite-state machine to\nrecognize it\nIt maybe hard to build but I know that it exists\nIf we can prove that a language is not regular\nWe cannot construct a \ufb01nite-state machine to recognize it\nThis is an example of a limitation of this computational model\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dfe7201f-0f40-45df-ab44-edcc3a821cbe": {"__data__": {"id_": "dfe7201f-0f40-45df-ab44-edcc3a821cbe", "embedding": null, "metadata": {"page_label": "6", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "40235ef6-e7a4-41a8-8d19-2a80c8c6ff11", "node_type": "4", "metadata": {"page_label": "6", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3a373f2c99ee7e1d562dc97d543acdb261a708173d43a284d729138a77abab4a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Problem and Language\nIn theory of computation, a problem is represented as a\nlanguage\nA problem of determining whether a string contains 011 as a\nsubstring\nL(M) = {x|x contains 011 as a substring }\nWe already see a Deterministic Finite Automaton (DFA) M\nthat accepts all strings that contains 011 as a substring and\nreject those that does not contain 011 as a substring\nIt means this problem is solvable by the algorithm captured by\nthe previous DFA\nIn case of algorithm in a form of DFA (not all algorithms)\nif L(M) is regular, the problem represented by L(M) is\nsolvable\nif L(M) is not regular, no DFA exists, the problem\nrepresented by L(M) is unsolvable\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 721, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5cb9bb1a-aa09-4d75-9c26-02790cea472c": {"__data__": {"id_": "5cb9bb1a-aa09-4d75-9c26-02790cea472c", "embedding": null, "metadata": {"page_label": "7", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "dc976ff1-86a3-463c-a420-c8234904e814", "node_type": "4", "metadata": {"page_label": "7", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "c6b46a7ead8b8ae504ef2a8cd751004fddef55b313ae634c376dbe2c21c4ed44", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Problems and Languages\nSolvable problems that we see so far\nThe problem of determining whether a string ends with a 1\n{x|x ends with a 1}\nThe problem of determining whether a string is an empty\nstring or ends in a 0\n{x|x is an empty string or ends in a 0}\nThe problem of determining whether a string starts and ends\nwith the same symbol\n{x|x starts and ends with the same symbol }\nThe problem of determining whether a string contains either\n11 or 00 as a substring\n{x|x contains either 11 or 00 as a substring }\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7005d6a3-2f58-4549-8e38-c0dd4cbceeb5": {"__data__": {"id_": "7005d6a3-2f58-4549-8e38-c0dd4cbceeb5", "embedding": null, "metadata": {"page_label": "8", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b5c2917b-316e-4df4-bfc1-e707e2d3ea55", "node_type": "4", "metadata": {"page_label": "8", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d6261352f3f9b5e52d1978d2d79e858ba92132ec35efbbf8d66ac860638993a5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Problems and Languages\nSolvable problems that we see so far (continue)\nThe problem of determining whether a string contains 011 as a\nsubstring\n{x|x contains 011 as a substring }\nThe problem of determining whether a string ends with 0110\n{x|x ends with 0110}\nThe problem of determining whether a string contains an odd\nnumber of 1s\n{x|x contains an odd number of 1s}\nEach of the above languages is regular since we can construct\na DFA that recognizes it.\nBut if a language is very complicate, it will be di\ufb03cult to\nconstruct a DFA that recognizes it\nWe need tools to help us to determine whether a language is\nregular or not\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 687, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "467c75f2-3066-423b-bbe2-e14cbc1af19c": {"__data__": {"id_": "467c75f2-3066-423b-bbe2-e14cbc1af19c", "embedding": null, "metadata": {"page_label": "9", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "aedea1b0-6064-46ac-a4cd-e475e1385a51", "node_type": "4", "metadata": {"page_label": "9", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "7c96a865012a1975e6690e6ad6d5d874cffbcd5d0f1d7d2f5b26b277467fd7ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The Regular Operations\nIn arithmetic:\nObjects are numbers\nTools are operations for manipulating numbers (e.g., + and \u00d7)\n1 + 1 gives you a new number which is 2\nIn the theory of computation,\nObjects are languages (sets of strings)\nTools are operations for manipulating languages\nDe\ufb01nition 1.23\nLet A and B be languages. We de\ufb01ne the regular operations as\nfollows:\nUnion: A\u222aB = {x|x\u2208A or x\u2208B}\nConcatenation: A\u25e6B = {xy|x\u2208A and y\u2208B}\nStar: A\u2217 = {x1x2 ...x k |k\u22650 and each xi \u2208A}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2d1b294a-9018-4538-b2d7-c1c2f375736d": {"__data__": {"id_": "2d1b294a-9018-4538-b2d7-c1c2f375736d", "embedding": null, "metadata": {"page_label": "10", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "829ba2ba-b371-4b96-b89f-5022b5b9faed", "node_type": "4", "metadata": {"page_label": "10", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "41e51808a5aa9f549980e052e1967496d637c525e9b901c3becb70f7a82db3ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Examples (Union)\nLet \u03a3 = {0,1}\nConsider the following languages A and B\nA = {00, 11}\nB = {010, 101}\nThe union operations is identical to the set\u2019s union operation:\nA\u222aB = {x|x\u2208A or x\u2208B}\nFrom the above de\ufb01nition:\nA\u222aB = {00,11,010,101}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 296, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "537bee9e-5c81-4df5-b1ce-dab8dcf3a1db": {"__data__": {"id_": "537bee9e-5c81-4df5-b1ce-dab8dcf3a1db", "embedding": null, "metadata": {"page_label": "11", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "abd18bfe-702c-4f15-a58d-4a8f988895f5", "node_type": "4", "metadata": {"page_label": "11", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "6e3f21bef935214777a5107b6038033b9725aa4487f22c464293b6c6ac764bf6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Examples (Concatenation)\nLet \u03a3 = {0,1}\nConsider the following languages A and B\nA = {00, 11}\nB = {010, 101}\nThe de\ufb01nition of concatenation is de\ufb01ned as\nA\u25e6B = {xy|x\u2208A and y\u2208B}\nFrom the above de\ufb01nition:\nA\u25e6B = {00010,00101,11010,11101}\nFor simplicity, sometimes we write AB instead of A\u25e6B\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 349, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7a4e4224-5912-4293-afe7-96b1ae529135": {"__data__": {"id_": "7a4e4224-5912-4293-afe7-96b1ae529135", "embedding": null, "metadata": {"page_label": "12", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7ae54935-d815-4d59-b568-13471c46ca64", "node_type": "4", "metadata": {"page_label": "12", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "8087cafc1751811ddd06be7a119f319a74a8f4a10779a0f78e247264e31cf200", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Examples (Star)\nLet \u03a3 = {0,1}\nConsider the following language A\nA = {00, 11}\nThe de\ufb01nition of start is de\ufb01ned as\nA\u2217 = {x1x2 ...x k |k\u22650 and xi \u2208A}\nIf k= 0, the above de\ufb01nition becomes\n{ |0 \u22650}= {\u03b5}\nIf k= 1, the above de\ufb01nition becomes\n{x1 |1 \u22650 and xi \u2208A}= {00,11}\nIf k= 2, the above de\ufb01nition becomes\n{x1x2 |2 \u22650 and xi \u2208A}= {0000,0011,1100,1111}\nIf k= 3, the above de\ufb01nition becomes\n{x1x2x3 |3 \u22650 and xi \u2208A}= {000000,000011,..., 111111}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 502, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e4023d40-19b1-4a24-94a2-bb0805f02b86": {"__data__": {"id_": "e4023d40-19b1-4a24-94a2-bb0805f02b86", "embedding": null, "metadata": {"page_label": "13", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9a708ccd-88c7-4d2e-839c-13228a48b1c7", "node_type": "4", "metadata": {"page_label": "13", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "47a1e6486ed6385f0a2f0d05467003d22af194e422e08a87bfe237d398ebea25", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Examples (Star)\nLet \u03a3 = {0,1}\nSuppose A= {00,11}, what is A\u2217?\nA\u2217 = {\u03b5,00,11,0000,0011,1100,1111,000000,... }\nSuppose A= {011}, what is A\u2217?\nA\u2217 = {\u03b5,011,011011,011011011,011011011011,... }\nSuppose A= {0,1}, what is A\u2217?\nA\u2217 = {\u03b5,0,1,00,01,10,11,000,001,010,011,100,... }\nThis is the set of all strings over {0,1}\nSuppose A= \u2205, what is A\u2217?\nA\u2217 = {\u03b5}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 407, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1e7e9c67-1a4a-4516-b61f-f9092bbb1223": {"__data__": {"id_": "1e7e9c67-1a4a-4516-b61f-f9092bbb1223", "embedding": null, "metadata": {"page_label": "14", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f4b0214d-fdd4-476a-a6be-fb9d79d03023", "node_type": "4", "metadata": {"page_label": "14", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "a52af9b4faf7a9d477f2e7390ebd84ad2889dbac57beafc6869a63bec79bfadd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "De\ufb01nition of Closed Under Operations\nLet A be a set of objects (a collection of object)\nWe say that A is closed under operation \u25b3if for any x\u2208A\nand y\u2208A, x\u25b3y is also in A.\nExample: Let N be the set of natural number\nN is closed under addition\nFor any two natural numbers x and y, x+ y is a natural\nnumber\nN is closed under multiplication\nFor any two natural numbers x and y, x\u00d7y is a natural\nnumber\nN is not closed under subtraction\n5 \u22127 is not a natural number\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 524, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "72d0aaf2-5e62-422c-a095-30981ea628ff": {"__data__": {"id_": "72d0aaf2-5e62-422c-a095-30981ea628ff", "embedding": null, "metadata": {"page_label": "15", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "71dc420e-9259-4877-b126-c41ad65f1c68", "node_type": "4", "metadata": {"page_label": "15", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "162d4c9445a05ad69032b3c804d0dbf5a2e931ad52616ecebeede22adc69953f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "De\ufb01nition of Closed Under Operations\nLet L be the set of all regular languages\nThis is a set of sets\nRecall that we have three operations, union, concatenation,\nand star\nIs L closed under union operation?\nFor any regular languages A and B, is A\u222aB a regular\nlanguage?\nIs L closed under concatenation operation?\nFor any regular languages A and B, is A\u25e6B a regular\nlanguage?\nIs L closed under star operation?\nFor any regular language A, is A\u2217 a regular language?\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 523, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2670f62a-c02a-4d33-8bb4-6d2c0cfb0e2f": {"__data__": {"id_": "2670f62a-c02a-4d33-8bb4-6d2c0cfb0e2f", "embedding": null, "metadata": {"page_label": "16", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0ce680a9-c2ea-446c-a0f4-2a0590c4695c", "node_type": "4", "metadata": {"page_label": "16", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2c16a3b7e9d244b5948027c8a35cce424b15879475e68a3c21ac65073d2294b9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "L is regular under union operation\nLet A be a set of strings over {0,1}that contain a 00 as a\nsubstring\nIs A a regular language?\nCan you construct a DFA that recognizes the language A?\nOne of the machine that recognizes A can be as follows:\n1\n0\n0,1\n1\n0\nqbqa qc\nBecause there exists a DFA that recognizes A, A is a regular\nlanguage\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 394, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2a7c6757-dddb-4037-997c-660332a80fff": {"__data__": {"id_": "2a7c6757-dddb-4037-997c-660332a80fff", "embedding": null, "metadata": {"page_label": "17", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b1adc91b-1434-4aa8-ac63-c7d6d101b1f4", "node_type": "4", "metadata": {"page_label": "17", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "98d899a7562e04c02a7a93ca13028421141ab2166e032cc8bbf866ac10d16a11", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "L is regular under union operation\nLet B be a set of strings over {0,1}that end with a 1\nIs B a regular language?\nCan you construct a DFA that recognizes the language B?\nOne of the machine that recognizes B can be as follows:\n1\n0\n1\n0\nq0 q1\nBecause there exists a DFA that recognizes B, B is a regular\nlanguage\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 373, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e9d56925-16d6-491c-b7e4-fdd0b850121f": {"__data__": {"id_": "e9d56925-16d6-491c-b7e4-fdd0b850121f", "embedding": null, "metadata": {"page_label": "18", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1bb28e61-d109-47ee-8ffd-7175a71d0ff2", "node_type": "4", "metadata": {"page_label": "18", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "536927685f6c42be9ef25557bbf3df6be25047dbf1bb78de14246bbfe88c2a2b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "L is regular under union operation\nWe have A= {x|x contains 00 as a substring }is regular\nWe have B = {x|x ends with a 1}is regular\nHow about A\u222aB?\nA\u222aB = {x|x contains 00 as a substring or x ends with a 1}\nIt is quite straightforward to construct a machine that\nrecognizes A\u222aB (try to build one yourself)\n0\n0,1\n0\n1\n1\n1\n0\nThis does not prove that if A and B are regular, A\u222aB is\nregular\nThis is just one example out of in\ufb01nite may instances of\nregular languages\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 522, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0b3a0a51-6f21-4d9e-ada3-67c9294cb00b": {"__data__": {"id_": "0b3a0a51-6f21-4d9e-ada3-67c9294cb00b", "embedding": null, "metadata": {"page_label": "19", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0749bb7a-6f4d-4af7-816f-f6d65c8db5b4", "node_type": "4", "metadata": {"page_label": "19", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3ac6ffdca6e96c23d9c0c2aea6d3ee06503c227eeb6b472e9db8b93fbaa0cf00", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "L is regular under union operation\nWe need to show that for any two regular languages Aand B,\nA\u222aB is regular\nGiven a regular language A over a \u03a3, what do we know about\nthe language A?\nThere exists a DFA MA that recognizes A (L(MA) = A)\nMA = (QA,\u03a3,\u03b4A,qA,FA) for some QA, \u03b4A, qA, and FA\nSimilarly, given a regular language B over a \u03a3:\nThere exists a DFA MB that recognizes B (L(MB) = B)\nMB = (QB,\u03a3,\u03b4B,qB,FB) for some QB, \u03b4B, qB, and FB\nTo show that A\u222aB is regular for any regular languages A\nand B, we need to construct a DFA that recognizes A\u222aB\nfrom MA and MB\nTo understand the process, we are going to work on a speci\ufb01c\nexample\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 691, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a07a0763-270d-4a83-8bc4-ce856d7a44d7": {"__data__": {"id_": "a07a0763-270d-4a83-8bc4-ce856d7a44d7", "embedding": null, "metadata": {"page_label": "20", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6b448192-c2ce-4af9-b692-aa92bf6e7b50", "node_type": "4", "metadata": {"page_label": "20", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "5fdcab73008fc9b5cb5a31c62a90c172018a3d1807a78bc733bf8691e2d271e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "L is regular under union operation\nRecall the previous two regular languages and its DFAs where\n\u03a3 = {0,1}\nA= {x|x contains 00 as a substring }\n1\n0\n0,1\n1\n0\nqbqa qc\nMA = (QA,\u03a3,\u03b4A,qA,FA) and L(MA) = A\nB = {x|x ends with a 1}\n1\n0\n1\n0\nq0 q1\nMB = (QB,\u03a3,\u03b4B,qB,FB) and L(MB) = B\nGiven a string w and these two DFAs, how to check whether\nw is in A\u222aB?\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 405, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d413c4d4-b827-4491-9181-3ffc12455202": {"__data__": {"id_": "d413c4d4-b827-4491-9181-3ffc12455202", "embedding": null, "metadata": {"page_label": "21", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fbba7767-d745-448e-94dd-0a4707070be6", "node_type": "4", "metadata": {"page_label": "21", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "060ed40270692267852f354ee4896fd8e61000c7196cc8e69ffeafe4e98f523b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "L is regular under union operation\nRecall that A= L(MA) and B = L(MB)\nThus, A\u222aB = L(MA) \u222aL(MB)\nw\u2208A\u222aB\ni\ufb00 w\u2208A or w\u2208B\ni\ufb00 w\u2208L(MA) or w\u2208L(MB)\ni\ufb00 MA accepts w or w\u2208L(MB)\ni\ufb00 MA accepts w or MB accepts w\nIn other words,\nw\u2208A\u222aB if and only if MA accepts w or MB accepts w\nTo check whether w\u2208A\u222aB:\nRun both MA and MB on input w\nIf one of them or both accepts w, w\u2208A\u222aB\nIf both reject w, w\u0338\u2208A\u222aB\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 444, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6e392611-6caf-4d92-8c41-39a5d74e6f1b": {"__data__": {"id_": "6e392611-6caf-4d92-8c41-39a5d74e6f1b", "embedding": null, "metadata": {"page_label": "22", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2d3def46-d976-4f8e-a02a-32df3c3da393", "node_type": "4", "metadata": {"page_label": "22", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1080885938195a8cbbe35818f43956bea68649c6b8f5d00ba46cea950bf75c58", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "L is regular under union operation\nWe can run both machines simultaneously\n1\n0\n0,1\n1\n0\n1\n0\n1\n0\nqbqa qc q0 q1\nLet state (p,q) represents the situation where\nThe current state of MA is p\nThe current state of MB is q\nWith the new notion of states, we have\n(qa,q1)\n(qa,q0) ( qc,q0)\n(qb,q1) ( qc,q1)\n0\n1\n0\n1\n0\n1\n0\n1 0\n11\n0\n(qb,q0)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 389, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b2a77eac-3a04-4b99-9ff3-7e12e279ba9d": {"__data__": {"id_": "b2a77eac-3a04-4b99-9ff3-7e12e279ba9d", "embedding": null, "metadata": {"page_label": "23", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "239925cc-9e29-4b23-955f-101eb6ab7969", "node_type": "4", "metadata": {"page_label": "23", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "c3fb6cc9ab2cda82e7ba2b73b866f47aea30b8f53e35819002d20a9e3b773023", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "L is regular under union operation\nLet MA recognizes A, where MA = (QA,\u03a3,\u03b4A,qA,FA)\nLet MB recognizes B, where MB = (QB,\u03a3,\u03b4B,qB,FB)\nMachine M = (Q,\u03a3,\u03b4,q0,F) that recognizes A\u222aB can be\nconstructed as follows:\n1 Q= {(r1,r2) |r1 \u2208QA and r2 \u2208QB}\n2 For each (r1,r2) \u2208Q and a\u2208\u03a3\n\u03b4((r1,r2),a) = (\u03b4A(r1,a),\u03b4B(r2,a))\n3 q0 = (qA,qB)\n4 F = {(r1,r2) |r1 \u2208FA or r2 \u2208FB}\nTo recognize A\u2229B, simply change the set of accept states to\nF = {(r1,r2) |r1 \u2208FA and r2 \u2208FB}\nIf A and B are regular languages, A\u222aB is regular\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ef05fc0b-df9e-46e8-85e3-540c1d1d747f": {"__data__": {"id_": "ef05fc0b-df9e-46e8-85e3-540c1d1d747f", "embedding": null, "metadata": {"page_label": "24", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a4ddfd56-f385-4e5a-8bc0-4008297c95e9", "node_type": "4", "metadata": {"page_label": "24", "file_name": "finite_automata_02_handout.pdf", "file_path": "data/finite_automata_02_handout.pdf", "file_type": "application/pdf", "file_size": 276605, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "82389cfee1deda198eb3a9b2390c3e3102a0205e6aa274ae4b92094b45a9553e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Conclusions\nA language is regular if it is recognized by some \ufb01nite-state\nmachines\nIf you can prove that a language is regular:\nthere exists a \ufb01nite-state machine that recognizes it\nIf you can prove that a language is not regular:\nthere is no \ufb01nite-state machine that recognizes it\nIn formally, we show that if A and B are regular languages,\nA\u222aB is a regular language\nTo prove the closure of concatenation and star operators, we\nneed a sightly di\ufb00erent computational model\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 02", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 536, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "65338228-3a83-46b7-b8c2-75d0f836cd5f": {"__data__": {"id_": "65338228-3a83-46b7-b8c2-75d0f836cd5f", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c5db3bf3-5408-4c19-8d16-634340f30261", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f3e763910a52b95fbdc6822d72bec2887d750107ab9e1c1fd62ebf9802bec93f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL13 Intro to System Design\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 162, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "487a3772-33e3-47c0-ac4a-bbc4efe479ef": {"__data__": {"id_": "487a3772-33e3-47c0-ac4a-bbc4efe479ef", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f65407be-8352-4426-b7a3-e049dcc7289d", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a5e9d0af2fa6eda722aba5756f7fde1b8276859bed7a2668547627b8771720cc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d07ea0cf-6df7-40f0-b350-5d0b2d4f5fb8": {"__data__": {"id_": "d07ea0cf-6df7-40f0-b350-5d0b2d4f5fb8", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3952095c-349f-4c7e-af88-d6a759a3238c", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c8296bfc6f517367f8e5b63e1082ab2efe72b9e4faf64238d3f43c5d18d2b814", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nLearning goals\n\u2022 Understand the purpose of system design\n\u2022 You can formulate design goals\n\u2022 You understand the purpose of modeling a work\ufb02ow\n3 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 209, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "735c91e1-2791-4f52-9d0b-7ba6b2b8d69d": {"__data__": {"id_": "735c91e1-2791-4f52-9d0b-7ba6b2b8d69d", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c3a278c7-9e60-40f4-93b3-f79c0111e8c9", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9f10549ad81b4ee9742bdcd34f2bef7827d797ea69300c3587b1ce1361674c9e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Recap: Analysis\n\u2022 Analysis object model\n\u2022 Modeling access\n\u2022 System design overview\n\u2022 Design goals\n4 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 184, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d46e201b-9f26-4d73-808c-9cf3e0b5245c": {"__data__": {"id_": "d46e201b-9f26-4d73-808c-9cf3e0b5245c", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "33a3d352-5a4a-4003-8f83-7bf28ee9f9aa", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7f5d1a638209ec6fd033b448867c6db1cb48770796601b88ae52ac7d7f6b5d03", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n 5 CS 1530 - L13 Intro to System Design\n\ud83d\udc40 ReviewI12 Pizza ordering system\nYour task: Model this system using a UML class diagram.\nProblem statement \u2014 Design a pizza ordering system\u2028\n\u201cStudents can order pizzas with varying sizes and choose from various toppings. After \nselecting their pizzas, they con\ufb01rm the delivery type (pickup or dorm delivery) and pay. \nOnce an order is placed, the pizza baker receives it and con\ufb01rms the order. \u2028\nStudents can then check the expected time until the pizza is ready (for pickup) or until \ndelivery. In addition to regular pizzas (Margherita, Pepperoni, Mushroom), the pizza \nbaker can also prepare two special types of pizzas: Hawaiian or Yinzer.\"", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 716, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "43c28715-8eed-4ca9-a895-411395b26582": {"__data__": {"id_": "43c28715-8eed-4ca9-a895-411395b26582", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "13ecc7b2-1740-4bf9-b3a9-34c6e3c8209d", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9eed19754f22a9a30b4abbb86c34cd8a80300db95bc43af8a476c9712f83067f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Pizza ordering system\n6 CS 1530 - L13 Intro to System Design\nPizza\nsize \nprice\nbake() \ncalculateExpectedTime() \norder()\nTopping\nname \namount\nisVegetarian()\n*\nBaker\nname \nanchovyLover\nmakePizza()\nHawaiianPizza\naddExtraPineapple()\nYinzerPizza\naddExtraFries()\n*\n*\nStudent\nname \nisHungry \nisVegetarian\neat()", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 343, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc6c472c-8b27-4697-9a5f-8fa347d7d28e": {"__data__": {"id_": "dc6c472c-8b27-4697-9a5f-8fa347d7d28e", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "adf51932-177f-47f7-98a1-69e7bb87ef07", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b1c7795f737dd8da538597b0170d32fdd5d0eebe93de9821d009604ac73c1c94", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Pizza ordering system\n7 CS 1530 - L13 Intro to System Design\nOrder\ntotalPrice \ndelivery T ype\ncomplete() \ncalculateExpectedTime() \ncreate()\n1..10\nBaker\nname \nanchovyLover\nmakePizza()\nPizza\nname \ndescription \nsize \ntoppings[ ]: T opping\nisVegetarian() \naddT opping() \nremove T opping()\nHawaiianPizza\naddExtraPineapple()\nYinzerPizza\naddExtraFries()\n*\n*\nStudent\nname \nemail \naddress\nnotify()\nPayment\nmethod \namount \nstatus\nprocessPayment()\n0..3\npaymentMethods", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 496, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49a023c8-3078-48a2-872e-bcd9cdc7c01f": {"__data__": {"id_": "49a023c8-3078-48a2-872e-bcd9cdc7c01f", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7fa61f5d-5e8f-4173-9150-2a855d1a0d18", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "88be26d131df18090952a0a27a1db8d27c15d2a6f2aaeae5175382c489fa7ee5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nIdentifying access\n8 CS 1530 - L13 Intro to System Design\nBankAccount\nnumber\nbalance\nviewBalance()\nOwner\nname \naddress \ncreditScore\nwithdraw() > *\nInvestmentManager\nname \naddress\n*\n*\n*\nOwner and \nInvestmentManager can view \nthe balance. Owner can \nwithdraw money.\nOwner and \nInvestmentManager can view \nthe balance. Owner can \nwithdraw money.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 372, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fe627dc6-3831-4229-b78e-6d17cb990b60": {"__data__": {"id_": "fe627dc6-3831-4229-b78e-6d17cb990b60", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f6385f05-badf-4a57-b1b0-ab41e35bdf36", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "77c4a86e5503f3c495e560b588307614f395319055698266a4d887b7f3caa846", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nIdentifying access - Detailed\n9 CS 1530 - L13 Intro to System Design\nBankAccount\nnumber\nbalance\nviewBalance() \nwithdraw(): Money\nOwner\nname \naddress \ncreditScore\n*\nInvestmentManager\nname \naddress\n*\n*\n*\nOwner InvestmentManager\nBankAccount viewBalance()\nwithdraw() viewBalance()\nAccess matrix", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 320, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6f7b928c-d80f-4fe1-a191-016481e2deb9": {"__data__": {"id_": "6f7b928c-d80f-4fe1-a191-016481e2deb9", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9b643540-a745-4936-8b18-02adf494bd54", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "53625a763e9b22c79f7b63237703cfd8d0b4cb85a0a2c7809e73245428231bfb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nAccess Matrix\n\u2022 Access control: De\ufb01nes access permissions for entities and objects\n\u2022 Permissions: Provides detailed, \ufb01ne-grained access control\n\u2022 Security: Forms the basis for system security analysis and policies\n\u2022 The rows of the matrix represents the actors of the system\n\u2022 The column represent classes whose access we want to control\n10 CS 1530 - L13 Intro to System Design\nOwner InvestmentManager\nBankAccount viewBalance()\nwithdraw() viewBalance()\nSupportDesk contact()\nAn entry in the access \nmatrix represents an \u2028\naccess right\nLists the operations that can \nbe executed by the actor on \ninstances of the class", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 647, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c11ba327-9ec9-49ca-bdba-5b04fb2a4f39": {"__data__": {"id_": "c11ba327-9ec9-49ca-bdba-5b04fb2a4f39", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cd024fe2-dae0-48cf-8b07-4820ef9bcf9b", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "43fea013a2fa5a2915e70d4ab753fcf9b64e58f1ca4c93bb9fdd2ff67b0b96fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Recap: Analysis\n\u2022 System design overview\n\u2022 Design goals\n11 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 143, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2c747bff-d7e9-4a70-8c05-8282c5363d70": {"__data__": {"id_": "2c747bff-d7e9-4a70-8c05-8282c5363d70", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b0dcfbd5-3c9b-4bb8-a665-fdcc37cbca09", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b2576c8b2797068002037a1c32ebcf8754197235f3b3534c3723c68196a3222b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesigning software systems\n12 CS 1530 - L13 Intro to System Design\nThere are two ways of constructing a software design. \nOne way is to make it so simple \nthat there are obviously no de\ufb01ciencies. \u2028 \nAnd the other way is to make it so complicated \nthat there are no obvious de\ufb01ciencies. \n\u2014C.A.R. Hoare", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 333, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e10e29e1-8e41-4022-9d45-49e5575d496c": {"__data__": {"id_": "e10e29e1-8e41-4022-9d45-49e5575d496c", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e4d332b0-32d3-446a-aa5e-ccdbfe6631c0", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "92314989c275ab94ac59041d98980ebd4d21b8489c0a6a06530a79045173ae4d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesigning software systems\n\u2022 Design is a dynamic and creative problem-solving activity\n\u2022 It is di\ufb03cult - there is no concrete recipe or one-size-\ufb01ts-all approach\n\u2022 It requires adaptability and tailoring to the speci\ufb01c context\n\u2022 The quality of a system's design and its designer directly impacts the \nsystem's performance, longevity, and overall success\n13 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 422, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "78810e9b-ef96-4d8d-90ef-88ba509398db": {"__data__": {"id_": "78810e9b-ef96-4d8d-90ef-88ba509398db", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6c3db2b9-0754-4891-bb37-555dd0afbf0e", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e56341ecb975e1180fb5f978d00997963f25571bc042f9851db4ba5a022ca12f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSystem Design\n\u2022 For each feature, there are many variants to accomplish the desired behavior \n\u2022 What are the di\ufb00erences between the variants?\n\u2022 Which variant should we choose?\n14 CS 1530 - L13 Intro to System Design\nExample\nSimple Search Search Engine\n(e.g., ElasticSearch)\nIt depends! on the context\non the goals\nFR11 Search for Product: The consumer can search for a product.\nWhich one to pick?Which one to pick?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 444, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9c864924-c364-45eb-b99f-f4ebc96d6ed4": {"__data__": {"id_": "9c864924-c364-45eb-b99f-f4ebc96d6ed4", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "41a2987e-cd45-478a-9a68-ec1420d7e863", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "82b64cca31b7358c96f1eb1115750eb5113aa9589c36d32d49365ae68f72e303", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nHow to implement a system?\n\u2022 System design bridges the gap between \nrequirements analysis and implementation\n\u2022 Goal: Allocate the requirements to hardware and \nsoftware components\n\u2022 It helps to translate abstract ideas into concrete, \norganized systems\n\u2022 Comprises three main steps:\n1. Choose a high-level strategy for solving-problem\n2. Decide how to organize the system into subsystems \n3. Map subsystems to HW and SW components\n\u2022 Decide on the \"tech stack\"\n\u2022 Decide on \"build or buy\"\n\u2022 \u2026\n15 CS 1530 - L13 Intro to System Design\nProblem\nSystem\nSystem Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 589, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c6127806-849f-4376-a7d0-95b95fde046e": {"__data__": {"id_": "c6127806-849f-4376-a7d0-95b95fde046e", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fc215ca4-a2e4-476a-83ed-52c4f86564e6", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c2f60604c526231c503c5e570f8339632dbac6150a143113102989db529a824d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesigning Software Systems\n\u2022 Object-Oriented Requirements Analysis\n\u2022 Understand the problem \n\u2022 Identify the key concepts and their relationships \n\u2022 Build a (visual) vocabulary\n\u2022 Create an application domain model (conceptual model)\n\u2022 Object-Oriented Design\n\u2022 Assign responsibilities (attributes, methods)\n\u2022 Explore behavior with interaction diagrams\n\u2022 Explore design alternatives\n\u2022 Implementation \n\u2022 Map designs to code, implementing classes and methods\n16 CS 1530 - L13 Intro to System Design\nAnalysis Object Model", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 545, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99dbf7ed-03bb-402e-aa90-8e94689afcbc": {"__data__": {"id_": "99dbf7ed-03bb-402e-aa90-8e94689afcbc", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "87d1f8c7-3b05-420f-ba8a-9d8c65f11d25", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "67ee62f6db2b0e653673ec1ca6695901050bd5826b5b42aca7094e6edea157ed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nImportant system design principles\n1. Separation of concerns \n\u2022 Divide the system into separate aspects or concerns\n\u2022 Helps to keep the system\u00a0organized\n2. Abstraction hides complex implementation details, simpli\ufb01ed interfaces\n3. Modularity promotes code reusability and simpli\ufb01es maintenance\n4. Encapsulation restricts direct access to data (data integrity)\n\u2022 Makes changes to the implementation easier without a\ufb00ecting other parts of the \nsystem\n5. Consistency promotes readability, maintainability, integrity\n6. Simplicity reduces complexity\n17 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 614, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b60e204-a29b-4c75-863c-824ab3353ba8": {"__data__": {"id_": "3b60e204-a29b-4c75-863c-824ab3353ba8", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4970a8d6-dd02-4842-8645-669293903f9d", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d9d0f0f4c8ca901856ba6524d6b0823da6eade3939648b6b9bc3e2ae7e37e35a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSystem design concepts \u2014 Overview\n\u2022 Design goals\n\u2022 Control \ufb02ow \n\u2022 Subsystem decomposition\n\u2022 HW/SW mapping\n\u2022 Data management\n\u2022 Access control\n\u2022 Boundary conditions\n18 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 232, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "843e61c4-5aab-42cc-976f-7e81ca2971ce": {"__data__": {"id_": "843e61c4-5aab-42cc-976f-7e81ca2971ce", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "38cbe270-c9cd-4ef5-a940-d5257a69085a", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6c528058d0859edaf7fba8254b51ea50ab0afc386d8e55e8dbf8c0ac5ce1d010", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Recap: Analysis\n\u2022 System design\n\u2022 Design goals\n\u2022 Types\n\u2022 Trade-o\ufb00s\n19 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 154, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9d0fb2b3-f181-427a-a19d-ad78767d73e0": {"__data__": {"id_": "9d0fb2b3-f181-427a-a19d-ad78767d73e0", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7508f5f0-2d2e-4c99-a723-3a3e119f8d5c", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d5629e2d1025e4d0a0d2f2bef90c648f18bac5dc9390917b624c10e7ff332dd9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSo far \u2026\n\u2022 Identi\ufb01ed requirements\n\u2022 Analysis object model (domain model)\n\u2022 Now, de\ufb01ne the concrete messages and behavior of/between objects\n\u2022 How?\n\u2022 How should concepts be implemented by classes?\n\u2022 How should the objects interact exactly? Time-frame?\n20 CS 1530 - L13 Intro to System Design\nThis is a critical, \nimportant, and \nnon-trivial task!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "48904e94-7ace-4f5c-a0d5-96aeb82088ec": {"__data__": {"id_": "48904e94-7ace-4f5c-a0d5-96aeb82088ec", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b8094ab1-a9e6-4fd8-a893-71d18e2aef96", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f070efca83704567f820f688e472a91c8a0aeff94ede768a4c353ea2d6bc8627", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nGoal of Software (Software Quality)\n\u2022 Functional correctness\n\u2022 Robustness\n\u2022 Flexibility\n\u2022 Reusability\n\u2022 E\ufb03ciency\n\u2022 Scalability\n\u2022 Security\n21 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 207, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e055b1f-cb56-404b-9b8d-58c4865d21bd": {"__data__": {"id_": "2e055b1f-cb56-404b-9b8d-58c4865d21bd", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6be84f75-2a19-46a9-bc3e-0ed35bcf5cbe", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7abba9e43b51c35730eef92ffd7c239b5ed3b43a89436b776723a25f68f30cca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesigning for change\n\u2022 \u2026 accept the fact of change as a way of life, rather than an untoward and \nannoying exception \u2028\n\u2014 Brooks, 1974\n\u2022 Software that does not change becomes useless over time \u2028\n\u2014 Belady and Lehman\n\u2022 The biggest cost is typically not building the system but evolving the system!\n\u2022 Reducing the cost of change is important when designing software systems\n22 CS 1530 - L13 Intro to System Design\nimplementation & \nmaintenance by \nsingle person\ncomprehensible \nby a single person complex system\nDesign for division of labor", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 568, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ab3a4135-ea34-4bee-a46f-ce2fd8286a45": {"__data__": {"id_": "ab3a4135-ea34-4bee-a46f-ce2fd8286a45", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "45e09047-b0cf-49f9-abda-d594646bfedf", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "215aca5850b63c0ef4417623e91c07604b523f285de1ccb5ecf73ce4d6d59ef7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesign goals\nDesign goals identify and describe the qualities the system should focus on\n\u2022 Often phrased as statements a team makes about the quality of experience \nthey would like a system to attain\n\u2022 Design goals can be inferred from the non-functional requirements or \nfrom the application domain\n\u2022 Design goals are often generalized non-functional requirements\n\u2022 Active Elicitation: Some design goals must be actively elicited through conversations \nwith clients or stakeholders; metrics, design methodologies, and implementation \ngoals are valuable sources\n23 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 631, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "866bf039-1562-4df6-a32b-e4c70d9e4fb2": {"__data__": {"id_": "866bf039-1562-4df6-a32b-e4c70d9e4fb2", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2f1909da-73fe-4955-963b-98ac36f67637", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "8fb5ad74d0d581e526398a10b58bcfdbbbe36d887554dd4eb896fa5bbf688689", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesign goals (cont.)\n\u2022 Typically non-prescriptive and more abstract\n\u2022 Focus on the concerns of designers, architects, and developers\n\u2022 Often a prioritization of non-functional requirements: \u2028\ntrade-o\ufb00s guide the development\n\u2022 Design goals describe the overarching objectives for the system's \narchitecture and design\n24 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 386, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6833b504-d384-4868-b962-4d362a4ae864": {"__data__": {"id_": "6833b504-d384-4868-b962-4d362a4ae864", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5135e5f0-2cbc-4475-b1c7-5494f88af73e", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d3d292baa1ac9b008d7702f0a774242ab89467a7934aa926bdc44721af4b98be", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTypes of design goals \u2014 Customer\n\u2022 Cost\n\u2022 Development cost \u2014 Cost of developing the (initial) system\n\u2022 Deployment cost \u2014 Cost of installing the system and training the users\n\u2022 Upgrade cost \u2014 Expenses associated with data migration and backward \ncompatibility requirements\n\u2022 Maintenance cost \u2014 Resources needed to handle future bug \ufb01xes and \nenhancements to the system\n\u2022 Administration cost \u2014 Cost required for administering and managing the system\n25 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 518, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9a9cd1b5-8a18-4e01-9eb5-c0d8ab26eead": {"__data__": {"id_": "9a9cd1b5-8a18-4e01-9eb5-c0d8ab26eead", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "334a8e5a-689e-4467-9485-dfb39e140a51", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7022de498aeac9a389b8024295fb2818fd19eeaf393f2330659e57fc2551b6d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTypes of design goals \u2014 Customer\n\u2022 Maintenance\n\u2022 Extensibility \u2014 How easy is it to add functionality or new classes to the system?\n\u2022 Modi\ufb01ability \u2014 How easy is it to change the functionality of the system?\n\u2022 Adaptability \u2014 How easy is it to port the system to di \ufb00erent application domains?\n\u2022 Portability \u2014 How easy is it to port the system to di \ufb00erent platforms?\n\u2022 Readability \u2014 How easy is it to understand the system from reading the code?\n\u2022 Traceability of requirements \u2014 How easy is it to map the code to speci \ufb01c \nrequirements?\n26 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 604, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23e703f3-8e01-4325-93f0-e2e15130e4a1": {"__data__": {"id_": "23e703f3-8e01-4325-93f0-e2e15130e4a1", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c63284ec-a5bd-44ec-83be-852b585e57b3", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "164d7eaf6574903100adb25f50a129217b08bd9e7bb5b3fa7f87083c4b6cc1a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTypes of design goals \u2014 End-user\n\u2022 Utility \u2014 How well does the system support user tasks and goals?\n\u2022 Usability \u2014 How easy is it for the user to interact with the system?\n\u2022 Cost \u2014 How much does it cost to use the system? (free vs one-time \npayment vs future costs)\n27 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 334, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8b3730c2-6075-4c8d-848e-39f438c1a0d7": {"__data__": {"id_": "8b3730c2-6075-4c8d-848e-39f438c1a0d7", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7c1f9207-8cbf-45f9-ba14-7c238ec26f7e", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "210007fbab1a970f11f8986294ff33b5cd75e78b70f8a96f10dc790974236899", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTypes of design goals \u2014 Developer\n\u2022 Performance\n\u2022 Response time \u2014 How quickly does the system respond after receiving a user requests?\n\u2022 Throughput \u2014 How many tasks can the system accomplish within a \ufb01xed time frame?\n\u2022 Memory \u2014 How much space is necessary for the system to operate e \ufb03ciently?\n\u2022 Dependability\n\u2022 Robustness \u2014 Ability to handle invalid user input\n\u2022 Reliability \u2014 Di \ufb00erence between speci\ufb01ed and actual behavior\n\u2022 Availability \u2014 Percentage of time the system is available for normal tasks without \ndowntime\n\u2022 Fault tolerance \u2014 Ability to continue operating in the presence of errors or failures\n\u2022 Security \u2014 Ability to protect against malicious attacks, unauthorized access, data breaches\n\u2022 Safety \u2014 System's ability to prevent endangering human lives, even in the presence of \nerrors and failures\n28 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 882, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "75621848-865c-4bc0-891b-0a07edd7ca26": {"__data__": {"id_": "75621848-865c-4bc0-891b-0a07edd7ca26", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d3e146bc-ea90-43ab-9e57-b18b90e68002", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f96e9ecebe06c7d156d289e250456515e6f61dde91435790c2e24a922a459a9e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesign goals interests overlap (Example)\n29 CS 1530 - L13 Intro to System Design\nDeveloperCustomer\nEnd-user\nReliabilityReliabilityReliability\nPortabilityPortability\nConsistencyConsistencyUsabilityUsability", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 235, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14b2ac73-329b-41ab-8642-2ce2ba7bb312": {"__data__": {"id_": "14b2ac73-329b-41ab-8642-2ce2ba7bb312", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "755e4091-dc6c-4688-b360-2944a04111cb", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "994bb3b63d1515dfe82fe31221f91c1aaa325b4856d7dffb804c5b9bd0cd6c45", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nRequirements vs design goals\nRequirements de\ufb01ne what the software system must do\n\u2022 \"What does the system need to accomplish in terms of functionality, features, \nand constraints?\"\n\u2022 Typically detailed and speci\ufb01c, providing clear instructions on how the system \nshould behave\n\u2022 Focus on addressing the needs and expectations of stakeholders, including \nend-users, clients, and regulators\n\u2022 Early stage de\ufb01nition (requirements elicitation, analysis)\u2028\nDesign goals identify and describe the qualities the system should focus on\n\u2022 What should be prioritized?\n\u2022 What is the overarching goal of the entire system?\n30 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 678, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e589ef8-6faf-4b76-899e-747e701e1244": {"__data__": {"id_": "2e589ef8-6faf-4b76-899e-747e701e1244", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d8c277f5-d53c-47f3-9e01-7b798d5a174f", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "80f1edbe0a2f272dd2770b3edbb4d2a9c55718193b9ed78ce65e24305a7d6073", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example]\n\u2022 Functional Requirements\n\u2022 FR1 Access Lab Result: Patients should be able to securely access their lab test \nresults.\n\u2022 FR2 Book Appointment: Patients should be able to book an appointment with their \nhealthcare provider.\n\u2022 FR3 Authenticate: Patients and doctors must authenticate themselves to protect \npatient data.\n\u2022 Non-functional Requirements\n\u2022 NFR 1 Security: Ensure patient data privacy and compliance with healthcare data \nregulations (HIPAA).\n\u2022 NFR 2 Usability: Design an intuitive and user-friendly interface for patients of all \ntechnical skill levels, so that they can navigate it without needing a manual.\n31 CS 1530 - L13 Intro to System Design\n*simpli\ufb01ed\n*simpli\ufb01ed", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 721, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eef1c4d0-9a9e-49df-b6f4-a54ed8c9793f": {"__data__": {"id_": "eef1c4d0-9a9e-49df-b6f4-a54ed8c9793f", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6f871bd0-953c-4df6-a1db-aeba1e7cc338", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5a9604d57b5a59d14398fe1fe2dd25a8e12d76e5dfc4205d361cb9804b68e88e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example]\nDesign Goals\n\u2022 DG1 Usability and User Experience: Ensure the app is easy to navigate, \nwith a clean and intuitive user interface to provide a positive user experience \nfor patients, reducing the learning curve and frustration.\n\u2022 DG2 Security and Privacy: Implement robust security measures to protect \npatient data to maintain patient trust and comply with healthcare data privacy \nregulations.\n\u2022 DG3 Scalability: Design a scalable architecture to handle increased user \nloads to accommodate the number of patients using the system without \nperformance degradation.\n32 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 645, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f5b491be-01ed-41fe-acc0-98a0e9fe232a": {"__data__": {"id_": "f5b491be-01ed-41fe-acc0-98a0e9fe232a", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1d62337d-7f5d-46ae-8456-20510cfb469f", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f618e37208c41e5e7806124398536013f1589f6f277a6725184eed5c79b961e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesigning Software Systems\n\u2022 Object-Oriented Requirements Analysis\n\u2022 Understand the problem \n\u2022 Identify the key concepts and their relationships \n\u2022 Build a (visual) vocabulary\n\u2022 Create an application domain model (conceptual model)\n\u2022 Object-Oriented Design\n\u2022 Assign responsibilities (attributes, methods)\n\u2022 Explore behavior with interaction diagrams\n\u2022 Explore design alternatives\n\u2022 Implementation \n\u2022 Map designs to code, implementing classes and methods\n33 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 523, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "46312cf9-6521-4298-afc2-88d164010986": {"__data__": {"id_": "46312cf9-6521-4298-afc2-88d164010986", "embedding": null, "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8c732a62-c012-4318-80e0-24f3f2900750", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "13fa4de5943bc933eeb9138239dd994c0788e5283968a060ebd1cac62f98d025", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesign vs Architecture\n34 CS 1530 - L13 Intro to System Design\nArchitecture questions \n\u2022 How does the user choose to view a \nmap? \n\u2022 How should the user\u2019s location data \nbe protected?\n\u2022 What other functionalities are \nconnected to viewing a map?\n\u2022 What are the interfaces between \nobjects?\nDesign questions \n\u2022 How do I include the Google \nMaps API? \n\u2022 How does the device\u2019s built-in \nencryption work?\n\u2022 What threads exist and how do \nthey coordinate?\n\u2022 What are the interfaces between \nsubsystems and third-party \nsystems?\nArchitecture de\ufb01nes what the system\u2019s major components are and how they interact.\nDesign de\ufb01nes how each component is implemented and behaves internally.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 706, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "97d07a57-d8b7-47f0-ab61-4cd36b4f97d6": {"__data__": {"id_": "97d07a57-d8b7-47f0-ab61-4cd36b4f97d6", "embedding": null, "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "132c0925-c38e-4590-8e2a-16da92210b63", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ff53d057fe3daa5fecc87602c174569f6bee1a66c0dbe112cc9eb5e4e13ded23", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nIdentifying design goals\n\u2022 Analyze requirements \u2014 identify implicit design goals within these \nrequirements\n\u2022 Stakeholder input \u2014 insights and expectations regarding system quality and \nperformance\n\u2022 Benchmark existing systems \u2014 industry standards and best practices\n\u2022 Risk assessment \u2014 potential risks and challenges associated with the \nproject\n35 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 416, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "416a2d2c-7fad-44db-8dfa-9cc18c75e872": {"__data__": {"id_": "416a2d2c-7fad-44db-8dfa-9cc18c75e872", "embedding": null, "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5badcbdc-4241-4e0c-b20a-51c06f0c671c", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b4ba8b6a3e374c7634c85cb00a9992e80607a02471f2dc428fa82e628932a0de", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nIdentifying design goals (cont.)\n\u2022 Technical feasibility \u2014 design goals need to align with the chosen \ntechnology stack and infrastructure\n\u2022 Prioritize and re\ufb01ne design goals based on their importance to stakeholders: \nspeci\ufb01c, measurable, achievable, relevant, and time-bound (SMART)\n\u2022 Iterate and collaborate \n\u2022 Involve cross-functional teams in goal derivation and validation\n\u2022 Iterate on design goals as the project progresses and new insights emerge\n36 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 524, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d6fa9c1e-e032-4284-b163-82e276c85ee6": {"__data__": {"id_": "d6fa9c1e-e032-4284-b163-82e276c85ee6", "embedding": null, "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f3c28ed1-d38d-4823-8632-d5572c18afaf", "node_type": "4", "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e864f6af0459429c83270a6813ae43dd8df0e5282caba6443cefb3d6823c688f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSMART\n\u2022 Speci\ufb01c\n\u2022 Measurable\n\u2022 Achievable\n\u2022 Relevant\n\u2022 Time-bound\n37 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 135, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ffe32c6f-491f-4ed6-82b3-35fb00fa0ed9": {"__data__": {"id_": "ffe32c6f-491f-4ed6-82b3-35fb00fa0ed9", "embedding": null, "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3e142592-27ca-4214-bece-c0271dc8245d", "node_type": "4", "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7b4616531d250ef3da212f374abd9bd518cd7f0bb28569268d45ef2b220aaaa7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDesign goal trade-o\ufb00s\n\u2022 Design goals are often con\ufb02icting\n\u2022 Typical trade-offs\n\u2022 Functionality vs. usability\n\u2022 Cost vs. robustness\n\u2022 Ef\ufb01ciency vs. portability\n\u2022 Rapid development vs. functionality\n\u2022 Cost vs. reusability\n\u2022 Backward compatibility vs. readability\n38 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 330, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d54c21fc-11e6-404b-9fd7-76aff8c033cb": {"__data__": {"id_": "d54c21fc-11e6-404b-9fd7-76aff8c033cb", "embedding": null, "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "af9a1593-1b8f-4b8b-8479-4c05bf898f45", "node_type": "4", "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d3c629ca0531a5d2143b3430ea8baf1edda600553f7b5b5938b529991289173a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Battery\n\u2022 Design Goal 1: Battery Capacity (Range)\n\u2022 Maximize the battery capacity to provide an extended driving range for electric \nvehicles, allowing users to travel longer distances on a single charge.\n\u2022 Design Goal 2: Battery Weight and Size (Ef\ufb01ciency)\n\u2022 Minimize the weight and size of the battery pack to improve vehicle ef\ufb01ciency and \nreduce energy consumption.\n\u2022 Design Goal 3: Battery Lifespan (Longevity)\n\u2022 Design the battery to have a long lifespan, reducing the frequency and cost of battery \nreplacements for EV owners.\n39 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 613, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "865d7fa0-49be-46df-a201-24ac9520164f": {"__data__": {"id_": "865d7fa0-49be-46df-a201-24ac9520164f", "embedding": null, "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7030d3e7-e9c9-4d51-a767-f7f2cd1fd011", "node_type": "4", "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "bbee9137ca030a545999f559ed8e5bd40cf0756986fb99a4311b4422725fcb14", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L13 Intro to System Design\n[Example] SIMCity\n\u2022 DG Usability: Any user (regardless of skill level) can navigate through the system and recall the \nmain features (...) of the system after following a tutorial.\n\u2022 DG2 Reliability: The system should ensure data integrity by accurately re\ufb02ecting sinkhole status \nupdates in a timely manner.\n\u2022 NFRs\n\u2022 NFR1 Usability (Learnability): The system should provide a 10min tutorial to help users understand its core \nfeatures (...).\n\u2022 NFR2 Usability (Navigation): Users should be able to access the menu within two steps.\n\u2022 NFR3 Usability (Accessibility): The system should support text-to-speech for improved accessibility.\n\u2022 NFR4 Robustness: The system should handle increased tra\ufb03c (+ 60%) during rush hours, with higher \nloads in winter than in summer (+ 70%).\n\u2022 NFR5 Performance: The map should re\ufb02ect new and updated reports within \ufb01ve minutes.\n\u2022 NFR6 Reliability: The sinkhole status should be updated within \ufb01ve minutes after verifying a sinkhole and \nafter removing a sinkhole.\n\u2022 NFR7 Portability: The system should be available as a mobile app.\n\u2022 NFR8 Availability: The system should require and verify Internet connectivity for (\u2026) functionality.\n40", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1238, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b3abe04d-6b86-4dc0-b1d9-efb1c826d158": {"__data__": {"id_": "b3abe04d-6b86-4dc0-b1d9-efb1c826d158", "embedding": null, "metadata": {"page_label": "41", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "70bee93c-8638-4953-ad1c-34b7af23944b", "node_type": "4", "metadata": {"page_label": "41", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "57074d0245efe36ab25f1045c9c3b4592b64832a75e795438dc2db387f040470", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTake Away: Designing good systems is hard!\n\u2022 Typically, systems are divided into smaller, manageable pieces to deal with \ncomplexity\n\u2022 Design goals guide decisions made by developers\n\u2022 Design goals encompass the entire system to be able to realize the di\ufb00erent \nparts independently\n\u2022 Trade-o\ufb00s between design goals need to be addressed\n\u2022 E.g., \"a user can navigate to every functionality using at most 2 clicks from the home \npage\" vs. \"a user must be able to use the system without needing a manual\"\n41 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 570, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fd2c580e-c930-4986-8df9-5b88d01530a5": {"__data__": {"id_": "fd2c580e-c930-4986-8df9-5b88d01530a5", "embedding": null, "metadata": {"page_label": "42", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5e1fe2e3-1af2-4ef6-bc27-4ab265f713a8", "node_type": "4", "metadata": {"page_label": "42", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e3febddf06a99a72830cbdce3d1de650557a947078862497e670c43e06b8d4aa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nReferences\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, \npatterns, and Java. Pearson, 2009.\n\u2022 Object Management Group. Uni\ufb01ed Modeling Language. Version 2.5.1, 2017\n42 CS 1530 - L13 Intro to System Design", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 259, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93e65704-4eeb-4d29-9156-2ebbe1328f2a": {"__data__": {"id_": "93e65704-4eeb-4d29-9156-2ebbe1328f2a", "embedding": null, "metadata": {"page_label": "43", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "96c97066-733f-4c4e-8ae3-57250ee04420", "node_type": "4", "metadata": {"page_label": "43", "file_name": "Fall25 1530 - L13 Intro to System Design.pdf", "file_path": "data/Fall25 1530 - L13 Intro to System Design.pdf", "file_type": "application/pdf", "file_size": 5192262, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "aecf7e92c695e01cd79033b3f72f0c036ad20f91bdcaac85ed99fd6d2e636420", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL13 Intro to System Design\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 162, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8df68cce-eb46-495b-8503-bedbc4f0de82": {"__data__": {"id_": "8df68cce-eb46-495b-8503-bedbc4f0de82", "embedding": null, "metadata": {"page_label": "1", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "496c9259-fbbe-41f5-a83f-88b29fb1d513", "node_type": "4", "metadata": {"page_label": "1", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f65cf7a446ca64125d56864ab3ce54172e2127d29e5354725f82e8a415c62dbb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machine 04\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 126, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bb0dc959-82d6-4d05-bdec-a27185efde5b": {"__data__": {"id_": "bb0dc959-82d6-4d05-bdec-a27185efde5b", "embedding": null, "metadata": {"page_label": "2", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d50f7420-eb47-4cd9-833e-93b4b096754e", "node_type": "4", "metadata": {"page_label": "2", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9e10749b6d14546bffcb82c8ca6c5c58d8fc193b1a729b8ea97c53fce0a439b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Recognizable and Decidable\nGiven a language R, if some Turing machines accept every\nstrings s \u2208R and does not accept(either reject or loop\ninde\ufb01nitely) every string s \u0338\u2208R, we say that \u201cR is\nrecognizable\u201d\nNote that these machines must accept on all input s \u2208R\nHowever, if s \u0338\u2208R, these machines either reject or loop\nin\ufb01nitely\nGiven a language D, if some Turing machine accept every\nstrings s \u2208D and rejects every string s \u0338\u2208D, we say that \u201cD\nis decidable\u201d\nNote that these Turing machines must be deciders\nThese machine either accept or reject on all input strings\nThese machine will not loop inde\ufb01nitely on any strings\nIf D is decidable, D is also recognizable\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 722, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b4c6c2e-48a9-4df3-a67b-3b91d1f84d38": {"__data__": {"id_": "6b4c6c2e-48a9-4df3-a67b-3b91d1f84d38", "embedding": null, "metadata": {"page_label": "3", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1377fff7-1cf2-46fc-b172-049d3fb71aab", "node_type": "4", "metadata": {"page_label": "3", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "698fd3ffce391825cbb093b8ebe61372887bbccc6a7c6d2065ce058488bc972b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Decidable Language\nFollowing languages are examples of decidable languages:\nA = {02n\n|n \u22650}\nB = {w#w |w \u2208\u03a3\u2217}\nWe already demonstrated that there exists Turing machines\n(deciders) that decide above languages\nThere are some languages that are recognizable but not\ndecidable\nSuppose R is recognizable but not decidable\nThere are TMs that accept all strings in R and does not\naccept all strings not in R\nNo TM can accept all strings in R and reject all strings not\nin R\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 527, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99b80284-1fe7-4710-9ff6-a2222d675a58": {"__data__": {"id_": "99b80284-1fe7-4710-9ff6-a2222d675a58", "embedding": null, "metadata": {"page_label": "4", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f4d52a8a-ea8f-4df4-beb6-357626548916", "node_type": "4", "metadata": {"page_label": "4", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f778733f225006bda64fbcee50b72330d8bd561a0464c905772af20ed8644125", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Undecidable Language\nConsider a polynomial:\n6x3yz2 + 3xy2 \u2212x3 \u221210\nA root of a polynomial is an assignment to its variables which\nresults in that value of polynomial is 0\nA polynomial has an integral root if all variables are assigned\ninteger values\nThe above polynomial has an integral root x = 5, y = 3, and\nz = 0\nGiven a polynomial with an integral root, can you \ufb01nd out\nits root?\nYes, brute force\nGiven a polynomial, can you \ufb01nd out whether it has an\nintegral root?\nNot always\nHilbert\u2019s tenth problem stated that there is no algorithm that\ntests whether a polynomial has an integral root.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 654, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "24bebd62-3f53-4e44-9eed-70786187f20d": {"__data__": {"id_": "24bebd62-3f53-4e44-9eed-70786187f20d", "embedding": null, "metadata": {"page_label": "5", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2f4a90dc-d453-4396-8bb1-94ac5c7afd92", "node_type": "4", "metadata": {"page_label": "5", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "6bbc43cd4bce4e7c5d8d3026d740f34dfcefdbd1f5e71a89d167e7995fafd040", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Undecidable Language\nLet \u27e8x\u27e9be a string representation of the object x\nLet D be the set of all string representations of polynomials\nthat have integral root\nFormally\nD = {\u27e8p\u27e9| p is a polynomial with an integral root }\nGiven \u27e8p\u27e9(a string representation of a polynomial p), if a\nTuring machine can decide whether\n\u27e8p\u27e9\u2208 D (polynomial p has an integral root) or\n\u27e8p\u27e9\u0338\u2208 D (polynomial p does not have an integral root)\nD is decidable\nHilbert\u2019s tenth problem simply stated that D is not decidable.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 551, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cbcbbd19-95f2-48e8-a5bd-f5447bd689ef": {"__data__": {"id_": "cbcbbd19-95f2-48e8-a5bd-f5447bd689ef", "embedding": null, "metadata": {"page_label": "6", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "df599c42-1e49-4963-92ea-222c83e915f3", "node_type": "4", "metadata": {"page_label": "6", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1e933f18e550d36c0c5dc28cc44d626c979ca6453e6d3615d748d98c69041374", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Undecidable Language\nConsider polynomials with one variable (e.g., 2x2 + x \u22127)\nLet\nD1 = {\u27e8p\u27e9|\u27e8 p\u27e9is a polynomial over x with an integral root }\nIs D1 recognizable?\nYes, if there exists a Turing machine that accepts every\n\u27e8p\u27e9\u2208 D1 and does not accept every \u27e8p\u27e9\u0338\u2208 D1\nExample: M1 that recognizes D1 using a brute force\nalgorithm in high-level de\ufb01nition\nM1 =\u201cOn input \u27e8p\u27e9where p is a polynomial over the variable\nx:\n1 Evaluate p with x set successively to the value 0, 1, -1, 2, -2, 3,\n-3, . . .. If at any point the polynomial evaluates to 0, accept\u201d\nNote that M1 accepts all \u27e8p\u27e9\u2208 D1 and loop inde\ufb01nitely on all\n\u27e8p\u27e9\u0338\u2208 D1\nTherefore, D1 is recognizable.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 710, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4300fabe-8f0b-40be-a81e-eed2880c4170": {"__data__": {"id_": "4300fabe-8f0b-40be-a81e-eed2880c4170", "embedding": null, "metadata": {"page_label": "7", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "18fb179c-5a14-4749-b3fc-fece39bedc83", "node_type": "4", "metadata": {"page_label": "7", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "8453386a041555d902b3034508e14942d0a49152442d3eb1dd28fab27f9f2bec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Undecidable Language\nConsider polynomials with one variable (e.g., 2x2 + x \u22127)\nLet\nD1 = {\u27e8p\u27e9|\u27e8 p\u27e9is a polynomial over x with an integral root }\nIs D1 decidable?\nYes, if there exists a Turing machine that accepts every\n\u27e8p\u27e9\u2208 D1 and rejects every \u27e8p\u27e9\u0338\u2208 D1\nLuckily there is an upper/lower bound of the value of x that a\nmachine needs to test:\n\u00b1kcmax\nc1\nwhere k is the number of terms in the polynomial, cmax is the\ncoe\ufb03cient with the largest absolute value, and c1 is the\ncoe\ufb03cient of the highest order term\nChange M1 such that it rejects after testing value goes\nout-of-bound\nTherefore, D1 is decidable\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 662, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c9a8dbca-8b68-4add-a1dd-35f35a8778ad": {"__data__": {"id_": "c9a8dbca-8b68-4add-a1dd-35f35a8778ad", "embedding": null, "metadata": {"page_label": "8", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4e64b583-24d8-4126-8355-055daabd1653", "node_type": "4", "metadata": {"page_label": "8", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "bd16f09c9031b9abeb2b90c51ef2f3e51f26e2a6666ab1fc44cabe7cb95fdf4c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Undecidable Language\nLet D be the set of all polynomials that have integral root\nD = {\u27e8p\u27e9|\u27e8 p\u27e9is a polynomial with an integral root }\nWe can create a machine that tries all possible assignment\nvalues starting from 0s\nFor example, in case of two variables x and y, try the following\nvalues [x, y]:\n[0, 0], [0, 1], [1, 0], [1, 1], [0, \u22121], [\u22121, 0], [\u22121, \u22121], [0, 2], . . .\nIf a polynomial p has an integral root, eventually it will be\nevaluated to 0\nTherefore, D is recognizable\nUnfortunately, there is no bound that we can check and\nmachine may loop in\ufb01nitely\nIf the polynomial p does not have an integral root, we will keep\ntrying new values of [x, y] forever (loop inde\ufb01nitely)\nD is not decidable\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 760, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3878d460-aa31-40c1-a599-dab739c7215f": {"__data__": {"id_": "3878d460-aa31-40c1-a599-dab739c7215f", "embedding": null, "metadata": {"page_label": "9", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ea130fbe-181b-4538-b4d4-2cc3b0b702b2", "node_type": "4", "metadata": {"page_label": "9", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "b58413e46cad0aaaf206ebe678cab88cb4b7baa7dc5b053f7a92a380180de52d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Describing Turing Machines\nA description of a Turing machine can be huge even for a very\nsimple algorithm\nExample, compare two strings {w#w |w \u2208{0, 1}\u2217}\nx\u2192R 0,1\u2192L\n#\u2192L\n0,1,x\u2192Lq6\nq7\n0,1\u2192Rq3\n#\u2192R\nx\u2192Rq5\n1\u2192x,R\n1\u2192x,L\nq1\n\u2294\u2192R\nqaccept\nx\u2192Rq8\n#\u2192R0\u2192x,R\n0\u2192x,L\nq2\nq4x\u2192R\n0,1\u2192R\n#\u2192R\nThe above state diagram represents the formal descriptionin\na form of state diagram of a Turing machine\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 431, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "598bcf82-13fe-499b-9cec-4424a6e554a4": {"__data__": {"id_": "598bcf82-13fe-499b-9cec-4424a6e554a4", "embedding": null, "metadata": {"page_label": "10", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e6cfddb3-1bb2-42dd-914d-aa9aa6f942b8", "node_type": "4", "metadata": {"page_label": "10", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "de85e552d8d533b5ad7d6a1899f984848afbc3e05d8068567ce412ec99764176", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Describing Turing Machines\nAn implementation descriptionof the previous Turing\nmachine that decides {w#w |w \u2208{0, 1}\u2217}is shown below\nOn input string w:\n1 Zig-zag across the tape to corresponding positions on either\nside of the # symbol to check whether those positions contain\nthe same symbol. If they do not, or if no # is found, reject.\nCross o\ufb00 symbols as they are checked to keep track of which\nsymbols correspond.\n2 When all symbols to the left of the # have been crossed o\ufb00,\ncheck for any remaining symbols to the right of the #. If any\nsymbols remain, reject; otherwise, accept.\nNote that the above description describes the way the Turing\nmachine moves its head and store data (cross o\ufb00 symbols)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 765, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cce4890d-fce1-4439-9977-ff80c3e01657": {"__data__": {"id_": "cce4890d-fce1-4439-9977-ff80c3e01657", "embedding": null, "metadata": {"page_label": "11", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "adf69100-2828-4f85-97a3-b84bb9df390e", "node_type": "4", "metadata": {"page_label": "11", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "b62beba245b874621af57d18822b6d94796b8c70286131b7f79f2069bf5a3173", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Describing Turing Machines\nAn high-level descriptionof the previous Turing machine\nthat decides {w#w |w \u2208{0, 1}\u2217}is shown below:\nM =\u201cOn input s where s = x#y for some string x and y:\n1 Compare whether the string x is identical to the string y.\n2 If they are identical, accept; otherwise, reject.\u201d\nNote that the where clause behaves like a \ufb01lter\nAny string that does not satisfy the where clause will be\nrejected immediately\nWhat a TM can do?\nFrom the Church-Turing thesis, if there is an algorithm to do\nsomething, a TM can do the same thing\nExamples:\nCompare two strings\nCheck whether the length of a string is a power of 2\nAddition, subtraction, multiplication, division, modulo\nAny algorithms discussed in Chapter 1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 781, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f86b5c33-f04e-4d4d-9faf-ddfd9d319dfc": {"__data__": {"id_": "f86b5c33-f04e-4d4d-9faf-ddfd9d319dfc", "embedding": null, "metadata": {"page_label": "12", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1c74b27d-1d44-4838-a8c3-a486d4a1f373", "node_type": "4", "metadata": {"page_label": "12", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "e83cb71b659687e055b5a28ede9068f063795db458a5d79d13232881b52f9ef6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Describing Turing Machines\nHigh-level description of a Turing machine is suitable for\ndescribing universal Turing machine\nConsider the following language:\nA = {x1#x2# . . .#xn |xi = xj for every i and j}\nThe following machine M\u2032decides A using TM M as a\nsubroutine:\nM\u2032=\u201cOn input s where s = x1#x2# . . .#xn:\n1 For every i where 1 \u2264i \u2264n \u22121:\n2 Run M on input xi#xi+1.\n3 If M rejects, reject.\n4 accept\u201d\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 462, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8c01943f-9918-471c-adc0-236162bccdc3": {"__data__": {"id_": "8c01943f-9918-471c-adc0-236162bccdc3", "embedding": null, "metadata": {"page_label": "13", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e76b7df2-c820-40af-ba10-96e56d0a06ab", "node_type": "4", "metadata": {"page_label": "13", "file_name": "turing_machine_04_handout.pdf", "file_path": "data/turing_machine_04_handout.pdf", "file_type": "application/pdf", "file_size": 208657, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9da878ec3fe5e274b0c9f31d5c69b6d271d2877e6d4fd89b6ab684b4a2d3b06b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Conclusions\nAlgorithm and Turing Machine are consider equivalent\nAnything that an algorithm can do, there exists a TM that can\ndo the same thing\nSimply convert the algorithm to TM\nAnything that a Turing machine can do, there exists an\nalgorithm that can do the same thing\nSimply convert the TM to algorithm\nBecause of this, if there is a problem that a TM cannot solve,\nno algorithm can solve the same thing\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 04", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 470, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2f10e3e8-32e2-4023-9a58-0cf7f5e20f46": {"__data__": {"id_": "2f10e3e8-32e2-4023-9a58-0cf7f5e20f46", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "292e4d1f-65bd-461e-90bc-a4efa98c0b1d", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "abbdaebcdfa5362cabde4682ec163932af73809182df4593005008022d104449", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL03 Scrum\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 145, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3418a462-5a7c-4117-9b49-753f6e1b1a69": {"__data__": {"id_": "3418a462-5a7c-4117-9b49-753f6e1b1a69", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1a91aa11-6a78-4a94-afb2-f52835ac0f26", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "2b7fe709eec9fef05db333c07595bfabaa90e7527ac631cc769248a3095a7cea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1429, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "75c9eb33-b669-49c6-a299-c8397bc059f5": {"__data__": {"id_": "75c9eb33-b669-49c6-a299-c8397bc059f5", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2195278d-e5c4-426c-923f-1feda49f5f71", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0fc93a7c3d9adc78f5f180f5439ec87eeaf4ef432af5076b47c361054639feb3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nLearning goals\n\u2022 You have a better overview of the software development lifecycle\n\u2022 You understand the roles, artifacts, events, and meetings of Scrum\n3CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 224, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "00672ac4-9ae6-4dd5-b462-9ea919733c2a": {"__data__": {"id_": "00672ac4-9ae6-4dd5-b462-9ea919733c2a", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2343d400-ec8d-4458-bbf7-5f666f6b38b6", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ecb4aa29e870bbc8e78e0e226456ecc0698f9ab5918dbb2cdc45588da5a60ff9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Software lifecycle overview\n\u2022 Scrum\n4CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 127, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "67d8c09f-00c2-4aaa-8101-90bd2f0d8d4d": {"__data__": {"id_": "67d8c09f-00c2-4aaa-8101-90bd2f0d8d4d", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e49dbc56-46b7-449f-84dc-9e6cc19d01f1", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a622d500d6c94e491309691866a722b8d35140c1fe1a31055a004b85c9868ca8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Recap] SDLC\n\u2022 A software (development) life cycle (SDLC) describes the process of how \nsoftware is developed\n\u2022 Set of activities and their relationships to each other to support the development of \na software system \n\u2022 Activities include, e.g., requirements elicitation, requirements analysis, system \ndesign, implementation, testing & validation, con\ufb01guration management, delivery, \nmaintenance\n\u2022 De\ufb01ning a SDLC is necessary:\n\u2022 Establish a shared understanding (communication)\n\u2022 Creates a plan (releases / delivery)\n\u2022 Incorporate all aspects (testing, documentation, maintenance)\n\u2022 \u2026\n5CS 1530 - L03 Scrum & intro to abstraction\nThere will be a more \ndetailed lecture on \nsoftware lifecycle models!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 729, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0262060e-0f45-4518-9bcf-c4e7cf3feec2": {"__data__": {"id_": "0262060e-0f45-4518-9bcf-c4e7cf3feec2", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "66fb9a26-6d6d-4e7b-835f-3bc168f2025b", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "85c5fc274742b57593ecb2898933d17ab35f4dea9c851dcd15b36c1fb091f5d6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nOverview of the SDLC\n6CS 1530 - L03 Scrum & intro to abstraction\nSystem Design What is the \nsolution?\nTesting & \nValidation\nIs the problem solved?\nObject Design\nWhat is the best approach to \nimplement the solution?\nRequirements \nEngineering\nWhat is the problem?\nPlanning\nWhat is the system\u2019s \npurpose? Who is the \nenduser? What is the scope?\nMaintenance\nHow will are updates and \nbugs \ufb01xed in the future?\nDeployment\nHow do we deliver \nthe system to the \nenduser?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 492, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ff34c4df-3994-4666-b8f6-ced08b671f67": {"__data__": {"id_": "ff34c4df-3994-4666-b8f6-ced08b671f67", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d953cdae-ab6c-4a5a-a24c-2b515c46a23a", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "62e487304a27741272fc5c9b98607c300a59c30f81b7967f3e571cac882cf8a5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Software lifecycle overview\n\u2022 Scrum\n7CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 127, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0df0d702-6101-4bf0-bc18-db11fb3e196c": {"__data__": {"id_": "0df0d702-6101-4bf0-bc18-db11fb3e196c", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7d977a78-ffa4-43ce-9bef-aa405e7a1cc1", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "638bfdb3aaeb2a289804d1ced681a53f3b51968a8a7befcd691be7cb5d58168b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n\u2022 In 1986, Takeuchi and Nonaka published \"The New New Product Development \nGame\" in the Harvard Business Review\n\u2022 Equates creative processes (e.g., Honda, 3M, HP , ..) to the sport of rugby\n\u2022 Describes a scalable, \ufb02exible, cross-functional, self-organized team-based \napproach to product development\nHistory of agile models \u2014 Scrum\n8CS 1530 - L03 Scrum & intro to abstraction\nhttps://hbr.org/1986/01/the-new-new-product-development-game\n\"shift from a linear to an integrated \napproach encourages trial and error \nand challenges the status quo\"", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 573, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fb42a946-2e61-4d6a-8002-32b14c336117": {"__data__": {"id_": "fb42a946-2e61-4d6a-8002-32b14c336117", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a7b4c3ab-ad5d-4a9b-a43b-3bf3d2f5c9af", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "aece695528e314f847b755426758e945dda68b96df818915a43422f8fdae95fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n\u2022 In 1986, Takeuchi and Nonaka published \"The New New Product Development \nGame\" in the Harvard Business Review\n\u2022 1987 \"SCRUM development process\"\n\u2022 1995 Je\ufb00 Sutherland and Ken Schwaber \u2028\nanalyzed common software development processes\n\u2022 \"The Scrum development process\" at OOPSLA\n\u2022 \"Systems development [\u2026] is an unpredictable and\u2028 \ncomplicated process that can only roughly be described\u2028 \nas an overall progression\"\n\u2022 2001 The Agile Manifesto\n\u2022 2002 Scrum Alliance (Mike Cohn, Esther Derby, Ken Schwaber)\nHistory of agile models \u2014 Scrum\n9CS 1530 - L03 Scrum & intro to abstraction\nJe\ufb00 Sutherland Ken Schwaber", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 639, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9b4140cb-e999-489c-b597-3f70fda1525f": {"__data__": {"id_": "9b4140cb-e999-489c-b597-3f70fda1525f", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3188332c-fe5d-44cc-a076-92bceff85e87", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e6172ce32ab26debc3b61d7233b38b1a950d1db8488f26f82479819d899cfe48", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nScrum\n\u2022 Framework for developing and sustaining complex products\n\u2022 Scrum de\ufb01nes roles, events, artifacts, and the rules that bind them together\n\u2022 \"The Scrum Guide\" written by Ken Schwaber and Je\ufb00 Sutherland\n\u2022 First version in 2010, latest updated version 2020\n10CS 1530 - L03 Scrum & intro to abstraction\n[Rugby] Scrum is a way to restart the game after an interruption: Players \npack closely together with their heads down to gain possession of the ball \u2028\n\u2192 Requires coordination, joint e\ufb00ort, strategic planning", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 543, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "288913ec-d7b0-4e90-bb08-0d65f135efa7": {"__data__": {"id_": "288913ec-d7b0-4e90-bb08-0d65f135efa7", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8083a45a-d2ed-4c2b-9406-3796a9a59349", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b06d44a1c5c6978b46246c111aaa7195cc36261a9a55dc05a564e1bca4060b39", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nOverview: Scrum as an agile model\n\u2022 Short, iterative cycles (Sprints), typically 2-4 weeks long\n\u2022 Emphasizes collaboration, functioning software, and \ufb02exibility to changing \nrequirements\n\u2022 Roles: Scrum Master, Product Owner, Development Team\n\u2022 Promotes transparency, inspection, and adaptation throughout the process\n11CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 391, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e29bd514-e623-4574-bc11-07ac2b0cbbba": {"__data__": {"id_": "e29bd514-e623-4574-bc11-07ac2b0cbbba", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "783448e2-2c2b-479c-b955-fbb73fcd5c02", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5afa8226f25589692d801e066449b50c5e347ce78dc896400e2e1aaf66371d76", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nScrum\n12CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 80, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "75827215-6cb2-4dec-b4d7-f54904636bda": {"__data__": {"id_": "75827215-6cb2-4dec-b4d7-f54904636bda", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e45392ca-f1d1-49dd-bbad-4a029de0ae2c", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6d26f2698183559117dbba1e5bfb6a89a81e0d559ecbab646a5ec150713d59c2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nScrum Team\nThe Scrum Team - Roles\n13CS 1530 - L03 Scrum & intro to abstraction\n\ud83e\uddd1\ud83d\udcbb\n\ud83d\udc69\ud83d\udcbb\n\ud83d\udc68\ud83d\udcbb\n\ud83e\uddd1\ud83d\udcbb\n\ud83d\udc69\ud83d\udcbbDevelopers\n\ud83d\udc51Scrum Master\n\ud83d\udcacCustomer\n \ud83d\udccbProduct Owner Create the sprint backlog\nAdhere to the de\ufb01nition of done\nAdapt their plan each day \ntoward the sprint goal\nResponsible for the process\nRemoves impediments\nEnsures Scrum is followed\nAccountable for managing the \nproduct backlog\nOther Scrum teams", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 419, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "21d71050-2c72-4434-a1e8-2e0e625859a2": {"__data__": {"id_": "21d71050-2c72-4434-a1e8-2e0e625859a2", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fa50e8e1-e535-4ba1-833b-5c158abd510d", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "49a4253f6693f6b281c840311ed5279174cae930ffe5e997c2e353a64345eca8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Scrum Team\n\u2022 Consists of \n\u2022 One Scrum Master\n\u2022 One Product Owner\n\u2022 Developers\n\u2022 No sub-teams or hierarchies\n\u2022 Scrum Teams are cross-functional\n\u2022 Max. 10 team members\n\u2022 Accountable for creating a valuable Increment each Sprint\n14CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 304, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b01afde3-7d09-483f-98d0-583cf1d48219": {"__data__": {"id_": "b01afde3-7d09-483f-98d0-583cf1d48219", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1aedc1b8-92e1-424e-8cc6-953221fcd82d", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f9f9d77c32560a156b8df1a8e23a6cf5fccdafd6d37eab6e963f4f3747e62bc1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n\ud83d\udccb The Scrum Team - Product Owner\n\u2022 \"Owns\" the product\n\u2022 Accountable for maximizing the product\u2019s value\n\u2022 Tasks\n\u2022 Manages the Product Backlog\n\u2022 Develops and communicates the product goal\n\u2022 Creates and communicates Product Backlog Items\n\u2022 Orders Product Backlog Items\n\u2022 Ensures that the Product Backlog is transparent and understood\n\u2022 Can represent the needs of stakeholders in the Product Backlog\n15CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 470, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dd08777e-5609-41b0-9417-7de65610c7f0": {"__data__": {"id_": "dd08777e-5609-41b0-9417-7de65610c7f0", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3ede7535-27d4-4811-a35f-5896acd648bf", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3524bd8b615809966725919a37169598fd578e9953b4fb9c46bef9a44ea17ef6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n\ud83d\udc51 The Scrum Team - Scrum Master\n\u2022 Accountable for establishing Scrum\n\u2022 Serves the Scrum Team\n\u2022 Coaches team members\n\u2022 Removes impediments\n\u2022 Ensures that all Scrum events take place\n\u2022 Serves the Product Owner\n\u2022 De\ufb01ne Product Goal, Product Backlog de\ufb01nition\n\u2022 Establish empirical product planning\n\u2022 Facilitate stakeholder collaboration as needed\n16CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 418, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "31a466f3-5e95-4116-be68-b425275475a7": {"__data__": {"id_": "31a466f3-5e95-4116-be68-b425275475a7", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1c2f84df-c17d-47a6-81fd-24befa827a12", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "27cfba6eba519b5a0611f635912539c0a7f5b5c814857f501e18f8c9280a199c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Scrum Team - Developers\n\u2022 Committed to creating any aspect of a usable increment each Sprint\n\u2022 Skills often vary by domain\n\u2022 Developers are accountable for\n\u2022 Creating the Sprint Backlog\n\u2022 Adhere to a De\ufb01nition of Done\n\u2022 Adapt their plan daily towards the Sprint Goal\n17CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 345, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0f2c3754-ce9f-451f-91c9-0cfe92c9c721": {"__data__": {"id_": "0f2c3754-ce9f-451f-91c9-0cfe92c9c721", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2951bc6f-56a3-4160-b514-e757d6e43c21", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "44fe82593387b5ca29dabc61dfa6f1e549f2fcf180308c9fdb20affa655c66b5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nArtifacts in Scrum represent work or value\n\u2022 Designed to maximize transparency of key information\n\u2022 Product backlog: list of requirements for the whole product \n\u2022 Sprint backlog: list of requirements to be completed in one iteration (sprint) \n\u2022 Increment: sum of all completed work in a Sprint, \u2028\nusable, \"potentially shippable\" piece of the product,\u2028\nmust meet the DoD,\u2028\neach increment builds on the previous one\u2028\nrelease is optional\n18CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 509, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa563532-a534-4482-95f4-79a986e1da1a": {"__data__": {"id_": "fa563532-a534-4482-95f4-79a986e1da1a", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "723a75a1-7fca-444e-beed-8a0110d73546", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "860d2599efe70ea11d249886afcafe26998e1d2105efcb3ceb4abcc6fc8a9779", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nRequirements in Scrum\n\u2022 All requirements are collected in the product backlog\n\u2022 The product owner elicits requirements from external stakeholders & \nprioritizes them\n\u2022 Typical requirements in Scrum\n\u2022 \"Technical\"/functional requirements\n\u2022 User stories\n\u2022 Scenarios\n\u2022 Use cases\n19CS 1530 - L03 Scrum & intro to abstraction\nMore on requirements next lecture", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 383, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1f89dda9-c909-4595-aa41-83ace6d73d63": {"__data__": {"id_": "1f89dda9-c909-4595-aa41-83ace6d73d63", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c6d3cd54-e678-43f8-b031-d6e57c13e647", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e75c5908b5713fd02d1d9e87a9c50323c8555a8d8793a9a356d15358c5a6efd9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] User Story in Scrum\n\u2022 Sentence that describes what the user can do\n\u2022 Often written on a \"card\"\n\u2022 Users describe roles of the system\n\u2022 De\ufb01nes a structure and simpli\ufb01es the prioritization process\n\u2022 Facilitates categorization according to user roles\n20CS 1530 - L03 Scrum & intro to abstraction\nAs , \nI can/want/need \nso that \n\"I\"-perspective: developer \ncan self-identify with the \ngiven user role\n[Example]\u2028\nAs a student, I want to sign up \nfor a course so that I can \naccess course materials and \nparticipate in lectures.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 585, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "84c6a002-6e7c-4ef8-a707-45e517aaa24c": {"__data__": {"id_": "84c6a002-6e7c-4ef8-a707-45e517aaa24c", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5a94de9f-6044-44d1-b93f-f90d6a44e3b0", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c6b3bab2755f29fd43b4dd2fd7fb7a6a428fc4ea8154e620399e8c0efbf86154", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProduct backlog\n\u2022 Ordered list of requirements (what is needed to improve the whole product)\n\u2022 E.g., Epics, User Stories, Scenarios\n\u2022 \"Single source of work undertaken by the Scrum Team\"\n\u2022 Product Backlog re\ufb01nement is the process of reviewing, updating, and \nprioritizing items in the product backlog \n\u2022 Goal: Ensure clarity, relevance, and value\n\u2022 Involves breaking down larger tasks, estimating e\ufb00orts, and reordering items to align \nwith the project's evolving goals and requirements\n\u2022 Commits to the product goal\n\u2022 The product goal is the long-term objective for the product, provides a target for the \nScrum team to work towards\n21CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 708, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aa35b91a-8a7d-478d-afde-70382db8eb5f": {"__data__": {"id_": "aa35b91a-8a7d-478d-afde-70382db8eb5f", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5728df22-0c73-40d0-a367-8d832dbc9245", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "351583be4a0e887f26b9487e1016ba241e6850769c52af2e4a97d0af47146920", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Product Backlog\n\u2022 User account creation: As a player, I want to create a personal account, so I can save my \nprogress and scores.\n\u2022 Quiz category selection: As a player, I want to select a quiz category before I start the quiz, so I \ncan choose a topic that interest me.\n\u2022 Di\ufb03culty levels: As a player, I want to choose di\ufb00erent di\ufb03culty levels, so I can challenge myself \nappropriately.\n\u2022 Answering Questions: As a player, I want to answer multiple-choice questions, so I can engage \nwith the quiz format that is familiar and straightforward.\n\u2022 Time-Limited questions: As a player, I want each question to be time-limited (max. 1min per \nquestion), so that the game is more challenging and fair.\n\u2022 Score tracking: As a player, I want the game to track my scores, so I can see how well I am doing.\n\u2022 Leaderboard Functionality: As a player, I want to view a leaderboard, so I can compare my scores \nwith other players.\n\u2022 Accessibility: As a player with visual impairments, I need accessibility features (text-to-speech), \nso I can fully participate in the quizzes.\n22CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1148, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0d70634e-780f-4d2b-a0f4-ac131ca34fcb": {"__data__": {"id_": "0d70634e-780f-4d2b-a0f4-ac131ca34fcb", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4e8ecb21-d6de-47ce-9b00-bfcd3cd5ffce", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "4f4b5cbfe40c7b0baedcfbe0e7f5d73d9b5eee464a26c63eace41d73c76809e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTwo main events & \ufb01ve meeting types in Scrum\n23CS 1530 - L03 Scrum & intro to abstraction\nSprint\nDaily Scrum\nSprint \nretrospectiveSprint reviewSprint planning\nProject \nkicko\ufb00", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 204, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "24b276cc-163b-49f5-85ce-705a25555198": {"__data__": {"id_": "24b276cc-163b-49f5-85ce-705a25555198", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b093fec2-dd90-411a-926d-a10db30fedcd", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "131abd0d61fc3df549c0e28f6871b6135e6db0bd485e86df43e70393acb12f3b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nMain events in Scrum\n\u2022 Project kicko\ufb00: De\ufb01ne the product backlog\n\u2022 Sprint \"turns ideas into value\"\n\u2022 Fixed length of one month or less to create consistency\n\u2022 A new sprint starts immediately after concluding the previous sprint\n\u2022 A sprint commits to the sprint goal\n24CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 340, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc1920e4-52b9-40a7-ad20-44ca7ccb2ff0": {"__data__": {"id_": "dc1920e4-52b9-40a7-ad20-44ca7ccb2ff0", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f51d3ed0-5889-4bff-8ab6-40e9c92ff529", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "4b6f774617f6f906d8fc91c274d0f047f10636d8f3316972774a24815ec5e872", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Sprint\n\u2022 The development team \n\u2022 Realizes the items in the sprint backlog\n\u2022 Uses, e.g., a task board to visualize the status of these items\n\u2022 The Scrum Master visualizes the progress\n25CS 1530 - L03 Scrum & intro to abstraction\nItems Todo In progress In review Done\nTask\nTaskTask\nTask\nTask\nTaskTaskTask\nTaskTaskTask\nTask\nTask\nTask\nTask\nTaskTask\nUser Story 1\nUser Story 2\nUser Story 3\nTaskTask\nTask", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 431, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6c4c8708-2648-4306-b151-eddf313431f0": {"__data__": {"id_": "6c4c8708-2648-4306-b151-eddf313431f0", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "eeb5cdf0-e4da-4d6d-b4e0-cc467e2e1907", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0c8be7f664921a7b4a62cfe9f0c8b6cf0d58ce5ebd83279f0302a06a9a9b47d3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDuring a Sprint \u2026\n\u2022 Start of the Sprint: Sprint Planning meeting [max. 8h]\n\u2022 Create Sprint Backlog\n\u2022 Every day: Daily Scrum [max. 15min]\n\u2022 Share status, impediments and promises\n\u2022 End of each Sprint: Sprint Review [max. 4h]\n\u2022 Review the realized Sprint Backlog Items with Product Owner\n\u2022 After the Sprint: Sprint Retrospective [max. 3h]\n\u2022 Inspect the previous sprint\n\u2022 Create a plan for improvement (individuals, interactions, processes, tools, DoD) that \nwill set the basis for the next Sprint\n26CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 569, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a330d2d7-e148-45ae-9d98-b9191f7e4af0": {"__data__": {"id_": "a330d2d7-e148-45ae-9d98-b9191f7e4af0", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a52b9a9b-55c6-4931-8fef-8555958f3701", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d4a9b4bebfd2884c5fddd26afee6beff8181766c1b7824ac104270488b712615", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSprint Planning\n\u2022 Initiates the Sprint\n\u2022 Entire Scrum Team\n\u2022 Addresses three questions:\n\u2022 Why is this Sprint valuable?\n\u2022 What can be Done this Sprint?\n\u2022 How will the chosen work get done?\n\u2022 Often includes activities to estimate the size of a Backlog Item\n\u2022 E.g., Story points\n\u2022 T-Shirt Sizes\n27CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 366, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6be0c93d-d7a3-4874-8004-00bb13ba837a": {"__data__": {"id_": "6be0c93d-d7a3-4874-8004-00bb13ba837a", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "39fbdc42-0275-4646-87e9-320ff6d39f9f", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a429cb2988850bc00eb9f3390e2116c7402c65de65b8d54b21c5d3e9c439b392", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDe\ufb01nition of Done (DoD)\n\u2022 Formal description of the state of the Increment\n\u2022 Describes when the Increment is \"done\" (meets quality requirements)\n\u2022 Whenever a Product Backlog Item meets the DoD, a new Increment is \ncreated\n\u2022 Creates a shared understanding of what work needs to be completed\n\u2022 An Increment cannot be released if the DoD is not met\n\u2022 The Scrum Team follows one DoD\n28CS 1530 - L03 Scrum & intro to abstraction\nIf multiple scrum teams work \ntogether, they share a DoD", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 510, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93e3fa5c-fda3-4607-9131-e83ed518615d": {"__data__": {"id_": "93e3fa5c-fda3-4607-9131-e83ed518615d", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4c7377c9-ea36-4d2f-b766-9f51398f8c87", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "68d603693df0409eb0bdb47cf6ab5502afe106f6336c8f9f122ec6d960d7c8b1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Sprint\n\u2022 During the Sprint:\n\u2022 No changes are made that would endanger the Sprint Goal\n\u2022 Maintain quality\n\u2022 Re\ufb01ne the Product Backlog as needed\n\u2022 Scope may be clari\ufb01ed and renegotiated with the Product Owner, based on insights\n\u2022 A Sprint may be cancelled if the Sprint Goal is no longer relevant\n\u2022 The Product Owner has the sole authority to cancel a Sprint\n29CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 435, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c8384be9-d4ab-432f-8cda-552d4749bab0": {"__data__": {"id_": "c8384be9-d4ab-432f-8cda-552d4749bab0", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fa666ad6-38d4-4f8e-a12c-53f24f5c97a6", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "108b6e004c9d18d810a16e78f9616b261084d8be1e68fd639948515c61afb342", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDaily Scrum\n\u2022 Time-boxed event for 15 min\n\u2022 Attended by the Developer Team\n\u2022 Developer Team sets structure and techniques\n\u2022 Typically conducted as a \"standup\", early in the day\n\u2022 Status: \"What did I do since the last meeting?\"\n\u2022 Impediments: \"Any issues/blockers?\"\n\u2022 Promises: \"What do I promise to resolve today?\"\n30CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 389, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "db394940-7c95-43b8-b62f-42db3aff10e8": {"__data__": {"id_": "db394940-7c95-43b8-b62f-42db3aff10e8", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7b20e562-945e-48f1-bbda-baa07b639e92", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f9935e00debe23fe434aef298c0d4119b8f262fc8dd5d711d92467e9babd76b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSummary: Scrum is an agile framework\n\u2022 Should be adapted to \ufb01t to the project / work culture / team\n\u2022 A Scrum Team works towards\u2028 \ncreating product increments\n\u2022 Adapts well to change\n31CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 257, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eab5ac70-92f7-4f1b-b2c2-8a2fe562dc94": {"__data__": {"id_": "eab5ac70-92f7-4f1b-b2c2-8a2fe562dc94", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "923b9369-a4a4-4e4d-b56a-3585644e3c3d", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "42730e49bdad6039e148fb95f4668d6e1413f223efc3a4dc5d265482330d781f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nOptional Readings\n\u2022 Ken Schwaber & Je\ufb00 Sutherland, The Scrum Guide, 2020\n\u2022 Takeuchi & Nonaka, The New New Product Development Game, Harvard \nBusiness Review, 1986\n\u2022 Scrum at scale, https://www.scrumatscale.com/\n\u2022 Scrum product backlog\n\u2022 https://www.scrum.org/resources/what-is-a-product-backlog \n32CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 371, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "de7ec8cd-5a2c-4771-8bcb-b77a894a1318": {"__data__": {"id_": "de7ec8cd-5a2c-4771-8bcb-b77a894a1318", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "172a84e4-2166-48d1-96a0-22a1f95045f2", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "eeb452bf74e1e629882432f94c6e01fd7d24edcca759b52374f6419f5962c7ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nReferences\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, \npatterns, and Java. Pearson, 2009.\n\u2022 Object Management Group. Uni\ufb01ed Modeling Language. Version 2.5.1, 2017\n33CS 1530 - L03 Scrum & intro to abstraction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 264, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d0b8fd9-d208-491e-8506-3e586825344d": {"__data__": {"id_": "5d0b8fd9-d208-491e-8506-3e586825344d", "embedding": null, "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "22382a28-8fed-4ba9-ac00-44094d5016a2", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L03 Scrum.pdf", "file_path": "data/Fall25 1530 - L03 Scrum.pdf", "file_type": "application/pdf", "file_size": 7363605, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c12db0ebc2d23d8dd3a3175bc1e6439b517c35eb9ff3cdcb263c4095060f7959", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL03 Scrum\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 145, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "41ce7366-06c4-413f-a284-e27b33b53cfb": {"__data__": {"id_": "41ce7366-06c4-413f-a284-e27b33b53cfb", "embedding": null, "metadata": {"page_label": "1", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7de5545e-6393-43a8-a87e-8a9d375e9c58", "node_type": "4", "metadata": {"page_label": "1", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2674691066b8257415f0d7ba7a2ceb7a4564881a811908572fd3c303004c6179", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 1 of 12https://www.archives.gov/founding-docs/constitution-transcript\nTop\nThe Constitution of the United States: A\nTranscription\n\uf02fPrint This Page\n \nNote: The following text is a transcription of the Constitution as it was inscribed by Jacob Shallus\non parchment (the document on display in the Rotunda at the National Archives Museum.) TheThe\nspelling and punctuation reflect the originalspelling and punctuation reflect the original.\nWe the People of the United States, in Order to form a more perfect Union, establish\nJustice, insure domestic Tranquility, provide for the common defence, promote the\ngeneral Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do\nordain and establish this Constitution for the United States of America.\nArticle. I.\nSection. 1.\nAll legislative Powers herein granted shall be vested in a Congress of the United States, which shall\nconsist of a Senate and House of Representatives.\nSection. 2.\nThe House of Representatives shall be composed of Members chosen every second Year by the People\nof the several States, and the Electors in each State shall have the Qualifications requisite for Electors of\nthe most numerous Branch of the State Legislature.\nNo Person shall be a Representative who shall not have attained to the Age of twenty five Years, and\nbeen seven Years a Citizen of the United States, and who shall not, when elected, be an Inhabitant of\nthat State in which he shall be chosen.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1546, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "88eab325-3e1e-4db5-b526-08f98923a4ea": {"__data__": {"id_": "88eab325-3e1e-4db5-b526-08f98923a4ea", "embedding": null, "metadata": {"page_label": "2", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "33e0ef97-a35c-4ea5-b89b-80ab519ba72e", "node_type": "4", "metadata": {"page_label": "2", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a9a78d717eb2126cde36d5420d99ffa1503b5b91eba0b46a050df78fefda35e3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 2 of 12https://www.archives.gov/founding-docs/constitution-transcript\nRepresentatives and direct Taxes shall be apportioned among the several States which may be included\nwithin this Union, according to their respective Numbers, which shall be determined by adding to the\nwhole Number of free Persons, including those bound to Service for a Term of Years, and excluding\nIndians not taxed, three fi!hs of all other Persons. The actual Enumeration shall be made within three\nYears a!er the first Meeting of the Congress of the United States, and within every subsequent Term of\nten Years, in such Manner as they shall by Law direct. The Number of Representatives shall not exceed\none for every thirty Thousand, but each State shall have at Least one Representative; and until such\nenumeration shall be made, the State of New Hampshire shall be entitled to chuse three, Massachusetts\neight, Rhode-Island and Providence Plantations one, Connecticut five, New-York six, New Jersey four,\nPennsylvania eight, Delaware one, Maryland six, Virginia ten, North Carolina five, South Carolina five,\nand Georgia three.\nWhen vacancies happen in the Representation from any State, the Executive Authority thereof shall\nissue Writs of Election to fill such Vacancies.\nThe House of Representatives shall chuse their Speaker and other O\"icers; and shall have the sole\nPower of Impeachment.\nSection. 3.\nThe Senate of the United States shall be composed of two Senators from each State, chosen by the\nLegislature thereof, for six Years; and each Senator shall have one Vote.\nImmediately a!er they shall be assembled in Consequence of the first Election, they shall be divided as\nequally as may be into three Classes. The Seats of the Senators of the first Class shall be vacated at the\nExpiration of the second Year, of the second Class at the Expiration of the fourth Year, and of the third\nClass at the Expiration of the sixth Year, so that one third may be chosen every second Year; and if\nVacancies happen by Resignation, or otherwise, during the Recess of the Legislature of any State, the\nExecutive thereof may make temporary Appointments until the next Meeting of the Legislature, which\nshall then fill such Vacancies.\nNo Person shall be a Senator who shall not have attained to the Age of thirty Years, and been nine Years\na Citizen of the United States, and who shall not, when elected, be an Inhabitant of that State for which\nhe shall be chosen.\nThe Vice President of the United States shall be President of the Senate, but shall have no Vote, unless\nthey be equally divided.\nThe Senate shall chuse their other O\"icers, and also a President pro tempore, in the Absence of the Vice\nPresident, or when he shall exercise the O\"ice of President of the United States.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2847, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ee1b05a4-6410-4f87-a211-c3117e832878": {"__data__": {"id_": "ee1b05a4-6410-4f87-a211-c3117e832878", "embedding": null, "metadata": {"page_label": "3", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0f7c824f-aca2-4673-a033-7cf9f8464a54", "node_type": "4", "metadata": {"page_label": "3", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d1625e3abd0899b4a2114a0dd4be3eb9d60aa3c56de6bc8659c3335fa617a33c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 3 of 12https://www.archives.gov/founding-docs/constitution-transcript\nThe Senate shall have the sole Power to try all Impeachments. When sitting for that Purpose, they shall\nbe on Oath or A\"irmation. When the President of the United States is tried, the Chief Justice shall\npreside: And no Person shall be convicted without the Concurrence of two thirds of the Members\npresent.\nJudgment in Cases of Impeachment shall not extend further than to removal from O\"ice, and\ndisqualification to hold and enjoy any O\"ice of honor, Trust or Profit under the United States: but the\nParty convicted shall nevertheless be liable and subject to Indictment, Trial, Judgment and\nPunishment, according to Law.\nSection. 4.\nThe Times, Places and Manner of holding Elections for Senators and Representatives, shall be\nprescribed in each State by the Legislature thereof; but the Congress may at any time by Law make or\nalter such Regulations, except as to the Places of chusing Senators.\nThe Congress shall assemble at least once in every Year, and such Meeting shall be on the first Monday\nin December, unless they shall by Law appoint a di\"erent Day.\nSection. 5.\nEach House shall be the Judge of the Elections, Returns and Qualifications of its own Members, and a\nMajority of each shall constitute a Quorum to do Business; but a smaller Number may adjourn from day\nto day, and may be authorized to compel the Attendance of absent Members, in such Manner, and under\nsuch Penalties as each House may provide.\nEach House may determine the Rules of its Proceedings, punish its Members for disorderly Behaviour,\nand, with the Concurrence of two thirds, expel a Member.\nEach House shall keep a Journal of its Proceedings, and from time to time publish the same, excepting\nsuch Parts as may in their Judgment require Secrecy; and the Yeas and Nays of the Members of either\nHouse on any question shall, at the Desire of one fi!h of those Present, be entered on the Journal.\nNeither House, during the Session of Congress, shall, without the Consent of the other, adjourn for more\nthan three days, nor to any other Place than that in which the two Houses shall be sitting.\nSection. 6.\nThe Senators and Representatives shall receive a Compensation for their Services, to be ascertained by\nLaw, and paid out of the Treasury of the United States. They shall in all Cases, except Treason, Felony\nand Breach of the Peace, be privileged from Arrest during their Attendance at the Session of their\nrespective Houses, and in going to and returning from the same; and for any Speech or Debate in either\nHouse, they shall not be questioned in any other Place.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2717, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6accb3fc-7e30-4ba6-b5d5-75762108a040": {"__data__": {"id_": "6accb3fc-7e30-4ba6-b5d5-75762108a040", "embedding": null, "metadata": {"page_label": "4", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1392dcc5-9e16-4e70-b8a1-2f7903261ac5", "node_type": "4", "metadata": {"page_label": "4", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "79bb22150c26a3d1f314e556540935081942ffcd0442ee67fada6552b6fb96ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 4 of 12https://www.archives.gov/founding-docs/constitution-transcript\nNo Senator or Representative shall, during the Time for which he was elected, be appointed to any civil\nO\"ice under the Authority of the United States, which shall have been created, or the Emoluments\nwhereof shall have been encreased during such time; and no Person holding any O\"ice under the\nUnited States, shall be a Member of either House during his Continuance in O\"ice.\nSection. 7.\nAll Bills for raising Revenue shall originate in the House of Representatives; but the Senate may propose\nor concur with Amendments as on other Bills.\nEvery Bill which shall have passed the House of Representatives and the Senate, shall, before it become\na Law, be presented to the President of the United States; If he approve he shall sign it, but if not he\nshall return it, with his Objections to that House in which it shall have originated, who shall enter the\nObjections at large on their Journal, and proceed to reconsider it. If a!er such Reconsideration two\nthirds of that House shall agree to pass the Bill, it shall be sent, together with the Objections, to the\nother House, by which it shall likewise be reconsidered, and if approved by two thirds of that House, it\nshall become a Law. But in all such Cases the Votes of both Houses shall be determined by yeas and\nNays, and the Names of the Persons voting for and against the Bill shall be entered on the Journal of\neach House respectively. If any Bill shall not be returned by the President within ten Days (Sundays\nexcepted) a!er it shall have been presented to him, the Same shall be a Law, in like Manner as if he had\nsigned it, unless the Congress by their Adjournment prevent its Return, in which Case it shall not be a\nLaw.\nEvery Order, Resolution, or Vote to which the Concurrence of the Senate and House of Representatives\nmay be necessary (except on a question of Adjournment) shall be presented to the President of the\nUnited States; and before the Same shall take E\"ect, shall be approved by him, or being disapproved by\nhim, shall be repassed by two thirds of the Senate and House of Representatives, according to the Rules\nand Limitations prescribed in the Case of a Bill.\nSection. 8.\nThe Congress shall have Power To lay and collect Taxes, Duties, Imposts and Excises, to pay the Debts\nand provide for the common Defence and general Welfare of the United States; but all Duties, Imposts\nand Excises shall be uniform throughout the United States;\nTo borrow Money on the credit of the United States;\nTo regulate Commerce with foreign Nations, and among the several States, and with the Indian Tribes;\nTo establish an uniform Rule of Naturalization, and uniform Laws on the subject of Bankruptcies\nthroughout the United States;", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2856, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "812f5dc6-f36b-467a-9323-2e2207446974": {"__data__": {"id_": "812f5dc6-f36b-467a-9323-2e2207446974", "embedding": null, "metadata": {"page_label": "5", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7c683655-2719-497c-bc6d-b992521ae69c", "node_type": "4", "metadata": {"page_label": "5", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b60a533a72fc772dc8b93048098113aa23db89cd252711b437d3751dfcf357df", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 5 of 12https://www.archives.gov/founding-docs/constitution-transcript\nTo coin Money, regulate the Value thereof, and of foreign Coin, and fix the Standard of Weights and\nMeasures;\nTo provide for the Punishment of counterfeiting the Securities and current Coin of the United States;\nTo establish Post O\"ices and post Roads;\nTo promote the Progress of Science and useful Arts, by securing for limited Times to Authors and\nInventors the exclusive Right to their respective Writings and Discoveries;\nTo constitute Tribunals inferior to the supreme Court;\nTo define and punish Piracies and Felonies committed on the high Seas, and O\"ences against the Law of\nNations;\nTo declare War, grant Letters of Marque and Reprisal, and make Rules concerning Captures on Land and\nWater;\nTo raise and support Armies, but no Appropriation of Money to that Use shall be for a longer Term than\ntwo Years;\nTo provide and maintain a Navy;\nTo make Rules for the Government and Regulation of the land and naval Forces;\nTo provide for calling forth the Militia to execute the Laws of the Union, suppress Insurrections and repel\nInvasions;\nTo provide for organizing, arming, and disciplining, the Militia, and for governing such Part of them as\nmay be employed in the Service of the United States, reserving to the States respectively, the\nAppointment of the O\"icers, and the Authority of training the Militia according to the discipline\nprescribed by Congress;\nTo exercise exclusive Legislation in all Cases whatsoever, over such District (not exceeding ten Miles\nsquare) as may, by Cession of particular States, and the Acceptance of Congress, become the Seat of the\nGovernment of the United States, and to exercise like Authority over all Places purchased by the\nConsent of the Legislature of the State in which the Same shall be, for the Erection of Forts, Magazines,\nArsenals, dock-Yards, and other needful Buildings;\u2014And\nTo make all Laws which shall be necessary and proper for carrying into Execution the foregoing Powers,\nand all other Powers vested by this Constitution in the Government of the United States, or in any\nDepartment or O\"icer thereof.\nSection. 9.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2238, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "02f8b8e3-2455-405a-bfa1-6f6559d07b74": {"__data__": {"id_": "02f8b8e3-2455-405a-bfa1-6f6559d07b74", "embedding": null, "metadata": {"page_label": "6", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "72b43a5f-00e4-4bab-9ca6-630865dd72dd", "node_type": "4", "metadata": {"page_label": "6", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c1008b53a1efadfb1eb99e35bc1620cf53202d97534c43bbd801acd516c156a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 6 of 12https://www.archives.gov/founding-docs/constitution-transcript\nThe Migration or Importation of such Persons as any of the States now existing shall think proper to\nadmit, shall not be prohibited by the Congress prior to the Year one thousand eight hundred and eight,\nbut a Tax or duty may be imposed on such Importation, not exceeding ten dollars for each Person.\nThe Privilege of the Writ of Habeas Corpus shall not be suspended, unless when in Cases of Rebellion or\nInvasion the public Safety may require it.\nNo Bill of Attainder or ex post facto Law shall be passed.\nNo Capitation, or other direct, Tax shall be laid, unless in Proportion to the Census or enumeration\nherein before directed to be taken.\nNo Tax or Duty shall be laid on Articles exported from any State.\nNo Preference shall be given by any Regulation of Commerce or Revenue to the Ports of one State over\nthose of another: nor shall Vessels bound to, or from, one State, be obliged to enter, clear, or pay Duties\nin another.\nNo Money shall be drawn from the Treasury, but in Consequence of Appropriations made by Law; and a\nregular Statement and Account of the Receipts and Expenditures of all public Money shall be published\nfrom time to time.\nNo Title of Nobility shall be granted by the United States: And no Person holding any O\"ice of Profit or\nTrust under them, shall, without the Consent of the Congress, accept of any present, Emolument, O\"ice,\nor Title, of any kind whatever, from any King, Prince, or foreign State.\nSection. 10.\nNo State shall enter into any Treaty, Alliance, or Confederation; grant Letters of Marque and Reprisal;\ncoin Money; emit Bills of Credit; make any Thing but gold and silver Coin a Tender in Payment of Debts;\npass any Bill of Attainder, ex post facto Law, or Law impairing the Obligation of Contracts, or grant any\nTitle of Nobility.\nNo State shall, without the Consent of the Congress, lay any Imposts or Duties on Imports or Exports,\nexcept what may be absolutely necessary for executing it's inspection Laws: and the net Produce of all\nDuties and Imposts, laid by any State on Imports or Exports, shall be for the Use of the Treasury of the\nUnited States; and all such Laws shall be subject to the Revision and Controul of the Congress.\nNo State shall, without the Consent of Congress, lay any Duty of Tonnage, keep Troops, or Ships of War\nin time of Peace, enter into any Agreement or Compact with another State, or with a foreign Power, or\nengage in War, unless actually invaded, or in such imminent Danger as will not admit of delay.\nArticle. II.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2661, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bc7ce527-f24c-419d-8c7a-3f7d6d28f77f": {"__data__": {"id_": "bc7ce527-f24c-419d-8c7a-3f7d6d28f77f", "embedding": null, "metadata": {"page_label": "7", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0b20c804-1977-4ddc-aa89-7a18711bca94", "node_type": "4", "metadata": {"page_label": "7", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "dfcd196cc37483af6bd29a7a2a59d2bdaa7863586417d4106439bfad9eaca32f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 7 of 12https://www.archives.gov/founding-docs/constitution-transcript\nSection. 1.\nThe executive Power shall be vested in a President of the United States of America. He shall hold his\nO\"ice during the Term of four Years, and, together with the Vice President, chosen for the same Term, be\nelected, as follows\nEach State shall appoint, in such Manner as the Legislature thereof may direct, a Number of Electors,\nequal to the whole Number of Senators and Representatives to which the State may be entitled in the\nCongress: but no Senator or Representative, or Person holding an O\"ice of Trust or Profit under the\nUnited States, shall be appointed an Elector.\nThe Electors shall meet in their respective States, and vote by Ballot for two Persons, of whom one at\nleast shall not be an Inhabitant of the same State with themselves. And they shall make a List of all the\nPersons voted for, and of the Number of Votes for each; which List they shall sign and certify, and\ntransmit sealed to the Seat of the Government of the United States, directed to the President of the\nSenate. The President of the Senate shall, in the Presence of the Senate and House of Representatives,\nopen all the Certificates, and the Votes shall then be counted. The Person having the greatest Number of\nVotes shall be the President, if such Number be a Majority of the whole Number of Electors appointed;\nand if there be more than one who have such Majority, and have an equal Number of Votes, then the\nHouse of Representatives shall immediately chuse by Ballot one of them for President; and if no Person\nhave a Majority, then from the five highest on the List the said House shall in like Manner chuse the\nPresident. But in chusing the President, the Votes shall be taken by States, the Representation from\neach State having one Vote; A quorum for this Purpose shall consist of a Member or Members from two\nthirds of the States, and a Majority of all the States shall be necessary to a Choice. In every Case, a!er\nthe Choice of the President, the Person having the greatest Number of Votes of the Electors shall be the\nVice President. But if there should remain two or more who have equal Votes, the Senate shall chuse\nfrom them by Ballot the Vice President.\nThe Congress may determine the Time of chusing the Electors, and the Day on which they shall give\ntheir Votes; which Day shall be the same throughout the United States.\nNo Person except a natural born Citizen, or a Citizen of the United States, at the time of the Adoption of\nthis Constitution, shall be eligible to the O\"ice of President; neither shall any Person be eligible to that\nO\"ice who shall not have attained to the Age of thirty five Years, and been fourteen Years a Resident\nwithin the United States.\nIn Case of the Removal of the President from O\"ice, or of his Death, Resignation, or Inability to\ndischarge the Powers and Duties of the said O\"ice, the Same shall devolve on the Vice President, and\nthe Congress may by Law provide for the Case of Removal, Death, Resignation or Inability, both of the\nPresident and Vice President, declaring what O\"icer shall then act as President, and such O\"icer shall\nact accordingly, until the Disability be removed, or a President shall be elected.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3327, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c5e71ba7-fd4d-4989-a9fe-3c8cf4e5a166": {"__data__": {"id_": "c5e71ba7-fd4d-4989-a9fe-3c8cf4e5a166", "embedding": null, "metadata": {"page_label": "8", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "507acf09-95fe-4b35-8ab9-e22e9bc24523", "node_type": "4", "metadata": {"page_label": "8", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5dab7d60387dab0bc994dd6f02eef9e1337098c989fc7abbc03d730093cdcc3c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 8 of 12https://www.archives.gov/founding-docs/constitution-transcript\nThe President shall, at stated Times, receive for his Services, a Compensation, which shall neither be\nencreased nor diminished during the Period for which he shall have been elected, and he shall not\nreceive within that Period any other Emolument from the United States, or any of them.\nBefore he enter on the Execution of his O\"ice, he shall take the following Oath or A\"irmation:\u2014\"I do\nsolemnly swear (or a\"irm) that I will faithfully execute the O\"ice of President of the United States, and\nwill to the best of my Ability, preserve, protect and defend the Constitution of the United States. \"\nSection. 2.\nThe President shall be Commander in Chief of the Army and Navy of the United States, and of the Militia\nof the several States, when called into the actual Service of the United States; he may require the\nOpinion, in writing, of the principal O\"icer in each of the executive Departments, upon any Subject\nrelating to the Duties of their respective O\"ices, and he shall have Power to grant Reprieves and\nPardons for O\"ences against the United States, except in Cases of Impeachment.\nHe shall have Power, by and with the Advice and Consent of the Senate, to make Treaties, provided two\nthirds of the Senators present concur; and he shall nominate, and by and with the Advice and Consent\nof the Senate, shall appoint Ambassadors, other public Ministers and Consuls, Judges of the supreme\nCourt, and all other O\"icers of the United States, whose Appointments are not herein otherwise\nprovided for, and which shall be established by Law: but the Congress may by Law vest the\nAppointment of such inferior O\"icers, as they think proper, in the President alone, in the Courts of Law,\nor in the Heads of Departments.\nThe President shall have Power to fill up all Vacancies that may happen during the Recess of the Senate,\nby granting Commissions which shall expire at the End of their next Session.\nSection. 3.\nHe shall from time to time give to the Congress Information of the State of the Union, and recommend\nto their Consideration such Measures as he shall judge necessary and expedient; he may, on\nextraordinary Occasions, convene both Houses, or either of them, and in Case of Disagreement between\nthem, with Respect to the Time of Adjournment, he may adjourn them to such Time as he shall think\nproper; he shall receive Ambassadors and other public Ministers; he shall take Care that the Laws be\nfaithfully executed, and shall Commission all the O\"icers of the United States.\nSection. 4.\nThe President, Vice President and all civil O\"icers of the United States, shall be removed from O\"ice on\nImpeachment for, and Conviction of, Treason, Bribery, or other high Crimes and Misdemeanors.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2856, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9489258f-4f6d-4b7a-9ddf-cee0c257a1b7": {"__data__": {"id_": "9489258f-4f6d-4b7a-9ddf-cee0c257a1b7", "embedding": null, "metadata": {"page_label": "9", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c0d16807-73a8-4ff7-b6aa-e6573307f07c", "node_type": "4", "metadata": {"page_label": "9", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e36b2947a7dce24ea6cda69d4611804e1a266280822ee27399b242fc9d42da05", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 9 of 12https://www.archives.gov/founding-docs/constitution-transcript\nArticle. III.\nSection. 1.\nThe judicial Power of the United States, shall be vested in one supreme Court, and in such inferior\nCourts as the Congress may from time to time ordain and establish. The Judges, both of the supreme\nand inferior Courts, shall hold their O\"ices during good Behaviour, and shall, at stated Times, receive for\ntheir Services, a Compensation, which shall not be diminished during their Continuance in O\"ice.\nSection. 2.\nThe judicial Power shall extend to all Cases, in Law and Equity, arising under this Constitution, the Laws\nof the United States, and Treaties made, or which shall be made, under their Authority;\u2014to all Cases\na\"ecting Ambassadors, other public Ministers and Consuls;\u2014to all Cases of admiralty and maritime\nJurisdiction;\u2014to Controversies to which the United States shall be a Party;\u2014to Controversies between\ntwo or more States;\u2014 between a State and Citizens of another State,\u2014between Citizens of di\"erent\nStates,\u2014between Citizens of the same State claiming Lands under Grants of di\"erent States, and\nbetween a State, or the Citizens thereof, and foreign States, Citizens or Subjects.\nIn all Cases a\"ecting Ambassadors, other public Ministers and Consuls, and those in which a State shall\nbe Party, the supreme Court shall have original Jurisdiction. In all the other Cases before mentioned,\nthe supreme Court shall have appellate Jurisdiction, both as to Law and Fact, with such Exceptions, and\nunder such Regulations as the Congress shall make.\nThe Trial of all Crimes, except in Cases of Impeachment, shall be by Jury; and such Trial shall be held in\nthe State where the said Crimes shall have been committed; but when not committed within any State,\nthe Trial shall be at such Place or Places as the Congress may by Law have directed.\nSection. 3.\nTreason against the United States, shall consist only in levying War against them, or in adhering to their\nEnemies, giving them Aid and Comfort. No Person shall be convicted of Treason unless on the\nTestimony of two Witnesses to the same overt Act, or on Confession in open Court.\nThe Congress shall have Power to declare the Punishment of Treason, but no Attainder of Treason shall\nwork Corruption of Blood, or Forfeiture except during the Life of the Person attainted.\nArticle. IV.\nSection. 1.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2450, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f910d2ba-454d-4f35-93aa-f0d931acc75f": {"__data__": {"id_": "f910d2ba-454d-4f35-93aa-f0d931acc75f", "embedding": null, "metadata": {"page_label": "10", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b96ba79f-bcc2-4f8c-be21-4be9f02d621b", "node_type": "4", "metadata": {"page_label": "10", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8afe06b12edd69be6843627842d76165572fe6e08921df71fbb2a42e464833eb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 10 of 12https://www.archives.gov/founding-docs/constitution-transcript\nFull Faith and Credit shall be given in each State to the public Acts, Records, and judicial Proceedings of\nevery other State. And the Congress may by general Laws prescribe the Manner in which such Acts,\nRecords and Proceedings shall be proved, and the E\"ect thereof.\nSection. 2.\nThe Citizens of each State shall be entitled to all Privileges and Immunities of Citizens in the several\nStates.\nA Person charged in any State with Treason, Felony, or other Crime, who shall flee from Justice, and be\nfound in another State, shall on Demand of the executive Authority of the State from which he fled, be\ndelivered up, to be removed to the State having Jurisdiction of the Crime.\nNo Person held to Service or Labour in one State, under the Laws thereof, escaping into another, shall,\nin Consequence of any Law or Regulation therein, be discharged from such Service or Labour, but shall\nbe delivered up on Claim of the Party to whom such Service or Labour may be due.\nSection. 3.\nNew States may be admitted by the Congress into this Union; but no new State shall be formed or\nerected within the Jurisdiction of any other State; nor any State be formed by the Junction of two or\nmore States, or Parts of States, without the Consent of the Legislatures of the States concerned as well\nas of the Congress.\nThe Congress shall have Power to dispose of and make all needful Rules and Regulations respecting the\nTerritory or other Property belonging to the United States; and nothing in this Constitution shall be so\nconstrued as to Prejudice any Claims of the United States, or of any particular State.\nSection. 4.\nThe United States shall guarantee to every State in this Union a Republican Form of Government, and\nshall protect each of them against Invasion; and on Application of the Legislature, or of the Executive\n(when the Legislature cannot be convened) against domestic Violence.\nArticle. V.\nThe Congress, whenever two thirds of both Houses shall deem it necessary, shall propose Amendments\nto this Constitution, or, on the Application of the Legislatures of two thirds of the several States, shall\ncall a Convention for proposing Amendments, which, in either Case, shall be valid to all Intents and\nPurposes, as Part of this Constitution, when ratified by the Legislatures of three fourths of the several\nStates, or by Conventions in three fourths thereof, as the one or the other Mode of Ratification may be", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2572, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "590886d3-f11f-42f5-aace-dd88f8a53ab8": {"__data__": {"id_": "590886d3-f11f-42f5-aace-dd88f8a53ab8", "embedding": null, "metadata": {"page_label": "11", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "13499eb3-08cc-45c2-909c-0a81d3a9e96e", "node_type": "4", "metadata": {"page_label": "11", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "391098361f6a6ddcac22ca4ccf2c77df29c361fc21204ffc95a081cdf3512bce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 11 of 12https://www.archives.gov/founding-docs/constitution-transcript\nproposed by the Congress; Provided that no Amendment which may be made prior to the Year One\nthousand eight hundred and eight shall in any Manner a\"ect the first and fourth Clauses in the Ninth\nSection of the first Article; and that no State, without its Consent, shall be deprived of its equal Su\"rage\nin the Senate.\nArticle. VI.\nAll Debts contracted and Engagements entered into, before the Adoption of this Constitution, shall be as\nvalid against the United States under this Constitution, as under the Confederation.\nThis Constitution, and the Laws of the United States which shall be made in Pursuance thereof; and all\nTreaties made, or which shall be made, under the Authority of the United States, shall be the supreme\nLaw of the Land; and the Judges in every State shall be bound thereby, any Thing in the Constitution or\nLaws of any State to the Contrary notwithstanding.\nThe Senators and Representatives before mentioned, and the Members of the several State Legislatures,\nand all executive and judicial O\"icers, both of the United States and of the several States, shall be\nbound by Oath or A\"irmation, to support this Constitution; but no religious Test shall ever be required\nas a Qualification to any O\"ice or public Trust under the United States.\nArticle. VII.\nThe Ratification of the Conventions of nine States, shall be su\"icient for the Establishment of this\nConstitution between the States so ratifying the Same.\nThe Word, \"the, \" being interlined between the seventh and eighth Lines of the first Page, The Word\n\"Thirty\" being partly written on an Erazure in the fi!eenth Line of the first Page, The Words \"is tried\"\nbeing interlined between the thirty second and thirty third Lines of the first Page and the Word \"the\"\nbeing interlined between the forty third and forty fourth Lines of the second Page.\nAttest William Jackson Secretary\ndone in Convention by the Unanimous Consent of the States present the Seventeenth Day of September\nin the Year of our Lord one thousand seven hundred and Eighty seven and of the Independance of the\nUnited States of America the Twel!h In witness whereof We have hereunto subscribed our Names,\nG\u00b0. Washington\nPresidt and deputy from Virginia", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c7ada9d0-2b59-4c5f-8f16-85a67e15aa91": {"__data__": {"id_": "c7ada9d0-2b59-4c5f-8f16-85a67e15aa91", "embedding": null, "metadata": {"page_label": "12", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "30b8c80f-632e-4203-a93e-c28321da47f5", "node_type": "4", "metadata": {"page_label": "12", "file_name": "U.S. Constitution.pdf", "file_path": "data/U.S. Constitution.pdf", "file_type": "application/pdf", "file_size": 107138, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "10bca67bc893ebc7b364290d9317ebc09e8529d68017c2a5d2f8ba4a55881aee", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9/1/23, 8:30 AMThe Constitution of the United States: A Transcription | National Archives\nPage 12 of 12https://www.archives.gov/founding-docs/constitution-transcript\nThe U.S. National Archives and Records Administration\n1-86-NARA-NARA or 1-866-272-6272\nTop\nFor biographies of the non-signing delegates to the Constitutional Convention, see the Founding\nFathers page.\n\uf053 Back to Main Constitution Page\nDelawareDelaware\nGeo: Read\nGunning Bedford jun\nJohn Dickinson\nRichard Bassett\nJaco: Broom\nMarylandMaryland\nJames McHenry\nDan of St Thos.\nJenifer\nDanl. Carroll\nVirginiaVirginia\nJohn Blair\nJames Madison Jr.\nNorthNorth\nCarolinaCarolina\nWm. Blount\nRichd. Dobbs\nSpaight\nHu Williamson\nSouthSouth\nCarolinaCarolina\nJ. Rutledge\nCharles Cotesworth\nPinckney\nCharles Pinckney\nPierce Butler\nGeorgiaGeorgia\nWilliam Few\nAbr Baldwin\nNewNew\nHampshireHampshire\nJohn Langdon\nNicholas Gilman\nMassachusettsMassachusetts\nNathaniel Gorham\nRufus King\nConnecticutConnecticut\nWm. Saml. Johnson\nRoger Sherman\nNew YorkNew York\nAlexander Hamilton\nNew JerseyNew Jersey\nWil: Livingston\nDavid Brearley\nWm. Paterson\nJona: Dayton\nPennsylvaniaPennsylvania\nB Franklin\nThomas Mi\"lin\nRobt. Morris\nGeo. Clymer\nThos. FitzSimons\nJared Ingersoll\nJames Wilson\nGouv Morris", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1229, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5746061d-90b5-41d3-8931-8e945335b7ca": {"__data__": {"id_": "5746061d-90b5-41d3-8931-8e945335b7ca", "embedding": null, "metadata": {"page_label": "1", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d679ad58-2d3e-4ddf-a86b-b9a3a63e6527", "node_type": "4", "metadata": {"page_label": "1", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "dc8183c0934ea4673bfeda1291c753f358f1aab141f7afcc5a09fd29d8482849", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machine 01\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 126, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5e1e4ba2-a8ba-4ded-822b-f68e794ecf40": {"__data__": {"id_": "5e1e4ba2-a8ba-4ded-822b-f68e794ecf40", "embedding": null, "metadata": {"page_label": "2", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b072f526-1918-4a60-9652-b7e4e3273063", "node_type": "4", "metadata": {"page_label": "2", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "afef0113c13c28423fe20bc3314fa537298b366f8f8815bca2954fce854321f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Human Computer\nImagine a human computer working with a pencil and paper:\nThe only things written on the paper are symbols from some\n\ufb01xed \ufb01nite alphabet\nEach step taken by the computer depends only on the symbol\nhe/she is currently examining and on his \u201cstate of mind\u201d at\nthe time\nHis state of mind may change as a result of his examining\ndi\ufb00erent symbols, only a \ufb01nite number of distinct states of\nmind are possible\nThis sounds like a \ufb01nite-state machine that has its input\nstring written on the paper\nPrimitive Steps of Human Computation:\nExamining an individual symbol on the paper\nErasing a symbol or replacing it by another\nTransferring attention from one symbol to another nearby\nsymbol\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 754, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fa0d2da6-253d-4b0c-b166-18a3b1269546": {"__data__": {"id_": "fa0d2da6-253d-4b0c-b166-18a3b1269546", "embedding": null, "metadata": {"page_label": "3", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c3ccc1a3-f9a5-46ce-86fc-3619d3c08153", "node_type": "4", "metadata": {"page_label": "3", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "87467d512696660478b1ff87c502b15dbafed62ca832779d6a700ac7263ddaa0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machines\nYou can think of a Turing machine a \ufb01nite state machine\nwith unlimited amount of memory\nControl\n0 1 1 0 1 0 0 1 0\nTape\nA Turing machine has the following:\nA control (state diagram/transition functions)\nAn in\ufb01nite long tape\nA tape head that can move around on the tape\nA TM can read input symbols from its tape\nA TM can write output symbols to its tape\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 430, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ebee44c-7a36-4491-8dbd-8a32e5515c79": {"__data__": {"id_": "9ebee44c-7a36-4491-8dbd-8a32e5515c79", "embedding": null, "metadata": {"page_label": "4", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "99bef275-00dd-47c0-968e-3489385c0ffd", "node_type": "4", "metadata": {"page_label": "4", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "73cfe63fd9588d0aef4d874041d0023dab5ff773655b10c3458f6e76d4e5ae74", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machines\nAt \ufb01rst, tape contains the input string follows by in\ufb01nite blank\n(\u2294) symbols\nExample: Input: 101\n101\nExample: Input: 011010010\n0 1 1 0 1 0 0 1 0\nExample: Input: \u03b5\nThe machine can store information by writing symbols onto\nthe tape\nThe output of a machine is either accept or reject\nOutput symbols/strings can also be on the tape\nA Turing machine may run forever\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 439, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2b4cecc1-6641-4e37-87dd-d7cae7f18c3a": {"__data__": {"id_": "2b4cecc1-6641-4e37-87dd-d7cae7f18c3a", "embedding": null, "metadata": {"page_label": "5", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "602cadd5-6702-427f-acc7-4aa62e7b0de9", "node_type": "4", "metadata": {"page_label": "5", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1ab9f10fc7de5bfe6b29f8ba2962cf34dbe256d294ca85bc6bdd708827b9c0fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machine\nControl\na b a b\n1 A Turing machine can read a symbol from the tape under the\ntape head\n2 A Turing machine can write a symbol to the tape under the\ntape head\n3 The tape head can move to the left and to the right one\nsquare at a time\n4 The tape is in\ufb01nite\n5 The special states for rejecting and accepting take e\ufb00ect\nimmediately (qreject and qaccept)\nUnlike DFA that needs to process the last input symbol before\naccepting or rejecting an input string\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 526, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6473bea9-1ab4-406b-bacc-085e2f8c3515": {"__data__": {"id_": "6473bea9-1ab4-406b-bacc-085e2f8c3515", "embedding": null, "metadata": {"page_label": "6", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4a6d9aca-e483-49c5-8613-7a0ae4cbbc9f", "node_type": "4", "metadata": {"page_label": "6", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "43b0223d65f0cd54c19fe4ff680629e27ac44e0a68f3f3049206e0469e481664", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet \u03a3 = {0,1,#}\nConsider the language B = {w#w|w\u2208{0,1}\u2217}\nExample of strings in B are\n01101#01101\n#\n01#01\nThis language is not regular\nNeed an in\ufb01nite states to to remember all symbols in w\nWe can use the Pumping lemma to prove that it is not regular\nIf the number of # symbol in a string is not exactly 1, the\nstring is not in the language B\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 412, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c10b7e91-e3e8-4dec-be7d-3152531b1d08": {"__data__": {"id_": "c10b7e91-e3e8-4dec-be7d-3152531b1d08", "embedding": null, "metadata": {"page_label": "7", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a278f36f-84a6-4db0-8bb9-b5fa649f93b3", "node_type": "4", "metadata": {"page_label": "7", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ecd57d90a52f0c2d106ed3f1d312a1a294195bda01443dda9013e9dd9da91c2f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet \u03a3 = {0,1,#}and B = {w#w|w\u2208{0,1}\u2217}\nImaging what would you do if I give you a very long piece of\npaper and it contains a string of the form x#y where\nx,y \u2208{0,1}\u2217 and they are so long that you cannot remember\nall its symbols\nOne way is to go back and forth across the # and compare\nsymbols at the same position one symbol at a time\nYou may need to cross o\ufb00 those that have been compared\n0110110101011010111010100101011001100101010#0110110101011010111010100101011001100101010\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 546, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5238850b-970e-4277-9a2e-143b61fdf482": {"__data__": {"id_": "5238850b-970e-4277-9a2e-143b61fdf482", "embedding": null, "metadata": {"page_label": "8", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a42ec5ec-74bb-4a38-a1f9-7883a1d3dc80", "node_type": "4", "metadata": {"page_label": "8", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "82903982ae90a49cacce0e7c1db0c840eee89c350a54e2a11155583e6710d13c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Formal De\ufb01nition of a Turing Machine\nA Turing machine is a 7-tuple, (Q,\u03a3,\u0393,\u03b4,q0,qaccept,qreject),\nwhere Q,\u03a3,\u0393 are all \ufb01nite sets and\n1 Q is a set of states,\n2 \u03a3 is the input alphabet not containing the blank symbol \u2294,\n3 \u0393 is the tape alphabet, where \u2294\u2208\u0393 and \u03a3 \u2286\u0393,\n4 \u03b4: Q\u00d7\u0393 \u2192Q\u00d7\u0393 \u00d7{L,R}is the transition function,\n5 q0 \u2208Q is the start state,\n6 qaccept \u2208Q is the accept state, and\n7 qreject \u2208Q is the reject state.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 474, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b3a977c5-bd59-47c1-afae-816cafcb914d": {"__data__": {"id_": "b3a977c5-bd59-47c1-afae-816cafcb914d", "embedding": null, "metadata": {"page_label": "9", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4135db71-ca87-46d5-844c-96fe1085dfad", "node_type": "4", "metadata": {"page_label": "9", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "840a992499dc78f03817851da0b92ed8261dcbef164424f5533a1a6cb4d57b36", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Transition Function of a Turing Machine\nThe transition function of a TM is de\ufb01ned as:\n\u03b4: Q\u00d7\u0393 \u2192Q\u00d7\u0393 \u00d7{L,R}\nAn assignment \u03b4(q,a) = (r,b,L) means if the machine is at\nstate q and the tape head is over a square containing a, the\nmachine write symbol b (replacing a), change its state to r\nand move the tape head to the left one square\nThis transition can be represented in a state diagram as shown\nbelow:\nq r\na\u2192b,L\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 472, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a3ec8fa6-5720-4dec-a049-fe2bc54b5b56": {"__data__": {"id_": "a3ec8fa6-5720-4dec-a049-fe2bc54b5b56", "embedding": null, "metadata": {"page_label": "10", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "748d40d6-ace5-46b0-8309-0fd21c84f198", "node_type": "4", "metadata": {"page_label": "10", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "59bf578ae47870e7d6fafb82eb92ac58dc2ab6f3c240bfd1df23d42f08785ba2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Computation of a Turing Machine\nThe input string w= w1w2 ...w n \u2208\u03a3\u2217 is on the leftmost n\nsquare of the tape and the rest are \ufb01lled with blank symbols\nThe tape head starts at the leftmost square of the tape\nThe machine processes input according to its transition\nfunction\nIf the tape head is at the leftmost square and the transition\nfunction indicates L, the tape head stays at the same place\nThe machine continues until it enter the qaccept or qreject state\nThe machine may run forever\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 549, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c4569df0-8d93-4e9e-be62-1c45493ad55e": {"__data__": {"id_": "c4569df0-8d93-4e9e-be62-1c45493ad55e", "embedding": null, "metadata": {"page_label": "11", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e08b53bf-7abd-4d61-aed8-24ffdd337192", "node_type": "4", "metadata": {"page_label": "11", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "577774229f639a56b685f74f84d5e33d33faca58117741ec0d0794cef5ad88b8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Tracing a Turing Machine\nTo trace whether a DFA accept or reject a string is easy\nTo trace whether an NFA accept or reject a string is harder\nAn NFA can split into multiple copies\nEach copy has its own current state\nWe use a computational tree to keep track of all copies\nTo trace whether a TM accept or reject a string is even harder\nWe need to keep track or the current state (similar to DFA or\nNFA)\nWe also need to keep track of the content of the tape\nThe content of the tape is changed over time (TM can write\nonto the tape)\nWe also need to keep track of the location of its tape head\nNeed to know the symbol under the tape head\nThe tape head needs to move to either left or right direction\nat every step\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 772, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce4edeb8-a1b2-4306-88e8-4e84c376fe58": {"__data__": {"id_": "ce4edeb8-a1b2-4306-88e8-4e84c376fe58", "embedding": null, "metadata": {"page_label": "12", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c665a9a7-0a52-4c44-8bc8-8ad48acfe0b2", "node_type": "4", "metadata": {"page_label": "12", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1ad4374a081876e5884af4203cb5aef8b821f7890605fd47a7cdb0a858cbf553", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Con\ufb01guration\nWhen a machine process an alphabet, three things change:\nthe state of the machine,\nthe content of the tape, and\nthe location of the tape head\nThe above three items can be represented by a con\ufb01guration\nA con\ufb01guration is in the form of uq v\nu and v are strings that can be empty\nq is a state that represents the current state of TM\nThe content of the tape is the string uv\nThe tape head is on the \ufb01rst alphabet of the string v\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 500, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "972c5596-b6a3-4830-9335-047fe09c519a": {"__data__": {"id_": "972c5596-b6a3-4830-9335-047fe09c519a", "embedding": null, "metadata": {"page_label": "13", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8ee05925-2b08-47cf-86b5-c59562689426", "node_type": "4", "metadata": {"page_label": "13", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "b044e7a4164dd763bbac2615eb45953312970cbda75070445a72b544bd1a1682", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Con\ufb01guration (Examples)\nExample: The con\ufb01guration 1011q701111 corresponds to a\nmachine as shown below:\n1 0 1 1 0 1 1 1 1\nq7\nExample: The con\ufb01guration q3101101111 corresponds to a\nmachine as shown below:\n1 0 1 1 0 1 1 1 1\nq3\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 286, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "13579c03-d33f-4025-9848-f463cfc65ca0": {"__data__": {"id_": "13579c03-d33f-4025-9848-f463cfc65ca0", "embedding": null, "metadata": {"page_label": "14", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0e78abe2-024a-4c08-93c2-1c1c13ca9f36", "node_type": "4", "metadata": {"page_label": "14", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "137342c19acca486f18afef042358ee1c81315cacf09c66ee6effa26c7dd1019", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Con\ufb01guration (Examples)\nExample: The con\ufb01guration 10110111q81 corresponds to a\nmachine as shown below:\n1 0 1 1 0 1 1 1 1\nq8\nExample: The con\ufb01guration 101101111q4 corresponds to a\nmachine as shown below:\n1 0 1 1 0 1 1 1 1\nq4\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 286, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2f88ff68-f901-4eed-b5ef-ca44c394fc52": {"__data__": {"id_": "2f88ff68-f901-4eed-b5ef-ca44c394fc52", "embedding": null, "metadata": {"page_label": "15", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4aa7c7d6-483d-4778-b66a-6ba86e08c69b", "node_type": "4", "metadata": {"page_label": "15", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "779234ad648dae0542d6d3ea3533a272420025339dd33b5136e4b22ffff57039", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Con\ufb01guration\nWe say that the con\ufb01guration C1 yields con\ufb01guration C2 if\nthe machine can legally go from C1 to C2 in one step\nFor example, suppose a TM has the following transition\nfunction:\n\u03b4(qi,0) = (qj,1,L)\nConsider the con\ufb01guration 010010qi0101\nFor the above con\ufb01guration, u= 010010, q= qi, and v= 0101\nThe current state is qi\nThe content of the tape is 0100100101\nThe tape head is on top of the symbol 0 (the \ufb01rst symbol of v)\nAccording to the above transition function, the next\ncon\ufb01guration would be\n01001qj01101\nWe says that the 010010qi0101 yields 01001qj01101\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 630, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dede0616-9634-4a68-bf1f-33936d4dd7e2": {"__data__": {"id_": "dede0616-9634-4a68-bf1f-33936d4dd7e2", "embedding": null, "metadata": {"page_label": "16", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3367915a-8ae1-4fd9-998d-99d084b3f786", "node_type": "4", "metadata": {"page_label": "16", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ce69d8bda72adcd80602d29e97e2aa6ba92acadb3e0f2940716dc827ccbebcb6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Con\ufb01guration\nFormally:\nLet a,b,c \u2208\u0393 and u,v \u2208\u0393\u2217\na, b, and c are symbols\nu and v are strings over \u0393\nBy concatenating the symbol a to the end of the string u, we\nget the string ua\nWe say that\nuaqi bv yields uqj acv\nif \u03b4(qi,b) = (qj,c,L )\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 298, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ad88d551-a40b-4491-874e-54f0a11742af": {"__data__": {"id_": "ad88d551-a40b-4491-874e-54f0a11742af", "embedding": null, "metadata": {"page_label": "17", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "476987cb-ff5e-4163-a5e5-a58492bf8819", "node_type": "4", "metadata": {"page_label": "17", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ffdbe1f37d9fbcaa613ec29ec2b9068543dd9e1391ce2216d8a1c1506a089478", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Starting Con\ufb01guration\nGiven a string w= w0w1w2 ...w n\nSuppose the start state of a TM M is q0\nWhen M is about to process the string w:\nq0\nw0 w1 w2 wn\nThe starting con\ufb01guration of M on input w is q0w\nExample: The starting con\ufb01guration of M on input 01101 will\nbe q001101\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 332, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e09db520-1276-4204-853f-6f6b293c3901": {"__data__": {"id_": "e09db520-1276-4204-853f-6f6b293c3901", "embedding": null, "metadata": {"page_label": "18", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "35232bd7-c9eb-4f0b-a47b-faa2ceb8c3ec", "node_type": "4", "metadata": {"page_label": "18", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "b130c5412be2525f95fcde01c9e1db9152b80a503da933dd5d8bc6c87a1e17f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Con\ufb01guration\nIf the state in a con\ufb01guration is qaccept, the con\ufb01guration is\ncalled accepting con\ufb01guration\n0101qaccept101\nqaccept1111\nSimilarly, if the state in a con\ufb01guration is qreject, it is called\nrejecting con\ufb01guration\nqreject010100\n011qreject01\nOnce a machine yields either the accepting or rejecting\ncon\ufb01guration, the machine will not yield any other\ncon\ufb01guration (halting con\ufb01guration).\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 456, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "969f863d-4425-48c1-b535-34e609a13e2e": {"__data__": {"id_": "969f863d-4425-48c1-b535-34e609a13e2e", "embedding": null, "metadata": {"page_label": "19", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5b9a90d3-5c2d-47b9-89f1-03e5c0cbcfbd", "node_type": "4", "metadata": {"page_label": "19", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2b88aa65cfc0182d81dfd5dd3ad66fa06fe7b2ac7b2ee0fa05840cdf014264f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Language of a TM\nA machine M accepts a string w if the sequence of\ncon\ufb01guration C1,C2,...C k exists, where\n1 C1 is the starting con\ufb01guration of M on input w,\n2 each Ci yields Cj, and\n3 Ck is an accepting con\ufb01guration\nThe set of all strings Aaccepted by M is the language of M\nM recognizes A or\nL(M) = A\nNote: If L(M) = A, it does not mean that M rejects all\nstrings that are not in the language A\nGiven a string s\u0338\u2208A, M may loop inde\ufb01nitely on input s\nUnlike a DFA D, if L(D) = B, D rejects all strings not in the\nlanguage D\nDFA D cannot loop inde\ufb01nitely on any string\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 631, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "846c71cd-b8d7-4388-882f-0484951403dd": {"__data__": {"id_": "846c71cd-b8d7-4388-882f-0484951403dd", "embedding": null, "metadata": {"page_label": "20", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a9eb911b-59c7-4932-a519-52294bf25586", "node_type": "4", "metadata": {"page_label": "20", "file_name": "turing_machine_01_handout.pdf", "file_path": "data/turing_machine_01_handout.pdf", "file_type": "application/pdf", "file_size": 245720, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "adf9703f96594785bbc8547aec4c6f31728be37eace5b55f91877494393b6b69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Language of a TM\nA language B is called Turing-recognizable if some Turing\nmachine recognize it\nSometimes we call B is recognizable\nGiven a string w and a TM M there are three possibilities:\n1 M accepts w\n2 M rejects w\n3 M loops inde\ufb01nitely on input w\nTuring machines that never loop inde\ufb01nitely are called\ndeciders\nThese type of TMs will always halt on all inputs\nA decider that recognizes a language is said to decide that\nlanguage\nA language is called Turing-decidable if some Turing\nmachines decide it\nSuppose TM M is a decider and L(M) = C, we say that\nM decides C\nC is decidable\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 01", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 647, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "42bc6faa-7a50-4bcf-8860-059c1e302bf7": {"__data__": {"id_": "42bc6faa-7a50-4bcf-8860-059c1e302bf7", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "52a867f5-d24a-49cc-ae8b-1d44dee56407", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7f1866292e93243b4b4754e24798c1af6ffdfd01ac7f096b72189af0e99d5f4b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL09 Scenarios & Use Cases\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 161, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c1d3c98f-6f37-4e33-96f9-35feb5d6deb3": {"__data__": {"id_": "c1d3c98f-6f37-4e33-96f9-35feb5d6deb3", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4f9d71e7-c150-403e-a0f5-7f882420c8f2", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "fcc3b082b250c0ead89a5ddddde094dc5520fddb81b48f5a0e719539a10e6d0a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1451, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6d61cdc1-9f6e-445e-98f8-cee5d917b46b": {"__data__": {"id_": "6d61cdc1-9f6e-445e-98f8-cee5d917b46b", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ea3d1355-b75b-4ddd-9f63-f776004e673f", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "565d5a2704e2492bac0de0c6e9582223aeae0454395de4429a0cfa53ae54a1ed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nLearning goals\n\u2022 You understand the di\ufb00erent means of representing requirements\n\u2022 Scenarios\n\u2022 Use case\n\u2022 You can model a use case diagram\n3CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 233, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b353a2f-30dc-4b80-9765-c9fa2cec2618": {"__data__": {"id_": "6b353a2f-30dc-4b80-9765-c9fa2cec2618", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7882693f-c9e1-40f2-84cb-7432106ed68f", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c114be9eba3c998b240c77633379fdf0f22d9a49710fbd2dfa27c5a545e7f533", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Scenarios \n\u2022 Use cases\n\u2022 User stories \n4CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d3059437-7c75-49e7-88ce-070ebc7730f8": {"__data__": {"id_": "d3059437-7c75-49e7-88ce-070ebc7730f8", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c8c440a9-5a15-498f-8905-e514e70f4a46", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b4561ba4a2d77f71d2c458978106e49ee3b3023fdd36b4eca050cc22a5d5d761", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSo far \u2026 \n\u2022 We have de\ufb01ned functional, non-functional requirements, and constraints\n\u2022 They form the foundation of the system we want to build\n5CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nProblem \nHow do we ensure every stakeholder understands the system?\nHow can we validate the requirements with stakeholders?\n-> We need techniques that make requirements concrete and communicable!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 433, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "40d66cca-9248-423e-a008-8eac849da5e4": {"__data__": {"id_": "40d66cca-9248-423e-a008-8eac849da5e4", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "214979ef-0bdf-4d75-aeca-82f819b061fc", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "cfd72ff6a2cd758389e03dfa5f505e0ecf78fce764b7cebca0823f6eee196654", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCommon techniques\n\u2022 Interviews \n\u2022 Structured vs. unstructured, open-ended questions\n\u2022 Surveys/questionnaires (useful for large groups)\n\u2022 Workshops/brainstorming\n\u2022 Observation (shadowing users, contextual inquiry)\n\u2022 Document Analysis: Legacy system specs, regulations\n\u2022 Prototyping \u2013 Low-\ufb01delity mockups to elicit feedback\n\u2022 Use Case / Scenario Writing: Stories of user interaction\n\u2022 User Stories (agile format)\n\u2022 \u2026\n6CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 511, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "54c6cebd-850f-4d6e-8204-728fae0902ee": {"__data__": {"id_": "54c6cebd-850f-4d6e-8204-728fae0902ee", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8bdbc301-1f8d-4aff-841d-5893a5362faa", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "61dbb1aba81796b0a01b70aad81f2671449cc426b9edbd0837b35674874135f2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nValidation techniques align requirements with user needs\n\u2022 Scenarios: A concrete story of a user interacting with the system\n\u2022 Use Cases: A structured description involving generic end-users (actors) and \nthe system, abstraction that covers all possible instances\n\u2022 User Stories: A short statement of the need from the end-user\u2019s perspective, \nmaking it easier to understand and prioritize\n7CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nThese techniques help validate requirements with stakeholders and \nidentify missing FRs, NFRs, or constraints.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 596, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce2c2b4d-4977-442b-b94d-fd3aa2d4074e": {"__data__": {"id_": "ce2c2b4d-4977-442b-b94d-fd3aa2d4074e", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b66fbc2a-02ff-40c5-99f1-6e94e75a114d", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "85b009b3e92d4fce670c404f4a39fa6f9ef13aa62e72fee465a4d589a4191760", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nIdentifying scenarios\n\u2022 Informal short descriptions of speci\ufb01c user interactions in natural language \n\u2022 They provide a narrative of how the system should function through a \nsequence of events, actions, or steps \n\u2022 Used for exploring detailed interactions and edge cases \n\u2022 Basis for test cases & validation\n\u2022 Best case scenario\n\u2022 Worst case scenario \n\u2022 Average case scenario\n8CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nDescribe a \ufb02ow of events with \nmultiple potential outcomes", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 530, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "90dbfb0f-ed08-49b5-956d-86d340863ec7": {"__data__": {"id_": "90dbfb0f-ed08-49b5-956d-86d340863ec7", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f346e1ae-486d-41ee-a6c6-9490b0c95cbe", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "aa6231304d982db4b5695f5402060829bba849e82c3ed05b6bec8ab270eb5096", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example]\nFR3 View Sinkhole: Residents and city o\ufb03cials should be able to view reported \nsinkholes on a map.\n9CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nJamie opens the SiMCity app on their phone while walking home. \u2028 \nThey see visual markers for sinkholes on a street map.\u2028 \nWhen they select a sinkhole marker, the app shows the sinkhole\u2019s \nlocation, date reported, and veri\ufb01cation & repair status.\nYes, I want to see a \ndetailed status!\nResidents should not see \nunveri\ufb01ied reports.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 536, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1c7d0ab5-6da2-46bc-a7e6-c8b0d0e55062": {"__data__": {"id_": "1c7d0ab5-6da2-46bc-a7e6-c8b0d0e55062", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "37ba1b7c-5882-4e2f-812b-bab51f1363bd", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "2d497a68e41626c9067d847878f0f55985b525b192dbce9650e0fc1e47c5e58f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nScenarios have a concrete story-line\n\u2022 Scenarios enhance requirements elicitation by providing a tool that is \nunderstandable to stakeholders\n\u2022 Concrete, user-centered descriptions of system features used by actors (end-\nusers), often involving informal descriptions\n\u2022 Textual representation of how the system is used written from the (end)user\u2019s \nperspective\n\u2022 Scenarios can incorporate visual elements: e.g., videos, pictures, or storyboards\n\u2022 Scenarios can encompass contextual details, e.g., the (physical) environment, social \nsituations, \u2026\n\u2022 In scenario-based design, scenarios serve as the foundation for designing \nthe hypothetical interaction of end-users with a system\n10CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 775, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f7627b8-6b8b-4972-b8a0-9eaa51f91fc6": {"__data__": {"id_": "9f7627b8-6b8b-4972-b8a0-9eaa51f91fc6", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a143c385-9e12-4014-b254-aee11af21567", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ea7c87b41b7cf8f69e5a45c8f90d24fe637ed24d7c86e9e9b987b84fa6bb181f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] As-is scenario\n11CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nhttps://www.nngroup.com/articles/storyboards-visualize-ideas/\nFR4 Reorder Supplies: The system allows users to reorder supplies.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 250, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "599bd291-21c1-4bb3-bf60-ef220423588b": {"__data__": {"id_": "599bd291-21c1-4bb3-bf60-ef220423588b", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cc81deea-3bdc-4415-bffb-2f950bf9aa01", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d353f57fefc0664df61b168e43a64a03ced9df3c48f9f273aca6999cd394cdd6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] From Storyboards to Code\n12CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nLukas Alperowitz, Constantin Scheuermann, and Nadine von Frankenberg. \"From Storyboards to Code: Visual Product Backlogs in Agile Project Courses.\" SEUH. 2017.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 291, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6481111e-1030-487d-9b22-4abb0b03dba5": {"__data__": {"id_": "6481111e-1030-487d-9b22-4abb0b03dba5", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "06b3050e-156f-45f3-9bd7-04a20ac646f3", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "54be72a2d2d318815b8c5f36eea37d019c555aec9181b595cc6929684ef02701", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nScenarios\n\u2022 A scenario is a textual description that should include:\n\u2022 The name of the scenario\n\u2022 The user (\"instantiated\" main actor of the scenario)\n\u2022 The purpose of the scenario\n\u2022 Steps of the scenario\n\u2022 Optional: Assumptions about, e.g., equipment/software\n13CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 357, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "66e3ce64-5931-4dcd-a431-dd0d8e79b3a3": {"__data__": {"id_": "66e3ce64-5931-4dcd-a431-dd0d8e79b3a3", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cc879ecb-dce3-40ef-9f28-f178761daec1", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7505635d9acd3a81a240b8f3d1179a1d2d1ac259334aee5aafa7f9ae1b6a2860", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nHow to write a scenario?\n14CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nIcons source\nPersonas\nDe\ufb01ne the \ntarget user\nGoal\nDe\ufb01ne the \ngoal\nPaths\nDe\ufb01ne the task(s), possible \npaths, and problems\nUser Name & Purpose Steps", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 268, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6a61a361-ee84-431f-9b8e-345fbd615d06": {"__data__": {"id_": "6a61a361-ee84-431f-9b8e-345fbd615d06", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a556389d-2b29-4ec2-96a0-da03efb32c28", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ccfe86176828c30dd844e05792441122ab7b200a1d184ab9c3eecad177d09a1e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nHow to write a scenario?\n\u2022 Format can be informal or formalized\n\u2022 The rest is up to the author!\n\u2022 E.g., include di\ufb00erent formatting to highlight situations or context \n\u2022 Names and details should (somewhat) resonate with the audience\n15CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nInformal scenario\nScenario name\nScenario \ndescription \u2028\n(natural language \ntext)\nFormal scenario\nScenario name\nParticipating actors\nFlow of events: \n1. Scenario description in bullet points\n2. Typically each point describes one step (i.e., event)", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 577, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3fd9645f-d8cb-4a33-a074-21c79a84ee98": {"__data__": {"id_": "3fd9645f-d8cb-4a33-a074-21c79a84ee98", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a5252ac2-58b2-4c3a-bb26-eb235117632d", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "71fc2261e6b0352c3cffed4f3d0c5ef90f1658f9714d4cba67e1f35c5b697030", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Visionary Scenario\nPizza Cravings: Ordering a Pizza \nOn a Wednesday night, Sarah, a CS senior at Pitt, is fully immersed in her study \nsession for 1530. Around 10pm, she suddenly craves a pizza. She opens the \npizza ordering app \"CrustRight\", logs in with her Pitt student ID, and selects to \nhave her order delivered. \nAfter ordering a small Supreme pizza with extra cheese and a surprise soda, she \nselects her dorm room as delivery address and pays using her student meal plan.\nShe receives a con\ufb01rmation and an info that her order will be delivered in 15 \u2014 \n20 minutes.\nShe waits patiently. 16 minutes later, she receives a message that her pizza is \noutside. She buzzes the delivery person in and receives her order at her \ndoorstep. She enjoys her late-night meal, reenergizing her study session.\n16CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\n\ud83d\udc53 Read", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 916, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf64f202-7169-4c52-9aef-6b43e6ab3015": {"__data__": {"id_": "bf64f202-7169-4c52-9aef-6b43e6ab3015", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "19eb1ee2-3e28-477a-894a-3af9c3cdcaa9", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "735922a26ae9de486efe8f8e62ff595a56e62b3ed514a8065fc4c369078a34fd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] As-is scenario\n17CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nScenario \nname\nDepositing money\nParticipating \nactors Robin: BankClient\nFlow of \nevents\n1. Robin celebrated their birthday last Wednesday and received birthday money ($300) \nfrom their relatives and wants to deposit it to their bank account.\n2. Robin visits a bank branch of their bank \"HelloSavings\", a 5 minute walk from their \napartment.\n3. They queue up at the teller's counter, behind 10 other customers and wait patiently.\n4. Finally, when it\u2019s Robin\u2019s turn to talk to an agent, they need to provide physical \nidenti\ufb01cation. Robin uses their driver\u2019s license and the agent con\ufb01rms their identity.\n5. Robin hands over the $300. The agent counts it, con\ufb01rms the amount, and uses the \nbank\u2019s internal system to schedule the move to Robin\u2019s account.\n6. Robin receives a printed receipt for the transaction.\n7. Two weeks later, Robin receives their bank statement by mail and checks their \nbalance to con\ufb01rm that the birthday money transaction has made its wait to their \naccount.\n\ud83d\udea8 [Notation alert] \nAn instantiated actor is denoted as \nConcrete Name : ActorType \n(both : and underlining the actor \nindicate that we are dealing with an \ninstance)", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1271, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f44d9f1d-04b4-41b7-bfaa-466f258ce913": {"__data__": {"id_": "f44d9f1d-04b4-41b7-bfaa-466f258ce913", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ca41dfbe-6a46-4674-a6f1-4a30cc1042da", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "70d446b46b17196c1a861d9e948d309efa0df1c8caefdd0ad6123a844ca64fab", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Visionary scenario\n18CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nScenario \nname\nDepositing money\nParticipating \nactors Robin: BankClient\nFlow of \nevents\n1. Robin celebrated their birthday last Wednesday and received birthday money ($300) from their \nrelatives and wants to deposit it to their bank account.\n2. Robin opens the \"Coinnect\" app.\n 3. The \"Coinnect\" app shows a welcome message and asks Robin to log in.\n4. Robin logs in with a biometric login.\n 5. The \"Coinnect\" app shows an overview of Robin\u2019s favorite banks.\n6. Robin selects to \ufb01le a deposit at a physical location with \"HelloSavings\" bank.\n 7. The \"Coinnect\" app shows all physical locations of Robin\u2019s bank within a 5 mile radius and \u2028\n the current wait times.\n8. Robin\u2019s closest bank location (a 5 minute walk away) shows a current wait time of 32 minutes. \n9. Robin selects to virtually stand in line.\n10. Robin receives a noti\ufb01cation 8 minutes before it is their turn in line.\n11. Robin leaves their apartment and walks over to the physical location of the \"HelloSavings\" \nbank.\n 12. When Robin arrives, the \"Coinnect\" app registers their arrival and con\ufb01rms their spot in the \u2028\n current queue. \n13. Robin receives a number, which the bank teller calls out when it is their turn 2 minutes later.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1363, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "861d7266-037a-492d-92a2-37adde585903": {"__data__": {"id_": "861d7266-037a-492d-92a2-37adde585903", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "67bf30f6-8ab9-4a7d-9abb-0cf049b988f4", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "de90987b335459f12d96fd0a8f35f26e5541cdd4ae49e42f7f078a7c8457c96e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTypes of scenarios\n\u2022 As-is: Describes the current situation, often focusing \non an existing system\n\u2022 Visionary: Envisions the desired future state, outlining \nsystem goals\n\u2022 Demo: Showcases system functionality to stakeholders\n\u2022 Test: Speci\ufb01es steps for quality assurance and \nvalidation\n\u2022 Evaluation: Assesses system e\ufb00ectiveness against \ncriteria\n\u2022 Training: Guides users in e\ufb00ective system use\n19CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nGreen\ufb01eld \n& \nRe-engineering Projects\nDemos\nDemos \n& \nAcceptance Tests\nPost delivery", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 581, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "74f7263d-e677-44ac-b03b-5b608c63fc59": {"__data__": {"id_": "74f7263d-e677-44ac-b03b-5b608c63fc59", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6a50c414-62a8-47bb-aa2d-5b7d920543ad", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c8fa2f3d84f4a5c380ce1723c3a664a5c43a3057704475d6d138e1c32c8ccb3e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDeriving scenarios\n\u2022 Client conciseness: Customers may not provide extensive details for non-\nexistent systems\n\u2022 Domain expertise: Customers understand the problem domain, not the \nsolution domain\n\u2022 Avoid assumptions: What is obvious to you may not be apparent to the \ncustomer\n\u2022 Dialectic engagement: Engage in dialogue to help clients formulate scenarios\n\u2022 Dynamic requirements: Requirements often evolve during scenario \nformulation\n\u2022 Observation: For existing systems, insist on task observation, interface \nengineering, or re-engineering\n\u2022 (End-)user engagement: Speak to (end-)users for valuable insights\n20CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 707, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "21f2e5ed-ee65-4031-bea7-51c6f1a5148c": {"__data__": {"id_": "21f2e5ed-ee65-4031-bea7-51c6f1a5148c", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9e33ae02-ae84-4a57-94d7-815d9ae41338", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "aa006e75baff7c9064f2ca2840810a956591ee5e8245c1e3ce5d71645afe078b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nHow to write a scenario? (cont.)\n\u2022 Starting point: Begin with the problem statement (if available)\n\u2022 Answer the following questions:\n\u2022 Which actors are involved? \n\u2022 What are the core functions that the system must perform? (From the actor\u2019s \nperspective)\n\u2022 What information can the actors access, generate, store, modify, delete, or introduce \ninto the system?\n\u2022 Which external changes does the actor need to inform the system about? How \noften? When?\n\u2022 What events should trigger noti\ufb01cations to the actor using the system?\n\u2022 Decide on names, contextual circumstances if needed, etc.\n\u2022 Know your audience \u2014 familiarity with a situation may be relevant\n21CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 749, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53416d69-4436-4473-93f0-c30958793c0d": {"__data__": {"id_": "53416d69-4436-4473-93f0-c30958793c0d", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c9588e24-fa7b-4b1a-b5c7-dd33fd74b64f", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "8e8490712eec7a3e8abbbcf7c5add1639b93635184f05128acadb32ffb0f1412", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Scenarios \n\u2022 Use cases\n\u2022 User stories \n22CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 153, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b0a482e7-58f6-4b4a-bb74-ccff1238cfc3": {"__data__": {"id_": "b0a482e7-58f6-4b4a-bb74-ccff1238cfc3", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0a78aef7-02e9-40b9-a852-5740f4d18448", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "72abbc9686bb932ae79ac2a6a1512a5357c4ba37c1800e8a20a40ae588e368e8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n\u2022 Scenarios focus on actor identi\ufb01cation & the application domain\n\u2022 Shortcoming: static, does not adapt to di\ufb00erent processes that need to be supported \nby a (new) feature\n\u2022 Next step: Based on the scenario(s), identify functionality where an actor \ninteracts with the system \u2192 use cases \n\u2022 Describe the di\ufb00erent ways how a user can interact with the system\n\u2022 Are there any conditions tied to a functionality?\n\u2022 Any speci\ufb01c qualities that need to be considered?\nDeriving functionality\n23CS 1530 - L09 Representing Requirements - Scenarios & Use Cases", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 581, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e8101366-a1c0-4fbc-9be9-81fec56bc487": {"__data__": {"id_": "e8101366-a1c0-4fbc-9be9-81fec56bc487", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "23f4377f-7668-40c1-a148-599b39021f6e", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "85e1930bc9d6e91147fd3e2167f01f5dbe785415832ae0621924c1f5294be101", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUse cases \nGoal: De\ufb01ne system functions through a series of events, producing observable \noutcomes for actors \n\u2022 Use cases are descriptions of interactions between a system and actors (= its \nusers or other systems)\n\u2022 Actors initiate use cases to access system functionality \n24CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nUML actor notation:\nTwo actors interact with the system\nSiMCity\nResident\nCityOfficial\nGIS\nSimCity interacts with \nan actor (GIS)", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 501, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "420dcab6-cd31-48cb-94ba-d17e6ef79c6e": {"__data__": {"id_": "420dcab6-cd31-48cb-94ba-d17e6ef79c6e", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0189a6dc-6c40-4add-a051-e01c59f23e7f", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "4c0931117a9dada9c84d5ba21d3c9196e03275af41a37811a6a5352737f8a6b1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUse cases\n\u2022 Use cases describe the system\u2019s behavior from the actor\u2019s point of view \n\u2022 Typically, functional requirements should be phrased in a way that their \nrespective short title can be directly derived into a use case\n\u2022 Example:\u2028\nFR1 View Hazardous Area: Pittsburgh\u2019s residents can view hazardous areas where \nsinkholes are likely to occur.\u2028\n\u2022 Use case - UML representation:\n25CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nView \nHazardous Area\nResident", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 508, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aed73659-ce46-4e6c-8f5d-d0a72a14681f": {"__data__": {"id_": "aed73659-ce46-4e6c-8f5d-d0a72a14681f", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6cc9ecc2-fcc3-4905-b3f0-9d75894c3c22", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "22ace48864ba030c2e4ad1987f35c26a0de64f01b60cced7734a74a81d66aea4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUse cases - textual description\n\u2022 If a use cases has a \ufb02ow of events that is non-trivial, a textual description \nhelps to identify and document these events\n\u2022 Use cases are typically written from the point of view of the user\n26CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nUse case name Track location of SLFs\nParticipating actors Citizens of Pittsburgh (enduser)\nFlow of events 1. The citizen select a speci\ufb01c area or region \non the map where they suspect or want to \ntrack Spotted Lantern Flies (SLFs).\n2. The system shows the location of \nspotted lantern \ufb02ies in the selected area \nSystem steps (i.e., events that the system \ninitiates) should be highlighted.\nAn event can also link to another \nuse case. E.g., \n3. The system initiates use case \u2028\n\"View location\"", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 815, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fb4c7361-380d-4033-bcc7-2ee74110fd9c": {"__data__": {"id_": "fb4c7361-380d-4033-bcc7-2ee74110fd9c", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d7cee033-efa5-4516-b46f-85defc419060", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5ed5876efa804e160ddcec6abcb921282ffc9d49e8e1065bbd6ac18f587bfe5c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nFormalized use case template\n27CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nUse case template Description\nUse case name The name of the use case should indicate what the user is trying to \naccomplish\u2028\n(See short title of FRs)\nParticipating actors Actors should be named with noun phrases (e.g, CityOfficial)\nFlow of events The boundary of the system should be made clear. \u2028\nActor-initiated steps and system-initiated steps should be \ndistinguished\u2028\nUse case steps in the \ufb02ow of events should be phrased in the active \nvoice\nEntry condition Conditions that need to be satis\ufb01ed before the use case is initiated\nExit condition Conditions satis\ufb01ed after the completion of the use case\nQuality requirements Requirements that are not (directly) related to the functionality of the \nsystem", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 832, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a448a452-7de2-4a84-aa7b-6bf12f14d858": {"__data__": {"id_": "a448a452-7de2-4a84-aa7b-6bf12f14d858", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ded5d653-a03f-4c3f-9f74-f3fc4c5fe13f", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "2fcae530fbf31cca07acf99174dce2bed0e6bfeee55e7a300ce52af16de95bcf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Textual Use Case\n28CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nUse case name Call for help\nParticipating actors Resident, PublicSafety\nFlow of events 1. The Resident sees a sinkhole\n2. The Resident opens the SiMCity system.\n3. The Resident navigates to the sinkhole help overview\n4 The System displays available help options.\n5a The Resident selects to call for help.\n6a The System dials PublicSafety\nAlternative path: \n5b The Resident does not have cell phone reception,\"No cell phone \nreception\" extension use case is initiated\n4a The System shows alternatives to calling for help\nEntry condition Resident has access to SiMCity system\nExit condition PublicSafecty has been called\nQuality requirements Displayed help options are relevant for resident\u2019s area\nIt should take at most 3 clicks to call PublicSafety", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 872, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ac4084a3-7803-4b39-882d-456d8f8a2ef7": {"__data__": {"id_": "ac4084a3-7803-4b39-882d-456d8f8a2ef7", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "59c22896-5f63-440e-a00b-1c57d3e43ce5", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "922de180834e24d7bdc6b4772aa6e6b7652ed7f28349a6d515198f69129a743d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSystem name\nUML Use Case Elements\n29CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nActor\nUse Case\nThe actor \ninitiates the use \ncase\nCan be derived from the \nFRs (short title)\nSystem boundary \n\u2022 De\ufb01nes the scope of the system\n\u2022 Separates the system from external actors\n\u2022 Clari\ufb01es the boundaries within which use \ncases operate\nInteracts with the \nsystem", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 402, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "150317a5-b946-4bba-a513-44595dd0feed": {"__data__": {"id_": "150317a5-b946-4bba-a513-44595dd0feed", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ab949337-9384-4fb8-adca-d7b035948076", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ae74e359872a2398124c72f1066dbd0793aac3d261fea9fa5ddc1860ac73ef78", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] UML Use Case Model\n30CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nSLF Tracker\nCitizen\nView hotspot\nTrack \nlocation\nFind Spotted \nLantern Flies\n<>\nSystem boundarySystem name\nActor \"initiates\"\nUse case\nView \nHazardous Area\nCall for Help\nSiMCity\nResident\nDial \u2028\nFirstResponder \nNumber\n<>\nNo Phone Service<>", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 392, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8a2b26a1-6783-421a-ad7b-47aef3258e85": {"__data__": {"id_": "8a2b26a1-6783-421a-ad7b-47aef3258e85", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fa62f79a-7aed-4a50-a8b1-61adb35fd69e", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "13917b61b290c18a050fd36d31f8d977f98ddc1d00d923ad937a499148bf971e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUML use case elements \u2014 <>\n\u2022 Goal: Reduce complexity by identifying commonalities in di\ufb00erent use cases\n\u2022 Incorporates one use case (the included use case) within another (the including use \ncase\n\u2022 Ensures that the included use case is always part of the main functionality of the \nincluding use case\n\u2022 Enhances modularity and reusability by breaking down complex use cases into \nsimpler, reusable components\n31CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\n\u00abincludes\u00bb\nUse CaseUse CaseOrder Pizza Select Topping", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 569, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0c8bad04-8d38-4b87-85d2-48cfe9cf42ad": {"__data__": {"id_": "0c8bad04-8d38-4b87-85d2-48cfe9cf42ad", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b3c9a43f-5158-41cc-abea-99f7c245c96a", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "08faf077a4fa61e9a8574d099aace36ad74b5787c104377c4cf991366ea0489f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUML use case elements \u2014 <>\n\u2022 Goal: Reduce complexity by extending use cases with optional and \nconditional behavior that occurs within a use case\n\u2022 Allows for the inclusion of additional functionality, often triggered by \nexceptional or rare scenarios\n\u2022 Enhances \ufb02exibility and adaptability in system behavior without cluttering the \nprimary use case with exceptional paths\n32CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nUse Case\n\u00abextends\u00bb\nUse CaseView Map Not connected to \nthe internet", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 546, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "19497f37-de48-4f3d-98f6-564754b49d2b": {"__data__": {"id_": "19497f37-de48-4f3d-98f6-564754b49d2b", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "07931240-a7b7-43fb-940e-2e95ba0516fa", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "8b5fbef727564f9df00338b28147175ccd901bb3a2d8a419b7bfe59eeb171cc9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] UML Use Case Model\n33CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nCourseEnrollment\nStudent\nEnroll in \ncourse\nSearch for \ncourse\nCourse not \navailable\nCourse is full\nEnter search \n\ufb01lter\n<>\n<>\n<>\n<>\n<>", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 306, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0d20c7cb-6c16-420e-95cf-3c8d98dd49dd": {"__data__": {"id_": "0d20c7cb-6c16-420e-95cf-3c8d98dd49dd", "embedding": null, "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4451411b-caec-41b3-b34e-87531dd2a79d", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a9da970d31ddeb16a74e8ff7f3a192ce4966ef2080149d279a9677fa54354e33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] UML Use Case Model\n34CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\nSearch for \ncourse\nEnter search \n\ufb01lter\n<>\nUse case name Search for course\nParticipating actors Student\nFlow of events 1. The student selects to search for a course.\n2. The system shows a list of courses.\n3. The student enters a \ufb01lter to search for a course. \u2028\nThe use case 'Enter search \ufb01lter' is invoked.\n4. The system displays a list of courses that match the student\u2019s \ufb01lter.\nEntry condition The student is logged in.\nExit condition A list of courses that match the search \ufb01lter is produced.\nQuality requirements It should take the student at most three clicks to search for a course \n(NFR5)\nActor-step\nSystem-step", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 753, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "085d1397-5ef9-4f9c-8d1d-e8f26ce6b55b": {"__data__": {"id_": "085d1397-5ef9-4f9c-8d1d-e8f26ce6b55b", "embedding": null, "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9fa9c323-87b5-4617-9daf-b9728773c725", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "63ec897d7a9a99eed93529d517317f56bce3cb710ea8bb61bc7fb5cf195686e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nI09 \u2014 Use case model\nBased on your functional requirements, model a use case diagram\n35CS 1530 - L09 Representing Requirements - Scenarios & Use Cases\n \n\u23f310 min\n \ud83e\uddd1\ud83d\udcbb\n\ud83e\uddd1\ud83d\udcbb Pairs\nI09 Use case model\n2 points\nUse a modeling tool, e.g., \n[Commercial] OmniGraffle, Lucidchart, Visual Paradigm, gleek.io \n[Free/open-source] draw.io, Gliffy, StarUML, PlantUML\ncontinued L10!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 395, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7537522f-c6c1-454c-a4e4-9ec4ffe81d1d": {"__data__": {"id_": "7537522f-c6c1-454c-a4e4-9ec4ffe81d1d", "embedding": null, "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1ea43d8e-23d1-4534-ad76-9c820e0fc918", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_path": "data/Fall25 1530 - L09 Scenarios & Use Cases.pdf", "file_type": "application/pdf", "file_size": 9344880, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c51cb5884f56b4fce8f3755aa48d6ffbd3a91b3dd10279c244bda82cd2718774", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL09 Scenarios & Use Cases\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 161, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2efa92f0-ab3f-4f36-a939-d0d709c9a6ad": {"__data__": {"id_": "2efa92f0-ab3f-4f36-a939-d0d709c9a6ad", "embedding": null, "metadata": {"page_label": "1", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "39deb505-0a45-4837-86a7-8dbbd7c683c8", "node_type": "4", "metadata": {"page_label": "1", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4dca5cef71dd19878c6425965b408893a38413f005717708ff4ba863bf45fb0c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.1. Geometry and Algebra of Vectors\n22 August 2025 13:35\n 1.1. Geometry and Algebra of Vectors Page 1", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 104, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "16f1da0a-c364-4ede-b99e-a3dbd7625fef": {"__data__": {"id_": "16f1da0a-c364-4ede-b99e-a3dbd7625fef", "embedding": null, "metadata": {"page_label": "2", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "de2471ad-0756-425e-8e77-d8a4693adb1e", "node_type": "4", "metadata": {"page_label": "2", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b78872b9e49b92ed8fd204a0547be15e5431847feb30c1f0420aa1a0efa8c364", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.1. Geometry and Algebra of Vectors Page 2", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 46, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5a039a54-a105-4e78-8a6b-6e1149475c1c": {"__data__": {"id_": "5a039a54-a105-4e78-8a6b-6e1149475c1c", "embedding": null, "metadata": {"page_label": "3", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b6db348c-6aca-43ab-80ab-0696ce167d57", "node_type": "4", "metadata": {"page_label": "3", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "75d31efbf18eccd126316c4df7034b3abe742713788de0410d65aee1cb2efbbd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.1. Geometry and Algebra of Vectors Page 3", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 46, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "411c56e4-038d-417b-a57d-8e46190d9638": {"__data__": {"id_": "411c56e4-038d-417b-a57d-8e46190d9638", "embedding": null, "metadata": {"page_label": "4", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b14c5289-ecfc-4d5d-9115-717a1c9346de", "node_type": "4", "metadata": {"page_label": "4", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "77a618932ac8c0c73cade29c5bb721013f311045a6b382a159e680cf9fd529f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.1. Geometry and Algebra of Vectors Page 4", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 46, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d4e78955-1063-4852-9f45-5ec64ff847a0": {"__data__": {"id_": "d4e78955-1063-4852-9f45-5ec64ff847a0", "embedding": null, "metadata": {"page_label": "5", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "17da65f6-cbe1-479a-a51c-0e5b2f7111e2", "node_type": "4", "metadata": {"page_label": "5", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "bb94a357a8745142b364c84f28804f92635724a8292dc93c628db6e821fe1341", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.1. Geometry and Algebra of Vectors Page 5", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 46, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "966c1404-53dd-4eeb-9e13-57fc96841073": {"__data__": {"id_": "966c1404-53dd-4eeb-9e13-57fc96841073", "embedding": null, "metadata": {"page_label": "6", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5ea1871f-8415-45e2-a396-543db1ba094a", "node_type": "4", "metadata": {"page_label": "6", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "468bfa3f5fd6f952d201783db5bbd56c4143a7f841374f03cb5c1d039cbb595d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.1. Geometry and Algebra of Vectors Page 6", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 46, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "acb832fd-bd9e-407c-abed-f426a7a8e10b": {"__data__": {"id_": "acb832fd-bd9e-407c-abed-f426a7a8e10b", "embedding": null, "metadata": {"page_label": "7", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "885c810c-d089-436b-b009-f645158ea52a", "node_type": "4", "metadata": {"page_label": "7", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "62c6ec49f632801d320b25408d393e172d86de211679c52cc9e52f0ed538656d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.1. Geometry and Algebra of Vectors Page 7", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 46, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4397c530-f2c0-4afc-a7e3-7210ebf517db": {"__data__": {"id_": "4397c530-f2c0-4afc-a7e3-7210ebf517db", "embedding": null, "metadata": {"page_label": "8", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3e634dd9-f2db-40ca-8c8f-6516e511579f", "node_type": "4", "metadata": {"page_label": "8", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "82e63a2adbd1d9e39005473314fe1cfeb3a53867873d8cd1707f4c44ca3fd600", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "This following notion of an equivalence relation we didn't \ndefine in class and I don't expect you to know it, but If \nyou really want to know what the term \"equivalence\" \nmeans, for example equivalence of vectors or \"equality \nup to equivalence\", well here is what the definition of an \nequivalence is\u2026 We might do it properly down the line if \nwe decide to talk about congruence relations and \nmodular arithmetic which is extremely important for \ncomputer scientists. \n 1.1. Geometry and Algebra of Vectors Page 8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 517, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f708bfaa-9bfc-4d59-8216-7b2fd6a2bc09": {"__data__": {"id_": "f708bfaa-9bfc-4d59-8216-7b2fd6a2bc09", "embedding": null, "metadata": {"page_label": "9", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6dbf7d20-39f9-4320-b2fa-ef0e14f31674", "node_type": "4", "metadata": {"page_label": "9", "file_name": "1.1. Geometry and Algebra of Vectors.pdf", "file_path": "data/1.1. Geometry and Algebra of Vectors.pdf", "file_type": "application/pdf", "file_size": 9063052, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2951ff9494974b68273db9802c48eeee26a8d7decfa227c32df700f45ba763ee", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.1. Geometry and Algebra of Vectors Page 9", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 46, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c8687213-1136-4568-9fb4-45c011f7adfd": {"__data__": {"id_": "c8687213-1136-4568-9fb4-45c011f7adfd", "embedding": null, "metadata": {"page_label": "1", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5709cf4b-26c2-4e71-8765-db4eef6afd02", "node_type": "4", "metadata": {"page_label": "1", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "a07c8d2c6d8cefc93cf842a012b2699fb1e9361cf78defe9bdd69a6cd682b0b5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata 07\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 128, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2eb75872-a6a2-4dd5-8879-3ab1ca293008": {"__data__": {"id_": "2eb75872-a6a2-4dd5-8879-3ab1ca293008", "embedding": null, "metadata": {"page_label": "2", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "dd4d5bea-f002-42da-99c9-8b2d7d327ff1", "node_type": "4", "metadata": {"page_label": "2", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "0a0a4454814b0e18f8e9e8b03e02c3aedb6731cfe443c4f64f8f1a0770529313", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nShow that C = {w |w has an equal number of 0s and 1s }is not\nregular.\nAssume that C is regular\nSince C is regular, the Pumping lemma says that for any\nstring s \u2208C of length at least p, s can be divided into\ns = xyz satisfying the following conditions:\n1 xyiz \u2208C for any i \u22650\n2 |y|> 0\n3 |xy|\u2264 p\nLet s = (01)p\ns \u2208C \u2014 good\n|s|= 2p \u2265p \u2014 good\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 409, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "230bb030-3563-49ed-8215-b7518b20f64e": {"__data__": {"id_": "230bb030-3563-49ed-8215-b7518b20f64e", "embedding": null, "metadata": {"page_label": "3", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6c387dfe-1282-4f17-b9cf-36c32dd23c52", "node_type": "4", "metadata": {"page_label": "3", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2f233680513520c93ef4adfca16a7a2519fdb76132c10b59c6163093891cd9a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nShow that C = {w |w has an equal number of 0s and 1s }is not\nregular.\ns = (01)p\nLet x = \u03b5, y = 01, and z = (01)p\u22121 and check all three\nconditions:\n1 \u03b5(01)i(01)p\u22121 \u2208C for any i \u22650\nEvery time you insert a y, you add equal number of 0 and 1\n2 |01|= 2> 0\n3 |\u03b501|= 2\u2264p\nAll three condition can be true (no contradiction)\nImportant: No contradiction means nothing\nYou also cannot conclude that C is regular\nBut if we pick s = 0p1p, we will get a contradiction\nSame kind of proof as in previous example but focus on the\nnumber of 0s and 1s (no pattern)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 616, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4370143e-7ad6-427b-89b9-429d1a02887f": {"__data__": {"id_": "4370143e-7ad6-427b-89b9-429d1a02887f", "embedding": null, "metadata": {"page_label": "4", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "be7312a6-431b-4ddc-b1a6-3140f10dfe60", "node_type": "4", "metadata": {"page_label": "4", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "c5d792a8c27dc6700ec6315beb1a7ec7f0e870577e0e16dcdc0bbca1d2b40a7e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Show thatC = {w |w has an equal number of 0s and 1s}\nis not regular\nAssume that C is regular. Since C is regular, the Pumping lemma says that for any\nstring s \u2208C of length at leastp, s can be divided intos = xyz satisfying the following\nconditions:\n1 xyiz \u2208C for anyi \u22650\n2 |y|> 0\n3 |xy|\u2264 p\nLet s = 0p1p. Since s starts withp 0s, to satisfy the third condition,x and y are\nstrings that contain nothing but0s. In other words,x = 0j for anyj \u22650, and y = 0k\nfor anyk >0. Note that k must be greater than0 because |y|= |0k|= k, and the\ncondition 2 says that|y|> 0. Since x = 0j and y = 0k, z = 0p\u2212(j+k)1p. Let i = 2.\nWe have\nxyiz = xy2z\n= xyyz\n= 0j0k0k0p\u2212(j+k)1p\n= 0p+k1p\nFor the string0p+k1p to be inC, the number of0s must be equal to the number of\n1s. In other words,p + k must be equal top. This requires k to be 0.But since k\nmust be greater than 0,xy2z \u0338\u2208B \u2014 contradiction. Therefore, C is not regular.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 967, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1df5b839-2bf3-4b52-a6f0-8112d46979e3": {"__data__": {"id_": "1df5b839-2bf3-4b52-a6f0-8112d46979e3", "embedding": null, "metadata": {"page_label": "5", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f4899501-fbd3-49ee-bba0-f35e0332dcda", "node_type": "4", "metadata": {"page_label": "5", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "689d5a75bda577392929f31a73e08ed1e532e5084b2b492ecf465f6e2605b30d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nShow that D = {w |w has more number of 0s than number of 1s }\nis not regular.\nAs usual, assume that D is regular and followed by the\nstatement from the Pumping lemma\nIf you pick s = 02p1p, you will not get a contradiction\nx = 0j for any j \u22650\ny = 0k for any k >0\nz = 02p\u2212(j+k)1p\nFor i \u22652 in xyiz, you add more 0s which makes the result\nstring still have more 0s than 1s\nFor i = 0\nxy0z = xz = 0j02p\u2212(j+k)1p = 02p\u2212k1p\nIf k is 1, 2p \u22121 > p(the number of 0s is greater than the\nnumber of 1s) \u2014 no contradiction\nIf k is p \u22121, 2p \u2212(p \u22121) =p + 1> p\u2014 no contradiction\nNote that 0 < k\u2264p from (2) and (3)\nIf there is a k that works, no contradiction\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 710, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "199c8337-17db-4353-91c2-13a8dbb6e72b": {"__data__": {"id_": "199c8337-17db-4353-91c2-13a8dbb6e72b", "embedding": null, "metadata": {"page_label": "6", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "41efc110-5e48-4d28-99d1-a8c3a358c149", "node_type": "4", "metadata": {"page_label": "6", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ce6569ac2036165fa9e662b47d47dda39e0b2ba306f9753792b6a5fdb3cb7a69", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet\u2019s try s = 1p02p. Note that s \u2208D and |s|\u2265 p.\nAgain, to satisfy (2) and (3), we have\nx = 1j for any j \u22650\ny = 1k for any k >0\nz = 1p\u2212(j+k)02p\nWe have xyiz = 1j(1k)i1p\u2212(j+k)02p = 1p+ki\u2212k02p\nIf we increase i, we increase the number of 1s\nTo get a contradiction, we need the number of 1s to be\ngreater than or equal to the number of 0s\nIn other words, p + ki \u2212k \u22652p\np + ki \u2212k \u22652p\nki \u2212k \u2265p\nk(i \u22121) \u2265p\ni \u22121 \u2265p/k\ni \u2265(p/k) + 1\nxy(p/k)+1z = 12p02p \u0338\u2208D \u2014 contradiction\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 532, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7d11918c-9ca5-4f65-95e6-3ecea7dd4faa": {"__data__": {"id_": "7d11918c-9ca5-4f65-95e6-3ecea7dd4faa", "embedding": null, "metadata": {"page_label": "7", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3702f97d-4aac-4aa5-abff-0e66963bf049", "node_type": "4", "metadata": {"page_label": "7", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "16ce6deda8fc3c1681afeeb6deb0c474b123e0ac9f5b6f7b7984b449d897c324", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Show that\nD = {w |w has more number of 0s than number of 1s}is\nnot regular\nAssume that D is regular. Since D is regular, the Pumping lemma says that for any\nstring s \u2208D of length at leastp, s can be divided intos = xyz satisfying the\nfollowing conditions:\n1 xyiz \u2208D for anyi \u22650\n2 |y|> 0\n3 |xy|\u2264 p\nLet s = 1p0p+1. Since s starts withp 1s, to satisfy the third condition,x and y are\nstrings that contain nothing but1s. In other words,x = 1j for anyj \u22650, and y = 1k\nfor anyk >0. Note that k must be greater than0 because |y|= |1k|= k, and the\ncondition 2 says that|y|> 0. Since x = 1j and y = 1k, z = 1p\u2212(j+k)0p+1. Let\ni = 2. We have\nxyiz = xy2z = xyyz\n= 1j1k1k1p\u2212(j+k)0p+1\n= 1p+k0p+1\nFor the string1p+k0p+1 to be inD, the number of0s must be greater than the\nnumber of 1s. In other words,p + 1must be greater thanp + k. This requiresk to be\n0. But since k must be greater than 0,xy2z \u0338\u2208D \u2014 contradiction. Therefore, D is\nnot regular.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 995, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6c6bef40-6386-4e89-97cd-867dc3e2708e": {"__data__": {"id_": "6c6bef40-6386-4e89-97cd-867dc3e2708e", "embedding": null, "metadata": {"page_label": "8", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "39c53dab-077d-4a11-97f0-33ace19be2b9", "node_type": "4", "metadata": {"page_label": "8", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3756d2dd2505fc5c6ac117a20a6ecdbddaf350f28a1b7660c533543b81b96712", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Rule of Thumb\nIf a condition of the language is about inequality ( <, \u2264, >,\n\u2265), pick a string that is right at the border line to break the\ncondition\nD = {w |w has more number of 0s than number of 1s }\n1p0p+1 needs xy2z to add at least one 1\n0p1p\u22121 needs xy0z to take out at least one 0\nNo need to \ufb01nd a large value of i\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 384, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a7808370-cc4f-4740-8a29-1390d345cd94": {"__data__": {"id_": "a7808370-cc4f-4740-8a29-1390d345cd94", "embedding": null, "metadata": {"page_label": "9", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "38ddf893-bed8-425f-a9ac-4de73da5fe09", "node_type": "4", "metadata": {"page_label": "9", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3fa81306caa3c42bd3d5fff8110005277b3523d9763aabd94db95c44003cf77d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nShow that E = {0(i2) |i \u22650}is not regular.\nLet\u2019s try to understand this language \ufb01rst\nIf i = 0, 0(02) = 00 = \u03b5\nIf i = 1, 0(12) = 01 = 0\nIf i = 2, 0(22) = 04 = 0000\nIf i = 3, 0(32) = 09 = 000000000, and so on\nThus, we have\nE = {w |w contains nothing but 0s and\nthe number of 0s is i2 for some i \u22650}\nImportant: You cannot pick s = 0p\nThere is nothing to guarantee that p = i2 for some i \u22650\nWe need to pick s = 0(p2)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 485, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "607d98ee-8b42-4097-82d8-10b0b4958e6d": {"__data__": {"id_": "607d98ee-8b42-4097-82d8-10b0b4958e6d", "embedding": null, "metadata": {"page_label": "10", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cd19dd18-c13e-4b3a-9507-8d8138a5caa5", "node_type": "4", "metadata": {"page_label": "10", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "51facfaa1ed1b4025bf53487d0951f4608b844b450696c19d99e049058c2c96d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nShow that E = {0i2\n|i \u22650}is not regular.\nAs usual, assume that E is regular and followed by the\nstatement from the Pumping lemma\nLet s = 0(p2)\nNote that s \u2208E and\n|s|= p2 \u2265p.\nFrom the second and third conditions ( |y|> 0 and |xy|\u2264 p),\nwe have\n0 < |y|\u2264 p\nNote that since s = xyz and |s|= p2, |xyz|= p2.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 372, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e8a1100-23bb-4a5f-88d7-630bd31ce61a": {"__data__": {"id_": "8e8a1100-23bb-4a5f-88d7-630bd31ce61a", "embedding": null, "metadata": {"page_label": "11", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2715fcf8-8a4e-4a26-bba2-df851bb7b45e", "node_type": "4", "metadata": {"page_label": "11", "file_name": "finite_automata_07_handout.pdf", "file_path": "data/finite_automata_07_handout.pdf", "file_type": "application/pdf", "file_size": 244700, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "354fa5769c5f99875f8c178e357d68fd3b2f05d49d4655ab853d0f967a42b5a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet\u2019s do some analysis about xy2z\np2 = |xyz|\n|xyz|< |xy2z|= |xyyz|because |y|> 0\n|xyyz|= |xyz|+ |y|= p2 + |y|\np2 + |y|\u2264 p2 + p because |y|\u2264 p\np2 + p < p2 + 2p + 1 = (p + 1)2\nNote that the string xy2z can in E if |xy2z|= q2 for some q\nAbove analysis shows that p2 < |xy2z|< (p + 1)2\nBut there is no q such that p2 < q2 < (p + 1)2\nThus, xy2z \u0338\u2208E \u2014 contradiction\nE is not regular\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 07", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 448, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7af6f8c3-20cc-49cb-bfb9-2c5fa395e400": {"__data__": {"id_": "7af6f8c3-20cc-49cb-bfb9-2c5fa395e400", "embedding": null, "metadata": {"page_label": "1", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "be1f2b27-f9cd-4c97-af23-e0a708da3bd3", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6ebb9d2998e8891fa2e4c5c47a944ce151f1558c62648292000913e3f58f7f9d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Law, Criminal Justice, and Society \nLCJS-1320 (Civil Rights Law) \nFall 2025 \nThursday 6-830p.m. \n \nIMPORTANT NOTICE Please read the following ENROLLMENT \nALERT carefully: \n \nEffective Spring 2022, this course (LCJS 1320) replaces LEGLST \n1340 INTRODUCTION TO CIVIL RIGHTS. \n \nIf you have previously taken LEGLST 1340, you should NOT enroll \nin this course. If you believe otherwise, please contact your \nadvisor about course repeat limitations/rules. \n \nThis enrollment alert also appears in the PeopleSoft \"Class Notes\" \nfor this course. \n \nProfessor Contact Information \n \nMarty Harris \nMAH736@Pitt.edu; MH@TLawF.com \n412.588.0030 (Office) \nEmails and/or phone calls should be answered within three business days. \nSome emails (such as absence notices) will not be answered. \nOffice Location: 445 Fort Pitt Boulevard, Suite 220 Pittsburgh PA 15219 \nOffice Hours: Thursday 5:00-6:00p.m.; 8:30-9:30p.m. Location determined \nupon request for appointment.", "mimetype": "text/plain", "start_char_idx": 4, "end_char_idx": 959, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4fb11d85-aba8-4f83-8a35-92e2cb1ce4a1": {"__data__": {"id_": "4fb11d85-aba8-4f83-8a35-92e2cb1ce4a1", "embedding": null, "metadata": {"page_label": "2", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b405ca75-f584-4797-9d4a-17cd73695b08", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ec5bf4ecfcbc8431323402d01581857b10ca478621937133208dc546344df102", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Course Description \n \nIn the United States of America, our civil rights are determined by the \nCommon Law, the Constitution, Federal Statutes, State Statutes, and the \nrespective Courts. This class is an introduction to the Civil Rights we share \nin the Country, with an emphasis on those that are most likely to impact you \nin your day to day lives; both in school and in your future careers. This is a \ndiscussion-based class. This is because our civil rights came to be primarily \nthrough discussion and debate. Professor Marty is a practicing trial lawyer \nwho is on the cutting edge of civil rights law. As such, this class is about your \nIdeas and Concepts more so that a rote recitation of endless pre -planned \nlectures to be memorized for an exam. \n \nCourse Pre-requisites \n \nThere are no pre -requisites for this course. Anyone may register for the \ncourse. However, it may be helpful to have taken courses in Logical \nReasoning, Philosophy, Political Science, etc. \n \nCourse Objectives \n \nThe primary objective of this course is to empower you to recognize potential \ncivil rights violations and know the necessary steps to protect yourselves. To \naccomplish this, you will be taught to read, analyze, and speak plainly about \njudicial decisions an d legislation as well as analyzing and creating fact \npatterns to demonstrate civil rights law concepts. By the end of the course, \nyou should be able to spot the flaws in mainstream judicial reporting (e.g. \nWashington Post, Wall Street Journal, New York Times, etc.). \n \nCourse Materials \n \nSpecific Court Decisions and Materials will be circulated by Professor Marty. \nThese include seminal cases in civil rights law such as Edwards v. Arizona, \nTerry v. Ohio , and Graham v. Connor . This will also include Model Jury \nInstructions and Commentary from various Advisory Committees. The \nreadings will be posted to Canvas weekly. These are to be read prior to the \nclass meeting.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1943, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "62806a12-8601-48e4-bd39-0d4584c91e45": {"__data__": {"id_": "62806a12-8601-48e4-bd39-0d4584c91e45", "embedding": null, "metadata": {"page_label": "3", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1e124133-b23c-4bcd-a910-5c903749973b", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5c0f0725db3b250495c7acf07bdca997ec594ce2d4691d47970ba24010f85ade", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The Course \n \nSee the University of Pittsburgh Academic Calendar for important dates like \nthe final dates to add and drop or withdraw from courses. \n \nAll readings for the class are expected to be completed prior to the class. \n \nThis is primarily a discussion class because you must be the \nprimary agent to protect yourself. So you must get comfortable \nhaving important discussions! \n \nThis class will require you to read, and more importantly think about what \nyou read. Students are to be prepared to respond to questions about the \ntopics detailed throughout the syllabus. \n \nIf you have a question during class, chances are someone else has a similar \nquestion. Raise your hand and ask it. If you have particular questions about \na particular topic that you are struggling with, we can discuss them after class \nor via email. In extremely rare circumstances for particularly dense material \n(e.g., substantive due process), Professor Marty may distribute notes. \n \nPlease note, this class is not a high school class where you are told the \nanswers to then regurgitate information later. There are no PowerPoints. To \nthat end, use of AI for class work is strictly forbidden. Any students caught \nusing AI will fail the course. The use of generative AI writing tools (such as \nChatGPT, GrammarlyGO, GPT -3, GPT-4, BERT, or others) is prohibited in \nthis class. Assignments for the course have been designed to help you develop \nas a writer without the use of these technologies. You will generate ideas, \nread, revise, and write on your own and/or in consultation with peers, me, \nor Writing Center tutors and you will not use AI at any stage of your writing \nprocess. You are the author of your work for the course and authorship \nmeans you take responsibility for your words and claims. Any use of AI \ntechnologies in your work will be considered an academic integrity violation \nand addressed accordingly: https://www.as.pitt.edu/faculty/policies-and-\nprocedures/academic-integrity-code. Please see me if you have any \nquestions about this policy.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2068, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "175a26fd-5c3f-4412-a183-96fb4437a869": {"__data__": {"id_": "175a26fd-5c3f-4412-a183-96fb4437a869", "embedding": null, "metadata": {"page_label": "4", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1db83b6f-404d-4021-b1c2-e80f102b635f", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4da215729668f220860027765f6d63700ffb8da8934e12c2d2b468eb594455ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Grading \n \nThroughout the semester there will be 1 essay, 1 test, 1 exercise, and 1 final \nproject. You will also be graded on class attendance, discussion, and Quality \nContributions (which function as extra credit). While it is highly unlikely for \nthe assignment/due dates to change, should they need to be adjusted, you \nwill have at least a week\u2019s notice. \n \nThe essay will be early in the semester , September 18th, 2025. The prompt \nfor the essay will be given on September 11, 2025. It is required, but it will \nnot be graded on the answer you give, rather it will be graded on the quality \nof the reasoning you give for your answer, as well as on your ability to follow \ninstructions. This will be a letter grade worth 10% of your final grade. \n \nThe test will also be on October 16th, 2025. It is required, and will consist of \nstandard multiple choice, fill in the blank, and short answer type queries. \nEverything we discuss in class is fair game for the test. This will be graded on \nthe accuracy of your answers. This will be a numeric score tr anslated into a \nletter grade. This will be worth 15% of your final grade. \n \nThe exercise will be near the middle of the semester. It will be assigned on \nOctober 30, 2025 and due on November 6, 2025. You will be provided with \nreal court materials (in cases that have already resolved) and will, based on \nthose materials, act as a judge and decide the issue presented by the exercise. \nThis will be a letter grade. This will be worth 20% of your final grade. \n \nThe final project will due by the end of the last day of class. The project details \nwill be given on November 13 , 2025. Questions about the projects will be \nanswered during the last class on December 4, 2025. The project will be due \nby 11:59p.m. on the last day of the final exam period. This will be a letter \ngrade. This will be worth 25% of your final grade. \n \nAs a discussion -based class, any student\u2019s poor attendance negatively \nimpacts everyone in the class. You may be absent three (3) times for any \nreason, subject to emailing notice of the absence (but not the reason for the \nabsence) to Professor Marty. The notice of absence must be sent to each of \nthe email addresses identified in this syllabus prior to the start time of the \nclass session. At the end of the semester, Professor Marty will review the \nweekly sign-in sheet against the email records. Even though ab sent, you are \nresponsible for the material covered in class. Excusing additional absences", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2505, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1f6fe2b7-16b5-491e-8693-fcc87238fe3b": {"__data__": {"id_": "1f6fe2b7-16b5-491e-8693-fcc87238fe3b", "embedding": null, "metadata": {"page_label": "5", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2ff37699-63ec-4045-b524-489514d9cdfa", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8fdcae2ff6e9a0c08c6f81bff9f22620eb8887e5e73b49d60815d7e5b931f0ee", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "beyond the three (3) free ones are determined on a case -by-case basis. This \nwill be a letter grade. No absences = A+. 1 -3 Absences = A. Each additional \nabsence not excused beforehand will result in the loss of a letter grade for \nattendance. This means you can have a total of six unexcused absences before \ngetting an F for your attendance grade. Unexcused absences beyond these six \nwill begin to cost a final letter grade. This means you can have a total of ten \n(10) unexcused absences before failing the course. This will be worth 30% of \nyour final grade. \n \nAs a discussion -based class, Students are to share their thoughts, feelings, \nand arguments about the discussion topics detailed throughout the syllabus. \nProfessor Marty\u2019s role is to contribute to the discussion as \u201cpart\u201d of the class \n(while of course moder ating as necessary). There will inevitably be some \nstudents who speak a lot and some who hardly speak at all. That is OK . \nThroughout the semester all students will grow in their confidence to speak \nup and try things in class. This course is a laboratory of ideas so no one \nshould be afraid of being wrong and embarrassed. No one will unfairly \ncriticize you, but another student or me challenging your position is not \nconsidered unfair criticism. In a class with few \u201crules\u201d this is the one \nProfessor Marty will i nstantly enforce: no one may be attacked for their \nideas. However, attacking a person for their idea is not the same thing as \nchallenging a person\u2019s idea. You will be expected to challenge each other, \nincluding Professor Marty , during our class discussions . Often, Professor \nMarty will purposefully say something incorrect to spark and/or guide \ndiscussion and debate. \n \nWe are all adults. We all already know how to be respectful to one another \nand I expect that ability to be exercised at all times towards everyone in the \nroom. \n \nDiscussions allow students to earn \u201cQuality Contributions\u201d during class \ndiscussions. Quality Contributions will be identified by Professor Marty and \nrecorded by the individual student , which can improve your final grade. \nQuality Contributions are ideas, questions, arguments, etc. that transcend \nthe direct application of the lesson, topic, or discussion and/or offer a new \nperspective on an old concept. Quality Contributions are responsiv e and \nlogically thought out; in the context of the class where questions will come, \nindirectly, from the readings. Quality Contributions are thoughtful and \nengaging and relevant to the readings for the day\u2019s class and/or to another \nparticipant\u2019s contribution. The best answers will connect the questions asked", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2656, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e829393e-61d4-41a4-9f57-7dfedfe455d9": {"__data__": {"id_": "e829393e-61d4-41a4-9f57-7dfedfe455d9", "embedding": null, "metadata": {"page_label": "6", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "67f9f86c-6e83-423b-baf0-d01020ddd856", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8f75bcbbbe436c13640964f1cf6df6e5df4b2eb3531098107a646b331425fb37", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "with the readings. The accuracy of your answer is far less important \nthan the quality of your thought process leading to the answer.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 133, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "691c40ba-53c1-407a-be2a-004cd294321a": {"__data__": {"id_": "691c40ba-53c1-407a-be2a-004cd294321a", "embedding": null, "metadata": {"page_label": "7", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "be81ee35-2a0c-40b2-ba66-d3de2d042c39", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "53e3a6bccf1b2e78cca54d796a9f13fbf28bfd2764ceb24f323834472a77b3e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Course Schedule \n \nWeek 1 : August 28 , 2025 - Introduction to the Course, and Each Other. \nTracing Ancient American Civil Rights from The Magna Carta to the United \nStates Constitution. Defining Civil Rights. The Magna Carta. \n \nWeek 2 : September 4, 2025 - Structure and Function of the United States \nJudiciary. A Contemporary Understanding of the Bill of Rights. Exploration \nof the Various Sources of American Civil Rights. \n \nThe Add/Drop deadline is listed for September 5, 2025. \n \nWeek 3 : September 11 , 2025 - The First Amendment. Butler v. Michigan ; \nTexas v. Johnson; 303 Creative, LLC v. Elenis ; Counterman v. Colorado . \nNote: The Essay prompt will be assigned at the end of this class \nmeeting. \n \nThe Extended Add/Drop deadline is listed for September 12, 2025. \n \nWeek 4: September 18, 2025- Essay Due. The Second Amendment. District \nof Columbia v. Heller ; New York State Rifle & Pistol Association, Inc. v. \nBruen; Range v. Garland. \n \nWeek 5: September 25, 2025- The Thirteenth Amendment and Employment \nCivil Rights. Price Waterhouse v. Hopkins ; McDonnell Douglas v. Green ; \nUniversity of Texas Southwest Medical Center v. Nassar ; Fuentes v. \nPerskie; Burlington Northern Santa Fe Railway Co. v. White. \n \nWeek 6: October 2, 2025- The Fourth Amendment. Terry v. Ohio; Franks v. \nDelaware; Graham v. Connor; Pierson v. Ray; Pearson v. Callahan. \n \nWeek 7: October 9, 2025- The Fourth Amendment (continued). Note: Due \nto a potential Court Appearance (Jury Trial) in Philadelphia, \nPennsylvania, this meeting may be conducted via ZOOM. Details \nas to this class meeting with be finalized on October 7. \n \nWeek 8 : October 16, 2025 - Test. The Fifth Amendment. Miranda v. \nArizona, Edwards v. Arizona ; Howes v. Fields ; J.D.B. v. North Carolina ; \nBerghuis v. Thompkins, Missouri v. Seibert; Davis v. United States ; \nStansbury v. California; Colorado v. Connelly", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1892, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "96e88998-18cf-49bc-a5e4-ff1e79bd3e57": {"__data__": {"id_": "96e88998-18cf-49bc-a5e4-ff1e79bd3e57", "embedding": null, "metadata": {"page_label": "8", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2467df83-26b7-45b4-b8bd-56c290fcb848", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b999a473291c2386dccdccd7929690e77dd86f41e4887361b35e2c3977be0074", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Week 9: October 23, 2025- The Sixth Amendment. Gideon v. Wainwright ; \nFaretta v. California ; Batson v. Kentucky ; Strickland v. Washington ; \nAndrus v. Texas; Ramos v. Louisiana \n \nWeek 10: October 30, 2025- The Seventh Amendment. Ashcroft v. Iqbal; Bell \nAtlantic v. Twombly; Celotex Corp. v. Catrett . Note: The Exercise will \nbe assigned at the end of this class meeting. \n \nWeek 11: November 6, 2025- Exercise Due. Discussion and Debate of the \nExercise. The Eighth Amendment. Weems v. United States ; Coker v. \nGeorgia; Graham v. Florida; Timbs v. Indiana; Rhodes v. Chapman ; \nHudson v. McMillian ; Farmer v. Brennan ; Taylor v. Riojas ; Wilson v. \nSeiter. \n \nWeek 1 2: November 13, 2025 - The Fifth and Fourteenth Amendments. \nMoore v. Dempsey; Pierce v. Society of Sisters; Mullane v. Central Hanover \nBank & Trust Co.; Goss v. Lopez; Moore v. City of East Cleveland; Lawrence \nv. Texas. Note: The final project details will be assigned at the end \nof this class meeting. \n \nWeek 1 3: November 20, 2025 - Misc. Civil Rights (Student Choice) . \nQuestions about the final project will be answered in this class meeting. \n \nNOTE: November 27th is Thanksgiving Break. There will NOT be a \nClass Meeting. \n \nWeek 1 4: December 4 , 2025 - Last class meeting. Any other questions \nabout any topic will also be answered at this meeting. \n \nFINAL PROJECTS DUE AT 11:59P.M. ON THURSDAY, \nDECEMBER 4, 2025. \n \nFinal Grades will be Posted by 11:59p.m. on DECEMBER 16, 2025. \nCourse and University Policies \nAcademic Integrity Policy \nStudents in this course will be expected to comply with the University of \nPittsburgh\u2019s Policy on Academic Integrity. Any student suspected of violating \nthis obligation for any reason during the semester will be required to", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1759, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c2d21751-1412-4a00-b1b2-3ee563beb18d": {"__data__": {"id_": "c2d21751-1412-4a00-b1b2-3ee563beb18d", "embedding": null, "metadata": {"page_label": "9", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3ed8ea3f-0cea-4a13-9835-cfec2d8598b2", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5cdbd8ce892ac74a7f71e622a0e5442f491ef7fb08b56b8e7c8b849ecacd87e3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "participate in the procedural process, initiated at the instructor level, as \noutlined in the University Guidelines on Academic Integrity. This may \ninclude, but is not limited to, the confiscation of the examination of any \nindividual suspected of violating University Policy. Furthermore, no student \nmay bring any unauthorized materials to an exam, including dictionaries and \nprogrammable calculators. \nTo learn more about Academic Integrity, visit the Academic Integrity \nGuide for an overview of the topic. For hands -on practice, complete \nthe Understanding and Avoiding Plagiarism tutorial. \nDisability Services Policy \nIf you have a disability for which you are or may be requesting an \naccommodation, you are encouraged to contact both your instructor \nand Disability Resources and Services (DRS), 140 William Pitt Union, (412) \n648-7890, drsrecep@pitt.edu, (412) 228-5347 for P3 ASL users, as early as \npossible in the term. DRS will verify your disability and determine \nreasonable accommodations for this course. \nStatement on Classroom Recording \nTo ensure the free and open discussion of ideas, students may not record \nclassroom lectures, discussion and/or activities without the advance \npermission of the instructor, and must provide notice to all of the students \nBEFORE RECORDING. Any such recording properly approved in advance \ncan be used solely for the student\u2019s own private use. \nCopyright Notice \nCourse materials may be protected by copyright. United States copyright law, \n17 USC section 101, et seq., in addition to University policy and procedures, \nprohibit unauthorized duplication or retransmission of course materials. \nSee Library of Congress Copyright Office and the University Copyright \nPolicy. \nAccessibility \nCanvas is ADA Compliant and has fully implemented the final accessibility \nstandards for electronic and information technology covered by Section 508 \nof the Rehabilitation Act Amendments of 1998. Please note that, due to the", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1978, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8917fc20-e1f3-4f90-ba22-66d9ee39d024": {"__data__": {"id_": "8917fc20-e1f3-4f90-ba22-66d9ee39d024", "embedding": null, "metadata": {"page_label": "10", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "063b35d9-e68d-4410-aa68-ddd13cb0af63", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "95aeb7bb484b377595c771f1294a5b4dec9e1d3cb3ea88b3ee1b6f6103593fa7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "flexibility provided in this product, it is possible for some material to \ninadvertently fall outside of these guidelines. \nDiversity and Inclusion Statement \nThe University of Pittsburgh does not tolerate any form of discrimination, \nharassment, or retaliation based on disability, race, color, religion, national \norigin, ancestry, genetic information, marital status, familial status, sex, age, \nsexual orientation, veteran status or gender identity or other factors as stated \nin the University\u2019s Title IX policy. The University is committed to taking \nprompt action to end a hostile environment that interferes with the \nUniversity\u2019s mission. For more information about po licies, procedures, and \npractices, see: http://diversity.pitt.edu/affirmative-action/policies-\nprocedures-and-practices. \nI ask that everyone in the class strive to help ensure that other members of \nthis class can learn in a supportive and respectful environment. If there are \ninstances of the aforementioned issues, please contact the Title IX \nCoordinator, by calling 412 -648-7860, or e -\nmailing titleixcoordinator@pitt.edu. Reports can also be filed \nonline: https://www.diversity.pitt.edu/make-report/report-form. You may \nalso choose to report this to a faculty/staff member; they are required to \ncommunicate this to the University\u2019s Office of Diversity and Inclusion. If you \nwish to maintain complete confidentiality, you may also contact the \nUniversity Counseling Center (412-648-7930). \nAll members of the University are expected to treat one another with respect. \nAs an institution of higher education, the University of Pittsburgh has the \nobligation to combat all forms of bias, as these are detrimental to the mission \nof providing an equal educational opportunity. Please be respectful of your \nfellow students and use language appropriate to public, academic discourse. \nStudents are asked to accept the obligation to live by these common values \nand commit themselves to principles of behavior tha t contribute to a civil \ncampus environment and to support this behavior in others. \n \nIn this class, I expect all students to speak their truth. In doing so, \nbe ready to defend your positions. Lively debate is encouraged \nand critical to class participation, yet, civility in our discourse and our \ndisagreements is absolutely required. Bullying, hazing, obscene, or hate \nspeech is not acceptable. Tolerance of others includes, race, religion, \nethnicity, age, sexual orientation, sexual identity, abilities, etc.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2517, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b4c769a3-3ba5-4edc-957d-8c6894846d1d": {"__data__": {"id_": "b4c769a3-3ba5-4edc-957d-8c6894846d1d", "embedding": null, "metadata": {"page_label": "11", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2f8666c9-0449-4463-a031-bea15f20207a", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "eab4a1c44413d2010e986d03ff4d7e4a5991e8970a9ee7b29238c69c7b8452f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "and differences of opinions. On the other hand, please understand that \nstatements by others that are inconsistent with your beliefs (no matter how \nstrong or sincere) are not necessarily speech that should be prohibited, \nrather such statements are an opportunity for you to defend and/o r adjust \nyour current beliefs. \nNonstandard Grades (G Grade) \nThe \u201cG\u201d grade is applied only when students who have been attending a \ncourse and making regular progress are prevented from completing the \ncourse by circumstances beyond their control, such as a major medical \nemergency. These grades will only be given in v ery rare documented \ncircumstances governed by the current CGS student handbook and \nUniversity G Grade Policy \nReligious Observances \nIn order to accommodate the observance of religious holidays, students \nshould inform the instructor (by email, within the first two weeks of the \nterm) of any such days which conflict with scheduled examinations or \nassignment due dates. The instructor will contact the student to confirm \nalternative arrangements. \n \nMilitary Personnel and Veterans \n \nVeterans and active duty military personnel with special circumstances (e.g., \nupcoming deployments, drill requirements, disabilities) are welcome and \nencouraged to communicate these, in advance if possible, to the instructor. \n \n \n \n \nHealth and Wellness \n \nIf you find yourself experiencing negative feelings associated with the content of \nthis class or any other source, be aware that free counseling and emergency crisis \nservices are available to all students through the University Counseling Center \n(UCC). Pit t students in need of psychological help can contact the counseling \ncenter at 412 -648-7930. For more information, please visit the University \nCounseling Center. Also, crisis support is available after -hours and on weekends \nby calling Campus Police at 412-624-2121.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1895, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7149a5ef-768a-4a86-b1e5-0a2118518778": {"__data__": {"id_": "7149a5ef-768a-4a86-b1e5-0a2118518778", "embedding": null, "metadata": {"page_label": "12", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4723e2af-dadb-43de-917a-cc286d008642", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Final Fall 2025 Syllabus.pdf", "file_path": "data/Final Fall 2025 Syllabus.pdf", "file_type": "application/pdf", "file_size": 242929, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "03701eba51d9e66133f6b4b466a61a7909806a9160b7ea63920468f2268bf417", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "GENERAL STATEMENT ABOUT STUDENT NEEDS AND \nACCOMMODATIONS \n \nI recognize that many of you may have particular challenges like \nemployment, health, extracurricular activities, family \nobligations, and the like. I will try to accommodate you as best I \ncan. I can accommodate you better if you advise me of these \nchallenges sooner rather than later.", "mimetype": "text/plain", "start_char_idx": 2, "end_char_idx": 351, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a89b57f8-ec27-419d-8867-a3b3461cc1c5": {"__data__": {"id_": "a89b57f8-ec27-419d-8867-a3b3461cc1c5", "embedding": null, "metadata": {"page_label": "1", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e995fac2-4118-4c3b-8df1-8131b92d0f86", "node_type": "4", "metadata": {"page_label": "1", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5b5f004e1eac9e69e1d9ba873ffd0fec06a320354dee8a04faf87c6e013e212e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.\n2.\n3.\n4.\n5.\n6.\n7.\n8.\n9.\n10.\n11.\nChapter 3: Matrices: Exercises 3.5\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\nExercises 3.5\nIn Exercises 1, 2, 3, and 4, let S be the collection of vectors in that\nsatisfy the given property. In each case, either prove that S forms a subspace\nof or give a counterexample to show that it does not.\nIn Exercises 5, 6, 7, and 8, let S be the collection of vectors in that satisfy\nthe given property. In each case, either prove that S forms a subspace of or give\na counterexample to show that it does not.\nProve that every line through the origin in is a subspace of .\nSuppose S consists of all points in that are on the x-axis or the y-axis (or\nboth). (S is called the union of the two axes.) Is S a subspace of ? Why or\nwhy not?\nIn Exercises 11 and 12, determine whether b is in col(A) and whether w is in row(A),\nas in Example 3.41.\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 1/6", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1151, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d097b518-b49b-407f-abca-7f0a199cf1c3": {"__data__": {"id_": "d097b518-b49b-407f-abca-7f0a199cf1c3", "embedding": null, "metadata": {"page_label": "2", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fff652fa-0649-4f91-bbaf-64076684d2e9", "node_type": "4", "metadata": {"page_label": "2", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "afacd6a90a58b933de34a4b2054614dfadddc3beb62c6de0599b30266d160447", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "12.\n13.\n14.\n15.\n16.\n17.\n18.\n19.\n20.\n21.\n22.\n23.\nIn Exercise 11, determine whether w is in row(A), using the method\ndescribed in the Remark following Example 3.41.\nIn Exercise 12, determine whether w is in row(A), using the method\ndescribed in the Remark following Example 3.41.\nIf A is the matrix in Exercise 11, is in null(A)?\nIf A is the matrix in Exercise 12, is in null(A)?\nIn Exercises 17, 18, 19, and 20, give bases for row(A), col(A), and null(A).\nIn Exercises 21, 22, 23, and 24, \ufb01nd bases for row(A) and col(A) in the given\nexercises using .\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 2/6", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 723, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a7391b02-a144-47e0-87b1-cae11ca9277f": {"__data__": {"id_": "a7391b02-a144-47e0-87b1-cae11ca9277f", "embedding": null, "metadata": {"page_label": "3", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ed9240a5-f41e-497e-9517-04557a73720f", "node_type": "4", "metadata": {"page_label": "3", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "97458a9a0be9fc614359f886a8eadbe03bf63621f68118b209c1fe3bb5a788eb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "24.\n25.\n26.\n27.\n28.\n29.\n30.\n31.\n32.\n33.\n34.\n35.\n36.\nExplain carefully why your answers to Exercises 17 and 21 are both correct\neven though there appear to be differences.\nExplain carefully why your answers to Exercises 18 and 22 are both correct\neven though there appear to be differences.\nIn Exercises 27, 28, 29, and 30, \ufb01nd a basis for the span of the given vectors.\nFor Exercises 31 and 32, \ufb01nd bases for the spans of the vectors in the given\nexercises from among the vectors themselves.\nProve that if R is a matrix in echelon form, then a basis for row(R) consists of\nthe nonzero rows of R.\nProve that if the columns of A are linearly independent, then they must form\na basis for col(A).\nFor Exercises 35, 36, 37, and 38, give the rank and the nullity of the matrices in the\ngiven exercises.\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 3/6", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 965, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79124434-2611-44ed-9eb3-9ed17953f601": {"__data__": {"id_": "79124434-2611-44ed-9eb3-9ed17953f601", "embedding": null, "metadata": {"page_label": "4", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3d653429-95d8-493f-918e-31538255016f", "node_type": "4", "metadata": {"page_label": "4", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1a74a3bc35997f0c33924b4a8a41b665da4fa216eb0e491e2e54fd181b424d60", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "37.\n38.\n39.\n40.\n41.\n42.\n43.\n44.\n45.\n46.\n47.\n48.\nIf A is a matrix, explain why the columns of A must be linearly\ndependent.\nIf A is a matrix, explain why the rows of A must be linearly dependent.\nIf A is a matrix, what are the possible values of nullity(A)?\nIf A is a matrix, what are the possible values of nullity(A)?\nIn Exercises 43 and 44, \ufb01nd all possible values of rank(A) as a varies.\nAnswer Exercises 45, 46, 47, and 48 by considering the matrix with the given\nvectors as its columns.\nDo form a basis for ?\nDo form a basis for ?\nDo form a basis for ?\nDo form a basis for ?\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 4/6", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 756, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d763d8d7-1898-4ba7-8288-ced0f035e458": {"__data__": {"id_": "d763d8d7-1898-4ba7-8288-ced0f035e458", "embedding": null, "metadata": {"page_label": "5", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6b414f66-c2bc-4954-978a-73af938d7e77", "node_type": "4", "metadata": {"page_label": "5", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "92a2319a314561e9eaa5d3fe3a44a80cf807851ae56f178996b1bd752404df58", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "49.\n50.\n51.\n52.\n53.\n54.\n55.\n56.\n57.\n58.\n59.\n(a)\n(b)\nDo form a basis for ?\nDo form a basis for ?\nIn Exercises 51 and 52, show that w is in \ud835\udcd1 and \ufb01nd the coordinate vector\n\ud835\udcd1.\n\ud835\udcd1\n\ud835\udcd1\nIn Exercises 53, 54, 55, and 56, compute the rank and nullity of the given matrices\nover the indicated .\nIf A is , prove that every vector in null(A) is orthogonal to every vector\nin row(A).\nIf A and B are matrices of rank n, prove that AB has rank n.\nProve that . [Hint: Review Exercise 29 in Section\n3.1.]\nGive an example in which .\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 5/6", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 686, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f37a94e-b6c2-4f03-9eee-7cff929ecd92": {"__data__": {"id_": "5f37a94e-b6c2-4f03-9eee-7cff929ecd92", "embedding": null, "metadata": {"page_label": "6", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9c49b8aa-264b-464d-9b72-1848f1b71c4b", "node_type": "4", "metadata": {"page_label": "6", "file_name": "linalg-exercise3.5.pdf", "file_path": "data/linalg-exercise3.5.pdf", "file_type": "application/pdf", "file_size": 385523, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "21a296f7700ca279bb417e9d851a7fa94ce28fe16d0bf8347addf750533e4c1a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "60.\n(a)\n(b)\n61.\n(a)\n(b)\n62.\n63.\n64.\n65.\n66.\n(a)\n(b)\nProve that . [Hint: Review Exercise 30 in Section 3.1\nor use transposes and Exercise 59(a).]\nGive an example in which .\nProve that if U is invertible, then . [Hint: \n.]\nProve that if V is invertible, then .\nProve that a nonzero matrix A has rank 1 if and only if A can be\nwritten as the outer product of a vector in and in .\nIf an matrix A has rank r, prove that A can be written as the sum of r\nmatrices, each of which has rank 1. [Hint: Find a way to use Exercise 62.]\nProve that, for matrices A and B, rank .\nLet A be an matrix such that . Prove that . [Hint: \nShow that and use the Rank Theorem.]\nLet A be a skew-symmetric matrix. (Refer to page 145.)\nProve that for all x in .\nProve that is invertible. [Hint: Show that .]\nChapter 3: Matrices: Exercises 3.5\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\n\u00a9 2025 Cengage Learning Inc. All rights reserved. No part of this work may by reproduced or used in any form or by any means -\ngraphic, electronic, or mechanical, or in any other manner - without the written permission of the copyright holder.\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 6/6", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1392, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5c42cd2c-bfe3-40ce-b9f5-16d665735533": {"__data__": {"id_": "5c42cd2c-bfe3-40ce-b9f5-16d665735533", "embedding": null, "metadata": {"page_label": "1", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a2a38b57-e448-41d6-b583-a05dde52b7fa", "node_type": "4", "metadata": {"page_label": "1", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "095baf508d4d1fc4dbb02711c1833d2937dc6854a056e9e1f5b513257d6d8b1b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Chapter 3: Matrices: Exercises 3.4\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\nExercises 3.4\nIn Exercises 1, 2, 3, 4, 5, and 6, solve the system using the given \nfactorization of A .\n1. , \n2. , \n3. , \n4. , \n5. , \n6. ,\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 1/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 492, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "921caea4-6149-47e1-8bc4-1a04cbf00340": {"__data__": {"id_": "921caea4-6149-47e1-8bc4-1a04cbf00340", "embedding": null, "metadata": {"page_label": "2", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7e8d4b48-b9c8-4de1-9dc9-5b4667b8af30", "node_type": "4", "metadata": {"page_label": "2", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "502778f4f62e56a174405cbe71439e08c17263a0a1720d78054bfccee0d39131", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "In Exercises 7, 8, 9, 10, 11, and 12, \ufb01nd an factorization of the given\nmatrix.\n7. \n8. \n9. \n10. \n11. \n12. \nGeneralize the de\ufb01nition of factorization to nonsquare matrices by simply\nrequiring U to be a matrix in row echelon form. With this modi\ufb01cation, \ufb01nd an\n factorization of the matrices in Exercises 13 and 14.\n13. \n14. \nFor an invertible matrix with an factorization , both L and U will be\ninvertible and . In Exercises 15 and 16, \ufb01nd , , and\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 2/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 621, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "daf16049-d721-48b1-80da-f28dab9d130e": {"__data__": {"id_": "daf16049-d721-48b1-80da-f28dab9d130e", "embedding": null, "metadata": {"page_label": "3", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2a1f6169-dfd8-4331-8e5a-ffbd6cd05908", "node_type": "4", "metadata": {"page_label": "3", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d59c2ac44923eddac35c7caef0ac5f0d14a049547fa778b3acd1f0bb2d5f0c07", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "for the given matrix.\n15. A in , \n16. A in , \nThe inverse of a matrix can also be computed by solving several systems of\nequations using the method of Example 3.34. For an matrix A , to \ufb01nd its\ninverse we need to solve for the matrix X . Writing this\nequation as , using the matrix-column form\nof , we \ufb01nd that we need to solve n systems of linear equations:\n. Moreover, we can use the factorization\n to solve each one of these systems.\nIn Exercises 17 and 18, use the approach just outlined to \ufb01nd for the\ngiven matrix. Compare with the method of Exercises 15 and 16.\n17. A in , \n18. A in , \nIn Exercises 19, 20, 21, and 22, write the given permutation matrix as a\nproduct of elementary (row interchange) matrices.\n19. \n20. \n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 3/5", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 904, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2261da80-2802-46e1-b928-a63ed06e8a55": {"__data__": {"id_": "2261da80-2802-46e1-b928-a63ed06e8a55", "embedding": null, "metadata": {"page_label": "4", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "69f507d0-b818-47e2-b7b1-f68fae234921", "node_type": "4", "metadata": {"page_label": "4", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "be4c51ca5a3c62a5a57c2a3e90d1e69497815bab0775d382841aebc8c0e48c61", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "21. \n22. \nIn Exercises 23, 24, and 25, \ufb01nd a factorization of the given matrix A .\n23. \n24. \n25. \n26. Prove that there are exactly permutation matrices.\nIn Exercises 27 and 28, solve the system using the given factorization\n. Because , can be rewritten as .\nThis system can then be solved using the method of Example 3.34.\n27. ,\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 4/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 501, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4f861d76-0996-461f-b7ab-6a2bd91b9b78": {"__data__": {"id_": "4f861d76-0996-461f-b7ab-6a2bd91b9b78", "embedding": null, "metadata": {"page_label": "5", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5e0e696e-b5eb-4c8c-bf6b-56235a707b58", "node_type": "4", "metadata": {"page_label": "5", "file_name": "linalg-exercise3.4.pdf", "file_path": "data/linalg-exercise3.4.pdf", "file_type": "application/pdf", "file_size": 304161, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "94b66ab12d1c941c82ef5a62e4d2286a802fd85fe91937f260687082d1e1fcdd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "28. ,\n29. Prove that a product of unit lower triangular matrices is unit lower triangular.\n30. Prove that every unit lower triangular matrix is invertible and that its inverse is\nalso unit lower triangular.\nAn factorization of a square matrix A is a factorization ,\nwhere L is a unit lower triangular matrix, D is a diagonal matrix, and U is a unit\nupper triangular matrix (upper triangular with 1s on its diagonal). In Exercises\n31 and 32, \ufb01nd an factorization of A .\n31. A in , \n32. A in , \n33. If A is symmetric and invertible and has an factorization, show that\n.\n34. If A is symmetric and invertible and (with L unit lower triangular\nand D diagonal), prove that this factorization is unique. That is, prove that if\nwe also have (with unit lower triangular and diagonal),\nthen and .\nChapter 3: Matrices: Exercises 3.4\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\n\u00a9 2025 Cengage Learning Inc. All rights reserved. No part of this work may by reproduced or used in any form or by any means -\ngraphic, electronic, or mechanical, or in any other manner - without the written permission of the copyright holder.\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 5/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1401, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "21dbfd7b-dadf-48b8-aff3-cf69427afdfa": {"__data__": {"id_": "21dbfd7b-dadf-48b8-aff3-cf69427afdfa", "embedding": null, "metadata": {"page_label": "1", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "efe7824a-78c0-475c-8189-555423ed1bbd", "node_type": "4", "metadata": {"page_label": "1", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1703e7fd8d2bb13a4bbbe38123b6f805fd033252d171c19c7dfbdb7e94847342", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Turing Machine 03\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 126, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8b757cac-d8d8-4019-abd6-77d640a5186c": {"__data__": {"id_": "8b757cac-d8d8-4019-abd6-77d640a5186c", "embedding": null, "metadata": {"page_label": "2", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ca60869d-9fa6-490d-9739-6bbf4f227711", "node_type": "4", "metadata": {"page_label": "2", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "524519a78474875e1945471d9d70e9073827c46faff2640c21af8b7ed65180b3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Combining Turing Machines\nA Turing machine represents an algorithm\nGenerally an algorithm can be described as a number of\nsmaller algorithms working in combination\nSimilarly, we can combine several Turing machines into a\nlarger one\nExample, two Turing machines T1 and T2 sharing the same\ntape:\nWhen T1 \ufb01nishes (either in the accept or reject state), T2\ntakes over\nThis new machine is represented by T1T2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 466, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "78b29f77-9f59-4279-a17e-c27c02c88a9b": {"__data__": {"id_": "78b29f77-9f59-4279-a17e-c27c02c88a9b", "embedding": null, "metadata": {"page_label": "3", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9fc8d408-c575-481d-8f34-ad105018391b", "node_type": "4", "metadata": {"page_label": "3", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "22403d8dcf061e8f79e016ce3fb18cf77fee128a44ac91df7fba8f320ac1f608", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Combining Turing Machines\nSuppose we have two Turing machines:\nT1 = (Q1,\u03a3,\u0393,\u03b41,q1\nstart,q1\naccept,q1\nreject) and\nT2 = (Q2,\u03a3,\u0393,\u03b42,q2\nstart,q2\naccept,q2\nreject)\nLet T = (Q,\u03a3,\u0393,\u03b4,qstart,qaccept,qreject) be T1T2 which can\nbe constructed as follows:\nQ= Q1 \u222aQ2 (states of T2 are relabeled if necessary)\nInitial state of T is the initial state of T1 (qstart = q1\nstart)\n\u03b4= \u03b41 \u222a\u03b42 except those of T1 that go to q1\naccept and q1\nreject\nA transition\n q x\u2192y,Dq1a in T1 becomes\n q x\u2192y,Dq2s\nwhere q1\na is the accept state of T1 and q2\ns is the start state of\nT2\nIf T1 enter its accept state, T2 takes over. The moves that\ncause T to accept are precisely those that case T2 to accept\nHowever, if T1 enter the reject state and halt, so does T\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 790, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "28e09020-273b-42a3-8e32-238443d6d62e": {"__data__": {"id_": "28e09020-273b-42a3-8e32-238443d6d62e", "embedding": null, "metadata": {"page_label": "4", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4b4bee4d-5d55-4997-be8d-5b9991e212cf", "node_type": "4", "metadata": {"page_label": "4", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "5ababce13cea2fb7ce42537e00d63aad7054f64ebf0c2f27329c4795b6757111", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nSuppose we want to create a machine that recognize a\npalindrome (e.g., racecar)\nSuppose we have the following Turing machines:\nCopy: From \u2294x to \u2294x\u2294x\nNB: Moves tape head to the next blank symbol to the right\nPB: Moves tape head to the next blank symbol to the left\nR: Reverses the content of the tape from \u2294x to \u2294xr\nxr is the reverse of a string x\nEqual: Compare two strings separated by a blank symbol\nFor simplicity, we put the blank symbol on the \ufb01rst square of\nthe tape to indicate the left-end of the tape.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 581, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "46de2890-f283-4fba-b582-60008f8ebe67": {"__data__": {"id_": "46de2890-f283-4fba-b582-60008f8ebe67", "embedding": null, "metadata": {"page_label": "5", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a470d5f0-ff52-4144-bc52-64cc850cb77f", "node_type": "4", "metadata": {"page_label": "5", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "23fcd48a93ebdcba9e84227f8cf69e0ce0488e47a1f8a7e16e4c036ab80c2436", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet the content of a tape be \u2294x where x is a string\nThe following machine will accept if x is a palindrome:\nCopy \u2192NB \u2192R \u2192PB \u2192Equal\nStep by Step:\nMachine Tape\nStart \u2193\u2294x\nCopy \u2193\u2294x\u2294x\nNB \u2294x\u2193\u2294x\nR \u2294x\u2193\u2294xr\nPB \u2193\u2294x\u2294xr\nEqual \u2294x\u2294xr \u2193\u2294\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5da06c90-b4cb-4957-b189-809ff0137653": {"__data__": {"id_": "5da06c90-b4cb-4957-b189-809ff0137653", "embedding": null, "metadata": {"page_label": "6", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "40c0188c-b138-4f32-a1ff-162ac2d0628b", "node_type": "4", "metadata": {"page_label": "6", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "6b097f00463d5d881f67d85b869a74f2f22cdcbdca913b5176a15dd854cba18c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Multitape Turing Machines\nA Turing machine can have multiple tape and tape heads:\na a a\nb a\nM\n0 1 0 1 0\nAll tape heads can read then write and move in a single\nTuring machine step\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 242, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7e8d0a8a-d1b6-4bba-a6d9-a38fae8ee5dd": {"__data__": {"id_": "7e8d0a8a-d1b6-4bba-a6d9-a38fae8ee5dd", "embedding": null, "metadata": {"page_label": "7", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6f7bbca6-bd7b-490a-8c9d-bcc073e4e3e4", "node_type": "4", "metadata": {"page_label": "7", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "7c8bd93073e589901720dc043a107e61742c4e48e39d66b618fa2bb9133be635", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Multitape Turing Machines\nTransition function need to control/make decision based on\nsymbols read from all tapes\nExample: A transition function of a three-tape TM:\n\u03b4(q,x,y,z ) \u2192(r,a,b,c,R,L,R )\nCurrent state is q, the \ufb01rst tape reads x, the second tape reads\ny, and the third tape reads z\nChange the current state to r\nWrite a on to the \ufb01rst tape, write b onto the second tape, and\nwrite c onto the third tape\nMove the \ufb01rst tape head to the right direction, move the\nsecond tape head to the left direction, and move the third tape\nhead to the right direction\nMultitape TMs are suitable for algorithms in which several\nkinds of data are involved\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 707, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "090dc937-c2d6-4832-9f68-a789c8852e95": {"__data__": {"id_": "090dc937-c2d6-4832-9f68-a789c8852e95", "embedding": null, "metadata": {"page_label": "8", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "26eccf46-2789-4335-8101-b4f1c84c9605", "node_type": "4", "metadata": {"page_label": "8", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f4624d1ba920e726f8ccd7fd46c5448f4e2d58ff924be069018ddf463ac6f8cc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Multitape to One-Tape\nA multitape Turing machine from previous slide, can be\nconvert into one-tape Turing machine as shown below:\n0 1 0 1 0 a a a b a# # # #\nS\nUse # symbol to separate content between tapes\nUse\n\u2022\nx to indicate the current position of each tape head\nOne move of multitape machine will be equal to several moves\nof one-tape machine\nFor example,\n\u03b4(q,1,a,b ) \u2192(r,0,b,a,L,L,R )\nwill be\n1 Move to the next \u2022 on the right, write 0, move to the left\nsquare, write \u2022 over the symbol, and move to the right square\n2 Move to the next \u2022 on the right, write b, move to the left\nsquare, write \u2022 over the symbol, and move to the right square\n3 Move to the next \u2022 on the right, write b, move to the right\nsquare, write \u2022 over the symbol, and move to the left-end\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 825, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b564f9c9-dc8c-4510-9e8d-fa143bb0f3bf": {"__data__": {"id_": "b564f9c9-dc8c-4510-9e8d-fa143bb0f3bf", "embedding": null, "metadata": {"page_label": "9", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "70b8eae1-99bf-44f7-bffd-02e8f0abfe0e", "node_type": "4", "metadata": {"page_label": "9", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "cab8f180c8c3b97fe2328a5e0f9e18c752c0dd18105d247d64e73fbb10278174", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Multitape to One-Tape\nRecall that a tape will be \ufb01lled with blank after the last\nsymbol of the string on the tape\na a a\nb a\nM\n0 1 0 1 0\n0 1 0 1 0 a a a b a# # # #\nS\nFrom the above multi-tape TM, if the second tape head needs\nto move tot he right direction, it should be on top of a blank\nsymbol\nBut on a single-tape TM, it will be on top of the # symbol\nSingle-tape TM must insert the blank symbol with a dot at\nthe #\nEvery multitape TM has an equivalent single-tape TM\n(slower)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 541, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "78dff5b2-914f-4c67-a3a3-fe7f83b5308b": {"__data__": {"id_": "78dff5b2-914f-4c67-a3a3-fe7f83b5308b", "embedding": null, "metadata": {"page_label": "10", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ca3b1f60-b7f6-4a85-8367-21bdfb58e553", "node_type": "4", "metadata": {"page_label": "10", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9dcdab8e2ea8582133bce0a2dd3cf909b5bc958369f47f7455374cfc6808cb3e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Nondeterministic Turing Machine\nSimilar to Nondeterministic Finite Automata (NFA)\nProcessing one input symbol results in one or more machine.\n\u03b4: Q\u00d7\u0393 \u2192P(Q\u00d7\u0393 \u00d7{L,R})\nComputation is a tree similar to NFA\nFor a nondeterministic Turing machine (NTM):\nIf a branch is in the accept state, the machine accepts the\ninput string\nIf all branches are in the reject state, the machine rejects the\ninput string\nIf no branch is in the accept state and at least one branch\nenter an in\ufb01nite loop, the machine loops inde\ufb01nitely on the\ninput string\nTheorem 3.16\nEvery nondeterministic Turing machine has an equivalent\ndeterministic Turing machine.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 691, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b477e16-22b0-4fd5-9b6d-3df71662d743": {"__data__": {"id_": "3b477e16-22b0-4fd5-9b6d-3df71662d743", "embedding": null, "metadata": {"page_label": "11", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7e7da755-8bde-4561-9418-3eeebec483e6", "node_type": "4", "metadata": {"page_label": "11", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "dadd2a1043acf27f65bbd87d68a26b0f327e87512f8ef85853961fa41a4e7ab4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Proof Idea\nTheorem 3.16 Rewording\nFor every nondeterministic TM T = (Q,\u03a3,\u0393,\u03b4,qstart,qaccept,qreject), there\nis an ordinary (deterministic) TM T\u2032= (Q\u2032,\u03a3,\u0393\u2032,\u03b4\u2032,q\u2032\nstart,q\u2032\naccept,q\u2032\nreject)\nwith L(T\u2032) = L(T).\nRecall that \u03b4: Q\u00d7\u0393 \u2192P(Q\u00d7\u0393 \u00d7{L,R})\nProcessing a tape alphabet at a state may result in multiple\nmachines\nThe upper bound of the number of machines is\n|Q|\u00d7|\u0393|\u00d7|{L,R}|\nFor simplicity, assume that for every combination of nonhalting\nstate and tape symbol, there are exactly two moves (split to\ntwo machines)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 573, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ebec6313-ab88-4d96-a6e9-b30fdc67b0de": {"__data__": {"id_": "ebec6313-ab88-4d96-a6e9-b30fdc67b0de", "embedding": null, "metadata": {"page_label": "12", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b26e7695-4811-4e6f-875a-feadadc8ce4e", "node_type": "4", "metadata": {"page_label": "12", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "fe6dc15dcbd9d092d0f582ca081c86cf9c40fc576a09a7cabd3d5d0091fa943f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Proof Idea\nComputational Tree of a TM on an input\n0 1 0 1\n0 1\n0 1\n0 1 0 1\n0 1\n0 1 0 1\n0 1\n0 1 0 1\n0 1\n0 1 0 1\nThe branch in blue behaves like a deterministic TM\nThe move follows the path in blue can be represented by 0110\nUse 0110 as a guideline to simulate a branch\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 329, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1bfd8922-cbfa-47e8-99e3-ad454e6a9d61": {"__data__": {"id_": "1bfd8922-cbfa-47e8-99e3-ad454e6a9d61", "embedding": null, "metadata": {"page_label": "13", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "957616c8-3cba-4a73-a5ec-c599201af525", "node_type": "4", "metadata": {"page_label": "13", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "e2df19a2b898398b5f03713f1d88b0fc7df5f9438e090a7bfefd83a5ea8fb12c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Proof Idea\nSuppose a deterministic TM picks a branch and simulate it\nIf that branch ends in the accept state, the NTM accepts the\ninput string\nIf that branch ends in the reject state, no conclusion\nIf another branch is in the accept state, NTM accepts the\ninput string\nIf all other branches are in the reject state, NTM rejects the\ninput string\nIf no branch is in the accept state and at least one branch\nenter in\ufb01nite loop, NTM loops inde\ufb01nitely on the input string\nIf that branch enter in\ufb01nite loop, the simulation will not end\nWe do not always know that a TM has enter an in\ufb01nite loop\nEven if we know that it enters an in\ufb01nite loop, we still cannot\nconclude whether NTM accepts or rejects the input string\nMachine T\u2032 that simulate an NTM will have to test all\npossible moves (level order, breadth \ufb01rst search)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 875, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf2d96a4-512b-489e-92fa-2d6774b2cdd5": {"__data__": {"id_": "bf2d96a4-512b-489e-92fa-2d6774b2cdd5", "embedding": null, "metadata": {"page_label": "14", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "357caa4e-b94f-4bf3-a6d6-3eebebae9b19", "node_type": "4", "metadata": {"page_label": "14", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "8f4d6bc0a38d43bd26ab77bc5ae967fd03a5b5ad2e11eb8e5bae6a12062c1f90", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Proof Idea\nMachine T\u2032 consists of four tapes\nTape 1 will be the input string and its contents never change\nTape 2 contain the binary string that represents the sequence\nof moves we are currently testing. (e.g., 0110\u2294)\nTape 3 is the working tape of a copy of NTM\nTape 4 keeps track of all possible reject sequences\nIf a sequence of moves result in the accept state, T\u2032 accepts\nthe input string\nIf all possible sequence of the same length end in the reject\nstate, T\u2032 rejects the input string\nIf NTM loops inde\ufb01nitely on the input string, the simulation\nwill also loop inde\ufb01nitely\nSince T\u2032 is a multitape Turing machine, there is an equivalent\nsingle-tape Turing machine\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 730, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93a9b256-fea0-4de6-92ea-ff7ac6fc5d5d": {"__data__": {"id_": "93a9b256-fea0-4de6-92ea-ff7ac6fc5d5d", "embedding": null, "metadata": {"page_label": "15", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ea340909-ea92-4653-b1e3-c0b73d576e87", "node_type": "4", "metadata": {"page_label": "15", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "db9beb0815bde88a37258da2c617bec581e4c81cac6bed96dab58f83d42402a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Universal Turing Machine\nA universal TM is a TM that can run another TM on an input\nstring\nImagine a multi-tape TM:\nTape 1 contains the formal de\ufb01nition of a TM M, followed by\na # symbol, and an input string w\nTape 2 will be a working tape for TM M\nTape 3 will be used to keep track of the current state of TM M\nInitially:\nCopy input string w to tape 2\nPut the start state of TM M onto tape 3\nTo run a step, simply search for \u03b4(q,a) in the formal de\ufb01nition\nof TM M\nq is the current state of tape 3\na is the symbol under the second tape head\nand update tapes 2 and 3 until tape 3 contains qaccept or\nqreject\nA universal TM will loop inde\ufb01nitely if the TM that it is\nrunning loop inde\ufb01nitely\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 752, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "24f8fed8-cdb6-44e2-80cb-87273aaabe86": {"__data__": {"id_": "24f8fed8-cdb6-44e2-80cb-87273aaabe86", "embedding": null, "metadata": {"page_label": "16", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1db35492-bcee-4eef-a1b1-c9ebcdd5bef8", "node_type": "4", "metadata": {"page_label": "16", "file_name": "turing_machine_03_handout.pdf", "file_path": "data/turing_machine_03_handout.pdf", "file_type": "application/pdf", "file_size": 230803, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "77c28a2c2bd89fba969ffcaf97ea91b4ee28f70073d49007de401253a4e117d3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The Church-Turing Thesis\nTo say that the Turing machine is a general model of\ncomputation means that any algorithmic procedure that can\nbe carried out at all, by a human computer or a team of\nhumans or an electronic computer, can be carried out by a\nTuring machine.\nNote that a Turing machine depends on low-level operations\nA complex algorithm is simply a series of simple instruction\n(e.g., assembly) that involve\nsophisticated logic (state machine) or\ncomplex bookkeeping (tape/memory) strategies\nAn algorithm is a procedure that can be carried out by a\nTuring machine.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Turing Machine 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 635, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7a9ed59c-e036-4b48-92b2-abed501990b8": {"__data__": {"id_": "7a9ed59c-e036-4b48-92b2-abed501990b8", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f60cdee9-4794-4fe0-9136-11a29b4782f6", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a63d9cc98fb1842094448adc239e5e9a4d766f721a7d7fafa10f22d96f64275f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL05 Model-based Engineering\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5debf129-de4f-410f-8656-393b66abc056": {"__data__": {"id_": "5debf129-de4f-410f-8656-393b66abc056", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d7c612f7-d1f6-4cca-9ab7-5e4345b87d62", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6995dda5f024d13d655948e7450afe346b54154ace097ce89314455650925f13", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "43449008-1604-4908-a9bc-ded41889f173": {"__data__": {"id_": "43449008-1604-4908-a9bc-ded41889f173", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3cbd2b1e-c9d3-4e2d-9599-4749692fdf8a", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5bf96aae3525682fa53b1645d7e488ed5d0ebc93c10f9ad533d19dcaf15d6482", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nLearning goals\n\u2022 You have a better understanding of the user vs enduser\n\u2022 You understand how to extract relevant information from a problem statement\n\u2022 You have an overview of requirements engineering\n3CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 269, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fdf34102-788e-4aa1-8f99-d1b53a2815cc": {"__data__": {"id_": "fdf34102-788e-4aa1-8f99-d1b53a2815cc", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "92a70660-f8e4-4d55-9d06-cf734ad29ec3", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a41e4e5268eaf83918f4e8d9acf568b1b19fa871a2cc27b21371bbfc2490623c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 The importance of abstraction\n\u2022 Intro to model-based engineering\n\u2022 Intro to requirements engineering\n4CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 187, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "17adef7c-5f8b-4c8e-b9e5-eeefb6cdb2ba": {"__data__": {"id_": "17adef7c-5f8b-4c8e-b9e5-eeefb6cdb2ba", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "77ee5175-1df2-47f8-8b13-bc91d64d9449", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "912b5615e195159a51e5f268b605fdb5287ae01039832da42a898d7f3f1c3787", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Recap] Designing software systems\n\u2022 Internal representation of external reality\n\u2022 Typically \n5CS 1530 - L05 Model-based EngineeringCS 1530 - L03 Scrum & intro to abstraction\nDesigner / \nDeveloper\nCustomer", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 236, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "82f1663a-b29b-432c-905e-aaf655ccbef6": {"__data__": {"id_": "82f1663a-b29b-432c-905e-aaf655ccbef6", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7e127cdc-c068-4d32-9977-869a77634530", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "92d704b9e20dafcd67e76bff195bb4ff4eabb64d2bd047e48f844f5c0cc0b662", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Recap] Problems with system integrations\n\u2022 Communication issues\n\u2022 Wrong usage of available tools \n\u2022 Interface miscommunication\n\u2022 Antipatterns\n\u2022 Physical impossibility\n\u2022 Data inconsistencies\n\u2022 Dependency con\ufb02icts\n\u2022 Performance bottlenecks\n\u2022 Unforeseen compatibility issues\n\u2022 \u2026\n6CS 1530 - L05 Model-based Engineering\nHolistic Approach: \u2028\nTo solve problems, we need a holistic \nview of the entire system \n\u2022 Creative thinking\n\u2022 Cross-disciplinary", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 473, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64c03211-fd76-47cd-a982-d3f898a39494": {"__data__": {"id_": "64c03211-fd76-47cd-a982-d3f898a39494", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "69ce4449-8183-425f-98d4-1355f904f806", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "aa3ee888dac59c281c011eafe0980d6c587aa190a7bcaad8abc8d71524d160cc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUnderstanding the problem\n\u2022 Engage with the customer about the problem scope and the requirements\n\u2022 Identify speci\ufb01c components of the problem to ensure a comprehensive \nunderstanding\n\u2022 Divide-&-conquer! \n\u2022 Break down complex problems into manageable, smaller components/pieces\n\u2022 Formulate a structured approach to tackle each component/piece individually\n\u2022 Problem statements aid in recognizing distinct entities and elements\n\u2022 They enable the identi\ufb01cation of unique objects for e\ufb00ective problem-solving\n7CS 1530 - L05 Model-based Engineering\n\"Unique objects\" are distinct \nentities or components that \nhave speci\ufb01c roles or attributes \nwithin a system. They typically \ncontribute to the overall \nfunctionality of the system.\nBasic assumption of software projects: project outcome \ncannot be produced in a single monolithic activity", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 865, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f52ce07a-5128-466b-8620-285227a82b03": {"__data__": {"id_": "f52ce07a-5128-466b-8620-285227a82b03", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d92f897f-ba99-44a7-b780-27205f8d348c", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "886e7846cf10f10fd5e0402d4f13010fad3745b0e7fdb22c731243184308617c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem Statement\n\u2022 A problem statement is our communication basis\n\u2022 It is a concise description of the issue that the system aims to address\n\u2022 Usually, problem statements are documents that contain:\n\u2022 Current situation: What are the existing circumstances, if available\n\u2022 Speci\ufb01cation of functionality: What capabilities are required?\n\u2022 Delivery: Where and how will the system be deployed?\n\u2022 Customer expectations: What are the customer\u2019s expectations and deliverables?\n\u2022 Milestones: Are there concrete delivery dates and project phases?\n\u2022 Acceptance criteria: What will we use to evaluate the system?\n8CS 1530 - L05 Model-based Engineering\nProblem Statement\nWe need a way so that \npeople can get from one \nlocation to another using \nmultiple means of transport, \nbased on their available \noptions and preferences.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 845, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3da76fd9-f5a9-4b2b-82eb-8edd249ef76a": {"__data__": {"id_": "3da76fd9-f5a9-4b2b-82eb-8edd249ef76a", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c4335a7a-ad86-48ad-b76d-0da1981974c3", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b353a4550dfe7a8c19497072d51c9722a7f0a6cf8d41b5901b4cc416f6bd447b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSoftware systems are often very complex\n9CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 108, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "73a28bd6-c06d-437c-82f9-061f646f41ff": {"__data__": {"id_": "73a28bd6-c06d-437c-82f9-061f646f41ff", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0788fd21-b3ab-4c9e-a647-12c1ba90048b", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5f3bc6eef75a0b4aacb3fb4299ee8d2346a4c63858d5be7b4275529b4ebe85de", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nManaging complexity in complex systems \u2014 Abstraction\n\u2022 Complex systems are di\ufb03cult or sometimes even impossible to understand\n\u2022 \"The magical number seven, plus or minus two\"\n\u2022 Human Brain Constraint\u2028\nOur immediate memory span covers 7\u00b1 2 pieces of information at the same time\n\u2022 Widely applied in various \ufb01elds to enhance information retention and usability\n\u2022 [Example] phone numbers (not including the area code)\n\u2022 The Chunking technique\n\u2022 Group collection of objects to reduce complexity\n\u2022 [Example] instead of 5-6-5-1-9-7-4 chunk into 565-1974\n10CS 1530 - L05 Model-based Engineering\nMiller\u2019s law", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 629, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0501395e-63ba-4069-9e3a-24af777f98ef": {"__data__": {"id_": "0501395e-63ba-4069-9e3a-24af777f98ef", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6b780e96-9405-4a8a-a4e5-79d1f5ae8a5b", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0ab17fd619fa96c67fd68e81bac8e67a767481d1bd7c29b6e533ed58df83da41", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nAbstraction is key\n\u2022 Allows us to hide unessential details and focus on essential aspects\n\u2022 Abstraction is a thought process (activity) where ideas are distanced from \nobjects\n\u2022 E.g., We break a system into layers (UI, logic, storage) where each layer abstracts \naway details not necessary for the other layers to function\n\u2022 Abstraction is the result (entity) of a thought process\n\u2022 Abstractions can be expressed with a model\n11CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 495, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5b8d4236-de29-4b18-8110-737d9b1b52ba": {"__data__": {"id_": "5b8d4236-de29-4b18-8110-737d9b1b52ba", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3e94b2f6-b760-4a80-9854-fe2fabf5ff6a", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e29dfe37ad622c5139438d5dcaef4224f586c0695ceaee96c42498bbee091873", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 The importance of abstraction\n\u2022 Intro to model-based engineering\n\u2022 Intro to requirements engineering\n12CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 188, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4755c985-1153-4077-ac6b-521ecdb8c063": {"__data__": {"id_": "4755c985-1153-4077-ac6b-521ecdb8c063", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "25c0a3cd-d24f-4712-acaa-4edad0c15f8d", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "233383c27eaf5bad7e56bb8f4393c9627fb564cab398c3a0920cba0a930bf992", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nModels are abstractions of systems\n\u2022 An existing system \n\u2022 [Example] Integrate a feature or troubleshooting for Canvas or TopHat\n\u2022 Often used in reverse engineering of a system that lacks clear communication\n\u2022 A system to be built \n\u2022 [Example] Create user work\ufb02ows/recommendation logic for a restaurant picker app \n\u2022 Most common: UML diagrams, wireframes, and state models\n\u2022 A system that no longer exists \n\u2022 [Example] Modeling legacy systems (Netscape web browser, MacDraw, Facebook \nPaper, \u2026) could help inform if a modern replacement / support documentation\n\u2022 Also useful for data migration, compliance, research\n13CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 686, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "92978c50-4ed2-4fba-a9fb-4a746789f41e": {"__data__": {"id_": "92978c50-4ed2-4fba-a9fb-4a746789f41e", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e9f7c0a1-dc04-4f63-a1eb-41d19b628243", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3378ed99ff3f5ccadf0eae1565896b98587d884b3c05e37c435ba0d65e8bf816", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTypical models in software engineering\n\u2022 Functional model: What are the functions of the system? (use cases) \n\u2022 Object model: What is the structure of the system? (entities)\n\u2022 Dynamic model: How does the system react to external events? (activities)\n\u2022 System model: object model + functional model + dynamic model \n14CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 384, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "551a7dd9-9822-43f2-af6d-1d0777137bdb": {"__data__": {"id_": "551a7dd9-9822-43f2-af6d-1d0777137bdb", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2820ab74-1e8d-43a9-b0ce-6f1d1d1c613a", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "26f1334f1069c10c64fc45b940b3a3604fe5a4985c1930a1f0fa3c72ceb863e0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat is model-based engineering?\n\u2022 Models are abstract representations of system behavior and structure \n\u2022 Visual and standardized way of presenting complex systems \n\u2022 Used to design, analyze, and document systems \n\u2022 Supports iterative development\n\u2022 Can be used as tool for communication between stakeholders\n\u2022 Also used in other \ufb01elds, e.g., mechanical engineering\n15CS 1530 - L05 Model-based Engineering\nModels can help guide the development of systems. \u2028\nE.g., the general code structure (important classes) can be derived from class diagrams", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c6cd2eb9-f5dc-48ee-98e3-32a17be0759d": {"__data__": {"id_": "c6cd2eb9-f5dc-48ee-98e3-32a17be0759d", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2c2058f1-976e-41c1-9260-ba2ca2c87118", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "13eaccaac5f55c7c82f68500c67c9d555f248ef7907ddac8c3d2dedd30dfbc4c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem with models\n16CS 1530 - L05 Model-based Engineering\nDesigner / \nDeveloper\nCustomer\nD\nDesign Model User Model\nSystem Model\u2028\n(System Image)", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 175, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6042b93f-4bca-40b0-ace3-e2d14218dae4": {"__data__": {"id_": "6042b93f-4bca-40b0-ace3-e2d14218dae4", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f2fcbca7-7a1f-4dd2-8cad-9513fe07ff66", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "4d54b7b29bd1d8a3eff55171a6dbe3337b23405aba3efa73a76918b83069f059", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem with models\n17CS 1530 - L05 Model-based Engineering\nDesigner / \nDeveloper\nCustomer\nD\nDesign Model User Model\nSystem Model\u2028\n(System Image)\nIdeally, design, user, \nand system model \noverlap\nIdeally, design, user, \nand system model \noverlap\nIdeally, design, user, \nand system model \nare identical/overlap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 339, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4156fee8-6813-42ba-b7ec-029ff8942c6f": {"__data__": {"id_": "4156fee8-6813-42ba-b7ec-029ff8942c6f", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "652cedc7-cb2a-479e-9062-75361001e71f", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3e606b84a66de856a4347b20c7e2f3568fb3708090309d436be28403949107de", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nMental models\n\u2022 User model \u2014 what the user thinks the system does\n\u2022 The user\u2019s expectations of the system\n\u2022 Re\ufb02ects how users perceive and understand the system\n\u2022 Design model \u2014 what the developers intended the system to do \n\u2022 Created by designers and developers based on the system\u2019s functionality\n\u2022 Typically before coding begins\n\u2022 System image \u2014 what the system actually does/conveys through UI/behavior\n18CS 1530 - L05 Model-based Engineering\nWhat users believe they know about a user interface \nimpacts how they use it. Mismatched mental models are \ncommon, especially with designs that try something new.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 643, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0c3d5123-64a4-49e3-b904-8e4f29430b36": {"__data__": {"id_": "0c3d5123-64a4-49e3-b904-8e4f29430b36", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4550cb32-2b46-4d8b-9106-eac6b6e7eb0b", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "456ab8ca34c5e1a4d7464db5d361fa6e24a9fa04e50a53efff2dfcf9cfd5b712", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] ATM - User Model Assumptions\n\u2022 Users expect an ATM to dispense cash quickly and securely after they input \ntheir PIN and select the amount\n\u2022 Assumptions\n\u2022 The ATM will process the user\u2019s request without delays\n\u2022 User can cancel a transaction at any point if needed\n\u2022 User\u2019s card will always be returned after use\n19CS 1530 - L05 Model-based Engineering\nhttps://web.mit.edu/2.744/studentSubmissions/humanUseAnalysis/jsaadi/images/pin pad.jpg https://fs.hubspotusercontent00.net/hubfs/8405653/atm-machine-and-money-withdrawing-dollar-banknote.jpg", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 584, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "77378ffe-1ffc-40d7-8bd3-a179c2c043b7": {"__data__": {"id_": "77378ffe-1ffc-40d7-8bd3-a179c2c043b7", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7491ee16-6fc7-448d-9703-74d14aaca13c", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b6823c125d2a564f8294743950fa8ac9a5cbdcf154cf93237da696d2607b43e8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] ATM - Design Model (*simpli\ufb01ed)\n\u2022 Users will follow on-screen instructions/prompts carefully step-by-step\n\u2022 The system includes safeguards \u2028\n(e.g., locks the card if a user inputs the wrong PIN multiple times)\n\u2022 Cash dispensing happens only after con\ufb01rming su\ufb03cient account balance\n20CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 361, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bc45e888-00a9-4070-8c87-250011e75923": {"__data__": {"id_": "bc45e888-00a9-4070-8c87-250011e75923", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3d62f05c-c1e6-43f4-82ee-33df57a635a7", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "50273ebbf0afc91a4d150de6b11012bb46cdb60addccc665397df8147942ece2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] ATM - System Image (*simpli\ufb01ed)\n\u2022 A series of prompts for language selection, PIN entry, and transaction type\n\u2022 A delay between PIN entry and the display of account options due to \nbackend processing\n\u2022 A button for canceling a transaction\n21CS 1530 - L05 Model-based Engineering\nhttps://languagelog.ldc.upenn.edu/~bgzimmer/atm.jpg", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 370, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a47f9a03-327c-4a44-81ee-5dd50313c0dd": {"__data__": {"id_": "a47f9a03-327c-4a44-81ee-5dd50313c0dd", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "35f685fb-45c9-4cb1-806a-4212bdf38bbd", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "2a4d9dd9501204573977847fb1c8cf42806961f6791293db0492aef7093ffec1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblems with models\n\u2022 Problem: The more stakeholders involved, the more \"mental models\" exist\n\u2022 Requires extensive communication\n\u2022 Prone to misunderstandings\n\u2022 Solution: Use a common language to abstract and describe problems \n\u2022 Ensures a common understanding\n\u2022 Refactor models as needed\n22CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 358, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0bacde41-c473-42f7-8bcf-7f7b6019425c": {"__data__": {"id_": "0bacde41-c473-42f7-8bcf-7f7b6019425c", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "75341269-a155-48c9-8619-e23e387ca51a", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e6f9c4c1a6e36b1a8f73387455ec5510aa47309c58b5e654ed1a28c8146cc584", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUni\ufb01ed Modeling Language\n\u2022 Created in the late 1990s by a consortium of software companies\n\u2022 Became an o\ufb03cial standard in 2005 by the Object Management Group \n(OMG) \n\u2022 UML diagrams provide a visual representation of an aspect of a system\n\u2022 UML includes a variety of diagram types for modeling di\ufb00erent aspects of \nsoftware systems\n\u2022 Structural diagrams \u2192 static structure\n\u2022 Behavioral diagrams \u2192 dynamic behavior\n\u2022 Interaction diagrams \u2192 interactions between objects or \u2028\ncomponents\n23CS 1530 - L05 Model-based Engineering\nCar\nmodel \ncolor \nyear\ndrive()UML class diagram", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 601, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e715df3e-1fc5-4ba9-9931-a157963a403f": {"__data__": {"id_": "e715df3e-1fc5-4ba9-9931-a157963a403f", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "143338fe-6861-4483-b036-dd713a8efd67", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d9fd911dc3c0cd6cc55c09ec66439c5c3674d023de79f07d894ca4fe0563b7db", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhy UML?\n\u2022 Reduces complexity by focusing on abstractions\n\u2022 Allows for a better organization of code\n\u2022 Provides a communication basis\n\u2022 Common vocabulary\n\u2022 Analysis and design\n\u2022 Enables to specify a future system without focusing on implementation details\n24CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 325, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "902f3134-b5ec-4571-9e26-51b77236a418": {"__data__": {"id_": "902f3134-b5ec-4571-9e26-51b77236a418", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "68b1958e-c079-4734-82b3-3203e36fd317", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6bd7eb784c9fef0f49c37cc5b9812da3d5f70e9ecbf90d72acb5454d8d8e6761", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nPurposes of UML diagram types\n\u2022 Use case diagram: shows functionality\n\u2022 Class diagram: shows class/object structure\n\u2022 Activity diagram: shows dynamic behavior (activities & objects)\n\u2022 State chart: shows dynamic behavior (states of an object) \n\u2022 Communication diagram: shows interaction (messages between objects)\n\u2022 Sequence diagram: shows interaction (method invocation & lifespan)\n\u2022 Deployment diagram: shows system architecture \n\u2022 \u2026\n25CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 504, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8e801ecf-b33f-43a5-b430-7d1ce77ce7e5": {"__data__": {"id_": "8e801ecf-b33f-43a5-b430-7d1ce77ce7e5", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fe370f19-f363-445e-b527-87fa00212d63", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5bac2b5ec3ecd8414f59e1dc180220bb666129de36a930347d0ca924475e1658", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUML in practice\n\u2022 Documentation\n\u2022 Many companies use UML to document their systems\n\u2022 Ensures global understanding\n\u2022 Many open-source projects include UML models in their documentation\n\u2022 Ideation & design thinking\n\u2022 Structured approach in de\ufb01ning ideas\n\u2022 Programming\n\u2022 Allows to share ideas\n\u2022 Helps in de\ufb01ning complex algorithms\n\u2022 Provides starting point for writing and organizing code\n\u2022 Enhances abstract thinking & builds problem-solving skills\n26CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 516, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2b4de9d3-c5b2-4ca8-8156-28b79528e988": {"__data__": {"id_": "2b4de9d3-c5b2-4ca8-8156-28b79528e988", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "23a87717-86f0-4ed2-bb14-81b2417b6397", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1816ce29389f3f2dffeb1f481d2ccb82783289ba42c375ed96db0e618510bbb5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] FrequentFlyer \u2014 UML class diagram\n27CS 1530 - L05 Model-based Engineering\nFlight\nnumber\nduration\narrivalTime\ndelayFlight(Minutes)\nFrequentFlyer\n\ufb01rstName\nlastName\nfrequentFlyerNumber\nupgrade()\nMileageCredit\nbaseMiles\nbonusMiles\npassengers\ufb02ights\n* *\nThis is an example of a UML class diagram of a frequent \ufb02yer system. \nWe will talk more about the individual UML elements soon!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 415, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce4bbbdd-baa1-48df-8c0d-6de11fbc0b1c": {"__data__": {"id_": "ce4bbbdd-baa1-48df-8c0d-6de11fbc0b1c", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e345aa6b-27e0-4bcc-948d-d8219ea19623", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c135042d94fca227e9409449941181affd3faa07315ee25c5c213ad6eaa5a130", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTwo abstraction domains\n\u2022 Application domain (= problem space) \n\u2022 Focus is on understanding and anlyzing the problem \n\u2022 Environment where the system is operating\n\u2022 Solution domain (= solution space) \n\u2022 Focus is on design & implementation\n\u2022 Technologies used to build the system\n28CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 347, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "77ff74a5-593d-405a-a82d-8e776134baee": {"__data__": {"id_": "77ff74a5-593d-405a-a82d-8e776134baee", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2809d04e-bf40-4bbd-b035-82d9841b5796", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0be4a65f405b0324ee3568b9e07389e5d337149a2db6bfcc3200bd018cb4dec0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Application vs. solution domain\n29CS 1530 - L05 Model-based Engineering\nApplication Domain Solution Domain\nReality\nModel\nRocket\nMission\nControlEngine\nLaunchPlan\nAnalysis\n Design & Implementation\n\nPeregrine \nlander\nStatus\nFAA Reg.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 272, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e6a033e-10d6-4144-9411-9fe374f48916": {"__data__": {"id_": "2e6a033e-10d6-4144-9411-9fe374f48916", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "99b2d761-eb9a-40ad-883a-0048e462b25a", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "587e7a02da43a4db36465c9beb81fd692adf70596371a9c9aab3db5473510068", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nOverview of Model-based Software Engineering\n30CS 1530 - L05 Model-based Engineering\nProblem\nCommuter App\nProblem Statement\nWe need a way so that \npeople can get from one \nlocation to another using \nmultiple means of transport, \nbased on their available \noptions and preferences.\nRequirements\nFunctional \nModel\nUse case \nmodel\nTesting & \nVeri\ufb01cation\nTesting \nModel\nActivity \ndiagram\nSequence \ndiagram\n\u2026\nSystem Design\nStructural \nModel\nBehavioral \nModel\nClass \ndiagram\nActivity \ndiagram\nComponent \ndiagram\n\u2026\n\u2026\nObject Design & \nImplementation\nSource \nCode\nObject \nmodel\nDependency \ngraph\n\ud83e\uddd1\n\ud83e\uddd1\n\ud83e\uddd1\ud83e\uddb0\n\ud83d\udc69\ud83e\uddb1\n\ud83d\udc71\n\ud83e\uddd3\nEnduser", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 637, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9874bdc3-4708-4dd0-a5c6-0b3f5d7720fd": {"__data__": {"id_": "9874bdc3-4708-4dd0-a5c6-0b3f5d7720fd", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "666dbbad-c7a9-4fe6-98f8-ff052d9dc985", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0afd48d2cc75ad10288c0061ce83fd776a8f8394ab04db1a8f23f2da9cb9a551", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 The importance of abstraction\n\u2022 Intro to model-based engineering\n\u2022 Intro to requirements engineering\n31CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 188, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49528c4d-956c-42c6-a774-8fdd647f05c8": {"__data__": {"id_": "49528c4d-956c-42c6-a774-8fdd647f05c8", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "abd913c2-194b-402b-b7bd-59ea8fd7544b", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a7b29c948f1e521581c03cf2e2800592a346c554093279dbc9eee84908cf3c2e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n 32CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 70, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ba823129-2286-45e9-9809-3ce4f9503ab2": {"__data__": {"id_": "ba823129-2286-45e9-9809-3ce4f9503ab2", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "642ea2b7-1b90-42a3-8d44-0ec6963e9eda", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ab7cd3c24bacf926fdbc935661c0314b5535e5d1dd4ec04e1662e65b320919d6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSystem requirements\n\u2022 Requirements describe the purpose of the system\n\u2022 They specify the functionality and constraints of a system\n\u2022 Requirements elicitation describes the process of identifying requirements\n\u2022 The elicited requirements are then analyzed and a system model is created\n33CS 1530 - L05 Model-based Engineering\nNote: Requirements are important but not set in stone! \u2028\nOften, during system design or implementation, \nnew requirements arise or existing ones need to be adapted", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 517, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5661ca69-838f-41a5-9ce8-1e63d9e6ff87": {"__data__": {"id_": "5661ca69-838f-41a5-9ce8-1e63d9e6ff87", "embedding": null, "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c430efa5-7291-4ebc-92ea-ee8600010f4b", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c0976033aa2b82c9b68f6a864031efa49e07b712f7109884eb793e1db9cfb6a4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nRequirements Engineering\n\u2022 Combination of requirements elicitation and requirements analysis\n\u2022 An activity that de\ufb01nes the requirements of the system under construction\n\u2022 Requirements elicitation de\ufb01nes the system from the view of the (end)user \u2028\n\u2192 Requirements speci\ufb01cation\u2028\n\u2192 Uses natural language\n\u2022 Requirements analysis de\ufb01nes the system from the view of a developer \u2028\n\u2192 Technical speci\ufb01cation\u2028\n\u2192 Uses (semi-) formal language, e.g., UML\n34CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 510, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "877f10b3-5d04-4d47-9a22-5b99373d2583": {"__data__": {"id_": "877f10b3-5d04-4d47-9a22-5b99373d2583", "embedding": null, "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "86e2a7cb-b60a-49f3-bc42-c98f0f1a287a", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b91cdeb4e0a082d14702507f43fac99d193262a195b72cdb46aa8c85c668180b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nRequirements Engineering\n= Process of eliciting requirements and analyzing them \n\u2022 Activities\n\u2022 Identify actors (di\ufb00erent users of the system)\n\u2022 Identify scenarios (in natural language describe the functionality of the future system)\n\u2022 Identify functional requirements \n\u2022 Identify non-functional requirements\n\u2022 Derive use cases (generalize functionality, describe their behavior, and identify the \nrelationships among use cases)\n\u2022 Derive entities, characteristics, and behavior\n\u2022 \u2026\n35CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 551, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a5f10eab-755f-416e-8b79-0292e3f3cedb": {"__data__": {"id_": "a5f10eab-755f-416e-8b79-0292e3f3cedb", "embedding": null, "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d3ccbdca-1bfe-4e55-ab6f-00d81ecbe320", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a563cfdc4d6f2c305ce08f25a82466f7523c35ba1b35420c795ebb6a5f990a27", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nIdentifying actors\n\u2022 Actors represent the di\ufb00erent users of a system\n\u2022 Note that a user is not necessarily just the enduser! \n\u2022 Users can also include: system analyst, database admin, another system, \u2026\n\u2022 In UML, actors are represented as a stick \ufb01gure\n36CS 1530 - L05 Model-based Engineering\nShould be a concrete user, \ne.g., \"Student\", \"PizzaBaker\", \n\"Developer\", \u2026", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 396, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e3492822-89bf-4a77-b630-45215ce5ffc9": {"__data__": {"id_": "e3492822-89bf-4a77-b630-45215ce5ffc9", "embedding": null, "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b7a57b9f-9639-4649-9fdf-dbe40488cef4", "node_type": "4", "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "571158628a397fbb7df2971ae6cf9522f0029fcec25440ade7b4c504babce060", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nExternalInternal\nStakeholders in a software project\n37CS 1530 - L05 Model-based Engineering\nStakeholder\nUser CustomerDeveloper\nUses the systemBuilds the system Sponsors/commissions \nthe system\nHas an involvement in a \nsoftware project\nProject \nManager\n\u2026\u2026\nBuilds the system", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 302, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "097cc413-18ce-439e-b922-349816a04d79": {"__data__": {"id_": "097cc413-18ce-439e-b922-349816a04d79", "embedding": null, "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5c3bd42e-1782-48dc-bfdc-4461e3b40598", "node_type": "4", "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "4c9d4d917d4fdfdc446c070884eed60e98146c509fa44eda8179dd8cd8d6b979", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTake-Away: Overview of requirements elicitation\n\u2022 User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and \nstakeholders\n\u2022 E\ufb00ective Communication: Establish clear and open channels of communication to gather accurate \nrequirements\n\u2022 Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving \nproject needs\n\u2022 Documentation: Thoroughly document gathered requirements to ensure clarity and alignment \nthroughout the project lifecycle\n38CS 1530 - L05 Model-based Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 576, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c8f63eec-2045-4c01-8baf-21e36d730e03": {"__data__": {"id_": "c8f63eec-2045-4c01-8baf-21e36d730e03", "embedding": null, "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ce807151-0d4e-4cb8-86d7-08f3a3e7b0c3", "node_type": "4", "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L05 Model-based Engineering.pdf", "file_path": "data/Fall25 1530 - L05 Model-based Engineering.pdf", "file_type": "application/pdf", "file_size": 25634782, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e512bc88ddc7bde76f9fbf880dbc4e9e13dda05b724c835ba8795ef6e5847fd3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL05 Model-based Engineering\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d17f2388-8383-49a7-88ff-62d7b549f98a": {"__data__": {"id_": "d17f2388-8383-49a7-88ff-62d7b549f98a", "embedding": null, "metadata": {"page_label": "1", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e755cc50-9901-41fa-a80f-95494334eafe", "node_type": "4", "metadata": {"page_label": "1", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "77ea298c08bdcfc4d4364f9772400d1e051a68a1c7e68264d0f4eaec789da4ce", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Chapter 3: Matrices: Exercises 3.1\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\nExercises 3.1\nLet , , , ,\n, \nIn Exercises 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, and 16, compute\nthe indicated matrices (if possible).\n1. \n2. \n3. \n4. \n5. \n6. \n7. \n8. \n9. \n10. \n11. \n12. \n13. \n14. \n15. \n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 1/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 565, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bef9793a-4f1c-464a-88f0-300768dbf448": {"__data__": {"id_": "bef9793a-4f1c-464a-88f0-300768dbf448", "embedding": null, "metadata": {"page_label": "2", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "087aebb7-6a2e-493f-9a86-ce575b6b737b", "node_type": "4", "metadata": {"page_label": "2", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5a68f22d6cbad3657e37796c61c70a67edddc7e8ea5d9a99105537005a695cde", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "16. \n17. Give an example of a nonzero matrix A such that .\n18. Let . Find matrices B and C such that but .\n19. A factory manufactures three products (doohickies, gizmos, and widgets) and\nships them to two warehouses for storage. The number of units of each\nproduct shipped to each warehouse is given by the matrix\n(where is the number of units of product i sent to warehouse j and the\nproducts are taken in alphabetical order). The cost of shipping one unit of\neach product by truck is $1.50 per doohickey, $1.00 per gizmo, and $2.00 per\nwidget. The corresponding unit costs to ship by train are $1.75, $1.50, and\n$1.00, respectively. Organize these costs into a matrix B and then use matrix\nmultiplication to show how the factory can compare the cost of shipping its\nproducts to each of the two warehouses by truck and by train.\n20. Referring to Exercise 19, suppose that the unit cost of distributing the\nproducts to stores is the same for each product but varies by warehouse\nbecause of the distances involved. It costs $0.75 to distribute one unit from\nwarehouse 1 and $1.00 to distribute one unit from warehouse 2. Organize\nthese costs into a matrix C and then use matrix multiplication to compute the\ntotal cost of distributing each product.\nIn Exercises 21 and 22, write the given system of linear equations as a matrix\nequation of the form .\n21. \n22. \nIn Exercises 23, 24, 25, 26, 27, and 28, let\n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 2/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1584, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "73ceb925-430a-46f5-9c56-1272ff2b7fc7": {"__data__": {"id_": "73ceb925-430a-46f5-9c56-1272ff2b7fc7", "embedding": null, "metadata": {"page_label": "3", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "da077f6d-b8f8-42bd-9ed6-c37e94039ba2", "node_type": "4", "metadata": {"page_label": "3", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8b9e950dd2c7e1a44a523d70301c9033179657760c1b22ceb42c5a29aa7b7101", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "and\n23. Use the matrix-column representation of the product to write each column of\n as a linear combination of the columns of A .\n24. Use the row-matrix representation of the product to write each row of as a\nlinear combination of the rows of B .\n25. Compute the outer product expansion of .\n26. Use the matrix-column representation of the product to write each column of\n as a linear combination of the columns of B .\n27. Use the row-matrix representation of the product to write each row of as a\nlinear combination of the rows of A .\n28. Compute the outer product expansion of .\nIn Exercises 29 and 30, assume that the product makes sense.\n29. Prove that if the columns of B are linearly dependent, then so are the columns\nof .\n30. Prove that if the rows of A are linearly dependent, then so are the rows of .\nIn Exercises 31, 32, 33, and 34, compute by block multiplication, using the\nindicated partitioning.\n31. A equals matrix (3, 4 [1, negative\n1, 0, 0, 0, 1, 0, 0, 0, 0, 2, 3]). In the\nmatrix, a horizontal dashed line is\n32. A equals matrix (2, 4 [2, 3, 1, 0,\n4, 5, 0, 1]). In the matrix, a\nvertical dashed line is drawn\n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 3/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1304, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a9ef5490-1d86-4400-a616-cac24c028ce5": {"__data__": {"id_": "a9ef5490-1d86-4400-a616-cac24c028ce5", "embedding": null, "metadata": {"page_label": "4", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "88bba8e0-2098-4fd2-ae9b-a9cdfce61d74", "node_type": "4", "metadata": {"page_label": "4", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0994101a4c182e4a4fae8c0524a4b34cf742b7e71f9fc846628ac90091b202f6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "33. A equals matrix (4, 4 [1, 2, 1, 0, 3, 4,\n0, 1, 1, 0, negative 1, 1, 0, 1, 1, negative\n1]). In the matrix, a horizontal dashed\n34. A equals matrix (4, 4 [1, 0, 0, 1, 0,\n1, 0, 2, 0, 0, 1, 3, 0, 0, 0, 4]). In the\nmatrix, a horizontal dashed line is\n35. Let .\na. Compute .\nb. What is ? Why?\n36. Let . Find, with justi\ufb01cation, .\n37. Let . Find a formula for and verify your formula using\nmathematical induction.\n38. Let .\na. Show that .\nb. Prove, by mathematical induction, that\n39. In each of the following, \ufb01nd the matrix that satis\ufb01es the given\ncondition:\na. \nb. \nc. \nd. \n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 4/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 745, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "566e4973-3065-48f0-8e9a-d0d8268d9f09": {"__data__": {"id_": "566e4973-3065-48f0-8e9a-d0d8268d9f09", "embedding": null, "metadata": {"page_label": "5", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9a3918fb-2cf0-4901-ba2f-f7b11b786adc", "node_type": "4", "metadata": {"page_label": "5", "file_name": "linalg-exercise3.1.pdf", "file_path": "data/linalg-exercise3.1.pdf", "file_type": "application/pdf", "file_size": 261629, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "902d78a9f0b4bc7ff12947a1365eb16cc1ec1d34e7160e7e8959a9d94825c5de", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "40. In each of the following, \ufb01nd the matrix that satis\ufb01es the given\ncondition:\na. \nb. \nc. \n41. Prove Theorem 3.1(a).\nChapter 3: Matrices: Exercises 3.1\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\n\u00a9 2025 Cengage Learning Inc. All rights reserved. No part of this work may by reproduced or used in any form or by any means -\ngraphic, electronic, or mechanical, or in any other manner - without the written permission of the copyright holder.\n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 5/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 716, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b790211d-be39-46be-980e-8df01a7bab88": {"__data__": {"id_": "b790211d-be39-46be-980e-8df01a7bab88", "embedding": null, "metadata": {"page_label": "1", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c7f19ad4-2798-449d-bdd8-e90a482ab9f2", "node_type": "4", "metadata": {"page_label": "1", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "513a9ed2549f65d869b5ab76402919d8eff5f6f39ba56de6c67569d28ee71425", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Chapter 3: Matrices: Exercises 3.3\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\nExercises 3.3\nIn Exercises 1, 2, 3, 4, 5, 6, 7, 8, 9, and 10, \ufb01nd the inverse of the given matrix\n(if it exists) using Theorem 3.8.\n1. \n2. \n3. \n4. \n5. \n6. \n7. \n8. \n9. \n10. , where neither a, b, c, nor d is 0\nIn Exercises 11 and 12, solve the given linear system using the method of\nExample 3.25.\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 1/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 648, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "abecc0fe-2854-4adf-886b-8123406905a8": {"__data__": {"id_": "abecc0fe-2854-4adf-886b-8123406905a8", "embedding": null, "metadata": {"page_label": "2", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a3a9ce48-8f54-4b3d-a9bf-5e26eb48180c", "node_type": "4", "metadata": {"page_label": "2", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e43702c24188696c4254b8a201a339c135e410e1674f903cc7bbc3262c1504b1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "11. \n12. \n13. Let , , , and .\na. Find and use it to solve the three systems , , and\n.\nb. Solve all three systems at the same time by row reducing the\naugmented matrix using Gauss-Jordan elimination.\nc. Carefully count the total number of individual multiplications that you\nperformed in (a) and in (b). You should discover that, even for this \nexample, one method uses fewer operations.\nFor larger systems, the difference is even more pronounced, and this\nexplains why computer systems do not use one of these methods to\nsolve linear systems.\n14. Prove Theorem 3.9(b).\n15. Prove Theorem 3.9(d).\n16. Prove that the identity matrix is invertible and that .\n17. a. Give a counterexample to show that in general.\nb. Under what conditions on A and B is ? Prove your\nassertion.\n18. By induction, prove that if are invertible matrices of the same\nsize, then the product is invertible and\n.\n19. Give a counterexample to show that in general.\nIn Exercises 20, 21, 22, and 23, solve the given matrix equation for X. Simplify\nyour answers as much as possible. (In the words of Albert Einstein,\n\u201cEverything should be made as simple as possible, but not simpler.\u201d) Assume\nthat all matrices are invertible.\n20. \n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 2/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1374, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "51ccbe3f-e951-4656-98bc-32f2ff4e2244": {"__data__": {"id_": "51ccbe3f-e951-4656-98bc-32f2ff4e2244", "embedding": null, "metadata": {"page_label": "3", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "26ea889f-c0fa-424c-a4a3-8fb39077c343", "node_type": "4", "metadata": {"page_label": "3", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c984f54d018f953ee1d7a973564f11f418e4bb14e26d3ce379d18f5837614bb5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "21. \n22. \n23. \nIn Exercises 24, 25, 26, 27, 28, 29, and 30, let\nIn each case, \ufb01nd an elementary matrix E that satis\ufb01es the given equation.\n24. \n25. \n26. \n27. \n28. \n29. \n30. Is there an elementary matrix E such that ? Why or why not?\nIn Exercises 31, 32, 33, 34, 35, 36, 37, and 38, \ufb01nd the inverse of the given\nelementary matrix.\n31. \n32. \n33. \n34. \n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 3/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 518, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1155be01-db07-4092-bd01-67e19d8fa5e1": {"__data__": {"id_": "1155be01-db07-4092-bd01-67e19d8fa5e1", "embedding": null, "metadata": {"page_label": "4", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d1d3bafa-ab04-40d5-8ac3-d702bef7bdda", "node_type": "4", "metadata": {"page_label": "4", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "988f02ebfe35029fcf5fb0e209ef190c34c3aaca534397ca9e580fe0e46d6ead", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "35. \n36. \n37. , \n38. , \nIn Exercises 39 and 40, \ufb01nd a sequence of elementary matrices\n such that . Use this sequence to write both\nA and as products of elementary matrices.\n39. \n40. \n41. Prove Theorem 3.13 for the case of .\n42. a. Prove that if A is invertible and , then .\nb. Give a counterexample to show that the result in part (a) may fail if A is\nnot invertible.\n43. a. Prove that if A is invertible and , then .\nb. Give a counterexample to show that the result in part (a) may fail if A is\nnot invertible.\n44. A square matrix A is called idempotent if . (The word idempotent \ncomes from the Latin idem, meaning \u201csame,\u201d and potere, meaning \u201cto have\npower.\u201d Thus, something that is idempotent has the \u201csame power\u201d when\nsquared.)\na. Find three idempotent matrices.\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 4/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 939, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d8f9555d-835f-48fd-bfe1-2a37f63a10d1": {"__data__": {"id_": "d8f9555d-835f-48fd-bfe1-2a37f63a10d1", "embedding": null, "metadata": {"page_label": "5", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c05b2743-2e85-4acb-b3b3-adb631555891", "node_type": "4", "metadata": {"page_label": "5", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "53d09f3cc81644bc0bb935b33fbe170369ad3c47bc5b5e4dd191877ec31b4b33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "b. Prove that the only invertible idempotent matrix is the identity\nmatrix.\n45. Show that if A is a square matrix that satis\ufb01es the equation ,\nthen .\n46. Prove that if a symmetric matrix is invertible, then its inverse is symmetric\nalso.\n47. Prove that if A and B are square matrices and is invertible, then both A\nand B are invertible.\nIn Exercises 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, and 63,\nuse the Gauss-Jordan method to \ufb01nd the inverse of the given matrix (if it\nexists).\n48. \n49. \n50. \n51. \n52. \n53. \n54. \n55. \n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 5/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 711, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b82bb8ba-552e-49b9-8fd9-1360e921eb6b": {"__data__": {"id_": "b82bb8ba-552e-49b9-8fd9-1360e921eb6b", "embedding": null, "metadata": {"page_label": "6", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ec1b0510-86ee-4db5-a649-480e878c2e0c", "node_type": "4", "metadata": {"page_label": "6", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "12b0e755e50a172d5420743fa74b228ba7534ac866952bb50ca2b03b329000c9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "56. \n57. \n58. \n59. \n60. \n61. \n62. \n63. \nPartitioning large square matrices can sometimes make their inverses easier\nto compute, particularly if the blocks have a nice form. In Exercises 64, 65, 66,\n67, and 68, verify by block multiplication that the inverse of a matrix, if\npartitioned as shown, is as claimed. (Assume that all inverses exist as\nneeded.)\n64. \n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 6/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 528, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1fc955f4-0cc6-401d-ad11-3e30d6a1c106": {"__data__": {"id_": "1fc955f4-0cc6-401d-ad11-3e30d6a1c106", "embedding": null, "metadata": {"page_label": "7", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f400668c-a343-4849-8bd6-062d9075b33a", "node_type": "4", "metadata": {"page_label": "7", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "dc0e3d91b603f39cd7d3ff74205cfa757e48a436e174c9d5573da57a4f21a0f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "65. \n66. \n67. \n68. , where , ,\n, and \nIn Exercises 69, 70, 71, and 72, partition the given matrix so that you can\napply one of the formulas from Exercises 64, 65, 66, 67, and 68, and then\ncalculate the inverse using that formula.\n69. \n70. The matrix in \n71. \n72. \nChapter 3: Matrices: Exercises 3.3\nBook Title: Linear Algebra: A Modern Introduction\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 7/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 517, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ce6c8101-ac6b-4132-b977-12f26f098add": {"__data__": {"id_": "ce6c8101-ac6b-4132-b977-12f26f098add", "embedding": null, "metadata": {"page_label": "8", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8db8aaed-4725-4d72-bdbe-72dfebedf491", "node_type": "4", "metadata": {"page_label": "8", "file_name": "linalg-exercise3.3.pdf", "file_path": "data/linalg-exercise3.3.pdf", "file_type": "application/pdf", "file_size": 336584, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a583387f98f1dcf8fc6ef80529545dbb1a7a67936ea48e1664c42207ea2b0337", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Printed By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\n\u00a9 2025 Cengage Learning Inc. All rights reserved. No part of this work may by reproduced or used in any form or by any means -\ngraphic, electronic, or mechanical, or in any other manner - without the written permission of the copyright holder.\n10/28/25, 9:31 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 8/8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 511, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8a08ee30-6d3e-45f7-9f66-c9f2ed8cbc6c": {"__data__": {"id_": "8a08ee30-6d3e-45f7-9f66-c9f2ed8cbc6c", "embedding": null, "metadata": {"page_label": "1", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4283b19e-2f2e-4c6e-807f-9da1f02ff454", "node_type": "4", "metadata": {"page_label": "1", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "4034b0bc735aa72dbb4c2fca229b147d37060a6231aad71f6f6f74a2a5584bc7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata 05\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 128, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ff6d5d31-bb15-4965-b3f4-4196f2bf9fcb": {"__data__": {"id_": "ff6d5d31-bb15-4965-b3f4-4196f2bf9fcb", "embedding": null, "metadata": {"page_label": "2", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8d59d9fc-c228-4217-8fb4-c6bf9c02f75d", "node_type": "4", "metadata": {"page_label": "2", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "bb41a44616be0060ea48ae3e3f0443d389f38a2cc61f064ab8a908cc12fa04ed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular Language\nQuestion: Given a regular language, can it be expressed by a\nregular expression?\nThere are in\ufb01nite number of regular languages\nLuckily, all of them have one thing in common\nEach of them has some \ufb01nite-state machines that recognize it\nSo, to try to answer the above question, we need to show a\nway to convert a \ufb01nite-state machine into a regular expression\nthat expresses the language of the machine\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 479, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d9f30ff-c86f-4409-a6b1-47694be71ad7": {"__data__": {"id_": "8d9f30ff-c86f-4409-a6b1-47694be71ad7", "embedding": null, "metadata": {"page_label": "3", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "61b0b5a8-9296-4111-8b8f-cccd597c6783", "node_type": "4", "metadata": {"page_label": "3", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "1024dd8e423934110249b13a6648baa12baa3ce8d4c80b66422f17255b3f4e14", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Generalized Nondeterministic Finite Automaton\nA Generalized Nondeterministic Finite Automaton (GNFA) N\nof a DFA M is\na special NFA where L(N) =L(M)\nN has exactly one accept state\nall transitions of N are regular expressions\nTo transition from one state to another, you need a string in\nthe language expressed by the regular expression instead of a\nsymbol\nExample:\nq2 q5\n0\u2217 \u222a11\u22170\nAt q2, if you encounter a string in the language 0\u2217 \u222a11\u22170,\nmove to state q5\n0\u2217 \u222a11\u22170 ={\u03b5, 0, 00, . . .}\u222a{10, 110, 1110, . . .}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 569, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "237f812e-bb7a-4c14-85b3-c4d054a42050": {"__data__": {"id_": "237f812e-bb7a-4c14-85b3-c4d054a42050", "embedding": null, "metadata": {"page_label": "4", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "aed174a0-2145-4aa8-a32b-a45bf3ca6db7", "node_type": "4", "metadata": {"page_label": "4", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "f2a36352c1d0726af246c1d1176fc9f8e69df6be0da5f6c061f56e7ed693bd37", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Converting a DFA to a GNFA\n1 Start with a DFA M\n2 Add a new start state s with an \u03b5 arrow to the original start\nstate of M\n3 Add a new accept state a\nFrom every accept state of M, add an \u03b5 arrow to the new\naccept state\nChange all original accept states of M to non-accept states\n4 Turn transition labels to regular expressions (rule #1 of\nregular expression)\n5 Add necessary transition arrows\nChange multiple arrows or multiple labels to a single arrow\nwhile label is the union of the previous labels\na\nb\n0, 1\na \u222ab\n0 \u222a1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 583, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b93725eb-3a36-4f28-ad57-1254ea5f01f7": {"__data__": {"id_": "b93725eb-3a36-4f28-ad57-1254ea5f01f7", "embedding": null, "metadata": {"page_label": "5", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3e6e8346-8fa3-4235-8f66-e39e6e700342", "node_type": "4", "metadata": {"page_label": "5", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "b531d2e12c4ed02d931fb39bb187deedba38867c2babd517ccab131d917eec60", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Converting a DFA to a GNFA (Example)\nA DFA\n1 2\n3\na\na\nb\nb\nb\na\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 124, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bc51ae8b-ba3e-4c28-ba5b-8f700e784106": {"__data__": {"id_": "bc51ae8b-ba3e-4c28-ba5b-8f700e784106", "embedding": null, "metadata": {"page_label": "6", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "159c9955-997f-49fd-a897-ee483060ec0d", "node_type": "4", "metadata": {"page_label": "6", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "491f125749b8d7f9e9d5467a5a778a113fe1616791eb644f2c83173abeb06620", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Converting a DFA to a GNFA (Example)\nAdd a new start state s\n1 2\n3\na\na\nb\nb\nb\nas\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 143, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49933ff1-2800-49e3-b424-9c68ff46ddf7": {"__data__": {"id_": "49933ff1-2800-49e3-b424-9c68ff46ddf7", "embedding": null, "metadata": {"page_label": "7", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "72de9641-0ec0-4808-99e0-f1dc30fa8988", "node_type": "4", "metadata": {"page_label": "7", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "877e56787b801baab002b93f51b8dfc76c68d5ec175389d103a3a11d9c81bd68", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Converting a DFA to a GNFA (Example)\n\u03b5 from s to the original start state\n1 2\n3\na\na\nb\nb\nb\na\n\u03b5\ns\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 159, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dd12c0e9-8f90-4f3b-809f-059def9613c5": {"__data__": {"id_": "dd12c0e9-8f90-4f3b-809f-059def9613c5", "embedding": null, "metadata": {"page_label": "8", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7418a4c7-015b-43a0-8195-a050eb39e145", "node_type": "4", "metadata": {"page_label": "8", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "8f6a038d1a428b59ea00cef0c13e09a944b4c6a5ed23e0c7b3834f20e51e29aa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Converting a DFA to a GNFA (Example)\nAdd a new accept state a\n1 2\n3\na\na\nb\nb\nb\na\n\u03b5\ns a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 149, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4e884862-f960-4395-bbb9-381da168c9ac": {"__data__": {"id_": "4e884862-f960-4395-bbb9-381da168c9ac", "embedding": null, "metadata": {"page_label": "9", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a2dc3e9f-02cc-440f-944f-9ee75e604e4c", "node_type": "4", "metadata": {"page_label": "9", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "b66a8e093afb182224b6b6fe01713797cc35d9a57bd1bc08dd6258bf02f69b77", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Converting a DFA to a GNFA (Example)\n\u03b5 from all accepts state to a\n1 2\n3\na\na\nb\nb\nb\na\n\u03b5 \u03b5\n\u03b5\ns a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 158, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ec3e1bbf-82fc-43a1-a475-212e5e45ca3d": {"__data__": {"id_": "ec3e1bbf-82fc-43a1-a475-212e5e45ca3d", "embedding": null, "metadata": {"page_label": "10", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "acf0ebeb-4d52-472d-8116-4415c717799e", "node_type": "4", "metadata": {"page_label": "10", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "625cb36c407d98d6614121c1cb60c1c5549d75f33ea8daf680dcd770e676ed1a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Converting a DFA to a GNFA (Example)\nAll original accept states to non-accept state\n1 2\n3\na\na\nb\nb\nb\na\n\u03b5 \u03b5\n\u03b5\ns a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 175, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9efcdde3-705b-4ffb-8fbd-ab676a3fb9fc": {"__data__": {"id_": "9efcdde3-705b-4ffb-8fbd-ab676a3fb9fc", "embedding": null, "metadata": {"page_label": "11", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "20a6f038-d8b7-4fac-83a5-abe4f7953c26", "node_type": "4", "metadata": {"page_label": "11", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "f0025799d5318c6f90785270e197ecc0a8166aaa1e77432452205a1ddd94f111", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "GNFA to Regular Expression\nNote that by converting a DFA and an equivalent GNFA, the\nlanguage of the machine remain unchanged\nNext, we are going to remove original states of DFA one at a\ntime until there are only two states left\nWhen a state is removed, we have to make sure that the\nlanguage of the machine is not changed\nThe new start state s and the new accept state a\nExample:\nDFA\n3\u2212state\nGNFA\n5\u2212state\nGNFA\n4\u2212state\nGNFA\n2\u2212state\nGNFA\n3\u2212stateregular\nexpression\nThe transition from s to a is a regular expression that\nexpresses the language of the original DFA\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 625, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "032e0e30-04fe-40e7-982d-0d2558e6f68f": {"__data__": {"id_": "032e0e30-04fe-40e7-982d-0d2558e6f68f", "embedding": null, "metadata": {"page_label": "12", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "12368279-82e1-484a-bb5e-a393ce80685e", "node_type": "4", "metadata": {"page_label": "12", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "c04675940073aca3c121da4def4113971cfaab120346cdfd8e66316ea3ab7763", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Reducing Number of States of GNFA\nRemoving qrip\nR2\nR3\nR4\nqi qj\nqrip\nR1\nHow to go from qi to qj?\nqi \u2192qj using a string in R4\nqi \u2192qrip \u2192qj\nqi \u2192 qrip using a string inR1\nqrip \u2192 qrip using a string inR2 any number of times (R\u2217\n2)\nqrip \u2192 qj using a string inR3\nFrom qi to qj by any strings in R1R\u2217\n2R3 \u222aR4\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 364, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53d3eca0-b8ad-45c0-8c9c-46c2e5cd07c0": {"__data__": {"id_": "53d3eca0-b8ad-45c0-8c9c-46c2e5cd07c0", "embedding": null, "metadata": {"page_label": "13", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ce76e55c-8707-402c-b12e-b25b3ac69ec1", "node_type": "4", "metadata": {"page_label": "13", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "bc7761f12f161839eea530d04bd71742238430d29f839b915e33ff8e8bc76197", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Reducing Number of States of GNFA\nRemoving qrip\nqi qj\nR1R2\u2217R3 \u222aR4\nR2\nR3\nR4\nqi qj\nqrip\nR1\nTo remove qrip\n1 Search for all possible paths from a state q to qrip and to a\nstate r\nq \u2192qrip \u2192r\n2 Turn all paths from previous step to regular expressions\n3 Remove qrip which results in q \u2192r\n4 Insert paths q \u2192r back with their regular expressions\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 401, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc91e646-d20b-4a8a-84e5-4b752ef1370e": {"__data__": {"id_": "dc91e646-d20b-4a8a-84e5-4b752ef1370e", "embedding": null, "metadata": {"page_label": "14", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f6b34358-d022-4964-bbc4-c8b363ea5566", "node_type": "4", "metadata": {"page_label": "14", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "3a373079cc956280173deec3a395ca08028256e62dba3ae2aa7393bf75e5ddf1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nDFA\n1\n2\na\nb\na, b\n{w |w contains at least one b}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 119, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b1e0fb92-a205-4a2b-838f-99cc13673668": {"__data__": {"id_": "b1e0fb92-a205-4a2b-838f-99cc13673668", "embedding": null, "metadata": {"page_label": "15", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b7ee196e-4825-47b7-86ab-f1cd2458bc38", "node_type": "4", "metadata": {"page_label": "15", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "4c838196ec724c0b2afb835da80ca21b361203cc3cd6a74472aee0b8915fba62", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nDFA to GNFA\n\u03b5\n\u03b5\n1\n2\na\nb\na, b\n1\n2\na\nb\ns\na a U b\n{w |w contains at least one b}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 149, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "945d7c62-1fbb-4915-9772-1fd4d24cd3c7": {"__data__": {"id_": "945d7c62-1fbb-4915-9772-1fd4d24cd3c7", "embedding": null, "metadata": {"page_label": "16", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "76a6922c-1e7e-46b8-8268-c4120c968fbd", "node_type": "4", "metadata": {"page_label": "16", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "4530ff7b9fd4e04f0664792cffccf03e0e543dc21fd56fc76cac83bbee9e28a5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nGet rid of state 2\ns\na\n1 a\nb(a U b)*\n\u03b5\n\u03b5\n\u03b5\n1\n2\na\nb\na, b\n1\n2\na\nb\ns\na a U b\n{w |w contains at least one b}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 176, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d8a60701-45f0-4069-bb0a-02ca037417e3": {"__data__": {"id_": "d8a60701-45f0-4069-bb0a-02ca037417e3", "embedding": null, "metadata": {"page_label": "17", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fbd83137-5a94-4a0d-9359-f48b7f6fde97", "node_type": "4", "metadata": {"page_label": "17", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "04ca2ea4c8721d5a39a6263800f87f6ac9554b3fe3841b7e5f6891d0317f10cd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nGet rid of state 1\ns\na\ns\na\n1 a\nb(a U b)*\n\u03b5\na*b(a U b)*\n\u03b5\n\u03b5\n1\n2\na\nb\na, b\n1\n2\na\nb\ns\na a U b\n{w |w contains at least one b}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 192, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "78dc722d-7a05-4b26-8c71-b6dd23d1c5db": {"__data__": {"id_": "78dc722d-7a05-4b26-8c71-b6dd23d1c5db", "embedding": null, "metadata": {"page_label": "18", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "809aaba4-ca85-4265-922d-c7c43cd7b1a5", "node_type": "4", "metadata": {"page_label": "18", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "21db9a13fee8eb5e2098a6d0afd835c71ae17578d1704df104475133c20f927c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nDFA to GNFA\n1 2\n3\na\na\nb\nb\nb\na\n1 2\n3\na\na\nb\nb\nb\na\n\u03b5 \u03b5\n\u03b5\ns a\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 129, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6793891e-4eaa-4d95-ad0f-7aa46a29237b": {"__data__": {"id_": "6793891e-4eaa-4d95-ad0f-7aa46a29237b", "embedding": null, "metadata": {"page_label": "19", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "56736eec-a7fc-4372-a096-ed53d34931ca", "node_type": "4", "metadata": {"page_label": "19", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "f03388d3cedad8a34cc011dd0c2d83213465fda52018730a317ac7ec41ac3ba5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nGet rid of state 1\n1 2\n3\na\na\nb\nb\nb\na\n\u03b5 \u03b5\n\u03b5\ns a\n2\n3\n\u03b5\n\u03b5\ns a\nab\na\nb\naa U b\nbb\nba U a\nPaths that go through state 1 (q \u21921 \u2192r)\ns \u21921 \u21922 \u21dd\u03b5a = a\ns \u21921 \u21923 \u21dd\u03b5b = b\n2 \u21921 \u21922 \u21ddaa\n2 \u21921 \u21923 \u21ddab\n3 \u21921 \u21922 \u21ddba\n3 \u21921 \u21923 \u21ddbb\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 274, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2dc70f1b-47e3-4a18-b44e-ae8d6b1d7a68": {"__data__": {"id_": "2dc70f1b-47e3-4a18-b44e-ae8d6b1d7a68", "embedding": null, "metadata": {"page_label": "20", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "aadd3556-7228-4474-a535-c9585bf41139", "node_type": "4", "metadata": {"page_label": "20", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "f6f82aaaa639cf1c53225d59f804baa6a86b4bdd7d4c8e83e37c19d34c2a2ed2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nGet rid of state 2\ns\n3\na\ns a\n3\n2\n\u03b5\n\u03b5\nab\na\nb\naa U b\nbb\nba U a\na(aa U b)*\na(aa U b)*ab U b\n(ba U a)(aa U b)*ab U bb\n(ba U a)(aa U b)* U \u03b5\nPaths that go through state 2 (q \u21922 \u2192r)\ns \u21922 \u2192a \u21dda(aa \u222ab)\u2217\u03b5 = a(aa \u222ab)\u2217\ns \u21922 \u21923 \u21dda(aa \u222ab)\u2217ab\n3 \u21922 \u2192a \u21dd(ba \u222aa)(aa \u222ab)\u2217\u03b5 = (ba \u222aa)(aa \u222ab)\u2217\n3 \u21922 \u21923 \u21dd(ba \u222aa)(aa \u222ab)\u2217ab\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 371, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4184b122-0b0e-4d44-bb01-d9de993b1f22": {"__data__": {"id_": "4184b122-0b0e-4d44-bb01-d9de993b1f22", "embedding": null, "metadata": {"page_label": "21", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c553f92d-87fe-4ea3-93df-3115880e0004", "node_type": "4", "metadata": {"page_label": "21", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "025728e756baf3399746d2e104404442f08a68db41329154bc657173822c699b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nGet rid of state 3\ns a\n3\ns a\na(aa U b)*\na(aa U b)*ab U b\n(ba U a)(aa U b)*ab U bb\n(ba U a)(aa U b)* U \u03b5\n(a(aa U b)*ab U b)((ba U a)(aa U b)*ab U bb)*((ba U a)(aa U b)* U ) U a(aa U b)*\u03b5\nPaths that go through state 3 (q \u21923 \u2192r)\ns \u21923 \u2192a\n(a(aa\u222ab)\u2217ab\u222ab)((ba\u222aa)(aa\u222ab)\u2217ab\u222abb)\u2217((ba\u222aa)(aa\u222ab)\u2217 \u222a\u03b5)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 361, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "32ec3d6f-5f5e-4723-84a4-55ddcfbe4b74": {"__data__": {"id_": "32ec3d6f-5f5e-4723-84a4-55ddcfbe4b74", "embedding": null, "metadata": {"page_label": "22", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3f2bab81-52e0-4860-b36d-7ce79397fe7b", "node_type": "4", "metadata": {"page_label": "22", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "d675ce271bdeaf52b518c620aff2de8d89a62d3dd6c0a19de7276b382477b8b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Theorem 1.54\nEarlier, we show that every regular expression expresses a\nregular language\nWe just show that every state diagram of a DFA can be\nconverted into an equivalent regular expression\nTheorem (1.54)\nA language is regular if and only if some regular expression\ndescribes it.\nProblem: If you cannot express a language using a regular\nexpression, it does not mean it is not regular\nThe language is so complicate that it needs a very long and\ncomplicate regular expression\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 539, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c18bcb34-212b-4520-aaac-d462dc6b028e": {"__data__": {"id_": "c18bcb34-212b-4520-aaac-d462dc6b028e", "embedding": null, "metadata": {"page_label": "23", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bda6f45c-e94e-47f5-a903-ee718c5f4a75", "node_type": "4", "metadata": {"page_label": "23", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "c3eed6fd3117116a561f1f2410b5becc7911de7e577efee1f15ccd583cd92391", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automaton and Algorithm\nFor every \ufb01nite automaton, there is an equivalent algorithm\nFor example, consider a machine where its language is the set\nof all strings over 0 and 1 that consist of an odd number of 1s.\n1\n1\n0 0\nq0 q1\nThe above machine can be converted into a Java method that\nTakes a string of 0s and 1s as an argument\nReturns true (accept) of the input string consisting of an odd\nnumber of 1s. Otherwise, returns false (reject).\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 509, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b446a0d-83ac-4eef-aa9d-c5c79b3e23a1": {"__data__": {"id_": "6b446a0d-83ac-4eef-aa9d-c5c79b3e23a1", "embedding": null, "metadata": {"page_label": "24", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "06f5c8eb-f40a-47d9-95f3-b29591a3427d", "node_type": "4", "metadata": {"page_label": "24", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "640e24e57f29c8e31453a2fb4b1a45cf1142d3e49200fbd9f7b5c131c739fea7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata and Algorithm\npublic boolean isAccepted(String input)\n{\nString state = \"q0\";\nint length = input.length();\nfor(int i = 0; i < length; i++)\n{\nchar c = input.charAt(i);\nif(state.equals(\"q0\") && c == \u20190\u2019)\nstate = \"q0\";\nelse if(state.equals(\"q0\") && c == \u20191\u2019)\nstate = \"q1\";\nelse if(state.equals(\"q1\") && c == \u20190\u2019)\nstate = \"q1\";\nelse if(state.equals(\"q1\") && c == \u20191\u2019)\nstate = \"q0\";\n}\nif(state.equals(\"q1\"))\nreturn true;\nelse\nreturn false;\n}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 515, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9db4ce1b-857b-4a9a-a47f-52e151173214": {"__data__": {"id_": "9db4ce1b-857b-4a9a-a47f-52e151173214", "embedding": null, "metadata": {"page_label": "25", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0753d905-06e6-45ea-8b3b-28c1f31d4084", "node_type": "4", "metadata": {"page_label": "25", "file_name": "finite_automata_05_handout.pdf", "file_path": "data/finite_automata_05_handout.pdf", "file_type": "application/pdf", "file_size": 308668, "creation_date": "2025-09-17", "last_modified_date": "2025-09-17"}, "hash": "d6c4145d131e1b9bb8e9cc138cb58da4b7fecb759d5414942575363041094eb2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Limitation of Finite Automaton\nFinite Automaton only captures a small subset of algorithms\nProblems that associated with Regular languages\nNot all language can be recognized by a \ufb01nite state machine\nSuch languages is called Nonregular Languages\nExample: B = {0n1n |n \u22650}\nB = {\u03b5, 01, 0011, 000111, . . .}\nThe machine need to be able to remember how many 0s and\nhow many 1s it sees so far\nWe need an in\ufb01nite number of states\nIf you cannot express a language using regular expression, it\ndoes not mean it is not a regular language\nToo complicate and requires a huge number of states\nWe need a way to determine whether a language is not\nregular.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 05", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 705, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2c9a96b5-5c39-4e0f-90c0-bf4b01a791b0": {"__data__": {"id_": "2c9a96b5-5c39-4e0f-90c0-bf4b01a791b0", "embedding": null, "metadata": {"page_label": "1", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d110d178-f318-47aa-897a-8cbcec800c44", "node_type": "4", "metadata": {"page_label": "1", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8eeb03d64cac7e3aa264ddfb1c65d7b2dcbe98b16a4395f3ce97f97904d5031a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Chapter 3: Matrices: Exercises 3.2\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\nExercises 3.2\nIn Exercises 1, 2, 3, and 4, solve the equation for X, given that \nand .\n1. \n2. \n3. \n4. \nIn Exercises 5, 6, 7, and 8, write B as a linear combination of the other\nmatrices, if possible.\n5. , , \n6. , , , \n7. , , , \n8. , , , ,\nIn Exercises 9, 10, 11, and 12, \ufb01nd the general form of the span of the\nindicated matrices, as in Example 3.17.\n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 1/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 703, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7fc24639-7716-4809-adc2-853d789e70b4": {"__data__": {"id_": "7fc24639-7716-4809-adc2-853d789e70b4", "embedding": null, "metadata": {"page_label": "2", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b13a1bc7-9e76-4bf0-a71c-5d6fecbdaa19", "node_type": "4", "metadata": {"page_label": "2", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e1c2f2e469f4d1fc5234b04c844d3659b603a2cf36edec3db39a1b78a3774f6a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "9. in , , \n10. in , , ,\n11. in , , ,\n12. in , ,\n, , \nIn Exercises 13, 14, 15, and 16, determine whether the given matrices are\nlinearly independent.\n13. , \n14. , , \n15. , , , \n16. , , , \n17. Prove Theorem 3.2(a), 3.2(b), 3.2(c), and 3.2(d).\n18. Prove Theorem 3.2(e), 3.2(f), 3.2(g), and 3.2(h).\n19. Prove Theorem 3.3(c).\n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 2/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 493, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "50295631-4d15-462d-a703-bb998728a95d": {"__data__": {"id_": "50295631-4d15-462d-a703-bb998728a95d", "embedding": null, "metadata": {"page_label": "3", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4970837f-2b4a-47c9-a574-fe21682c72c3", "node_type": "4", "metadata": {"page_label": "3", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0178bd97d3751530708a9946e48e0686655392a138b4b9a273b83403519a2603", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "20. Prove Theorem 3.3(d).\n21. Prove the half of Theorem 3.3(e) that was not proved in the text.\n22. Prove that, for square matrices A and B, if and only if\n.\nIn Exercises 23, 24, and 25, if , \ufb01nd conditions on a, b, c, and d\nsuch that .\n23. \n24. \n25. \n26. Find conditions on a, b, c, and d such that commutes with both\n and .\n27. Find conditions on a, b, c, and d such that commutes with every\n matrix.\n28. Prove that if and are both de\ufb01ned, then and are both square\nmatrices.\nA square matrix is called upper triangular if all of the entries below the main\ndiagonal are zero. Thus, the form of an upper triangular matrix is\nwhere the entries marked * are arbitrary. A more formal de\ufb01nition of such a\nmatrix is that if .\n29. Prove that the product of two upper triangular matrices is upper\ntriangular.\n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 3/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 979, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "43e78bb6-3d29-4b13-90df-1753954d26ff": {"__data__": {"id_": "43e78bb6-3d29-4b13-90df-1753954d26ff", "embedding": null, "metadata": {"page_label": "4", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9c34af07-15e9-4b85-b9b5-3d4a9d84489b", "node_type": "4", "metadata": {"page_label": "4", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8de18711c39acc6919f1802de69580a0a3fbc12f212682e3808e8ba595ac2ea7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "(a)\n(b)\n(c)\n(d)\n(a)\n30. Prove Theorem 3.4(a), 3.4(b), and 3.4(c).\n31. Prove Theorem 3.4(e).\n32. Using induction, prove that for all ,\n.\n33. Using induction, prove that for all , .\n34. Prove Theorem 3.5(b).\n35. a. Prove that if A and B are symmetric matrices, then so is .\nb. Prove that if A is a symmetric matrix, then so is for any scalar\nk.\n36. a. Give an example to show that if A and B are symmetric matrices,\nthen need not be symmetric.\nb. Prove that if A and B are symmetric matrices, then is\nsymmetric if and only if .\nA square matrix is called skew-symmetric if .\n37. Which of the following matrices are skew-symmetric?\n38. Give a componentwise de\ufb01nition of a skew-symmetric matrix.\n39. Prove that the main diagonal of a skew-symmetric matrix must consist entirely\nof zeros.\n40. Prove that if A and B are skew-symmetric matrices, then so is\n.\n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 4/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1027, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6409099f-9df9-4218-acb2-f224ea1cb132": {"__data__": {"id_": "6409099f-9df9-4218-acb2-f224ea1cb132", "embedding": null, "metadata": {"page_label": "5", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "aa829fa1-5f8f-4cfe-94db-a088bf4ded15", "node_type": "4", "metadata": {"page_label": "5", "file_name": "linalg-exercise3.2.pdf", "file_path": "data/linalg-exercise3.2.pdf", "file_type": "application/pdf", "file_size": 343338, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "78c87d42c4b9d454802a32043735ac25ebd7218003f2684941d4534d893403a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "(b)\n(a)\n(b)\n(a)\n(b)\nProve that if A is a skew-symmetric matrix, then so is kA for any\nscalar k.\n41. If A and B are skew-symmetric matrices, under what conditions is \nskew-symmetric?\n42. Prove that if A is an matrix, then is skew-symmetric.\n43. Prove that any square matrix A can be written as the sum of a symmetric\nmatrix and a skew-symmetric matrix. [Hint: Consider Theorem 3.5 and\nExercise 42.]\nIllustrate part (a) for the matrix .\nThe trace of an matrix is the sum of the entries on its main\ndiagonal and is denoted by . That is,\n44. If A and B are matrices, prove the following properties of the trace:\n, where k is a scalar\n45. Prove that if A is an matrix and B is an matrix, then\n.\n46. If A is any matrix, prove that is equal to the sum of the squares of the\nentries of A.\n47. Prove that there are no matrices A and B such that .\nChapter 3: Matrices: Exercises 3.2\nBook Title: Linear Algebra: A Modern Introduction\nPrinted By: Amir Valizadeh (amv214@pitt.edu)\n\u00a9 2026 Cengage Learning, Inc., Cengage Learning, Inc.\n\u00a9 2025 Cengage Learning Inc. All rights reserved. No part of this work may by reproduced or used in any form or by any means -\ngraphic, electronic, or mechanical, or in any other manner - without the written permission of the copyright holder.\n10/28/25, 9:30 PM Print Preview\nhttps://ng.cengage.com/static/nb/ui/evo/index.html?eISBN=9798214013121&id=2329703577&nbId=4396366&snapshotId=4396366&dockAppUid=101& 5/5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1446, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d5a23ca4-20a0-4ce9-9e53-476f0842740d": {"__data__": {"id_": "d5a23ca4-20a0-4ce9-9e53-476f0842740d", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e7200749-09d9-4d46-9201-5d0e311c6d48", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e2866fb58df2c505fd047db29008fefc53c8a31579aa151963b79fd2bda4d45d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nL02 Introduction to SE\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 158, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "caf52b68-2af1-4db5-9c03-f50859e9d645": {"__data__": {"id_": "caf52b68-2af1-4db5-9c03-f50859e9d645", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2eaef7d0-8701-4cc1-8bcd-b6457c73646d", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "70241d5dcd263b9f0c44292811f08ee499f9f64bf6e1598955a9049ee64c9ccd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1437, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "282d7205-19e7-4f88-b91a-05af419daf9f": {"__data__": {"id_": "282d7205-19e7-4f88-b91a-05af419daf9f", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "14ce2f8d-5ab2-45de-8b5d-80ebf630eaba", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a9f7847cfa97e7f6598af8fd01311f1c79c18511cc12d14df547da0d90538345", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nLearning goals\n\u2022 You have an overview of software engineering practices\n\u2022 You understand the need for process control when building software\n\u2022 You understand the di\ufb00erences between incremental, iterative, and adaptive \ndevelopment approaches\n3CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 323, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a04d9b75-d132-480b-a44f-a6ef23ac4519": {"__data__": {"id_": "a04d9b75-d132-480b-a44f-a6ef23ac4519", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "39c6ef33-a00b-4990-9048-2ea22137b452", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d2b60f4455b71c9dd547d45bc029e24e3558a0f9664a34142da113d9d57b6994", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 A short history of SE\n\u2022 Intro to software development lifecycle models\n\u2022 AdHoc & Waterfall Model\n\u2022 Development Approaches\n\u2022 Agile Manifesto\n4CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "577cb5e7-f8b2-4eb0-93ae-8ebb32b062c2": {"__data__": {"id_": "577cb5e7-f8b2-4eb0-93ae-8ebb32b062c2", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "22512278-ba40-49a1-b85c-020b0c9744af", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3c22b7f3e728b99a5973013a8acbc6994834f9ca878c6f4b0a5261b78f7ac0d9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSoftware systems\n\u2022 Many types of software systems exist:\n\u2022 Simple embedded systems\n\u2022 Complex search engines\n\u2022 Graphics-intensive games\n\u2022 \u2026\n\u2022 There is no common denominator/universal software to build them\n5CS 1530 - L02 Introduction to Software Engineering\nAll these systems need software engineering!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 331, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1d3046aa-e613-4f2d-8b60-f45b334e3637": {"__data__": {"id_": "1d3046aa-e613-4f2d-8b60-f45b334e3637", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1ccd56ee-8649-441f-8b48-fd479dab1ee6", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "bfaa9c97e59acabdb13cc81d3fc98f33290a22f4f5631805ddb02cb5e11d0105", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSoftware engineering\n\u2022 SE is a process concerned with all aspects of producing software to solve \nreal-world problems: specifying, designing, developing, analyzing, testing, \ndeploying, and maintaining software systems\n\u2022 It needs to adhere to a set of engineering principles and best practices \n\u2022 Involves both technical and non-technical skills\n6CS 1530 - L02 Introduction to Software Engineering\nSoftware engineering is an engineering discipline that is \nconcerned with all aspects of software production from the \nearly stages of system speci\ufb01cation through to maintaining the \nsystem after it has gone into use. \n- Ian Sommerville", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 665, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0a1585e5-c6e5-4599-a77f-16d68d4d4ea7": {"__data__": {"id_": "0a1585e5-c6e5-4599-a77f-16d68d4d4ea7", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "eafdddfd-dd49-45e1-8ea6-884c6f16c01c", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "dec4f3a2c16312060320fde966db8491913c4780a794ea6f93929f9181675f05", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSoftware engineering eras\n\u2022 \"Early days\" ~1945 \u2014 1950\n\u2022 ENIAC\u2028\nUniversity of Pennsylvania, 1943 \u2014 1946\n7CS 1530 - L02 Introduction to Software Engineering\nhttps://penntoday.upenn.edu/news/eniacs-anniversary-nod-its-female-computers", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 261, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "455b2ed8-a34f-49fe-8904-3b6ad2c99cb1": {"__data__": {"id_": "455b2ed8-a34f-49fe-8904-3b6ad2c99cb1", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "db74a6cf-b840-44f3-b97a-bd1ed4778d53", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1064449b1b16bafc5363f76a416bc36dda35b13cb6118f930dd93256583c58b8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSoftware engineering eras\n\u2022 \"Early days\" ~1945 \u2014 1950\n\u2022 ENIAC\u2028\nUniversity of Pennsylvania, 1943 \u2014 1946\n\u2022 Software crisis ~mid 1960s \u2014 mid 1980s \n\u2022 Very large software projects \n\u2022 Start of large commercial software \napplications\n\u2022 E.g., IBM System/360, FORTRAN, COBOL, \nApollo\n\u2022 Margaret E. Hamilton & Anthony Oettinger \u2028\ncoined the term \"Software Engineering\"\n8CS 1530 - L02 Introduction to Software Engineering\nAnthony Oettinger\u2028\n1929 - 2022\nWorked on information \nresources policy (Harvard)\nConsulted on NASA\u2019s Apollo \nmoon-landing program\nMargaret E. Hamilton\u2028\nBorn: 1936\nDeveloped software for NASA\u2019s \nApollo program\u2028\nFounded two companies\u2028\nPresidential Medal of Freedom", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 704, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8f755e8f-8768-4862-b85b-a6d4ae7c826f": {"__data__": {"id_": "8f755e8f-8768-4862-b85b-a6d4ae7c826f", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fbfb57ad-bad4-47ca-8bfa-42009c719b53", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e03a4a5470ff70274b93320875ab02f5b92b22340df86ca9f22f1fe6a33c0523", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Software Crisis \u2014 Causes\n\u2022 Complexity of software systems \n\u2022 Increasing demand\n\u2022 Projects ran over-budget & -time\n\u2022 Low quality software\n\u2022 No standards\n\u2022 Lack of formalization\n\u2022 Unmanageable, di\ufb03cult to maintain\n9CS 1530 - L02 Introduction to Software Engineering\n1st\u00a0NATO Software Engineering Conference (1968)\nGarmisch-Partenkirchen, Germany\n\"The major cause of the software crisis is that the machines \nhave become several orders of magnitude more powerful! To put \nit quite bluntly: as long as there were no machines, programming \nwas no problem at all; when we had a few weak computers, \nprogramming became a mild problem, and now we have gigantic \ncomputers, programming has become an equally gigantic \nproblem.\" \u2014 Edsger Dijkstra (1972, The Humble Programmer)", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 800, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3a628c33-c4f1-4931-8c68-3d5cac67c761": {"__data__": {"id_": "3a628c33-c4f1-4931-8c68-3d5cac67c761", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "86b1469b-4245-4e35-b172-ed2c025e4f80", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ec3c904d699f1064f00a8e206468141b05dab804e402369c58dced7482f5de19", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Software Crisis \u2014 Approaches\n\u2022 Reduce complexity\n\u2022 Improve communication\n\u2022 Introduce standards\n\u2022 CASE tools (computer-aided software engineering)\n\u2022 De\ufb01ne processes\n\u2022 Model-based engineering\n\u2022 Object-oriented programming\n\u2022 \u2026\n10CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 310, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3719fc24-b21f-48a9-b463-c21f057139da": {"__data__": {"id_": "3719fc24-b21f-48a9-b463-c21f057139da", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "127f6ac5-7ccd-4208-abb0-f6e35f319373", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5b1abc2ec8393aee2df1db8cffec919dcfac6ef1417f1812deae2c853dcd74e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Software Crisis \u2014 Today\n\u2022 There has been some progress, but some problems persist\n\u2022 Schedule / cost estimates are inaccurate\n\u2022 Fast pace\n\u2022 Productivity of developers does not keep up with demand\n\u2022 Customer expectations are not met\n\u2022 \u2026.\n11CS 1530 - L02 Introduction to Software Engineering\nStill a need for \"engineering\" the software process!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "73b2e247-1c6d-4438-9e73-305095cbc9c2": {"__data__": {"id_": "73b2e247-1c6d-4438-9e73-305095cbc9c2", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ff64cde5-7a26-423d-87b8-731f13911459", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6fc9565375695106b34f8dc03f61c0700d5bbe4072d261bd6d2cdfbee985cd5d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 A short history of SE\n\u2022 Intro to software development lifecycle models\n\u2022 AdHoc & Waterfall Model\n\u2022 Development Approaches\n\u2022 Agile Manifesto\n12CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 240, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9cae4cb2-8591-4f6e-8f87-b04620095540": {"__data__": {"id_": "9cae4cb2-8591-4f6e-8f87-b04620095540", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6b062ff2-6f8a-4783-8bea-5cb7bf907695", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e71a2d95049c90a810a5916da9a27041d9ce13288b7be7e1cb191fb27f8c34c7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nChallenges in software development\n13CS 1530 - L02 Introduction to Software Engineering\nProblem Statement\nWe need a way so that \npeople can get from one \nlocation to another using \nmultiple means of transport, \nbased on their available \noptions and preferences.\n\ud83e\uddd1\n\ud83e\uddd1\n\ud83e\uddd1\ud83e\uddb0\n\ud83d\udc69\ud83e\uddb1\n\ud83d\udc71\n\ud83e\uddd3\nEnduser\n???\nNeed for a process!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 337, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aac8ac27-7eb9-4bf9-91ff-64bc3c970a78": {"__data__": {"id_": "aac8ac27-7eb9-4bf9-91ff-64bc3c970a78", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f10555ea-f2ca-4033-a689-ca3064e72b7f", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f9978cba4d97e45005117eee8445dab37a3700428e97922e51233f62906a0699", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat is a process?\n\u2022 Series of steps involving activities that take some input, constraints, and \nresources to produce an intended output\n\u2022 Involves a set of techniques and tools\n14CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 261, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4b7b0ff7-72b1-439f-9741-491778f00969": {"__data__": {"id_": "4b7b0ff7-72b1-439f-9741-491778f00969", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "45873611-d69e-416b-8d76-bfed3224375f", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7893007dac2f5a42419f81715d7e31ad73ffcc639a9ef7ce0e88ba286f389c62", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCode & Fix (Ad hoc Model)\n\u2022 Aka. \"Build & \ufb01x model\"\n\u2022 The product is constructed with minimal requirements, minimal or no \nspeci\ufb01cation, no attempt at design, and omitting testing\n\u2022 An initial product is built and then repeatedly modi\ufb01ed until the user is \nsatis\ufb01ed\n15CS 1530 - L02 Introduction to Software Engineering\nBuild n-th version\nModify until user \nis satis\ufb01ed\nUse\n\ufb01nal product", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 415, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a471d2ec-90ef-4fe8-aed5-d620ab5536cd": {"__data__": {"id_": "a471d2ec-90ef-4fe8-aed5-d620ab5536cd", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a92c51ab-6a0b-457a-a607-4e277321fbb7", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ce43f2435932040bf74fc3908f37aaece505912a3d0d8fb9853b780b5197532b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nAd hoc Model\n\u2022 Pros\n\u2022 Little overhead\n\u2022 Quick progress\n\u2022 Useful for small, exploratory projects\n\u2022 Useful for small teams\n\u2022 Cons\n\u2022 No proper quality assessment\n\u2022 Work synchronization is not de\ufb01ned\n\u2022 Changes may be hard to incorporate\n\u2022 Unclear delivery and timing\n\u2022 \u2026\n16CS 1530 - L02 Introduction to Software Engineering\nhttps://stevemcconnell.com/articles/the-power-of-process/\nDoing a lot of work but no real \nprogress towards the goal", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 466, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "787fb206-2d29-495d-a8e4-619ee52bac5c": {"__data__": {"id_": "787fb206-2d29-495d-a8e4-619ee52bac5c", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7e396dda-ae99-478b-b56f-398c6015d8b6", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1bacfc040af7c9362dfc614a2f10b4f3884ac5f54ce8fa4f4bcb27f38c667984", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Excursion] Let\u2019s build a house!\n\u2022 Blueprint and requirements\n\u2022 Foundation and architecture\n\u2022 Construction phases\n\u2022 Materials\n\u2022 Quality control and inspection\n\u2022 Interior design & \u2028\noccupant experience\n\u2022 Maintenance\n\u2022 Collaboration and Teamwork\n17CS 1530 - L02 Introduction to Software Engineering\nThese phases are similar to \u2028\nbuilding a software system!\nProject Plan & Requirements\nSystem Design / Software Architecture\nDevelopment (Object Design)\nCodebase, Tool Suite\nTesting, Deployment/Delivery\nUser Interaction & Experience\nUpdates, Fixes, \u2026\nDevelopers, Designers, Testers, \nStakeholders,\u2026", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 624, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0ca3bd3e-c962-45f8-b8dd-131208593103": {"__data__": {"id_": "0ca3bd3e-c962-45f8-b8dd-131208593103", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a287c646-da16-4e18-92bb-e5d405390912", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1570616faec5737bc86ecf6166c51ef50ef2dc9b6543d6f3c0ee642aba10e81f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe software development process\n\u2022 Structured set of activities required to develop a software system\n\u2022 There are many di\ufb00erent software processes!\n\u2022 Recurring stages:\n18CS 1530 - L02 Introduction to Software Engineering\nRequirements \nspeci\ufb01cation\nVeri\ufb01cation & \nValidationDesign Implementation Evolution\nWhat should the \nsystem do?\nHow to organize \nthe system?\nHow to \nimplement the \nsystem?\nHow to test the \nsystem?\nHow to change/ \nmaintain the \nsystem?\nRisk \u2028\nManagement\nRationale \nManagement Delivery Con\ufb01guration \nManagement", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 561, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f8885c3b-c38b-43b4-b9cc-5f37ecec22aa": {"__data__": {"id_": "f8885c3b-c38b-43b4-b9cc-5f37ecec22aa", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "67e2728a-301c-49bb-bcfd-bb393e169072", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1a10a596abd0046294219706b738b3c3ff814b109ae348955d9fc28b0550e8ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Waterfall Model\n19CS 1530 - L02 Introduction to Software Engineering\nProject initiation\nConcept exploration\nRequirements\nAnalysis\nImplementation\nVeri\ufb01cation & Validation\nDeployment\nMaintenanceProject timeline\n\u2022 \"Introduced\" by Winston Walker Royce, 1970\n\u2022 Early software development process adapted \nfrom manufacturing & construction processes\n\u2022 An activity needs to be completely \ufb01nished \nbefore the next one begins\n*exemplary, simpli\ufb01ed steps", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 478, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2dfbb8df-0bbd-4d7a-b33b-0c9ea14d7878": {"__data__": {"id_": "2dfbb8df-0bbd-4d7a-b33b-0c9ea14d7878", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "46218433-8f9c-49b3-9ade-f2481def3bc2", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "27bd39b1e9277e521ceaa1e71f10be697b9a6529e9f49f9269b218a479655b03", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe Waterfall Model \u2014 Considerations\n\u2022 Activity-centered lifecycle model\n\u2022 Linear and sequential execution of activities (development & management process)\n\u2022 All requirements activities are completed before system design activities\n\u2022 Goal: Never turn back\n\u2022 Simplistic view of software development\n\u2022 Progress is measured by the number of completed tasks\n\u2022 No overlapping or iterative activities\n\u2022 Schedules software development as a step-by-step process\n\u2022 Transforms user needs into code\n\u2022 The veri\ufb01cation activity ensures that each activity does not introduce unwanted or \ndelete mandatory requirements\n\u2022 Suited for short, simple projects with well-understood requirements\n20CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 756, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ef88928-54a3-4a7a-9fc5-b2df1d087333": {"__data__": {"id_": "9ef88928-54a3-4a7a-9fc5-b2df1d087333", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b6486159-57be-4f78-a4be-4ee84842ec4c", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "165d22ba79832f621ce1b2c6b5fab188337561176c06485ead4bd380431f6cd1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 A short history of SE\n\u2022 Intro to software development lifecycle models\n\u2022 AdHoc & Waterfall Model\n\u2022 Development Approaches\n\u2022 Agile Manifesto\n21CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 240, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8b0e5706-a8c2-4dea-a593-f3f372821d44": {"__data__": {"id_": "8b0e5706-a8c2-4dea-a593-f3f372821d44", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "532b2b80-a6db-4598-8437-6f73335a6b8c", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d70a531bb84e4b6c4063cd246b59d63e04ddd9a3c8d5f4f8e762c99ec8634fcb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat is change in software projects?\n\u2022 Deviation from initial project plan \n\u2022 Evolving requirements throughout the project\n\u2022 New insights\n\u2022 Stakeholder feedback\n\u2022 Challenges\n\u2022 Some problems are easier to solve than others\n\u2022 Environment\n\u2022 \u2026\n22CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 322, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "44e97dca-8355-4750-86b1-195ec07280c7": {"__data__": {"id_": "44e97dca-8355-4750-86b1-195ec07280c7", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4f432587-e5c7-4211-8ed6-107d4b6fb5f7", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "906d7c2e3eddc4dc08c9f4dd7254a8f1c7d17ae7144b88204e2259d759bc3f11", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSoftware lifecycle models & change\n\u2022 Software lifecycle models vary in their ability to address change \n\u2022 Flexibility: How can change be addressed?\n\u2022 Responsiveness: When can change be addressed?\n\u2022 Lifecycle model choice impacts its ability to handle the frequency of change\n\u2022 Frequency of change describes how often change occurs, depends on many \nfactors\n23CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 439, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "422a3765-19a4-427a-a0ed-7218c4236f11": {"__data__": {"id_": "422a3765-19a4-427a-a0ed-7218c4236f11", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9163c70f-6eb8-40b6-aa02-ac57150481c5", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "720acfc4996f5ecde11848a50b547cc8908f044e66a16f3e292880e2e8ec55d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nRough estimation of change frequency\n24CS 1530 - L02 Introduction to Software Engineering\nRarely\nSometimes\nFrequently\nSequential models\nWaterfall, V-Model\nIterative models\nSpiral Model, Uni\ufb01ed Process\nAgile\nScrum, Kanban, XP", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 254, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "71cf237a-a657-43e8-91ad-da3318c44a3d": {"__data__": {"id_": "71cf237a-a657-43e8-91ad-da3318c44a3d", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "634ba83c-dbb2-4cd6-a280-df054a683368", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "66379603bb023c3a48f1b066fb0313841cdfd8a936ca18fc012052de6c543a5a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDevelopment approaches\n\u2022 Incremental development (add on to something) \n\u2022 Build the system in small, usable sections\n\u2022 Each increment adds a de\ufb01ned set of functionalities\n\u2022 Works well when requirements are well-understood\n25CS 1530 - L02 Introduction to Software Engineering\nUITop down integration\nMiddleware\nData Access\nR1 R2 R3 R4", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 362, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "85a6faa5-c4cc-4591-8f4b-2bbf6a9021d2": {"__data__": {"id_": "85a6faa5-c4cc-4591-8f4b-2bbf6a9021d2", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "dd9fe500-4a85-498b-85f2-8998b35f3589", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d92dcd1e57fe0f051e8e406509b6a73ff8f9aea9a15b59ace7c51881b1a19ab8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDevelopment approaches\n\u2022 Incremental development (add on to something) \n\u2022 Build the system in small, usable sections\n\u2022 Each increment adds a de\ufb01ned set of functionalities\n\u2022 Works well when requirements are well-understood\n26CS 1530 - L02 Introduction to Software Engineering\nUI\nBottom-up integration\nMiddleware\nData Access\nR1 R2 R3 R4", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 364, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "db5a7ade-5d4a-4274-b0f0-37c4e77c7d27": {"__data__": {"id_": "db5a7ade-5d4a-4274-b0f0-37c4e77c7d27", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6313c142-3e89-4d79-b913-2740d027fc0e", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6e4fb20d165fd33fab69562e2a1c240ef8e4bb8f392cccd889b78436d2ab781c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDevelopment approaches\n\u2022 Incremental development (add on to something) \n\u2022 Build the system in small, usable sections\n\u2022 Each increment adds a de\ufb01ned set of functionalities\n\u2022 Works well when requirements are well-understood\n27CS 1530 - L02 Introduction to Software Engineering\nUI\nVertical integration\nMiddleware\nData Access\nR1 R2 R3 R4", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 363, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "70a6b9e8-09ed-4912-ba30-ca43933d1d2f": {"__data__": {"id_": "70a6b9e8-09ed-4912-ba30-ca43933d1d2f", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "780c43dc-f6da-4749-b190-59ed1515bb60", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0e55d94daacf096e561e89b0a3bd8a4088b134969eec0554a90c82977ea6fb70", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDevelopment approaches\n\u2022 Incremental development (add on to something) \n\u2022 Iterative development (re-do something)\n\u2022 Repeat development cycles on the same functionalities\n\u2022 Each cycle improves and re\ufb01nes the product (prototype)\n\u2022 Allows to incorporate stakeholder feedback\n28CS 1530 - L02 Introduction to Software Engineering\nUI\nMiddleware\nData Access\nR1 R2 R3 R4", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 392, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4edc183e-ea15-4725-93b2-43689346ac16": {"__data__": {"id_": "4edc183e-ea15-4725-93b2-43689346ac16", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fbfbc59e-abf0-464f-88b8-de293663e901", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c15630b3a7094b30dcf97fc2a413c54d949415295160995cd70e9509758a5889", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDevelopment approaches\n\u2022 Incremental development (add on to something) \n\u2022 Iterative development (re-do something)\n\u2022 Adaptive development (adjust to change)\n\u2022 Highly \ufb02exible to changing requirements\n\u2022 Adjust based on learning from previous iterations\n\u2022 Works well for projects with high uncertainty and evolving projects\n29CS 1530 - L02 Introduction to Software Engineering\nUI\nMiddleware\nData Access\nR4R1 R2 R3\n\"We don\u2019t need R3!\"\nFirst rule of usability: \nDon\u2019t listen, watch what \npeople actually do\n\u2014 Jakob Nielsen", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 546, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "87441287-cc7e-4805-be19-d168d57c7bf2": {"__data__": {"id_": "87441287-cc7e-4805-be19-d168d57c7bf2", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ddef1c5c-6821-4a1e-ac60-a5c2f1d93f9c", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "746494c98ee2717e884bdfc682870e0f84fe78e0baab5f26e9396ad1292a0cdc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDevelopment approaches\n30CS 1530 - L02 Introduction to Software Engineering\nIncremental\nIterative\nAdaptive (Agile)\nDegree of \nChange\nDelivery \nFrequency\nhigh\nlow high\nPredictive", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 207, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9957bdf3-19d0-4a15-92e2-90e0096d66b1": {"__data__": {"id_": "9957bdf3-19d0-4a15-92e2-90e0096d66b1", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ab22cba4-0ad8-47d0-ae4b-a81422a929a9", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "eb543198cf1b70d1c139eec13ad667c1404084a6febd51c28399cd8728cc1118", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDevelopment approaches\n31CS 1530 - L02 Introduction to Software Engineering\nPlan Analysis Design Code Test Deploy\nPredictiveIterativeAdaptive\nPlan\nAnalysis\nDesign\nCode\nTest\nDeploy\nPlan\nAnalysis\nDesign\nCode\nTest\nDeploy\nPlan\nAnalysis\nDesign\nCode\nTest\nDeploy\nPlan\nAnalysis\nDesign\nCode\nTest\nDeploy\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nIteration\nPlan\nDeploy\nAnalysis\nDesign\nCode\nTest\n3 to 24 months\n1 to 3 months\n1 - 4 weeks\n1 to 3 months 1 to 3 months 1 to 3 months", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 704, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cff59e4b-6a1c-4734-b601-c969c107992e": {"__data__": {"id_": "cff59e4b-6a1c-4734-b601-c969c107992e", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9622de88-c64a-43c6-915e-404801680968", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6c6e268ac8dda244868af37ce76c15ccdc097cd72f88b4ad70504a47e3401221", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 A short history of SE\n\u2022 Intro to software development lifecycle models\n\u2022 AdHoc & Waterfall Model\n\u2022 Development Approaches\n\u2022 Agile Manifesto\n32CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 240, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cce6c5d2-55aa-4bf7-9892-8081b4d2226a": {"__data__": {"id_": "cce6c5d2-55aa-4bf7-9892-8081b4d2226a", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "76d5c11f-a6ce-4067-8808-b9cf5e88d51c", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "627163b59e1df8a265bc12bdfd522ced5afac720e0047431e88466fba6ca721e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nAgile manifesto (2001)\n33CS 1530 - L02 Introduction to Software Engineering\nWe are uncovering better ways of developing software by doing it and helping others do it. \nThrough this work we have come to value: \nIndividuals and interactions over processes and tools\u2028 \nWorking software over comprehensive documentation\u2028 \nCustomer collaboration over contract negotiation\u2028 \nResponding to change over following a plan \nThat is, while there is value in the items on the right, we value the items on the left more.\nKent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, \nAndrew Hunt, Ron Je\ufb00ries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Je\ufb00 Sutherland, Dave Thomas\nBackground story: https://agilemanifesto.org/history.html\nagilemanifesto.org/", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 864, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a88d3be4-c41f-424a-8db3-984e24faf445": {"__data__": {"id_": "a88d3be4-c41f-424a-8db3-984e24faf445", "embedding": null, "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7d3d6551-37ed-4a50-be24-011b2e3f3f8c", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "8161a03203caeaea31f776ecc173a0fa6fe671e065ece1ae22f4c93ffc19cf07", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nAgile methodology\n\u2022 Set of principles and practices for software development \n\u2022 Designed to accommodate change\n\u2022 Require a collaborative approach among cross-functional teams\n\u2022 Examples:\n\u2022 Scrum\n\u2022 Kanban\n\u2022 XP\n\u2022 Lean software development\n\u2022 Feature-driven development\n34CS 1530 - L02 Introduction to Software Engineering\nPlan Develop\nDesign\nTest\nDeploy\nReview", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 387, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "be1d0077-0e99-4b8c-96de-9c102c0af62a": {"__data__": {"id_": "be1d0077-0e99-4b8c-96de-9c102c0af62a", "embedding": null, "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "517bcb20-f696-4623-b6fa-5f1875ec567c", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ba1b5085b6536029dcf9b0da687d108495cde674e18d623a3f7ea7bf873ffe2f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nAgile principles\n\u2022 Continuously deliver value to customers with early and frequent software \nreleases\n\u2022 Collaborate daily across all team members, blending business and technical \nexpertise\n\u2022 Foster a supportive environment for self-motivated teams, emphasizing direct \ncommunication\n\u2022 Focus on delivering functional software as a key progress indicator\n\u2022 Ensure the development pace is sustainable for long-term project health\n\u2022 Pursue technical excellence, good design, and simplicity\n\u2022 Engage in regular self-assessment to improve e\ufb00ectiveness and processes\n35CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 643, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d3a22d70-fa11-4e79-95e0-1e654f75f320": {"__data__": {"id_": "d3a22d70-fa11-4e79-95e0-1e654f75f320", "embedding": null, "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "45d9b0b7-8c3c-4bdc-afb5-632472e45a86", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "81fa22d87d0cd43a661f8b4a1ce4984d7b424d5df22247ae0210a75774947e38", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nKey characteristics\n\u2022 Adapt to changing requirements, even late in a project's development cycle\n\u2022 Agile projects are broken down into small, manageable increments\n\u2022 Each increment goes through multiple steps: planning, design, coding, and testing\n\u2022 An increments is usually referred to as a \"sprint\" (or an \"iteration\")\n\u2022 Stakeholder involvement is important: Regular feedback from customers \nor end-users is integrated into the development process\n\u2022 Self-organizing and cross-functional teams\n\u2022 Continuous improvement of the product, the process, and the team\n\u2022 Frequent releases of the product\n36CS 1530 - L02 Introduction to Software Engineering\nRetrospectives", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 694, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a74e41b8-b0c8-419a-8a4b-6affcce27e0e": {"__data__": {"id_": "a74e41b8-b0c8-419a-8a4b-6affcce27e0e", "embedding": null, "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1224b0ce-153d-4f4e-91e3-51f0e9d0713e", "node_type": "4", "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9b775fba27858bb71775bff7043fcaeacb464684d7f21f81a6306286942dbdca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSummary: Need for process control in software development\nSoftware crisis (~1960s-1980s*)\n\u2022 Cost overruns, delays, and unreliable software due to unstructured development\nNeed for Software Development Lifecycle Models: \n\u2022 Process control ensures quality, predictability, and scalability in software projects\n\u2022 Ad-hoc development: Code & \ufb01x model\n\u2022 Lack of planning, maintenance, and scalability\n\u2022 Suitable for small, well-understood projects\n\u2022 Waterfall Model: Sequential, rigid, suitable for stable requirements but not adaptable to \nchanges\n\u2022 Incremental (add-on), iterative (re-do) vs adaptive (adjust for change) development \napproaches\n\u2022 Agile Manifesto: Focuses on collaboration, \ufb02exibility, and delivering incremental \nvalue\n37CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 814, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c51029f0-b39f-4555-a0ad-a73132aad1fc": {"__data__": {"id_": "c51029f0-b39f-4555-a0ad-a73132aad1fc", "embedding": null, "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b8ec38de-7d99-44cf-8637-f10e2aa9a772", "node_type": "4", "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5faa425b36e22b965853506c220c4d9f01ee6b88df699346d801710bf03d36ee", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nOptional Readings\n\u2022 CS History\n\u2022 https://www.computerhistory.org/timeline/computers/\n\u2022 ENIAC\n\u2022 https://www.computerhistory.org/revolution/birth-of-the-computer/4/78\n\u2022 https://spectrum.ieee.org/the-women-behind-eniac\n\u2022 Agile Manifesto\n\u2022 https://agilemanifesto.org/ \n\u2022 https://www.agilealliance.org/agile101/the-agile-manifesto/ \n38CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 410, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5680ddd0-b1bf-4666-b053-5716b4bb1557": {"__data__": {"id_": "5680ddd0-b1bf-4666-b053-5716b4bb1557", "embedding": null, "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "185e3d38-7b27-4699-8b18-77c98823dfb0", "node_type": "4", "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0b9e419edeb03c4395edf857b44f60215af8b3ec09290d443e5b62829e83a817", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nReferences\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, \npatterns, and Java. Pearson, 2009.\n\u2022 Object Management Group. Uni\ufb01ed Modeling Language. Version 2.5.1, 2017\n\u2022 Agile Alliance, https://www.agilealliance.org/agile101/the-agile-manifesto/\n39CS 1530 - L02 Introduction to Software Engineering", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 350, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ddc8a407-a6c5-43e6-bce4-2d24c22e6a2d": {"__data__": {"id_": "ddc8a407-a6c5-43e6-bce4-2d24c22e6a2d", "embedding": null, "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0955e7e9-abe1-4bf6-ae03-32dd1bcd8cf3", "node_type": "4", "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L02 Introduction to SE.pdf", "file_path": "data/Fall25 1530 - L02 Introduction to SE.pdf", "file_type": "application/pdf", "file_size": 14175968, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d14a067af67c9b8481f9d373ba584d4864ed2fdb63a730eac3680e1a3b874635", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nL02 Introduction to SE\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 158, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "190b5a33-3fb1-41dd-ba61-d7542ac54667": {"__data__": {"id_": "190b5a33-3fb1-41dd-ba61-d7542ac54667", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "831024d1-4a33-4db4-9016-e4437e168de0", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c6577a4a66b67cfd2fc7593f49fa5e70baa7393de7b3c5bf31a20614e986db51", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL11 Requirements Analysis & OOP Recap\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 173, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "316b7161-1333-4733-960e-95861af883eb": {"__data__": {"id_": "316b7161-1333-4733-960e-95861af883eb", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "00305476-ec19-4b0f-891f-7028c86085e1", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d45dc8a5890f7acd6ae541ebe26e90a858121478b5915dc9373910897266cef3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1435, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "758a4fa0-bd0c-49dd-bd0a-d2564e52fbfc": {"__data__": {"id_": "758a4fa0-bd0c-49dd-bd0a-d2564e52fbfc", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cd265cd1-2de8-48ea-9390-0a0da20d79f3", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7d3dc6d81644d1ea01932cbb81e3698b3c689fd35c4e4b7ef05921be25544bf1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nLearning goals\n\u2022 You understand the purpose of an analysis object model\n\u2022 You can derive entity, boundary, and control objects from requirements / a \nproblem statement\n3CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 247, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0c0d5e57-07b0-4b77-ba09-6d7ef90bc168": {"__data__": {"id_": "0c0d5e57-07b0-4b77-ba09-6d7ef90bc168", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d16fa667-2395-42a8-9999-ee54a875498b", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "13cef57bce0eb15641596dbc1cf55b5ec4e631504ffd4578c05f1cf045b442fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Intro to Analysis\n\u2022 Recap: OOP\n\u2022 Analysis object model\n4CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fd429f0b-104b-49f9-94c4-528a8e229466": {"__data__": {"id_": "fd429f0b-104b-49f9-94c4-528a8e229466", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b3aac804-5d83-4e56-9dcf-7830f900d2a2", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "86b6109bf6d053481d25ba08a046d86a74cc9107dd55f0ed9a286f335595da33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nRequirements speci\ufb01cation?\n5CS 1530 - L11 Requirements Analysis & OOP Recap\nIf these multi-stable images were a requirements speci\ufb01cation, which \nmodel would you have constructed? \n\u2192 Speci\ufb01cations contain ambiguities\nWilliam Ely Hill, 1915, My Wife and My Mother-in-Law Schr\u00f6der's stairs, 1858", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 324, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dff63ce1-46ba-4ed5-b1b4-a9494402c1ba": {"__data__": {"id_": "dff63ce1-46ba-4ed5-b1b4-a9494402c1ba", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "85996195-4451-4481-87c5-15a0344c1c4f", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "34fd2d5a039228b9ed5d0eb7955b004dbb035ede65176c938b2cac828f904374", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nStatus in the SDLC\n\u2022 Requirements: What the system must do (functional + non-functional)\n\u2022 Analysis: Build models to understand and organize those requirements in the \nproblem domain\n\u2022 Design: Translate analysis models into solution models (classes, architecture, \ncode)\n6CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 350, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23c064d8-fa60-4112-83a8-e26d4963fca2": {"__data__": {"id_": "23c064d8-fa60-4112-83a8-e26d4963fca2", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "eca115bd-e70c-4644-a047-a6b572f3eb27", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a10e91a05be86b79811e72e0f786c58c73e3bba643b4c1e71266704d847bd2d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nAnalysis \u2014 First step towards system architecture \n\u2022 Re\ufb01ne and validate requirements\n\u2022 Resolve ambiguities discovered during requirements stage\n\u2022 Identify analysis objects\n\u2022 From problem domain (e.g., Sinkhole, Report, Resident, City O\ufb03cial)\n\u2022 De\ufb01ne relationships\n\u2022 Associations, aggregations, generalizations among analysis objects\n\u2022 Model system behavior\n\u2022 Scenarios \u2192 sequence diagrams, state machines, activity diagrams\n\u2022 Partition the problem\n\u2022 Which responsibilities belong to which objects or subsystems?\n7CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 591, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "95e47df7-93de-4b4e-9760-3c704143e90e": {"__data__": {"id_": "95e47df7-93de-4b4e-9760-3c704143e90e", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1a27d792-971b-42e4-ab9c-77aa8622ccfd", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ed103d6ff2f3ed9dc0684100ac89dbac290aea9658ea69fee627684b2519e996", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Intro to Analysis\n\u2022 Recap: OOP\n\u2022 Analysis object model\n8CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "68375b45-472f-4713-a902-01017d5f5f95": {"__data__": {"id_": "68375b45-472f-4713-a902-01017d5f5f95", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "aab3f3ef-1b66-4c08-bff8-9281ceb8fabb", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a6ffd58b2d6768be6524ecff5047938169cedf5b7325ef6a1c6df0cf9fc517cf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nObject types\n9CS 1530 - L11 Requirements Analysis & OOP Recap\nBoundaryEntity Control\nSinkhole\u2028\n (has location, status, \nreportedDate)\nSinkholeReporter \n(e.g., form; \nvalidates user input)\nSinkholeReportController \n(creates a new Sinkhole, \nsaves it)\npersistent information \ntracked by the system\ninteraction between user \nand system\ncontrol tasks performed \nby the system", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 402, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "12c1dc91-d343-4957-8053-9eb78049df6c": {"__data__": {"id_": "12c1dc91-d343-4957-8053-9eb78049df6c", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "209ff594-cd76-4d6a-a474-e6c5ca3f66a4", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ba9ad1bda1c0b7a8766ca8ad854c33e742068be39cfc75a9af20c9e9534c8e82", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem Statement\n10CS 1530 - L11 Requirements Analysis & OOP Recap\nHints at an entity\nHints at a control\nHints at boundary\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System \n(SiMCity) to address the issue of sinkholes within the city. The \ufb01rst version of \nSiMCity should enable residents and city o\ufb03cials to report sinkhole occurrences \nand track their locations. \nThe system should be easy to use, accessible through web and mobile platforms, \nand track sinkholes in real-time. \nResidents should be able to view sinkholes on a map, helping them to avoid such \nareas. It should also allow residents to report new sinkholes by sending in their \nlocation and photographic evidence for veri\ufb01cation, or call for help. City o\ufb03cials \ncan remove sinkholes from the map after they have been re-\ufb01lled and repaired.\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and \nimprove the city\u2019s ability to manage and mitigate the impact of these geohazards.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1034, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49585e31-0f37-4d00-8822-a0e02255766c": {"__data__": {"id_": "49585e31-0f37-4d00-8822-a0e02255766c", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "eee01fb1-9d98-40ca-a229-b002b580a654", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c652c54cdad2b2c0942ce999e34fc59343c37610ff7596479c232cd5a07e14d5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Abbott\u2019s technique\n11CS 1530 - L11 Requirements Analysis & OOP Recap\nGrammatical construct\nProper noun\nImproper noun\nUML element\nObject\nClass\nExample\nsinkhole\nresident\nAction verb Operationtrack\nBeing verb Inheritance is a\nHaving (verb) Aggregationhas a\nModal verb Constraintmust have a\nAdjective Attributefun\nTransitive verb Operationreport\nIntransitive verb Constraint, class, associationdepends on\n11", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 444, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80b03e9b-7e02-4ba6-af9d-9095bd43634b": {"__data__": {"id_": "80b03e9b-7e02-4ba6-af9d-9095bd43634b", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d33aaaaf-a977-45e7-93d5-403392a161b2", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "21d30417882b6d5bf013078ec13396a817b73be98c57dae2033d8f8afec9efca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Entity, control, and boundary objects\n12CS 1530 - L11 Requirements Analysis & OOP Recap\nEntity Control Boundary\nWebPlatform\nMobilePlatform\nCityAuthority\nMapView\nStorage\nSinkhole\nLocation\nArea\nUser\nMap\nPhoto\nSinkholeReporter\nSinkholeVeri\ufb01er\nAuthenticator\nMapController\nPhotoManager\nNoti\ufb01er", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 329, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d46752c8-637c-4da5-988f-363c0a976153": {"__data__": {"id_": "d46752c8-637c-4da5-988f-363c0a976153", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "342175d8-7352-4558-a7da-ba8119f039c6", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e84bc7531456abd1892ebb795662ac4e64157f3840c43cd6ad8fd68505b04721", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nEncapsulation promotes security & modularity\n\u2022 Purpose: Hide internal details of an object and only expose the necessary \nfunctionality through public methods\n\u2022 New objects can be identi\ufb01ed based on the system\u2019s requirements\n\u2022 Encapsulation means creating classes for such objects to de\ufb01ne the \ncharacteristics by de\ufb01ning attributes and behavior by providing methods\n\u2022 Java supports encapsulation by using classes with attributes for structuring \nand methods for describing functionality\nPizza\nsize \ntoppings[ ]\nbake() \ncalculateExpectedTime()\n13CS 1530 - L11 Requirements Analysis & OOP Recap\nProblem Statement: \n\u201cPizza lovers can bake pizzas \nwith varying sizes and toppings \nand check the expected time \nuntil the pizza is ready.\u201d", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 764, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "887c5f6c-3a55-449f-80f2-ac7d1cf77eec": {"__data__": {"id_": "887c5f6c-3a55-449f-80f2-ac7d1cf77eec", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "86bf8fbd-e83f-44aa-a6d3-e92bd7c2bcc9", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "fdb8cc6137ef0486e824455db6c5f80c88a39484438d0dee36fd3bc45bbb0ff3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nFrom model to code\n14CS 1530 - L11 Requirements Analysis & OOP Recap\nPizza\nsize \ntoppings[ ]\nbake() \ncalculateExpectedTime()", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 155, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "efa33040-ed9d-4a5b-b04f-a8dbc60aa6a0": {"__data__": {"id_": "efa33040-ed9d-4a5b-b04f-a8dbc60aa6a0", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f6f8e34b-cf6c-4b81-8fb1-de0580d12b09", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "74a0d49e00ba5fd9e123cc0d9c4a9d27af3a23e5721ce426fced1c594b96f3fd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nFrom model to code\n15CS 1530 - L11 Requirements Analysis & OOP Recap\nPizza\nsize \ntoppings[ ]\nbake() \ncalculateExpectedTime()", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 155, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5da3a3ab-6843-46fc-ab49-4bcab7edfc63": {"__data__": {"id_": "5da3a3ab-6843-46fc-ab49-4bcab7edfc63", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "226c00e9-dd60-4029-aa7d-d45ba037393e", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b9672247e2ff831b0f570cd67f44d67349f26ba70639d878a51f4deddb122f4e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nFrom model to code\n16CS 1530 - L11 Requirements Analysis & OOP Recap\nPizza\nsize \ntoppings[ ]\nbake() \ncalculateExpectedTime()", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 155, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ff651fd2-7b37-46ef-818c-09a6da7b425e": {"__data__": {"id_": "ff651fd2-7b37-46ef-818c-09a6da7b425e", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7914044d-3701-432d-8974-8197ae920aa7", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "bf461ee9c191df82bbe1e32254e8319ff8437f2350ae9bdc64ad6639b016a62b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nFrom model to code\n17CS 1530 - L11 Requirements Analysis & OOP Recap\nPizza\nsize \ntoppings[ ]\nbake() \ncalculateExpectedTime()", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 155, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "259ee884-6c67-41f6-a542-1355d473763d": {"__data__": {"id_": "259ee884-6c67-41f6-a542-1355d473763d", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "135c72ee-2eca-43c3-8c00-ae7bcdd9e054", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0aa51ab007431fa6ce654b428a6ec5bc90281d96ba99d2179b439c30816247f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nFrom model to code\n18CS 1530 - L11 Requirements Analysis & OOP Recap\nPizza\nsize \ntoppings[ ]\nbake() \ncalculateExpectedTime()", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 155, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7f0bf086-20c0-47c2-9bd9-602912309814": {"__data__": {"id_": "7f0bf086-20c0-47c2-9bd9-602912309814", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "215780d1-0f9a-4c2b-af2a-431ac9a664d4", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "804e9df73f2d0626908d6d417f2ae9651d34ddcd71330e866de3a6618fb325da", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nInheritance creates common structure & behavior\n\u2022 Purpose: Create new classes by inheriting attributes & behaviors from existing classes\n\u2022 Establishes an inheritance hierarchy (also called a \"taxonomy\")\n19CS 1530 - L11 Requirements Analysis & OOP Recap\nclass SportsCar extends Car { \n int maxSpeed; \n@Override \n void drive() { \nSystem.out.print(\"VROOM \n\ud83d\udca8\"); \n } \n}\nclass Car { \n String model; \n String color; \nint year; \n void drive() { \nSystem.out.print(\"vroom\"); \n } \n}\nSubclass\nInheritance\nInheritance\nCar\nmodel \ncolor \nyear\ndrive()\nSportsCar\nmaxSpeed\ndrive()\nSuperclass\nSportsCar\nmodel \ncolor \nyear \nmaxSpeed\ndrive()", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 654, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5396e500-5cea-4d5b-857a-2bda52168c38": {"__data__": {"id_": "5396e500-5cea-4d5b-857a-2bda52168c38", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "14a871c2-74a6-4279-ba95-4888eca8eeec", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "58d6db6b0d4daa86e2d8411ea7d62b89dbd62cb547e0f23a060ebcda8b9cc0d3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nBoat\nmodel \ncolor \nyear \nnumberOfSeats\ndrive()\nCar\nmodel \ncolor \nyear \nnumberOfTires\ndrive()\nClasses vs. abstract classes\n\u2022 Class \n\u2022 An abstraction in the context of object oriented \nprogramming \n\u2022 A class encapsulates state and behavior \n\u2022 Abstract class \n\u2022 Cannot be instantiated \n\u2022 De\ufb01ne an abstract structure which holds \ncommon structure (state) or functionality \n(behavior)\n\u2022 Allows to create a blueprint for other classes \nwithout implementing all of the concrete methods \nand properties themselves \n\u2192 Greater code reusability and modularity\n20CS 1530 - L11 Requirements Analysis & OOP Recap\nCar\nnumberOfTires\ndrive()\nSubclass\nInheritance\nBoat\nnumberOfSeats\ndrive()\n<> \nVehicle\nmodel \ncolor \nyear\ndrive()\nConcrete method\nAbstract method\nAbstract superclass \n(italics)", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 820, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "61e6ce59-0a8b-4dca-bbaf-08551a16c4eb": {"__data__": {"id_": "61e6ce59-0a8b-4dca-bbaf-08551a16c4eb", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1343e464-da6c-45d5-9e4b-03233c1b88f0", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6388976747bc55fb84a12ee0c16308182992be9ee7bdba7b5d84fe42bd893168", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nGeneralization vs Specialization Inheritance\n\u2022 Generalization: A superclass de\ufb01nes common features\n\u2022 Specialization: Subclasses re\ufb01ne or extend the superclass with more \nspeci\ufb01c features\n\u2022 An abstract class represents generalization:\n\u2022 There is shared data (attributes) and shared logic.\n\u2022 Subclasses are variations of a \"is-a\" relationship\n21CS 1530 - L11 Requirements Analysis & OOP Recap\n\u2194 An interface de\ufb01nes \nshared functionality, role, \nor a \"contract\" across \nunrelated hierarchies\n[Example - SiMCity] Is a CityOf\ufb01cial a special kind of \nResident (specialization)? Or are Resident and \nCityOf\ufb01cial both kinds of User (generalization)?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 672, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d495af59-ed43-46b1-9bf1-618a9a1aa0b3": {"__data__": {"id_": "d495af59-ed43-46b1-9bf1-618a9a1aa0b3", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "65208085-8825-4e5b-93ef-0915552d4690", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "231022ed646d7e2b6ecd625b2366cef731166fdaaf6209edf603fd4d1e5acf87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nPolymorphism\n\u2022 Poly (= many) + morph (= forms) \u2192 \"many forms\"\n\u2022 Ability of an object reference to take on many forms\n\u2022 A super class reference (compile time) is used to refer to any \nspeci\ufb01c subclass object (runtime)\n\u2022 Polymorphism allows us to mix methods and objects of di\ufb00erent \ntypes in a consistent way\n\u2022 The polymorphism the object undergoes depends on the when & \nwhat part of the object is transforming\n\u2022 When: Compile-time vs dynamic\n\u2022 Compile-time polymorphism\n\u2022 Runtime polymorphism\n\u2022 What: Method vs object\n22CS 1530 - L11 Requirements Analysis & OOP Recap\nhttps://static.tvtropes.org/pmwiki/pub/images/cinderella_restored_transformation.png", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 684, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79697b04-cb73-4fc2-9a1d-8be98180cb81": {"__data__": {"id_": "79697b04-cb73-4fc2-9a1d-8be98180cb81", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "491bc843-c5c8-4423-ab35-fca1402da76b", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "253358e9485ef1d8cf97c7bc1fabde95f56bdde3a4fff4d28f6d1716955807f4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example]\n23CS 1530 - L11 Requirements Analysis & OOP Recap\n\"Polymorphism\"", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 105, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99c3df76-23cb-47b8-8ab5-ba93afdc864d": {"__data__": {"id_": "99c3df76-23cb-47b8-8ab5-ba93afdc864d", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f83657a8-bb42-4167-9333-26f66f97993c", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "10bf46eec97224a8383d0a64001e9d47b58f11111932c71de0d95ff03235bcb4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Polymorphism\n24CS 1530 - L11 Requirements Analysis & OOP Recap\nPancake\n cook()\nChocolateChip \nPancake\ncook()\nBlueberry \nPancake\n cook()\npublic abstract class Pancake { \n public abstract void cook(); \n} \npublic class BlueberryPancake extends Pancake { \n@Override \n public void cook() { \n System.out.println(\"\n\ud83e\uded0\n\ud83e\udd5e\"); \n } \n} \npublic class ChocolateChipPancake extends Pancake { \n @Override \npublic void cook() { \n System.out.println(\"\n\ud83c\udf6b\n\ud83e\udd5e\"); \n } \n}\npublic class PancakeMaker { \npublic static void main(String[] args) { \n Pancake myPancake; \nmyPancake = receiveOrder(); \nmyPancake.cook(); \n } \nCompile \ntime type\nRuntime type\npublic static Pancake receiveOrder(Order order) { \n// Order type is based on user input \n// defined somewhere else \nif (order.getType().equals(\"Blueberry Pancake\")) { \n return new BlueBerryPancake(); \n } else { \nreturn new ChocolateChipPancake(); \n } \n}\nRuntime type", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 979, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3656ddd4-04f8-4d25-947b-da36f6309053": {"__data__": {"id_": "3656ddd4-04f8-4d25-947b-da36f6309053", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6e76ddf0-e0df-416a-a9ed-c0558206fb0f", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "962947f2f47fe6c9595604b65e88d12ae1baab9204c399f633de8d7b91321183", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nOOP principles are tools that help us write better code\n\u2022 Encapsulation/Reusability: Encapsulating data and behavior allows for \ne\ufb03cient code reuse across the application\n\u2022 Maintainability: OOP makes code modi\ufb01cation and maintenance easier over \ntime\n\u2022 Scalability: OOP allows code to scale with increasing complexity and new \nfeatures can be added without breaking existing ones\n\u2022 Abstraction: OOP abstracts away complexity and allows developers to focus \non essential aspects of the system\n\u2022 Communication & Collaboration: OOP enables easier collaboration\n25CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 638, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "aba38c45-bef0-4776-bbf1-77abb345141e": {"__data__": {"id_": "aba38c45-bef0-4776-bbf1-77abb345141e", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7cca0d9e-fe23-448d-a45a-3bc5ef4d930b", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "12b5ee33e2cc1866d22f0e1f3adb4760f5cb6805103933e89a601e3f01471d25", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nBest Practices\n\u2022 Aim for high cohesion: Ensure that each identi\ufb01ed object has a well-de\ufb01ned \npurpose and responsibilities, promoting high cohesion within the classes\n\u2022 Low Coupling: Minimize dependencies and coupling between objects, \naiming for a modular and maintainable system design\n\u2022 Iterative Process: The process may require multiple iterations to re\ufb01ne and \nvalidate the identi\ufb01ed objects and their relationships as the requirements \nevolve\n\u2022 Documentation: Document the derived objects, their attributes, behaviors, \nand relationships in a structured manner, e.g., using class diagrams or entity-\nrelationship diagrams\n\u2022 Review and Validation: Collaborate with stakeholders to review and validate \nthe derived objects, ensuring they accurately represent the requirements\n26CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 860, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "654cdd30-25bb-4494-b4db-a71fccd6eb2f": {"__data__": {"id_": "654cdd30-25bb-4494-b4db-a71fccd6eb2f", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0efbf156-ce25-4c55-9279-eec607938da4", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "bc068a7b4eb9069baebdb6414a60d2f05a8dabc8fab9b1b6dd31f43be9c772ba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Intro to Analysis\n\u2022 Recap: OOP\n\u2022 Analysis object model\n27CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 153, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ba211267-f480-4e16-b0dd-e5114c0e4e16": {"__data__": {"id_": "ba211267-f480-4e16-b0dd-e5114c0e4e16", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ab0e4797-4799-4068-a0b5-16ab616b3986", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3224be04837b83403b9fbcae71c469519887c55e4f64c788015d2ea26f976fa5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSystem model \u2014 overview\n28CS 1530 - L11 Requirements Analysis & OOP Recap\nSystem model\nFunctional model Analysis object \nmodel Dynamic model\nUse case model Class diagram Activity diagram\nCommunication \ndiagram\nState chart \ndiagram\nWhat key functionality can \nusers access / does the \nsystem provide?\nWhat are the key objects and \ntheir relationships in the \nproblem domain?\nHow does the system \nbehave over time and \nrespond to events?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 466, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0274ca8e-3305-4e30-b0eb-6cb8ec8fdb4d": {"__data__": {"id_": "0274ca8e-3305-4e30-b0eb-6cb8ec8fdb4d", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c7057c92-1223-42f9-927b-6d09db9ef721", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "353ee6fb47ad5497a787c799d09ba482f8dd3dc990659316eb945a8f3106a4a2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThe analysis object model (AOM)\n\u2022 Helps in structuring the problem domain\n\u2022 Ensures that the system accurately represents real-world concepts\n\u2022 Identify and structure important concepts, attributes, and associations (relevant to \nthe system\u2019s requirements)\n\u2022 Bridges the gap between requirements and design\n\u2022 Reduces errors\n\u2022 Improves communication\n\u2022 Facilitates code structure and reusability\n\u2022 Often depicted using a UML class diagram\n\u2022 Typically, visibility is not displayed\n\u2022 Focus on the most important elements (7+-2!)\n29CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 605, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fc25de07-e1de-4774-8ab1-25bbc3ef2ccb": {"__data__": {"id_": "fc25de07-e1de-4774-8ab1-25bbc3ef2ccb", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e873e8e3-a68d-42fb-8164-8f6d95c3b127", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "50e3a8b743b975c33eac1ac8ccf2b1d8a84608b90e6d87753106db32725be537", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nHow to think in an abstract way?\n1. What are the main entities? \u2192 Objects\n2. What characteristics/properties does the entity have? \u2192 Attributes\n3. What functionality/behavior does the entity provide/need? \u2192 Methods\n4. How do the entities communicate with each other? \u2192 Associations\n30CS 1530 - L11 Requirements Analysis & OOP Recap\nPizza\nsize\nbake() \ncalculateExpectedTime()\nTo p p i n g\nname \namount\nisVegetarian()\n*\nAssociation \nAggregation, \u2028\n\"consists of/has\"\nMultiplicity, \"1-to-many\"", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 520, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53b2dd4e-28ef-4d83-8ce4-f30cb6f019f4": {"__data__": {"id_": "53b2dd4e-28ef-4d83-8ce4-f30cb6f019f4", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "065bf037-9027-430f-a9d9-92eda7b151df", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "bf60a262c00aa44b114a295511f5cf65714a77c689494840c003f5d594ce4075", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUML class diagram \u2014 Elements I\n\u2022 UML class diagrams are structural models\n\u2022 Focus on the most important entities, their attributes and methods, and their \nrelationships among each other\n31CS 1530 - L11 Requirements Analysis & OOP Recap\nCar\nmodel\ncolor\ndrive()\ninspect()\nClass\nAttribute\nMethods\nAssociation\nDegree\nname\n\ufb01eld\nviewRequirements()\nCourse\ntitle\nisRequired\ncheckAvailability()\n**\n* means \"0..*\"", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 434, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "20fa555c-99ae-44ca-aaae-53a2883c1e0a": {"__data__": {"id_": "20fa555c-99ae-44ca-aaae-53a2883c1e0a", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4ee78bd1-9a10-4933-9165-151c43b8b17d", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c90592433a72f1d02192f12de72c8cfa1414a351e80c10e167a1327ba107e034", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUML class diagram \u2014 Elements II\n32CS 1530 - L11 Requirements Analysis & OOP Recap\nClassA\nClassB\nClassB inherits from ClassA\n<>\nClassA\nabstract class\n<>\nClassA\ninterface\nClassA\nNotes are used \nto explain \nunclear aspects", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 271, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "509ff02e-8c13-403a-95d9-bb1601b438b5": {"__data__": {"id_": "509ff02e-8c13-403a-95d9-bb1601b438b5", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "daf867d4-50e8-48ff-a818-68da3d56d737", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "200a2f521b0feb5517c866fa2d9dfe767a7de09d98608e6aa43bf43c18652ea2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUML class diagram \u2014 Basic Associations\n33CS 1530 - L11 Requirements Analysis & OOP Recap\nClassA ClassB\n(uni-)directional; ClassA can \naccess ClassB (not vice-versa)\nClassA ClassB\nbi-directional; ClassA can \naccess ClassB and vice-versa\n1 is the default multiplicity, does \nnot need to be explicitly modeled\n*\nClassA ClassB", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 353, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e04ac274-e9da-40c8-9179-a3289ab1e178": {"__data__": {"id_": "e04ac274-e9da-40c8-9179-a3289ab1e178", "embedding": null, "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fad2672f-2b02-42df-958b-3b98a5666f42", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1abab34e91063a73ee6b91636d62bd9a41c030833f386cbfc39ffbc370b24b9d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUML class diagram \u2014 Associations Overview\n\u2022 Unidirectional association\n\u2022 Dependency\n\u2022 Bidirectional association \n\u2022 Inheritance\n\u2022 Aggregation\n\u2022 Composition\n34CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 235, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3798746a-9cea-4535-8681-a1d155b59bb2": {"__data__": {"id_": "3798746a-9cea-4535-8681-a1d155b59bb2", "embedding": null, "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ab35d8e4-b3e5-4691-800a-6f1d31557157", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d881308fd0463ad5e1367937cbf5e0c1681d8e3d71681ab182fcf3cf1c322782", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUnidirectional association\n\u2022 Represents a (long-term) relationship where one element (client) relies on \nanother element (supplier) in some way to perform its functionality\n\u2022 Can be categorized into various types: \u2028\nusage, realization, generalization, and constraint dependencies\n35CS 1530 - L11 Requirements Analysis & OOP Recap\nPizza\nsize \nprice\nbake() \ncalculateExpectedTime() \n*\nStudent has \n0..many \nfavorite pizzas\nfavoritePizza\nStudent\nname \nisHungry \nisVegetarian\neat() Unidirectional \nassociation", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 536, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b3df07bc-d75d-4ec0-8fa0-43916e09ea34": {"__data__": {"id_": "b3df07bc-d75d-4ec0-8fa0-43916e09ea34", "embedding": null, "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4041aac0-2e26-4958-8ee7-1e3be16a4012", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c8362f6177fca716b6d09a3ff85ae5f9f5154bd2e27d422e73d6557fac3ae2fe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDependency\n\u2022 Represents a (temporary) relationship where one element (client) relies on \nanother element (supplier) in some way to perform its functionality\n\u2022 Can be categorized into various types: \u2028\nusage, realization, generalization, and constraint dependencies\n36CS 1530 - L11 Requirements Analysis & OOP Recap\nPizza\nsize \nprice\nbake() \ncalculateExpectedTime() \norder()\nStudent\nname \nisHungry \nisVegetarian\neat()\n*\nStudent can \naccess pizzas\ndashed line = dependency.\nsolid line = long-time access", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 531, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "95365b44-abc0-4e80-b9b2-cf5061a8fdeb": {"__data__": {"id_": "95365b44-abc0-4e80-b9b2-cf5061a8fdeb", "embedding": null, "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "834123cf-8d46-44ef-947c-cc4b7a268648", "node_type": "4", "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6cfdd44f4d6a88e097d975a43af3dc6f11d8e4d309ce6baf2c6fe17ea8376b61", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nBidirectional Association\n\u2022 Mutual relationship between two classes in which both classes have \nreferences to each other\n\u2022 Enables direct interaction and information exchange between the two classes \nin both directions\n\u2022 \tBi-directional associations are used when both classes need to maintain a \nsymmetrical connection and collaborate with each other\n37CS 1530 - L11 Requirements Analysis & OOP Recap\n*1Student Order\nA student can place many \norders, an order has a \nreference to one student", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 523, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8dc5e1a3-81c8-47ac-9b4b-aa5333b65d14": {"__data__": {"id_": "8dc5e1a3-81c8-47ac-9b4b-aa5333b65d14", "embedding": null, "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7d54eacf-d81d-4385-b6b7-f542806b8436", "node_type": "4", "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "4d6fa70e73a86184241275d5774b76ac6efa43699c97d3d9509ee9fbcc133aac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUML class diagram \u2014 Multiplicities\n\u2022 Speci\ufb01es more details about an association\n\u2022 Indicates the number of objects that participate in an association\n\u2022 Also indicates whether an association is mandatory\n38CS 1530 - L11 Requirements Analysis & OOP Recap\nMultiplicity Meaning\n1 Exactly 1 (default)\n* Zero or more (unlimited)\n0..* Zero or more (unlimited); same as *\n1..* One or more\n0..1 Zero or one (optional)\n2..42 Speci\ufb01ed range\n2, 4, 6..8 Multiple, disjoint ranges\nCourse Student1..6 10..*\n* PersonCity", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 534, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1f4f59af-cd15-4e28-ab33-93e687a90490": {"__data__": {"id_": "1f4f59af-cd15-4e28-ab33-93e687a90490", "embedding": null, "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0f257d89-1e1e-4fc5-ac06-c78e6249b7e3", "node_type": "4", "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "342ba81cfa873e345f8fdfc8e1be365c72060542b55ea833d97f0d10dabe6497", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTake-Away: Analysis object model (AOM)\n\u2022 De\ufb01nes the system\u2019s structure\n\u2022 Models the most important objects\n\u2022 De\ufb01nes relevant characteristics and behavior objects provide\n\u2022 De\ufb01nes how objects interact with each other\n\u2022 High-level view of the problem!\n\u2022 Helps in de\ufb01ning a system early on without getting lost in too much detail\n39CS 1530 - L11 Requirements Analysis & OOP Recap", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 407, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7260b2b2-50fd-4a44-ba23-20a526422ca5": {"__data__": {"id_": "7260b2b2-50fd-4a44-ba23-20a526422ca5", "embedding": null, "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "64cc7ec8-8a58-41de-8e4f-0463aecc72d8", "node_type": "4", "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L11 Requirements Analysis.pdf", "file_path": "data/Fall25 1530 - L11 Requirements Analysis.pdf", "file_type": "application/pdf", "file_size": 9352128, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "92b64d1021ae57a0c24807c313e0e4cae551990121e987f9c8d75ad88334557a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL11 Requirements Analysis & OOP Recap\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 173, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "036ac395-44aa-474a-8da5-8e1715b9b20a": {"__data__": {"id_": "036ac395-44aa-474a-8da5-8e1715b9b20a", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fced2618-309b-4742-9d50-9dc21f0dbc86", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d37047ce6e7c454309b13e2d9c20d91cc01c9dc06121b7b3d933290e5dfdd88a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL18 MVC & Exercise\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 154, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3c77d6b3-93af-4a2d-a921-1ce277b1074d": {"__data__": {"id_": "3c77d6b3-93af-4a2d-a921-1ce277b1074d", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b085ffe8-a60d-4a74-9dce-674bc277f553", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "24f4538f3fd277ce19b3bd79b23b6667d43228d0b8d420633f91853bfcff9bb3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1416, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f5a9510-3717-4690-acad-83abb818e3f0": {"__data__": {"id_": "9f5a9510-3717-4690-acad-83abb818e3f0", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "489ee0a7-917a-4e7d-9e54-9fc94aa242f4", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "fdb3adb132ddc1aa2ed754cd8969686e42a5d9b84b2fa3236c8dfc429d96aeca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nLearning goals\n\u2022 You can model a UML component diagram\n3", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 115, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8667cfb2-de71-4b7f-8842-86fedc308afa": {"__data__": {"id_": "8667cfb2-de71-4b7f-8842-86fedc308afa", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ad256861-1c4f-443a-a70d-7ffe9918e566", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "378f750eec6e3fc3d3153201f0a57a41a2399be0dd3d8866cf3027390a406637", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nToday\u2019s roadmap\n\u2022 MVC\n\u2022 Model a subsystem decomposition\n4", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 116, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6ba57811-6e39-40e0-a958-10a5660b3fbd": {"__data__": {"id_": "6ba57811-6e39-40e0-a958-10a5660b3fbd", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "520f6701-e446-41a7-8e4a-0ba859cc0495", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "da1fcf169d68a3804c382970e23a8604dc1bfa948395283a89eb6b8cbb34e6a2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nMVC architectural style \u2014 Motivation\n\u2022 Problem: \n\u2022 Systems with high coupling tend to require modi\ufb01cations to both boundary objects \n(presentation/user interface) and entity objects (data) when changes are made to \neither component\n\u2022 Developers cannot work in parallel (UI changes can be made a\ufb00ect the underlying \ndata or logic)\n\u2022 Solution: decouple entity objects (data) from boundary objects (presentation)\n5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 471, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e59647ae-d1ee-4af1-af1c-4b84ca8a2f62": {"__data__": {"id_": "e59647ae-d1ee-4af1-af1c-4b84ca8a2f62", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d7a7b22a-5bd6-4e84-b208-6aab95fcc0ba", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0c86b1f1eed916575237690e34a24b81f7a8fb8e2510957c770afeb0a407bb8b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nMVC architectural style \u2014 De \ufb01nition\n\u2022 Model-view-controller (MVC) architectural style\n\u2022 MVC separates a system into three main components: \n\u2022 Model \u2014 processes and stores entity objects\n\u2022 View \u2014 displays data (boundary objects) to the user\n\u2022 Controller \u2014 Acts as an intermediary between Model and View\n\u2022 MVC promotes a clear separation of concerns and modularity in application \ndesign\n\u2022 Commonly used when developing user interfaces\n\u2022 Widely used in web development, desktop applications, mobile app development, \u2026\n\u2022 Enhances code maintainability and reusability\n6", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 625, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b47e972-4f01-4727-bd5d-ecdb08e4e218": {"__data__": {"id_": "3b47e972-4f01-4727-bd5d-ecdb08e4e218", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e00bd6d6-6384-4b8b-8491-fa0c9c77e050", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "27cb0aae21a8e4853f9d2f324838e890ebb4e918e797a66ec907e7dcff9e01e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nMVC architectural style \u2014 Overview\n\u2022 MVC typically operates on a cycle of user interactions\n\u2022 User input triggers actions within the Controller\n\u2022 The Controller updates the Model based on these actions\n\u2022 Changes in the Model are re\ufb02ected in the View\n7\n\u00absubsystem\u00bb\nView\n\u00absubsystem\u00bb\nModel\n\u00absubsystem\u00bb\nController\nupdate model\nrequest\nupdate view\nnotify view of data change\nupdate model", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 441, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b113fee8-d3c2-4b35-b227-51d6e761bc68": {"__data__": {"id_": "b113fee8-d3c2-4b35-b227-51d6e761bc68", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a28a05e1-8ddb-4262-9fcf-0fc848ae6a9c", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1c267896125284e6cd6fae7526d8143dff176f511de8756433c8b1c97eec88fb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Example] MVC\n\u2022 A website:\n\u2022 Model \u2192 HTML (handles knowledge of the website)\n\u2022 View \u2192 CSS (presentation)\n\u2022 Controller \u2192 browser (manipulates data through, e.g., user input forms)\n\u2022 Mac:\n\u2022 Locate a \ufb01le (keynote presentation) in the \ufb01le browser (Finder)\n\u2022 Open the \ufb01le\u2019s info view\n\u2022 Open the \ufb01le in keynote\n\u2022 Change the \ufb01le\u2019s name (the new name is synced across all views)\n8", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 431, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dd1943ed-f512-469e-83ce-4a2f7ab48399": {"__data__": {"id_": "dd1943ed-f512-469e-83ce-4a2f7ab48399", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "88df271f-5aa7-42e5-b82c-eae93c85c72d", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "016bcb53bbfab4aa1380b1f7678c144932929fa5c03b0cdeff7428c2e93d6618", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Example] Update File name\n9\n:Controller\n:Model:InfoView :KeynoteView\n1: subscribeToFileEvents(\ufb01le) \u2192\n5: getName() \u2192\n\u2190 1: subscribeToFileEvents(\ufb01le)\n\u2190 5: getName()\n3 : setName(newName)\n\u2190\n4: notifySubscribedViews(\ufb01le) \u2192\n\u2190 4: notifySubscribedViews(\ufb01le)\nInformal UML communication diagram: \nattributes & objects are missing\n2", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 388, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5ee7256d-0232-47fc-9007-ed8b4191bf21": {"__data__": {"id_": "5ee7256d-0232-47fc-9007-ed8b4191bf21", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "99b3a58e-e54c-4548-9513-4447f8be9774", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d9a80e8b3bb311cc965d23ae592c625f80fbe7fb46fc2e0772fa9dad43849f87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nI18 - Order system (MVC)\n\u2022 Review: https://github.com/pitt-1530/order-app-mvc-refactor \n\u2022 Describe how you would refactor the system to use the Model-View-\nController architecture\n10\n \n\u23f3 10min\n \ud83e\uddd1\ud83d\udcbb\n\ud83e\uddd1\ud83d\udcbb Pairs", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 265, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d5fe996e-cf3a-4acd-91b6-ecbde90ed62e": {"__data__": {"id_": "d5fe996e-cf3a-4acd-91b6-ecbde90ed62e", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6cf16c6c-7d61-426f-b52e-beb10c309803", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "85d23a9463cf2089f894b3a67126613cdd9210c02862cdde118fda85a1235769", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nDeisgn goals\n\u2022 Maintainability: Each component isolated\n\u2022 Modi\ufb01ability: UI changes don\u2019t break logic\n\u2022 Reusability: Same model works for di\ufb00erent interfaces\n\u2022 Parallel development: Teams work on di\ufb00erent subsystems\n11", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 276, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f12f2f0e-adb0-4b30-bb24-3f19e4143104": {"__data__": {"id_": "f12f2f0e-adb0-4b30-bb24-3f19e4143104", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d8e97a19-e80d-442f-91e6-e32183103632", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "22837bbb866f1334d8d86b6fcd696882151ab1e1d3071029d9611a4251807807", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nVariations of MVC\n12\nMVP \n(Model-View-Presenter)\nView\nModel\nPresenter\nInput\nMVC \n(Model-View-Controller)\nView\nModel\nController\nInput\n*\nMVVM \n(Model-View-Viewmodel)\nView\nView Model\nModel\nInput\n*\nPresenter replaces \ncontroller, View is \npassive\nViewModel exposes data, \nView updates automatically \nvia data binding", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 371, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9943d33c-bda1-464e-b84a-d1017dcca544": {"__data__": {"id_": "9943d33c-bda1-464e-b84a-d1017dcca544", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "06b555ed-b93a-4090-be4e-49c5d71ea8e6", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d5cd53c5c915ddbcbaf51e10db2b2e517ce6ce4622eac35ad25bd5ad49f77143", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nWhen to use MVC\n\u2022 Multiple synchronized views of the same model\n\u2022 Exchangeable views and controllers\n\u2022 Exchangeability of look and feel\n\u2022 Considerations\n\u2022 Increased complexity\n\u2022 Potential for excessive number of updates\n\u2022 Close coupling of views and controllers to model\n13", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 332, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0f519762-2aaf-48a8-8f77-372b2b20b720": {"__data__": {"id_": "0f519762-2aaf-48a8-8f77-372b2b20b720", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f6976a57-2b39-4b4d-aec9-72e33c83ded1", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1f4408fe1d10912705567115f3b7d5d86c7c42e62dbc8802ecb0e45baa4b8e79", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nToday\u2019s roadmap\n\u2022 MVC\n\u2022 Model a subsystem decomposition\n14", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 117, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0d8b71d3-e7cc-46fd-99c0-944c652f8017": {"__data__": {"id_": "0d8b71d3-e7cc-46fd-99c0-944c652f8017", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a73f0daa-8f0d-4e6a-b1dd-e76734a65943", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "608d854a2e65b24509a1a54138783508307839cdde4c39fb5d5d2fa26c740964", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Recap] UML component diagram\n\u2022 High-level view of the system\u2019s design using components and dependencies \n\u2022 A UML component represents a system part (such as classes, packages, or \nsubsystems)\n\u2022 UML component diagrams are used for:\n\u2022 Architectural design and planning \n\u2022 Identifying system components and their interactions\n\u2022 Representing the high-level structure of a software system \n\u2022 Represented as a rectangle with a \u2028\ntabbed rectangle symbol inside\n15\n\u00abcomponent\u00bb\nComponent\n\u00absubsystem\u00bb\nSubsystem1\n\u00abcomponent\u00bb\nComponent", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 583, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6a097882-4567-4aea-a439-e8058332203a": {"__data__": {"id_": "6a097882-4567-4aea-a439-e8058332203a", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0eb67cd7-4b25-4e7f-a301-8eb4b5df6bee", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b3e9f981a2b2c4fbd0e4afcfb38e4d971a5ba0c5d5401525368acb86d538f7ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Recap] UML interfaces\n\u2022 De\ufb01ne how components interact with each other or with external entities\n\u2022 Specify the required and provided services:\n\u2022 Lollipop: provided interface\n\u2022 Socket: required interface\n\u2022 Dependency \u2028\n(a component depends on the implementation of another component)\n\u2022 A port speci\ufb01es a distinct interaction point between \u2028\nthe component and its environment\n\u2022 Ports are depicted as small squares on the sides of classi\ufb01ers\n\u2022 Ports allow to group interfaces\n16", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 534, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "417d2290-24ff-4740-89b7-d2005b7fbfd1": {"__data__": {"id_": "417d2290-24ff-4740-89b7-d2005b7fbfd1", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a5f7cc74-1803-4d60-935d-18a04b83332b", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f401d2a12a2512f175c223ff937e8d2fefa6689c67f7ef472c91d56e198d8dc6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Recap] Subsystem decomposition \u2014 Steps\n1. Identify functional components: Break the system into functional \ncomponents with distinct roles\n2. De\ufb01ne interfaces: Clearly specify how subsystems interact and exchange \ndata\n3. Organize subsystems: E.g., organize subsystems hierarchically\n4. Assign responsibility: Assign responsibilities to each subsystem\n5. Manage dependencies: Minimize dependencies between subsystems\n17", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 479, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "081a4652-13f3-4659-b418-7eef19e938d4": {"__data__": {"id_": "081a4652-13f3-4659-b418-7eef19e938d4", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "acf97632-7b83-4aec-969a-c1f09181c4d8", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "0456bb09d3d7f1f460f73ec3fd3b4d9bd31265cf3386a71e3583752180a8b9ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Example] E-Commerce Ordering System\n18\nadd()\nremove()\ncheckStock()\nname\ndescription\nprice\nProduct\ncreate()\ncon\ufb01rm()\ncalculateTotal()\nview()\ndate\nstatus\nOrder\nname\nemailAddress\naddress\nCustomer\nschedule()\ndate\ntrackingNumber\nShipment\n1..20\n*\nprocess()\npay()\namount\nPayment\nselect()\nPaymentMethod\nselect()\nCredit/Debit\nselect()\nApplePay\nlogin()\nlogout()\nresetPassword()\nuserName\npassword\nAuthentication", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 460, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "157f82f0-c1df-4ad7-86c0-5cf65d7faaa4": {"__data__": {"id_": "157f82f0-c1df-4ad7-86c0-5cf65d7faaa4", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "611ca87b-85fc-40bf-917e-9df9c1345b1b", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "eed220c1116db2357e4d02913fabe5bdac8f0e473cc01df87085f1b6391b57d1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Example] E-Commerce Ordering System - Option I\n19\nadd()\nremove()\ncheckStock()\nname\ndescription\nprice\nProduct\ncreate()\ncon\ufb01rm()\ncalculateTotal()\nview()\ndate\nstatus\nOrder\nname\nemailAddress\naddress\nCustomer\nschedule()\ndate\ntrackingNumber\nShipment\n1..20\n*\nprocess()\npay()\namount\nPayment\nselect()\nPaymentMethod\nselect()\nCredit/Debit\nselect()\nApplePay\nlogin()\nlogout()\nresetPassword()\nuserName\npassword\nAuthentication", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 471, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f8d80d54-992b-4b0b-8ce1-32236f3acbde": {"__data__": {"id_": "f8d80d54-992b-4b0b-8ce1-32236f3acbde", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "20d1d36a-368c-4240-9f2d-780982ad5f09", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "07f2824accb16c96dbff3b272ed54e4952c12f8025976e4cf070a47348fef6b6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Example] E-Commerce Ordering System - Option I\n20\nadd()\nremove()\ncheckStock()\nname\ndescription\nprice\nProduct\ncreate()\ncon\ufb01rm()\ncalculateTotal()\nview()\ndate\nstatus\nOrder\nname\nemailAddress\naddress\nCustomer\nschedule()\ndate\ntrackingNumber\nShipment\n1..20\n*\nprocess()\npay()\namount\nPayment\nselect()\nPaymentMethod\nselect()\nCredit/Debit\nselect()\nApplePay\nlogin()\nlogout()\nresetPassword()\nuserName\npassword\nAuthentication\n\u00absubsystem\u00bb\nPayment\n\u00absubsystem\u00bb\nCustomer\n\u00absubsystem\u00bb\nInventory\n\u00absubsystem\u00bb\nOrder", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 552, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a2040771-5514-4601-b275-8537afffb876": {"__data__": {"id_": "a2040771-5514-4601-b275-8537afffb876", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fc9f91d7-74e3-407d-9c57-9ec8c692096a", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "593f8920ecdde7107c3d4e169e42a718178bcac2458a507d21aa61cbbb1e02df", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\n[Example] Pizza Ordering System\n21\nOrder\ntotalPrice \ndelivery T ype\ncomplete() \ncalculateExpectedTime() \ncreate()\nTopping\nname \namount\nisVegetarian()\n1..10\nBaker\nname \nanchovyLover\nmakePizza()\nHawaiianPizza\naddExtraPineapple()\nYinzerPizza\naddExtraFries()\n*\n*\nStudent\nname \nemailAddress \naddress\nnotify()\nPizza\naddExtraPineapple()\n0..5", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 393, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8c403238-792c-4f56-b35e-dc244a81d4b7": {"__data__": {"id_": "8c403238-792c-4f56-b35e-dc244a81d4b7", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "04687d34-e892-498f-a57f-b43481fc8d8b", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "232246e386094348c1903644c0fc1aa92cf26a327052932097af1a041a0fbc4b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nI18 In-class: Subsystem Decomposition\nDecompose your own or the provided pizza ordering system analysis object \nmodel into subsystems:\n\u2022 Create a UML component diagram\n\u2022 Decide on interfaces\n\u2022 Remember the SOLID principles!\n\u2022 Review architectural styles: Can they solve a \"problem\"? \n\u2022 Add a discussion (3-6 sentences / short bullet points) how your architecture \nfollows SOLID and which architectural style(s) you have chosen and why.\n\u2022 Describe at least 3 SOLID principles\n22\n \n\u23f315 min\n \ud83e\uddd1\ud83d\udcbb\n\ud83e\uddd1\ud83d\udcbb Pairs", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 560, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "18453e4a-85fc-4408-bccd-8b6e034b1056": {"__data__": {"id_": "18453e4a-85fc-4408-bccd-8b6e034b1056", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8dc902f2-8a9f-4161-8a40-75963af57c58", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "51047f7971bbffd5c80005f461be479aa1adf917f54a293fd37af23a7ed8fe12", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg CS 1530 - L18 MVC & Exercise\nReferences\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, \npatterns, and Java. Pearson, 2009.\n\u2022 Object Management Group. Uni\ufb01ed Modeling Language. Version 2.5.1, 2017\n23", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 251, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "08f6346e-6f17-4df5-8634-7718c165c1be": {"__data__": {"id_": "08f6346e-6f17-4df5-8634-7718c165c1be", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "788c8bbe-6075-4ed3-bdd2-9654859a8429", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L18 MVC & Exercise.pdf", "file_path": "data/Fall25 1530 - L18 MVC & Exercise.pdf", "file_type": "application/pdf", "file_size": 5224626, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "eeb13bfb814471de5a427e98ebae6f247f5f0204d50cdf60afe0fe5f4ec1fcad", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL18 MVC & Exercise\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 154, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ae21ef62-62e7-45aa-ba3b-77b6bcda9bcc": {"__data__": {"id_": "ae21ef62-62e7-45aa-ba3b-77b6bcda9bcc", "embedding": null, "metadata": {"page_label": "1", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "149d1f4f-a226-4cd4-ba9e-a92af7715943", "node_type": "4", "metadata": {"page_label": "1", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "725677ac00529e8a25912e7b5bf663f10d7611eb395918a948471a275024497d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata 06\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 128, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bb5a7c5d-168d-4bd2-9344-71eae39d1006": {"__data__": {"id_": "bb5a7c5d-168d-4bd2-9344-71eae39d1006", "embedding": null, "metadata": {"page_label": "2", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ee50cf97-6783-41ff-96e1-e4d607522031", "node_type": "4", "metadata": {"page_label": "2", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "891c0a322ea2f0ed790d9cb18721c0f939fa8c99d02a0336ab81cf1b335b52de", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Language\nA language is a set of strings\nA set can be empty\nA set can have a \ufb01nite number of elements\nA set can have an in\ufb01nite number of elements\nRegular or not regular?\nIf L is the empty language,\nL is regular since we can express it using the regular\nexpression \u2205\nIf L is \ufb01nite\nL = {s1, s2, s3, . . . , sn}\nfor a number n >0 and si is a string,\nLis regular since we can express it using the regular expression\ns1 \u222as2 \u222as3 \u222a\u00b7\u00b7\u00b7\u222a sn\nSo, a non-regular language must be an in\ufb01nite language\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 550, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7768acf-76f3-4656-98f1-86862f72eb70": {"__data__": {"id_": "e7768acf-76f3-4656-98f1-86862f72eb70", "embedding": null, "metadata": {"page_label": "3", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "214b5c3b-2295-4336-a95b-6b1f921bb154", "node_type": "4", "metadata": {"page_label": "3", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2c3892b7eb9ee45b4d32b82837ad77c5b9a8cd5bed5a4643a802a25586af8ba7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular In\ufb01nite Languages\nBut an in\ufb01nite language can be a regular language:\n{w |w starts with a 1 }\n{w |w contains 011 as a substring }\n{w |w ends with 0110}\nTechnically, there are in\ufb01nite number of regular languages\nthat contains in\ufb01nite number of strings\nThere must be something that can be used to distinguish\nbetween regular languages and non-regular languages\nBy de\ufb01nition, a language is regular if there are some \ufb01nite\nstate machines that recognize it\nRecall that the number of states of a \ufb01nite state machine must\nbe \ufb01nite\nBut a \ufb01nite state machine can accept an in\ufb01nite number of\nstrings\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 660, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "309cfea3-9514-41fb-bb52-3cf5c4629d0a": {"__data__": {"id_": "309cfea3-9514-41fb-bb52-3cf5c4629d0a", "embedding": null, "metadata": {"page_label": "4", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ba72f706-fc7c-4719-a686-d0ae2d39307e", "node_type": "4", "metadata": {"page_label": "4", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9ce2f4a77c5ea0cd58b19bc07df8fa14b6f6473efe3ee31215f3f76c99029334", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular In\ufb01nite Languages\nWhat is the special property that makes a \ufb01nite state machine\naccepts an in\ufb01nite number of strings?\nA loop in a path to an accept state\n0 0 0\n1\n0\n1\n1 1\n0\nLet L(M) be the language of the above machine M:\n10\u22171 \u2286L(M)\n10\u22171 ={11,101,1001,10001,... }\u2286 L(M)\nIn other words,10i1 \u2208L(M) for anyi\u22650\n00(1010)\u22170 \u2286L(M)\n00(1010)\u22170 ={000,0010100,00101010100,... }\u2286 L(M)\nIn other words,00(1010)i0 \u2208L(M) for anyi\u22650\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 486, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b6970859-a592-456e-a87a-1a4b9df159a0": {"__data__": {"id_": "b6970859-a592-456e-a87a-1a4b9df159a0", "embedding": null, "metadata": {"page_label": "5", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fb8de058-3412-4319-83ab-5d7c5e5def01", "node_type": "4", "metadata": {"page_label": "5", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4a3c48fb52f206c285525de6495fb1308401c08e6be6f3cb5db0293a9ba3228a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular In\ufb01nite Languages\nGiven a DFA M, how to detect that there is a loop in a path\nto an accept state?\nSuppose a DFA M has 5 states and it accepts the string\nw = w1w2w3w4w5 of length 5\nw1 w2 w3 w4 w5\nThere are the total of 6 current states but there are only 5\nstates\nAt least two of them must be the same (Pigeonhole principle)\nSuppose the third and the \ufb01fth are the same state\nw1 w2\nw3w4\nw5\nw1w2(w3w4)iw5 \u2208L(M) for anyi\u22650\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 490, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0f84b520-caad-48cf-81ea-cf1934f2d633": {"__data__": {"id_": "0f84b520-caad-48cf-81ea-cf1934f2d633", "embedding": null, "metadata": {"page_label": "6", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cbc097ec-7a34-4658-aee0-8e469eb60c41", "node_type": "4", "metadata": {"page_label": "6", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "6a6c9a8fa071583d45adc060134eaf0dda8d930bcd6c7b8761d140b009a272f0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Regular In\ufb01nite Languages\nFrom previous example\nAny strings of length at least5 that is accepted by M will go\nthrough a loop\nIf we let x = w1w2, y = w3w4, and z = w5, we can say that\nxyiz \u2208L(M) for any i \u22650\nGiven an in\ufb01nite regular language A, there is a \ufb01nite state\nmachine M that recognizes it\nBut we have no idea how many states it has\nSuppose it has p states\nAny string s\u2208A of length at leastp will go through a loop\ns must be divided intos= xyz where y\u0338= \u03b5 such that\nxyiz\u2208A for anyi\u22650\nwhere y is the string that takes you around a loop\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 604, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1fe388db-cdc6-4b41-a010-8952948c5164": {"__data__": {"id_": "1fe388db-cdc6-4b41-a010-8952948c5164", "embedding": null, "metadata": {"page_label": "7", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5fcb0fd7-d6f0-4bee-a2eb-7099b8b3eec7", "node_type": "4", "metadata": {"page_label": "7", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "743ee2e89202071abd968608f03b0aebba8f202be2aced54b803305368fc5c64", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nConsider the following language\nA = {w |w contains 011 as a substring }\nWe need at least a 4-states DFA to recognize A\nLet\u2019s \ufb01nd a string s \u2208A of length at least 4\nLet s = 0111\nx= 011, y= 1, z= \u03b5\nxy0z= xz= 011\u2208A\nxy1z= xyz = 0111\u2208A\nxy2z= xyyz = 01111\u2208A\n...\nxyiz\u2208A for i\u22650\nLet s = 0101011\nx= 0, y= 1, z= 01011 and xyiz\u2208A for i\u22650\nxy0z= xz= 001011\u2208A\nxy1z= xyz = 0101011\u2208A\nxy2z= xyyz = 01101011\u2208A\n...\nxyiz\u2208A for i\u22650\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 482, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eb21d063-47d4-4887-9e6f-10e331867c93": {"__data__": {"id_": "eb21d063-47d4-4887-9e6f-10e331867c93", "embedding": null, "metadata": {"page_label": "8", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "85065a7f-2d74-4477-99cc-98369b66ff24", "node_type": "4", "metadata": {"page_label": "8", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "947307388952aa44cca22f1ca92f4d8d04be219ee97a6f05a2bb33c95be1231c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Pumping Lemma\nThe pumping lemma states that all regular languages has a\nspecial property\nIf a language lack this property, it is not a regular language\nProperty\nAll strings in the language can be pumped if they are at least as\nlong as a certain special value, called the pumping length. Each\nsuch strings contains a section that can be repeated any number of\ntimes with the resulting string remaining in the language.\npumped: xyiz for any i \u22650\nWe can insert the string y in between x and z any number of\ntimes but the result string is still in the language\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 620, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7f353fd8-77d8-451f-9cfa-7806b421c70f": {"__data__": {"id_": "7f353fd8-77d8-451f-9cfa-7806b421c70f", "embedding": null, "metadata": {"page_label": "9", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "862a578f-5af8-4cca-a8bc-5a97584c5261", "node_type": "4", "metadata": {"page_label": "9", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "77af86a319a0ab9cbb4b368b34983b3cfc8ca5a12e4c620de905ce0184fa5be6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Pumping Lemma\nPumping Lemma\nIf A is a regular language, then there is a number p (the pumping\nlength) where if s is any string in A of length at least p, then s\nmust be divided into three pieces, s = xyz, satisfying the following\nconditions:\n1 for each i \u22650, xyiz \u2208A,\n2 |y|> 0, and\n3 |xy|\u2264 p.\nwhere\n|s|represents the length of the string s\nyi means that i copies of y are concatenated together\ny0 equals \u03b5 but it does not mean that y = \u03b5\n(010)0 = \u03b5 but 010 \u0338= \u03b5\nxy0z = xz, xy1z = xyz, xy2z = xyyz, xy3z = xyyyz , and so\non\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 586, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7d829aac-3f25-49b6-84a0-e80c23094161": {"__data__": {"id_": "7d829aac-3f25-49b6-84a0-e80c23094161", "embedding": null, "metadata": {"page_label": "10", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bd23c079-66de-4f41-bf1d-5cba101cb359", "node_type": "4", "metadata": {"page_label": "10", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9d1cedcaf975ace80a003ff783e1d995126a0a04ed69e6286a46fce666ad973d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Proof of the Pumping Lemma\nLet M be a DFA recognizing A and p (the pumping length)\nbe the number of states of M.\nLet s be a string of length at least p.\ns = s1s2 . . . sn where sx \u2208\u03a3 and n \u2265p.\nLet r1, r2, . . . , rn+1 be the sequence of states of M when\nprocessing s.\nr1 is the start state of M\nWhen s1 is processed, the state of M is changed to r2, and so\non.\n\u03b4(r1,s1) =r2\n\u03b4(r2,s2) =r3\n...\n\u03b4(ri,si) =ri+1 for 1 \u2264i\u2264n.\n...\n\u03b4(rn,sn) =rn+1\nNote that there is no restriction that rx and ry cannot be the\nsame state.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 575, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a80623b9-2aa4-44a1-806a-19b92e29a379": {"__data__": {"id_": "a80623b9-2aa4-44a1-806a-19b92e29a379", "embedding": null, "metadata": {"page_label": "11", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "723196a1-6d57-4a4d-bfd9-e08eca827c91", "node_type": "4", "metadata": {"page_label": "11", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "58ce79aaf4ff8e8e655f93082f59993e5c7e3d4570b15aad893d88e7456739e7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Proof of the Pumping Lemma\nThe sequence r1, r2, . . . , rn+1 consists of n + 1 states\nSince n \u2265p, the above sequence has at least p + 1 states.\nSince the machine M has only p states, in the \ufb01rst p + 1\nstates of the sequence, at least two states rj and rl must be\nthe same state.\nLet rj be the \ufb01rst occurrence of the repeated state\nLet rl be the second occurrence of the repeated state in the\nabove sequence.\nNote that j < l.\nSince rl is in the \ufb01rst p + 1 states of the sequence l \u2264p + 1.\nLet\nx = s1 . . . sj\u22121\ny = sj . . . sl\u22121\nz = sl . . . sn\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 607, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "41f1e71f-4209-4623-b0d9-103f47179a3f": {"__data__": {"id_": "41f1e71f-4209-4623-b0d9-103f47179a3f", "embedding": null, "metadata": {"page_label": "12", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a7f773ba-d8b1-4e3d-b401-a47dd0de8fe0", "node_type": "4", "metadata": {"page_label": "12", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "186ef942e4b383f236990ea95c69442399057d94c4ec3bfa369671a10dd330e9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Proof of the Pumping Lemma\nIf M accepts s = s1s2 . . . sn and s = xyz,\nx takes M from r1 to rj,\ny takes M from rj to rl, and\nz takes M from rl to rn+1\nwhere rn+1 is an accept state.\nLet\u2019s check all conditions of the pumping lemma\n1 Thus M accept xyiz for i \u22650.\n2 Since j < l, |y|> 0.\n3 Since l \u2264p + 1, |xy|\u2264 p.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 374, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "57edf931-3518-42f4-a77c-24a154b1b2fc": {"__data__": {"id_": "57edf931-3518-42f4-a77c-24a154b1b2fc", "embedding": null, "metadata": {"page_label": "13", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "71996915-4f9c-4f46-a4a8-d67d6cec7e5d", "node_type": "4", "metadata": {"page_label": "13", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "b0532e8f591dcb2050e452f1d79735f953fe6124414c3c9eb022a3e40d96d684", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "How to use the Pumping Lemma\nTo check whether a language B is not regular using the\nPumping Lemma, we use prove by contradiction\nAssume that B is regular\nThere exists a machineM with p states that recognizesB\nSelect a string s \u2208B of length at least p so that the conditions\n1, 2, and 3 of the pumping lemma lead to a contradiction\nNotes\nThe choice of s must involve p to ensure that s has length at\nleast p (e.g., s = 0p011, s = apba2p or s = bp+1apb)\nIt is possible that some choices of s do not produce\ncontradiction. If we do not get a contradiction, we have\nnot proved anything yet\nOnce you pick an s, nothing tells us what x, y, and z should\nbe. We have to show that we must get a contradiction,\nno matter whatx, y, and z are, as long as they satisfy\nconditions 1, 2, and 3.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 843, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6e7ed586-1fdc-4b3d-a645-5292cb1a036b": {"__data__": {"id_": "6e7ed586-1fdc-4b3d-a645-5292cb1a036b", "embedding": null, "metadata": {"page_label": "14", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "05379038-70f9-4974-993a-8e6caff3caac", "node_type": "4", "metadata": {"page_label": "14", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f16e1e012c9e3cc82feef6bf66a5c9085e3ab1924d6fda5dd67139ce009979ed", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nShow that B = {0n1n |n \u22650}is not regular.\nAssume that B is regular. In other words, there exists a\nmachine M with p states that recognizes B.\nThere are in\ufb01nite number of strings in B of length at least p\nJust pick one (for now)\nLet s = 0p1p. Note that s \u2208B and |s|= 2p \u2265p.\nThe pumping lemma says there are strings x, y, and z such\nthat s = xyz satisfying the conditions 1, 2, and 3\nRecall that there are multiple ways to divide s into x, y, and z\nsuch that xyz = s = 0p1p\nExamples:\nx= \u03b5, y= 0, and z= 0p\u221211p \u21ddxyz = \u03b500p\u221211p = 0p1p\nx= 02, y= 03, and z= 0p\u221251p \u21ddxyz = 02030p\u221251p = 0p1p\nx= 0p1, y= 1, and z= 1p\u22122 \u21ddxyz = 0p111p\u22122 = 0p1p\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 704, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0bf32ea-a5b9-4b25-9c0d-443932a3b375": {"__data__": {"id_": "c0bf32ea-a5b9-4b25-9c0d-443932a3b375", "embedding": null, "metadata": {"page_label": "15", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2804aa45-c887-47cb-ab32-1044aea66c06", "node_type": "4", "metadata": {"page_label": "15", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "fade7b7ac1af2173c9887bc2ca9481f35ee4ee0af2b1dbcaa91dc32d912249c7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example: B = {0n1n |n \u22650}\nSince there are multiple ways to divide s, we are going to\nfocus on all possible way to divide s into x, y, and z satisfying\nonly conditions 2 and 3 \ufb01rst\nWe will try to get a contradiction from the \ufb01rst condition\nThe condition 3 says |xy|\u2264 p\nSince s starts with p 0s, to satisfy this condition, x and y must\nbe strings that contains only 0s\nIf x contains one 1, fors= 0p1p = xyz, |x|is already p+ 1\n|xy|= |x|+ |y|= (p+ 1) +|y|>p\nIf y contains one 1, fors= 0p1p = xyz, |xy|is already p+ 1\nFormally, to satisfy conditions 3\nx = 0j for some j \u22650\ny = 0k for some k >0\nk> 0 makes |y|>0 (satisfying condition 2)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 695, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4c183789-4a2d-4c9f-8113-4db15dc022bb": {"__data__": {"id_": "4c183789-4a2d-4c9f-8113-4db15dc022bb", "embedding": null, "metadata": {"page_label": "16", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a94ba949-63a1-4e20-9d69-a3bce6e0c064", "node_type": "4", "metadata": {"page_label": "16", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "11bbf9a7f00308cddd32ee4fb877ba1290597adede7f81d8024329d029a37988", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example: B = {0n1n |n \u22650}\nNow we have\nx = 0j for some j \u22650 and\ny = 0k for some k >0\nTo make xyz = s = 0p1p, z must be 0p\u2212(j+k)1p\nxyz = 0j0k0p\u2212(j+k)1p = 0j+k+p\u2212(j+k)1p = 0p1p\nCondition 1 says that xyiz \u2208B for any i \u22650\nWe just need to \ufb01nd an i such that xyiz \u0338\u2208B\nLet i = 0\nxy0z = 0j(0k)00p\u2212(j+k)1p\n= 0j0p\u2212(j+1)1p\n= 0p\u2212k1p\nFor 0p\u2212k1p to be in B = {0n1n |n \u22650}\np\u2212k must be equal top\nk must be 0 to makep\u2212k= p but k cannot be 0\nContradiction \u21ddB is not regular\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 518, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3aaab1db-2726-4c74-bba8-f15a591ca39b": {"__data__": {"id_": "3aaab1db-2726-4c74-bba8-f15a591ca39b", "embedding": null, "metadata": {"page_label": "17", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "818214f2-3822-46d7-9011-003c5e5635f6", "node_type": "4", "metadata": {"page_label": "17", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "814c6e26ed8086a899fcaaa23d3632cff62249f7e579acb7c6f6be94c7d1dd79", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example: B = {0n1n |n \u22650}\nThere are multiple is that can lead to a contradiction\nBut i should not be 1 since xy1z = xyz = s \u2208B\nLet i = 2\nxy2z = 0j(0k)20p\u2212(j+k)1p\n= 0j0k0k0p\u2212(j+1)1p\n= 0p+k1p\nFor 0p+k1p to be in B\np + k must be equal to p\nk must be 0 to make p + k = p but k cannot be 0\nContradiction \u21ddB is not regular\nIn this example, any i \u0338= 1 will give you a contradiction\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 438, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "621b5467-f279-4398-aeea-f28bee4cb050": {"__data__": {"id_": "621b5467-f279-4398-aeea-f28bee4cb050", "embedding": null, "metadata": {"page_label": "18", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "68854cb3-92e0-458d-a6c7-344fd7dc8e97", "node_type": "4", "metadata": {"page_label": "18", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "15a3f52c8cb62cc26ac21a54ec66ac401b6ed65203bd558445df93265883a11a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example: B = {0n1n |n \u22650}\nThere are multiple strings s of length at least p that work for\nthis example\nExample: s = 02p12p\nThis this string s, use exact same proof where x = 0j for any\nj \u22650, y = 0k for any k >0, and z = 02p\u2212(j+k)12p\nExample: s = 0\np\n2 1\np\n2\nThis one is a little bit harder since condition 3 does not help\nmuch\nThere are three possibility for the string y\ny contains nothing but0s (y= 0k for somek> 0) \u21dd\ncontradiction because xy2z will have more0s than 1s\ny contains some 0s and 1s (y= 0k1m for somek,m> 0) \u21dd\ncontradiction because xy2z= 0j0k1m0k1m1\np\n2 \u2212m \u0338\u2208B\ny contains nothing but1s (y= 1k for somek> 0) \u21dd\ncontradiction because xy2z will have more1s than 0s\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 739, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b049f9c0-0562-4f22-8c35-db3b2246c6b6": {"__data__": {"id_": "b049f9c0-0562-4f22-8c35-db3b2246c6b6", "embedding": null, "metadata": {"page_label": "19", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0901d0af-95bf-4019-9f80-b5abca807dd1", "node_type": "4", "metadata": {"page_label": "19", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "5b7257967943f38a0387bc28680b2c10bfb050393a0a4227810756720246ae6c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Rule of Thumb\nPick a string s in the language of length at least p such that\nit starts with at least p of the same symbol\n0p1p\n02p12p\nCondition 3 will help reducing the amount of proofs that you\nhave to do\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 269, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b98fc14d-15c8-4a1c-87a8-e7eaa4bd8aca": {"__data__": {"id_": "b98fc14d-15c8-4a1c-87a8-e7eaa4bd8aca", "embedding": null, "metadata": {"page_label": "20", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1dcd0925-a7e7-4b95-97e6-e92314e3728d", "node_type": "4", "metadata": {"page_label": "20", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "572ee8a22e2fc3f54c50ba224e9d296a54a63b67ccff1bbe621ee5b63e986e33", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Some Incorrect Proofs: B = {0n1n |n \u22650}\nLet s = 000111\ns does not have length at least p (p can be any positive\nnumber)\nLet s = 0p12p\ns \u0338\u2208B, cannot use the Pumping lemma\nLet s = 0p1p and x = 0, y = 0p\u22121, z = 1p\nThis only show one way of dividing s into x, y, and z such\nthat s = xyz\nThere are multiple ways\nNeed to show them all by using variable (e.g., 0j, 0k, etc)\nLet s = 0p1p and x = 0j, y = 0k, and z = 1p\nxyz = 0j0k1p = 0j+k1p \u0338= s = 0p1p\nIf you say j + k = p, it is still incorrect\nYou only show all possible way such thats= xyz where\nz= 1p\nBut z can have some0s as well\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 641, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "151962e3-139c-4ea2-bd46-f6894653b20a": {"__data__": {"id_": "151962e3-139c-4ea2-bd46-f6894653b20a", "embedding": null, "metadata": {"page_label": "21", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e4117045-3279-4229-bccb-1e02875f3276", "node_type": "4", "metadata": {"page_label": "21", "file_name": "finite_automata_06_handout.pdf", "file_path": "data/finite_automata_06_handout.pdf", "file_type": "application/pdf", "file_size": 294833, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "5d86bc50a21079e6172559ebdc7f1df1e81d41bd277620db06d0678614a7997a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Show that B = {0n1n |n \u22650}is not regular\nAssume that B is regular. Since B is regular, the Pumping lemma says that for any\nstring s \u2208B of length at leastp, s can be divided intos = xyz satisfying the\nfollowing conditions:\n1 xyiz \u2208B for anyi \u22650\n2 |y|> 0\n3 |xy|\u2264 p\nLet s = 0p1p. Since s starts withp 0s, to satisfy the third condition,x and y are\nstrings that contain nothing but0s. In other words,x = 0j for anyj \u22650, and y = 0k\nfor anyk >0. Note that k must be greater than0 because |y|= |0k|= k, and the\ncondition 2 says that|y|> 0. Since x = 0j and y = 0k, z = 0p\u2212(j+k)1p. Let i = 0.\nWe have\nxyiz = xy0z\n= xz\n= 0j0p\u2212(j+k)1p\n= 0p\u2212k1p\nFor the string0p\u2212k1p to be inB, the number of0s must be equal to the number of\n1s. In other words,p \u2212k must be equal top. This requires k to be 0.But since k\nmust be greater than 0,xy0z \u0338\u2208B \u2014 contradiction. Therefore, B is not regular.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 06", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 933, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23511452-7617-4c3b-93db-e966a145519c": {"__data__": {"id_": "23511452-7617-4c3b-93db-e966a145519c", "embedding": null, "metadata": {"page_label": "1", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "982a857d-36b1-49c1-8ece-a2aef40732ab", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2adb040c165b50cf084726ab65bcfaa6d077bf0f87d246e594cdb880d4cb5ae1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 1\n86 S.Ct. 1602\nSupreme Court of the United States\nErnesto A. MIRANDA, Petitioner,\nv.\nSTATE OF ARIZONA.\nMichael VIGNERA, Petitioner,\nv.\nSTATE OF NEW YORK.\nCarl Calvin WESTOVER, Petitioner,\nv.\nUNITED STATES.\nSTATE OF CALIFORNIA, Petitioner,\nv.\nRoy Allen STEWART.\nNos. 759\u2014761, 584.\n|\nArgued Feb. 28, March 1 and 2, 1966.\n|\nDecided June 13, 1966.\n|\nRehearing Denied No. 584 Oct. 10, 1966.\nSee 87 S.Ct. 11.\nSynopsis\nCriminal prosecutions. The Superior Court, Maricopa County, Arizona, rendered judgment, and the Supreme Court of Arizona,\n98 Ariz. 18, 401 P.2d 721, affirmed. The Supreme Court, Kings County, New York, rendered judgment, and the Supreme Court,\nAppellate Division, Second Department, 21 A.D.2d 752, 252 N.Y .S.2d 19, affirmed, as did the Court of Appeals of the State\nof New York at 15 N.Y .2d 970, 259 N.Y .S.2d 857, 207 N.E.2d 527. The United States District Court for the Northern District\nof California, Northern Division, rendered judgment, and the United States Court of Appeals for the Ninth Circuit, 342 F.2d\n684, affirmed. The Superior Court, Los Angeles County, California, rendered judgment and the Supreme Court of California,\n62 Cal.2d 571, 43 Cal.Rptr. 201, 400 P.2d 97, reversed. In the first three cases, defendants obtained certiorari, and the State of\nCalifornia obtained certiorari in the fourth case. The Supreme Court, Mr. Chief Justice Warren, held that statements obtained\nfrom defendants during incommunicado interrogation in police-dominated atmosphere, without full warning of constitutional\nrights, were inadmissible as having been obtained in violation of Fifth Amendment privilege against self-incrimination.\nJudgments in first three cases reversed and judgment in fourth case affirmed.\nMr. Justice Harlan, Mr. Justice Stewart, and Mr. Justice White dissented; Mr. Justice Clark dissented in part.\nAttorneys and Law Firms\n**1609 No. 759:\n*438 John J. Flynn, Phoenix, Ariz., for petitioner.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2123, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "12b0b879-4b72-4f08-85e7-8a8352465a2b": {"__data__": {"id_": "12b0b879-4b72-4f08-85e7-8a8352465a2b", "embedding": null, "metadata": {"page_label": "2", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f19a80f2-a2f1-4789-8a21-e4ef93a59eee", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e2b7efb875c056461d10cc591cd7b8a137391c9bf5ef66d2a7064d190a782e1d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 2\nGary K. Nelson, Phoenix, Ariz., for respondent.\nTelford Taylor, New York City, for State of New York, as amicus curiae, by special leave of Court. (Also in Nos. 584, 760,\n761 and 762)\nDuane R. Nedrud, for National District Attorneys Ass'n, as amicus curiae, by special leave of Court. (Also in Nos. 760, 762\nand 584)\nNo. 760:\nVictor M. Earle, III, New York City, for petitioner.\nWilliam I. Siegel, Brooklyn, for respondent.\nNo. 761:\nF. Conger Fawcett, San Francisco, Cal., for petitioner.\nSol. Gen. Thurgood Marshall, for respondent.\nNo. 584:\nGorden Ringer, Los Angeles, Cal., for petitioner.\nWilliam A. Norris, Los Angeles, Cal., for respondent.\nOpinion\n*439 Mr. Chief Justice WARREN delivered the opinion of the Court.\nThe cases before us raise questions which go to the roots of our concepts of American criminal jurisprudence: the restraints\nsociety must observe consistent with the Federal Constitution in prosecuting individuals for crime. More specifically, we deal\nwith the admissibility of statements obtained from an individual who is subjected to custodial police interrogation and the\nnecessity for procedures which assure that the individual is accorded his privilege under the Fifth Amendment to the Constitution\nnot to be compelled to incriminate himself.\n*440 We dealt with certain phases of this problem recently in **1610 Escobedo v. State of Illinois, 378 U.S. 478, 84 S.Ct.\n1758, 12 L.Ed.2d 977 (1964). There, as in the four cases before us, law enforcement officials took the defendant into custody\nand interrogated him in a police station for the purpose of obtaining a confession. The police did not effectively advise him of\nhis right to remain silent or of his right to consult with his attorney. Rather, they confronted him with an alleged accomplice who\naccused him of having perpetrated a murder. When the defendant denied the accusation and said \u2018I didn't shoot Manuel, you did\nit,\u2019 they handcuffed him and took him to an interrogation room. There, while handcuffed and standing, he was questioned for\nfour hours until he confessed. During this interrogation, the police denied his request to speak to his attorney, and they prevented\nhis retained attorney, who had come to the police station, from consulting with him. At his trial, the State, over his objection,\nintroduced the confession against him. We held that the statements thus made were constitutionally inadmissible.\n This case has been the subject of judicial interpretation and spirited legal debate since it was decided two years ago. Both\nstate and federal courts, in assessing its implications, have arrived at varying conclusions. 1 A wealth of scholarly material\nhas been written tracing its ramifications and underpinnings. 2 Police and prosecutor *441 have speculated on its range and\ndesirability.3 We granted **1611 certiorari in these cases, 382 U.S. 924, 925, 937, 86 S.Ct. 318, 320, 395, 15 L.Ed.2d 338, 339,\n348, in order further to explore some facets of the problems, thus exposed, of applying the privilege against self-incrimination to\nin-custody interrogation, and to give *442 concrete constitutional guidelines for law enforcement agencies and courts to follow.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3375, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9ab710e9-8938-4d9a-ab59-7f3f5017db0d": {"__data__": {"id_": "9ab710e9-8938-4d9a-ab59-7f3f5017db0d", "embedding": null, "metadata": {"page_label": "3", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3dba81c0-a0be-4d2e-abbd-25127fdfc352", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "db06289e2a801cb11169d8402318821ee379331643fea916228e6e18cb90ccde", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "15f38e44-0b79-41c4-9780-7b0b6c65baee", "node_type": "1", "metadata": {}, "hash": "3a44f0a2b934c7b002422ea02c56cf73525327e7a65d63ef6232977509ea8d35", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 3\n We start here, as we did in Escobedo, with the premise that our holding is not an innovation in our jurisprudence, but is an\napplication of principles long recognized and applied in other settings. We have undertaken a thorough re-examination of the\nEscobedo decision and the principles it announced, and we reaffirm it. That case was but an explication of basic rights that are\nenshrined in our Constitution\u2014that \u2018No person * * * shall be compelled in any criminal case to be a witness against himself,\u2019\nand that \u2018the accused shall * * * have the Assistance of Counsel\u2019\u2014rights which were put in jeopardy in that case through official\noverbearing. These precious rights were fixed in our Constitution only after centuries of persecution and struggle. And in the\nwords of Chief Justice Marshall, they were secured \u2018for ages to come, and * * * designed to approach immortality as nearly as\nhuman institutions can approach it,\u2019 Cohens v. Commonwealth of Virginia, 6 Wheat. 264, 387, 5 L.Ed. 257 (1821).\nOver 70 years ago, our predecessors on this Court eloquently stated:\n\u2018The maxim \u2018Nemo tenetur seipsum accusare,\u2019 had its origin in a protest against the inquisitorial and manifestly unjust methods\nof interrogating accused persons, which (have) long obtained in the continental system, and, until the expulsion of the Stuarts\nfrom the British throne in 1688, and the erection of additional barriers for the protection of the people against the exercise of\narbitrary power, (were) not uncommon even in England. While the admissions or confessions of the prisoner, when voluntarily\nand freely made, have always ranked high in the scale of incriminating evidence, if an accused person be asked to explain\nhis apparent connection with a crime under investigation, the ease with which the *443 questions put to him may assume an\ninquisitorial character, the temptation to press the witness unduly, to browbeat him if he be timid or reluctant, to push him into\na corner, and to entrap him into fatal contradictions, which is so painfully evident in many of the earlier state trials, notably in\nthose of Sir Nicholas Throckmorton, and Udal, the Puritan minister, made the system so odious as to give rise to a demand for\nits total abolition. The change in the English criminal procedure in that particular seems to be founded upon no statute and no\njudicial opinion, but upon a general and silent acquiescence of the courts in a popular demand. But, however adopted, it has\nbecome firmly embedded in English, as well as in American jurisprudence. So deeply did the iniquities of the ancient system\nimpress themselves upon the minds of the American colonists that the States, with one accord, made a denial of the right to\nquestion an accused person a part of their fundamental law, so that a maxim, which in England was a mere rule of evidence,\nbecame clothed in this country with the impregnability of a constitutional enactment.' Brown v. Walker, 161 U.S. 591, 596\u2014\n597, 16 S.Ct. 644, 646, 40 L.Ed. 819 (1896).\nIn stating the obligation of the judiciary to apply these constitutional rights, this Court declared in Weems v. United States, 217\nU.S. 349, 373, 30 S.Ct. 544, 551, 54 L.Ed. 793 (1910):\n\u2018* * * our contemplation cannot be only of what has been, but of what may be. Under any other rule\na constitution would indeed be as easy of application as it would be deficient in efficacy and power. Its\ngeneral principles would have little value, and be converted **1612 by precedent into impotent and lifeless\nformulas. Rights declared in words might be lost in reality. And this has been recognized. The *444\nmeaning and vitality of the Constitution have developed against narrow and restrictive construction.\u2019\nThis was the spirit in which we delineated, in meaningful language, the manner in which the constitutional rights of the individual\ncould be enforced against overzealous police practices.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4090, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "15f38e44-0b79-41c4-9780-7b0b6c65baee": {"__data__": {"id_": "15f38e44-0b79-41c4-9780-7b0b6c65baee", "embedding": null, "metadata": {"page_label": "3", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3dba81c0-a0be-4d2e-abbd-25127fdfc352", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "db06289e2a801cb11169d8402318821ee379331643fea916228e6e18cb90ccde", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9ab710e9-8938-4d9a-ab59-7f3f5017db0d", "node_type": "1", "metadata": {"page_label": "3", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f384219f676c3b57fdf5002204de1ee4e811f5790c5797b58d022984607e2741", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "349, 373, 30 S.Ct. 544, 551, 54 L.Ed. 793 (1910):\n\u2018* * * our contemplation cannot be only of what has been, but of what may be. Under any other rule\na constitution would indeed be as easy of application as it would be deficient in efficacy and power. Its\ngeneral principles would have little value, and be converted **1612 by precedent into impotent and lifeless\nformulas. Rights declared in words might be lost in reality. And this has been recognized. The *444\nmeaning and vitality of the Constitution have developed against narrow and restrictive construction.\u2019\nThis was the spirit in which we delineated, in meaningful language, the manner in which the constitutional rights of the individual\ncould be enforced against overzealous police practices. It was necessary in Escobedo, as here, to insure that what was proclaimed\nin the Constitution had not become but a \u2018form of words,\u2019 Silverthorn Lumber Co. v. United States, 251 U.S. 385, 392, 40 S.Ct.\n182, 64 L.Ed. 319 (1920), in the hands of government officials. And it is in this spirit, consistent with our role as judges, that\nwe adhere to the principles of Escobedo today.\n Our holding will be spelled out with some specificity in the pages which follow but briefly stated it is this: the prosecution\nmay not use statements, whether exculpatory or inculpatory, stemming from custodial interrogation of the defendant unless\nit demonstrates the use of procedural safeguards effective to secure the privilege against self-incrimination. By custodial\ninterrogation, we mean questioning initiated by law enforcement officers after a person has been taken into custody or otherwise", "mimetype": "text/plain", "start_char_idx": 3337, "end_char_idx": 4972, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0ed260ac-2b54-4e67-8bc1-e9ed143e5bce": {"__data__": {"id_": "0ed260ac-2b54-4e67-8bc1-e9ed143e5bce", "embedding": null, "metadata": {"page_label": "4", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "26c0bd2b-1781-404c-b287-62db8e2d23a9", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "09e7758c45cfb4ea6765335a618455f051e37e87af3e209481e9b3c94e6a29c8", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "12ce2863-5b0c-4701-8c60-d057871daaac", "node_type": "1", "metadata": {}, "hash": "21da158fad29aff8965afeb037be420f627aa70af56d3c73f78341cb7ebfa6d0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 4\ndeprived of his freedom of action in any significant way.4 As for the procedural safeguards to be employed, unless other fully\neffective means are devised to inform accused persons of their right of silence and to assure a continuous opportunity to exercise\nit, the following measures are required. Prior to any questioning, the person must be warned that he has a right to remain silent,\nthat any statement he does make may be used as evidence against him, and that he has a right to the presence of an attorney,\neither retained or appointed. The defendant may waive effectuation of these rights, provided the waiver is made voluntarily,\nknowingly and intelligently. If, however, he indicates in any manner and at any stage of the *445 process that he wishes to\nconsult with an attorney before speaking there can be no questioning. Likewise, if the individual is alone and indicates in any\nmanner that he does not wish to be interrogated, the police may not question him. The mere fact that he may have answered\nsome questions or volunteered some statements on his own does not deprive him of the right to refrain from answering any\nfurther inquiries until he has consulted with an attorney and thereafter consents to be questioned.\n1.\nThe constitutional issue we decide in each of these cases is the admissibility of statements obtained from a defendant questioned\nwhile in custody or otherwise deprived of his freedom of action in any significant way. In each, the defendant was questioned by\npolice officers, detectives, or a prosecuting attorney in a room in which he was cut off from the outside world. In none of these\ncases was the defendant given a full and effective warning of his rights at the outset of the interrogation process. In all the cases,\nthe questioning elicited oral admissions, and in three of them, signed statements as well which were admitted at their trials.\nThey all thus share salient features\u2014incommunicado interrogation of individuals in a police-dominated atmosphere, resulting\nin self-incriminating statements without full warnings of constitutional rights.\nAn understanding of the nature and setting of this in-custody interrogation is essential to our decisions today. The difficulty in\ndepicting what transpires at such interrogations stems from the fact **1613 that in this country they have largely taken place\nincommunicado. From extensive factual studies undertaken in the early 1930's, including the famous Wickersham Report to\nCongress by a Presidential Commission, it is clear that police violence and the \u2018third degree\u2019 flourished at that time. 5 *446\nIn a series of cases decided by this Court long after these studies, the police resorted to physical brutality\u2014beatings, hanging,\nwhipping\u2014and to sustained and protracted questioning incommunicado in order to extort confessions. 6 The Commission on\nCivil Rights in 1961 found much evidence to indicate that \u2018some policemen still resort to physical force to obtain confessions,\u2019\n1961 Comm'n on Civil Rights Rep., Justice, pt. 5, 17. The use of physical brutality and violence is not, unfortunately, relegated\nto the past or to any part of the country. Only recently in Kings County, New York, the police brutally beat, kicked and placed\nlighted cigarette butts on the back of a potential witness under interrogation for the purpose of securing a statement incriminating\na third party. People v. Portelli, 15 N.Y .2d 235, 257 N.Y .S.2d 931, 205 N.E.2d 857 (1965). 7\n*447 The examples given above are undoubtedly the exception now, but they are sufficiently widespread to be the object of\nconcern. Unless a proper limitation upon custodial interrogation is achieved\u2014such as these decisions will advance\u2014there can\nbe no assurance that practices of this nature will be eradicated in the foreseeable future. The conclusion of the Wickersham\n**1614 Commission Report, made over 30 years ago, is still pertinent:\n\u2018To the contention that the third degree is necessary to get the facts, the reporters aptly reply in the language of the present Lord\nChancellor of England (Lord Sankey): \u2018It is not admissible to do a great right by doing a little wrong.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4341, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "12ce2863-5b0c-4701-8c60-d057871daaac": {"__data__": {"id_": "12ce2863-5b0c-4701-8c60-d057871daaac", "embedding": null, "metadata": {"page_label": "4", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "26c0bd2b-1781-404c-b287-62db8e2d23a9", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "09e7758c45cfb4ea6765335a618455f051e37e87af3e209481e9b3c94e6a29c8", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "0ed260ac-2b54-4e67-8bc1-e9ed143e5bce", "node_type": "1", "metadata": {"page_label": "4", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e96fcbc6b1cc41325fde917e13c32bc73988811777acc15f0faf7c5e4c1a9b23", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "People v. Portelli, 15 N.Y .2d 235, 257 N.Y .S.2d 931, 205 N.E.2d 857 (1965). 7\n*447 The examples given above are undoubtedly the exception now, but they are sufficiently widespread to be the object of\nconcern. Unless a proper limitation upon custodial interrogation is achieved\u2014such as these decisions will advance\u2014there can\nbe no assurance that practices of this nature will be eradicated in the foreseeable future. The conclusion of the Wickersham\n**1614 Commission Report, made over 30 years ago, is still pertinent:\n\u2018To the contention that the third degree is necessary to get the facts, the reporters aptly reply in the language of the present Lord\nChancellor of England (Lord Sankey): \u2018It is not admissible to do a great right by doing a little wrong. * * * It is not sufficient\nto do justice by obtaining a proper result by irregular or improper means.\u2019 Not only does the use of the third degree involve a\nflagrant violation of law by the officers of the law, but it involves also the dangers of false confessions, and it tends to make\npolice and prosecutors less zealous in the search for objective evidence. As the New York prosecutor quoted in the report said, \u2018It\nis a short cut and makes the police lazy and unenterprising.\u2019 Or, as another official quoted remarked: \u2018If you use your fists, you\n*448 are not so likely to use your wits.\u2019 We agree with the conclusion expressed in the report, that \u2018The third degree brutalizes\nthe police, hardens the prisoner against society, and lowers the esteem in which the administration of justice is held by the\npublic.\u2018\u2018 IV National Commission on Law Observance and Enforcement, Report on Lawlessness in Law Enforcement 5 (1931).", "mimetype": "text/plain", "start_char_idx": 3581, "end_char_idx": 5265, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "38c00f90-961d-45d0-969c-cb21d0481571": {"__data__": {"id_": "38c00f90-961d-45d0-969c-cb21d0481571", "embedding": null, "metadata": {"page_label": "5", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "284cf760-4bdf-455d-aa72-903b8db3bf29", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f2859dfda83ada735eb40affc2cfedbc4871347f658c9f2ef14e9c3a0766cf0a", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "26083959-d7ae-4666-bbcd-b8d9aad94665", "node_type": "1", "metadata": {}, "hash": "4099622f348de72f0a8230134d5890f59927826caa2ce544a3ffd9d974cdc1d3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 5\n Again we stress that the modern practice of in-custody interrogation is psychologically rather than physically oriented. As we\nhave stated before, \u2018Since Chambers v. State of Florida, 309 U.S. 227, 60 S.Ct. 472, 84 L.Ed. 716, this Court has recognized\nthat coercion can be mental as well as physical, and that the blood of the accused is not the only hallmark of an unconstitutional\ninquisition.\u2019 Blackburn v. State of Alabama, 361 U.S. 199, 206, 80 S.Ct. 274, 279, 4 L.Ed.2d 242 (1960) . Interrogation still\ntakes place in privacy. Privacy results in secrecy and this in turn results in a gap in our knowledge as to what in fact goes on\nin the interrogation rooms. A valuable source of information about present police practices, however, may be found in various\npolice manuals and texts which document procedures employed with success in the past, and which recommend various other\neffective tactics. 8 These *449 texts are used by law enforcement agencies themselves as guides. 9 It should be noted that\nthese texts professedly present the most enlightened and effective means presently used to obtain statements through custodial\ninterrogation. By considering these texts and other **1615 data, it is possible to describe procedures observed and noted\naround the country.\nThe officers are told by the manuals that the \u2018principal psychological factor contributing to a successful interrogation is privacy\n\u2014being alone with the person under interrogation.' 10 The efficacy of this tactic has been explained as follows:\n\u2018If at all practicable, the interrogation should take place in the investigator's office or at least in a room of his own choice. The\nsubject should be deprived of every psychological advantage. In his own home he may be confident, indignant, or recalcitrant.\nHe is more keenly aware of his rights and *450 more reluctant to tell of his indiscretions of criminal behavior within the\nwalls of his home. Moreover his family and other friends are nearby, their presence lending moral support. In his office, the\ninvestigator possesses all the advantages. The atmosphere suggests the invincibility of the forces of the law.'11\nTo highlight the isolation and unfamiliar surroundings, the manuals instruct the police to display an air of confidence in the\nsuspect's guilt and from outward appearance to maintain only an interest in confirming certain details. The guilt of the subject\nis to be posited as a fact. The interrogator should direct his comments toward the reasons why the subject committed the act,\nrather than court failure by asking the subject whether he did it. Like other men, perhaps the subject has had a bad family life,\nhad an unhappy childhood, had too much to drink, had an unrequited desire for women. The officers are instructed to minimize\nthe moral seriousness of the offense,12 to cast blame on the victim or on society.13 These tactics are designed to put the subject\nin a psychological state where his story is but an elaboration of what the police purport to know already\u2014that he is guilty.\nExplanations to the contrary are dismissed and discouraged.\nThe texts thus stress that the major qualities an interrogator should possess are patience and perseverance. *451 One writer\ndescribes the efficacy of these characteristics in this manner:\n\u2018In the preceding paragraphs emphasis has been placed on kindness and stratagems. The investigator will, however, encounter\nmany situations where the sheer weight of his personality will be the deciding factor. Where emotional appeals and tricks are\nemployed to no avail, he must rely on an oppressive atmosphere of dogged persistence. He must interrogate steadily and without\nrelent, leaving the subject no prospect of surcease. He must dominate his subject and overwhelm him with his inexorable will to\nobtain the truth. He should interrogate for a spell of several hours pausing only for the subject's necessities in acknowledgment\nof the need to avoid a charge of duress that can be technically substantiated. In a serious case, the interrogation may continue\nfor days, with the required intervals for food and sleep, but with no respite from the atmosphere of domination.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4366, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "26083959-d7ae-4666-bbcd-b8d9aad94665": {"__data__": {"id_": "26083959-d7ae-4666-bbcd-b8d9aad94665", "embedding": null, "metadata": {"page_label": "5", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "284cf760-4bdf-455d-aa72-903b8db3bf29", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f2859dfda83ada735eb40affc2cfedbc4871347f658c9f2ef14e9c3a0766cf0a", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "38c00f90-961d-45d0-969c-cb21d0481571", "node_type": "1", "metadata": {"page_label": "5", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5aaca8bd17a603fb785331d6122ba5f9d3afe657963f35d2a88400c2f9543ba1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "*451 One writer\ndescribes the efficacy of these characteristics in this manner:\n\u2018In the preceding paragraphs emphasis has been placed on kindness and stratagems. The investigator will, however, encounter\nmany situations where the sheer weight of his personality will be the deciding factor. Where emotional appeals and tricks are\nemployed to no avail, he must rely on an oppressive atmosphere of dogged persistence. He must interrogate steadily and without\nrelent, leaving the subject no prospect of surcease. He must dominate his subject and overwhelm him with his inexorable will to\nobtain the truth. He should interrogate for a spell of several hours pausing only for the subject's necessities in acknowledgment\nof the need to avoid a charge of duress that can be technically substantiated. In a serious case, the interrogation may continue\nfor days, with the required intervals for food and sleep, but with no respite from the atmosphere of domination. It is possible in\nthis way to induce the subject to talk without resorting to duress or coercion. The method should be used only when the guilt\nof **1616 the subject appears highly probable.\u2019 14\nThe manuals suggest that the suspect be offered legal excuses for his actions in order to obtain an initial admission of guilt.\nWhere there is a suspected revenge-killing, for example, the interrogator may say:\n\u2018Joe, you probably didn't go out looking for this fellow with the purpose of shooting him. My guess is, however, that you\nexpected something from him and that's why you carried a gun\u2014for your own protection. You knew him for what he was, no", "mimetype": "text/plain", "start_char_idx": 3409, "end_char_idx": 5014, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8db90326-4024-46d8-a05f-ae1c5fe72c09": {"__data__": {"id_": "8db90326-4024-46d8-a05f-ae1c5fe72c09", "embedding": null, "metadata": {"page_label": "6", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a0a42cf7-8b25-4868-a925-416bcf8af861", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8845f0ca0df71e7b9a176325667465b727334b9b31dccb3503bfd3d22429ef14", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "2c52cffb-5f45-488a-b1cd-b8d639be05c1", "node_type": "1", "metadata": {}, "hash": "e829a84197b264584e4c36fac6c7bdc9ee6616092f4b769dbfb5021890fbbcf4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 6\ngood. Then when you met him he probably started using foul, abusive language and he gave some indication *452 that he was\nabout to pull a gun on you, and that's when you had to act to save your own life. That's about it, isn't it, Joe?' 15\nHaving then obtained the admission of shooting, the interrogator is advised to refer to circumstantial evidence which negates\nthe self-defense explanation. This should enable him to secure the entire story. One text notes that \u2018Even if he fails to do so,\nthe inconsistency between the subject's original denial of the shooting and his present admission of at least doing the shooting\nwill serve to deprive him of a self-defense \u2018out\u2019 at the time of trial.' 16\nWhen the techniques described above prove unavailing, the texts recommend they be alternated with a show of some hostility.\nOne ploy often used has been termed the \u2018friendly-unfriendly\u2019 or the \u2018Mutt and Jeff\u2019 act:\n\u2018* * * In this technique, two agents are employed. Mutt, the relentless investigator, who knows the subject is guilty and is not\ngoing to waste any time. He's sent a dozen men away for this crime and he's going to send the subject away for the full term.\nJeff, on the other hand, is obviously a kindhearted man. He has a family himself. He has a brother who was involved in a little\nscrape like this. He disapproves of Mutt and his tactics and will arrange to get him off the case if the subject will cooperate.\nHe can't hold Mutt off for very long. The subject would be wise to make a quick decision. The technique is applied by having\nboth investigators present while Mutt acts out his role. Jeff may stand by quietly and demur at some of Mutt's tactics. When\nJeff makes his plea for cooperation, Mutt is not present in the room.\u201917\n*453 The interrogators sometimes are instructed to induce a confession out of trickery. The technique here is quite effective\nin crimes which require identification or which run in series. In the identification situation, the interrogator may take a break\nin his questioning to place the subject among a group of men in a line-up. \u2018The witness or complainant (previously coached,\nif necessary) studies the line-up and confidently points out the subject as the guilty party.'18 Then the questioning resumes \u2018as\nthough there were now no doubt about the guilt **1617 of the subject.\u2019 A variation on this technique is called the \u2018reverse\nline-up\u2019:\n\u2018The accused is placed in a line-up, but this time he is identified by several fictitious witnesses or victims who associated him\nwith diferent offenses. It is expected that the subject will become desperate and confess to the offense under investigation in\norder to escape from the false accusations.\u2019 19\nThe manuals also contain instructions for police on how to handle the individual who refuses to discuss the matter entirely,\nor who asks for an attorney or relatives. The examiner is to concede him the right to remain silent. \u2018This usually has a very\nundermining effect. First of all, he is disappointed in his expectation of an unfavorable reaction on the part of the interrogator.\nSecondly, a concession of this right to remain silent impresses *454 the subject with the apparent fairness of his interrogator.\u201920\nAfter this psychological conditioning, however, the officer is told to point out the incriminating significance of the suspect's\nrefusal to talk:\n\u2018Joe, you have a right to remain silent. That's your privilege and I'm the last person in the world who'll try to take it away from\nyou. If that's the way you want to leave this, O.K. But let me ask you this. Suppose you were in my shoes and I were in yours\nand you called me in to ask me about this and I told you, \u2018I don't want to answer any of your questions.\u2019 You'd think I had\nsomething to hide, and you'd probably be right in thinking that. That's exactly what I'll have to think about you, and so will\neverybody else. So let's sit here and talk this whole thing over.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4132, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2c52cffb-5f45-488a-b1cd-b8d639be05c1": {"__data__": {"id_": "2c52cffb-5f45-488a-b1cd-b8d639be05c1", "embedding": null, "metadata": {"page_label": "6", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a0a42cf7-8b25-4868-a925-416bcf8af861", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8845f0ca0df71e7b9a176325667465b727334b9b31dccb3503bfd3d22429ef14", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "8db90326-4024-46d8-a05f-ae1c5fe72c09", "node_type": "1", "metadata": {"page_label": "6", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "810d714d0f103cd3276262f0e0761e27674ac6d4e203f1abfd0f5b2baed8500e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "That's your privilege and I'm the last person in the world who'll try to take it away from\nyou. If that's the way you want to leave this, O.K. But let me ask you this. Suppose you were in my shoes and I were in yours\nand you called me in to ask me about this and I told you, \u2018I don't want to answer any of your questions.\u2019 You'd think I had\nsomething to hide, and you'd probably be right in thinking that. That's exactly what I'll have to think about you, and so will\neverybody else. So let's sit here and talk this whole thing over.'21\nFew will persist in their initial refusal to talk, it is said, if this monologue is employed correctly.\nIn the event that the subject wishes to speak to a relative or an attorney, the following advice is tendered:", "mimetype": "text/plain", "start_char_idx": 3599, "end_char_idx": 4349, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7e6178cf-c511-4590-bc50-5f46ed171ba3": {"__data__": {"id_": "7e6178cf-c511-4590-bc50-5f46ed171ba3", "embedding": null, "metadata": {"page_label": "7", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "08ed8400-b7ed-4749-8a30-1c773bfe0799", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4c9c72f994070f889d9104ccd0837ef3df0757f7087dc761b833dbea81833485", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "501021ea-7c78-4161-8fb6-dfe543b51cfd", "node_type": "1", "metadata": {}, "hash": "53ed67ccdefd5c57f698afca799f0b356b64e4847c4641225b46e92689c59d8b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 7\n\u2018(T)he interrogator should respond by suggesting that the subject first tell the truth to the interrogator himself\nrather than get anyone else involved in the matter. If the request is for an attorney, the interrogator may\nsuggest that the subject save himself or his family the expense of any such professional service, particularly\nif he is innocent of the offense under investigation. The interrogator may also add, \u2018Joe, I'm only looking\nfor the truth, and if you're telling the truth, that's it. You can handle this by yourself.\u201c22\n*455 From these representative samples of interrogation techniques, the setting prescribed by the manuals and observed in\npractice becomes clear. In essence, it is this: To be alone with the subject is essential to prevent distraction and to deprive him\nof any outside support. The aura of confidence in his guilt undermines his will to resist. He merely confirms the preconceived\nstory the police seek to have him describe. Patience and persistence, at times relentless questioning, are employed. To obtain\na confession, the interrogator must \u2018patiently maneuver himself or his quarry into a position from which the desired objective\nmay be attained.' 23 When normal procedures fail to produce the needed result, the police may resort to deceptive stratagems\nsuch as giving false legal advice. It is important to keep the subject off balance, for example, by trading on his insecurity about\nhimself or his surroundings. The police then persuade, trick, or cajole him out of exercising his constitutional rights.\nEven without employing brutality, the \u2018third degree\u2019 or the specific stratagems **1618 described above, the very fact of\ncustodial interrogation exacts a heavy toll on individual liberty and trades on the weakness of individuals. 24 *456 This fact\nmay be illustrated simply by referring to three confession cases decided by this Court in the Term immediately preceding our\nEscobedo decision. In Townsend v. Sain, 372 U.S. 293, 83 S.Ct. 745, 9 L.Ed.2d 770 (1963) , the defendant was a 19-year-old\nheroin addict, described as a \u2018near mental defective,\u2019 id., at 307\u2014310, 83 S.Ct. at 754\u2014755. The defendant in Lynumn v. State\nof Illinois, 372 U.S. 528, 83 S.Ct. 917, 9 L.Ed.2d 922 (1963) , was a woman who confessed to the arresting officer after being\nimportuned to \u2018cooperate\u2019 in order to prevent her children from being taken by relief authorities. This Court as in those cases\nreversed the conviction of a defendant in Haynes v. State of Washington, 373 U.S. 503, 83 S.Ct. 1336, 10 L.Ed.2d 513 (1963),\nwhose persistent request during his interrogation was to phone his wife or attorney.25 In other settings, these individuals might\nhave exercised their constitutional rights. In the incommunicado police-dominated atmosphere, they succumbed.\nIn the cases before us today, given this backgound, we concern ourselves primarily with this interrogation atmosphere and the\nevils it can bring. In No. 759, Miranda v. Arizona, the police arrested the defendant and took him to a special interrogation\nroom where they secured a confession. In No. 760, Vignera v. New York, the defendant made oral admissions to the police\nafter interrogation in the afternoon, and then signed an inculpatory statement upon being questioned by an assistant district\nattorney later the same evening. In No. 761, Westover v. United States, the defendant was handed over to the Federal Bureau\nof Investigation by *457 local authorities after they had detained and interrogated him for a lengthy period, both at night\nand the following morning. After some two hours of questioning, the federal officers had obtained signed statements from the\ndefendant. Lastly, in No. 584, California v. Stewart, the local police held the defendant five days in the station and interrogated\nhim on nine separate occasions before they secured his inculpatory statement.\nIn these cases, we might not find the defendants' statements to have been involuntary in traditional terms.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4180, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "501021ea-7c78-4161-8fb6-dfe543b51cfd": {"__data__": {"id_": "501021ea-7c78-4161-8fb6-dfe543b51cfd", "embedding": null, "metadata": {"page_label": "7", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "08ed8400-b7ed-4749-8a30-1c773bfe0799", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4c9c72f994070f889d9104ccd0837ef3df0757f7087dc761b833dbea81833485", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "7e6178cf-c511-4590-bc50-5f46ed171ba3", "node_type": "1", "metadata": {"page_label": "7", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4143ab7c82a9fb52aa46007019b0e37ce071a8209dd76ba191e61ce19fd22e43", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "In No. 760, Vignera v. New York, the defendant made oral admissions to the police\nafter interrogation in the afternoon, and then signed an inculpatory statement upon being questioned by an assistant district\nattorney later the same evening. In No. 761, Westover v. United States, the defendant was handed over to the Federal Bureau\nof Investigation by *457 local authorities after they had detained and interrogated him for a lengthy period, both at night\nand the following morning. After some two hours of questioning, the federal officers had obtained signed statements from the\ndefendant. Lastly, in No. 584, California v. Stewart, the local police held the defendant five days in the station and interrogated\nhim on nine separate occasions before they secured his inculpatory statement.\nIn these cases, we might not find the defendants' statements to have been involuntary in traditional terms. Our concern for\nadequate safeguards to protect precious Fifth Amendment rights is, of course, not lessened in the slightest. In each of the\ncases, the defendant was thrust into an unfamiliar atmosphere and run through menacing police interrogation procedures.\nThe potentiality for compulsion is forcefully apparent, for example, in Miranda, where the indigent Mexican defendant was\na seriously disturbed individual with pronounced sexual **1619 fantasies, and in Stewart, in which the defendant was an\nindigent Los Angeles Negro who had dropped out of school in the sixth grade. To be sure, the records do not evince overt\nphysical coercion or patent psychological ploys. The fact remains that in none of these cases did the officers undertake to afford\nappropriate safeguards at the outset of the interrogation to insure that the statements were truly the product of free choice.", "mimetype": "text/plain", "start_char_idx": 3281, "end_char_idx": 5062, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9f33a625-5888-4b8e-b0cf-222113f3d3d0": {"__data__": {"id_": "9f33a625-5888-4b8e-b0cf-222113f3d3d0", "embedding": null, "metadata": {"page_label": "8", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4daf9919-9b3d-4b31-8ae6-cf03fb9e589c", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ff36b3e902a3c3603dc9e02ec3b3e3bf924c3afae1e27c13baaf4ec329bce1e6", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "bf914f6c-b5c0-4493-b1a2-b3aba2fd1250", "node_type": "1", "metadata": {}, "hash": "8bcba46a1c57920dffcbee05c942ec7bc9840470a06056b1b7f256c505cdc5b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 8\n It is obvious that such an interrogation environment is created for no purpose other than to subjugate the individual to the\nwill of his examiner. This atmosphere carries its own badge of intimidation. To be sure, this is not physical intimidation, but\nit is equally destructive of human dignity. 26 The current practice of incommunicado interrogation is at odds with one of our\n*458 Nation's most cherished principles\u2014that the individual may not be compelled to incriminate himself. Unless adequate\nprotective devices are employed to dispel the compulsion inherent in custodial surroundings, no statement obtained from the\ndefendant can truly be the product of his free choice.\nFrom the foregoing, we can readily perceive an intimate connection between the privilege against self-incrimination and police\ncustodial questioning. It is fitting to turn to history and precedent underlying the Self-Incrimination Clause to determine its\napplicability in this situation.\nII.\nWe sometimes forget how long it has taken to establish the privilege against self-incrimination, the sources from which it came\nand the fervor with which it was defended. Its roots go back into ancient times. 27 Perhaps *459 the critical historical event\nshedding light on its origins and evolution was the trial of one John Lilburn, a vocal anti-Stuart Leveller, who was made to take\nthe Star Chamber Oath in 1637. The oath would have bound him to answer to all questions posed to him on any subject. The\nTrial of John Lilburn and John Wharton, 3 How.St.Tr. 1315 (1637). He resisted the oath and declaimed the proceedings, stating:\n\u2018Another fundamental right I then contended for, was, that no man's conscience ought to be racked by oaths imposed, to answer\nto questions concerning himself in matters criminal, or pretended to be so.\u2019 Haller & Davies, The Leveller Tracts 1647\u20141653,\np. 454 (1944).\nOn account of the Lilburn Trial, Parliament abolished the inquisitorial Court of Star Chamber and went further in giving him\ngenerous reparation. The lofty principles to which Lilburn had appealed **1620 during his trial gained popular acceptance in\nEngland. 28 These sentiments worked their way over to the Colonies and were implanted after great struggle into the Bill of\nRights. 29 Those who framed our Constitution and the Bill of Rights were ever aware of subtle encroachments on individual\nliberty. They knew that \u2018illegitimate and unconstitutional practices get their first footing * * * by silent approaches and slight\ndeviations from legal modes of procedure.\u2019 Boyd v. United States, 116 U.S. 616, 635, 6 S.Ct. 524, 535, 29 L.Ed. 746 (1886) .\nThe privilege was elevated to constitutional status and has always been \u2018as broad as the mischief *460 against which it seeks\nto guard.\u2019 Counselman v. Hitchcock, 142 U.S. 547, 562, 12 S.Ct. 195, 198, 35 L.Ed. 1110 (1892). We cannot depart from this\nnoble heritage.\n Thus we may view the historical development of the privilege as one which groped for the proper scope of governmental power\nover the citizen. As a \u2018noble principle often transcends its origins,\u2019 the privilege has come right-fully to be recognized in part\nas an individual's substantive right, a \u2018right to a private enclave where he may lead a private life. That right is the hallmark of\nour democracy.\u2019 United States v. Grunewald, 233 F.2d 556, 579, 581\u2014582 (Frank, J., dissenting), rev'd, 353 U.S. 391, 77 S.Ct.\n963, 1 L.Ed.2d 931 (1957). We have recently noted that the privilege against self-incrimination\u2014the essential mainstay of our\nadversary system\u2014is founded on a complex of values, Murphy v. Waterfront Comm. of New York Harbor, 378 U.S. 52, 55\u2014\n57, n. 5, 84 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3863, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bf914f6c-b5c0-4493-b1a2-b3aba2fd1250": {"__data__": {"id_": "bf914f6c-b5c0-4493-b1a2-b3aba2fd1250", "embedding": null, "metadata": {"page_label": "8", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4daf9919-9b3d-4b31-8ae6-cf03fb9e589c", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ff36b3e902a3c3603dc9e02ec3b3e3bf924c3afae1e27c13baaf4ec329bce1e6", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9f33a625-5888-4b8e-b0cf-222113f3d3d0", "node_type": "1", "metadata": {"page_label": "8", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "cf2806d123d59fa9b7c98911900bfa454750565acdec7eebba83583ac356305d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "As a \u2018noble principle often transcends its origins,\u2019 the privilege has come right-fully to be recognized in part\nas an individual's substantive right, a \u2018right to a private enclave where he may lead a private life. That right is the hallmark of\nour democracy.\u2019 United States v. Grunewald, 233 F.2d 556, 579, 581\u2014582 (Frank, J., dissenting), rev'd, 353 U.S. 391, 77 S.Ct.\n963, 1 L.Ed.2d 931 (1957). We have recently noted that the privilege against self-incrimination\u2014the essential mainstay of our\nadversary system\u2014is founded on a complex of values, Murphy v. Waterfront Comm. of New York Harbor, 378 U.S. 52, 55\u2014\n57, n. 5, 84 S.Ct. 1594, 1596\u20141597, 12 L.Ed.2d 678 (1964); Tehan v. United States ex rel. Shott, 382 U.S. 406, 414\u2014415, n.\n12, 86 S.Ct. 459, 464, 15 L.Ed.2d 453 (1966). All these policies point to one overriding thought: the constitutional foundation\nunderlying the privilege is the respect a government\u2014state or federal\u2014must accord to the dignity and integrity of its citizens.\nTo maintain a \u2018fair state-individual balance,\u2019 to require the government \u2018to shoulder the entire load,\u2019 8 Wigmore, Evidence\n317 (McNaughton rev. 1961), to respect the inviolability of the human personality, our accusatory system of criminal justice\ndemands that the government seeking to punish an individual produce the evidence against him by its own independent labors,\nrather than by the cruel, simple expedient of compelling it from his own mouth. Chambers v. State of Florida, 309 U.S. 227,\n235\u2014238, 60 S.Ct. 472, 476\u2014477, 84 L.Ed. 716 (1940). In sum, the privilege is fulfilled only when the person is guaranteed\nthe right \u2018to remain silent unless he chooses to speak in the unfettered exercise of his own will.\u2019 Malloy v. Hogan, 378 U.S.\n1, 8, 84 S.Ct. 1489, 1493, 12 L.Ed.2d 653 (1964).", "mimetype": "text/plain", "start_char_idx": 3232, "end_char_idx": 5019, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d13cdfc0-48a8-4589-84a5-0fd105ca30f1": {"__data__": {"id_": "d13cdfc0-48a8-4589-84a5-0fd105ca30f1", "embedding": null, "metadata": {"page_label": "9", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "573c0141-ee9f-49cc-8bd2-2244b0e6dd0d", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7216bfaa121faf3da230568ab90a5515c2cf9fd3ac13ee1456b624142c7ccb56", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "2e459ade-d51a-4765-bf4b-c6e8b7ea7224", "node_type": "1", "metadata": {}, "hash": "82bcca4d69979bfb43f48dd7591bd9ed94e3368e5a681933fbace1d0826a7022", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 9\n The question in these cases is whether the privilege is fully applicable during a period of custodial interrogation. *461 In this\nCourt, the privilege has consistently been accorded a liberal construction. Albertson v. Subversive Activities Control Board,\n382 U.S. 70, 81, 86 S.Ct. 194, 200, 15 L.Ed.2d 165 (1965); Hoffman v. United States, 341 U.S. 479, 486, 71 S.Ct. 814, 818, 95\nL.Ed.2d 1118 (1951); Arnstein v. McCarthy, 254 U.S. 71, 72\u201473, 41 S.Ct. 26, 65 L.Ed. 138 (1920); Counselman v. Hitchcock,\n142 U.S. 547, 562, 12 S.Ct. 195, 197, 35 L.Ed. 1110 (1892) . We are satisfied that all the principles embodied in the privilege\napply to informal compulsion exerted by **1621 law-enforcement officers during in-custody questioning. An individual swept\nfrom familiar surroundings into police custody, surrounded by antagonistic forces, and subjected to the techniques of persuasion\ndescribed above cannot be otherwise than under compulsion to speak. As a practical matter, the compulsion to speak in the\nisolated setting of the police station may well be greater than in courts or other official investigations, where there are often\nimpartial observers to guard against intimidation or trickery.30\nThis question, in fact, could have been taken as settled in federal courts almost 70 years ago, when, in Bram v. United States,\n168 U.S. 532, 542, 18 S.Ct. 183, 187, 42 L.Ed. 568 (1897), this Court held:\n\u2018In criminal trials, in the courts of the United States, wherever a question arises whether a confession is incompetent because not\nvoluntary, the issue is controlled by that portion of the fifth amendment * * * commanding that no person \u2018shall be compelled\nin any criminal case to be a witness against himself.\u2018\u2018\nIn Bram, the Court reviewed the British and American history and case law and set down the Fifth Amendment standard for\ncompulsion which we implement today:\n\u2018Much of the confusion which has resulted from the effort to deduce from the adjudged cases what *462 would be a sufficient\nquantum of proof to show that a confession was or was not voluntary has arisen from a misconception of the subject to which the\nproof must address itself. The rule is not that, in order to render a statement admissible, the proof must be adequate to establish\nthat the particular communications contained in a statement were voluntarily made, but it must be sufficient to establish that the\nmaking of the statement was voluntary; that is to say, that, from the causes which the law treats as legally sufficient to engender\nin the mind of the accused hope or fear in respect to the crime charged, the accused was not involuntarily impelled to make a\nstatement when but for the improper influences he would have remained silent. * * *\u2019 168 U.S., at 549, 18 S.Ct. at 189. And\nsee, id., at 542, 18 S.Ct. at 186.\nThe Court has adhered to this reasoning. In 1924, Mr. Justice Brandeis wrote for a unanimous Court in reversing a conviction\nresting on a compelled confession, Ziang Sung Wan v. United States, 266 U.S. 1, 45 S.Ct. 1, 69 L.Ed. 131. He stated:\n\u2018In the federal courts, the requisite of voluntariness is not satisfied by establishing merely that the confession was not induced\nby a promise or a threat. A confession is voluntary in law if, and only if, it was, in fact, voluntarily made. A confession may have\nbeen given voluntarily, although it was made to police officers, while in custody, and in answer to an examination conducted\nby them. But a confession obtained by compulsion must be excluded whatever may have been the character of the compulsion,\nand whether the compulsion was applied in a judicial proceeding or otherwise.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3837, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e459ade-d51a-4765-bf4b-c6e8b7ea7224": {"__data__": {"id_": "2e459ade-d51a-4765-bf4b-c6e8b7ea7224", "embedding": null, "metadata": {"page_label": "9", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "573c0141-ee9f-49cc-8bd2-2244b0e6dd0d", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7216bfaa121faf3da230568ab90a5515c2cf9fd3ac13ee1456b624142c7ccb56", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "d13cdfc0-48a8-4589-84a5-0fd105ca30f1", "node_type": "1", "metadata": {"page_label": "9", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "eca1b1cb595dd45d1a467025ba8baf1f36ce1c2b360bf30333c175b2a2cbf9f4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The Court has adhered to this reasoning. In 1924, Mr. Justice Brandeis wrote for a unanimous Court in reversing a conviction\nresting on a compelled confession, Ziang Sung Wan v. United States, 266 U.S. 1, 45 S.Ct. 1, 69 L.Ed. 131. He stated:\n\u2018In the federal courts, the requisite of voluntariness is not satisfied by establishing merely that the confession was not induced\nby a promise or a threat. A confession is voluntary in law if, and only if, it was, in fact, voluntarily made. A confession may have\nbeen given voluntarily, although it was made to police officers, while in custody, and in answer to an examination conducted\nby them. But a confession obtained by compulsion must be excluded whatever may have been the character of the compulsion,\nand whether the compulsion was applied in a judicial proceeding or otherwise. Bram v. United States, 168 U.S. 532, 18 S.Ct.\n183, 42 L.Ed. 568.\u2019 266 U.S., at 14\u201415, 45 S.Ct. at 3.\nIn addition to the expansive historical development of the privilege and the sound policies which have nurtured *463 its\nevolution, judicial precedent thus clearly establishes its application to incommunicado interrogation. In fact, the Government\nconcedes this point as well established in No. 761, Westover v. United States, stating: \u2018We have no doubt * * * that it is possible\nfor a suspect's Fifth **1622 Amendment right to be violated during in-custody questioning by a law-enforcement officer.'31\n Because of the adoption by Congress of Rule 5(a) of the Federal Rules of Criminal Procedure, and the Court's effectuation of that\nRule in McNabb v. United States, 318 U.S. 332, 63 S.Ct. 608, 87 L.Ed. 819 (1943), and Mallory v. United States, 354 U.S. 449,\n77 S.Ct. 1356, 1 L.Ed.2d 1479 (1957), we have had little occasion in the past quarter century to reach the constitutional issues in\ndealing with federal interrogations. These supervisory rules, requiring production of an arrested person before a commissioner", "mimetype": "text/plain", "start_char_idx": 3007, "end_char_idx": 4959, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f141ab8e-842c-4eef-99a1-b03b108f2f4d": {"__data__": {"id_": "f141ab8e-842c-4eef-99a1-b03b108f2f4d", "embedding": null, "metadata": {"page_label": "10", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f1f39c62-b863-4eb5-8042-d419a48e1f0a", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "654c39324e57f4906dfbab0c58846345ee1bb6491e96374ce17142c9e49a9500", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "b6c18bde-0eed-4f3f-84b9-00f91ae3c343", "node_type": "1", "metadata": {}, "hash": "291a97043cc7e64423ece121365df90e9de44ffdaf7ba595c864561376f1bd9d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 10\n\u2018without unnecessary delay\u2019 and excluding evidence obtained in default of that statutory obligation, were nonetheless responsive\nto the same considerations of Fifth Amendment policy that unavoidably face us now as to the States. In McNabb, 318 U.S., at\n343\u2014344, 63 S.Ct. at 614, and in Mallory, 354 U.S., at 455\u2014456, 77 S.Ct. at 1359\u20141360, we recognized both the dangers of\ninterrogation and the appropriateness of prophylaxis stemming from the very fact of interrogation itself. 32\n Our decision in Malloy v. Hogan, 378 U.S. 1, 84 S.Ct. 1489, 12 L.Ed.2d 653 (1964), necessitates an examination of the scope\nof the privilege in state cases as well. In Malloy, we squarely held the *464 privilege applicable to the States, and held that\nthe substantive standards underlying the privilege applied with full force to state court proceedings. There, as in Murphy v.\nWaterfront Comm. of New York Harbor, 378 U.S. 52, 84 S.Ct. 1594, 12 L.Ed.2d 678 (1964), and Griffin v. State of California,\n380 U.S. 609, 85 S.Ct. 1229, 14 L.Ed.2d 106 (1965), we applied the existing Fifth Amendment standards to the case before us.\nAside from the holding itself, the reasoning in Malloy made clear what had already become apparent\u2014that the substantive and\nprocedural safeguards surrounding admissibility of confessions in state cases had become exceedingly exacting, reflecting all\nthe policies embedded in the privilege, 378 U.S., at 7\u20148, 84 S.Ct. at 1493. 33 The voluntariness **1623 doctrine in the state\ncases, as Malloy indicates, encompasses all interrogation practices which are likely to exert such pressure upon an individual\nas to disable him from *465 making a free and rational choice. 34 The implications of this proposition were elaborated in\nour decision in Escobedo v. State of Illinois, 378 U.S. 478, 84 S.Ct. 1758, 12 L.Ed.2d 977, decided one week after Malloy\napplied the privilege to the States.\nOur holding there stressed the fact that the police had not advised the defendant of his constitutional privilege to remain silent\nat the outset of the interrogation, and we drew attention to that fact at several points in the decision, 378 U.S., at 483, 485,\n491, 84 S.Ct. at 1761, 1762, 1765. This was no isolated factor, but an essential ingredient in our decision. The entire thrust of\npolice interrogation there, as in all the cases today, was to put the defendant in such an emotional state as to impair his capacity\nfor rational judgment. The abdication of the constitutional privilege\u2014the choice on his part to speak to the police\u2014was not\nmade knowingly or competently because of the failure to apprise him of his rights; the compelling atmosphere of the in-custody\ninterrogation, and not an independent decision on his part, caused the defendant to speak.\n A different phase of the Escobedo decision was significant in its attention to the absence of counsel during the questioning.\nThere, as in the cases today, we sought a protective device to dispel the compelling atmosphere of the interrogation. In Escobedo,\nhowever, the police did not relieve the defendant of the anxieties which they had created in the interrogation rooms. Rather, they\ndenied his request for the assistance of counsel, 378 U.S., at 481, 488, 491, 84 S.Ct. at 1760, 1763, 1765.35 This heightened his\ndilemma, and *466 made his later statements the product of this compulsion. Cf. Haynes v. State of Washington, 373 U.S. 503,\n514, 83 S.Ct. 1336, 1343 (1963).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3639, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b6c18bde-0eed-4f3f-84b9-00f91ae3c343": {"__data__": {"id_": "b6c18bde-0eed-4f3f-84b9-00f91ae3c343", "embedding": null, "metadata": {"page_label": "10", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f1f39c62-b863-4eb5-8042-d419a48e1f0a", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "654c39324e57f4906dfbab0c58846345ee1bb6491e96374ce17142c9e49a9500", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "f141ab8e-842c-4eef-99a1-b03b108f2f4d", "node_type": "1", "metadata": {"page_label": "10", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6c15e5e0a71a3dfc75832146c32b4c14dde3291468930c41c6eef88eeadca69e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "A different phase of the Escobedo decision was significant in its attention to the absence of counsel during the questioning.\nThere, as in the cases today, we sought a protective device to dispel the compelling atmosphere of the interrogation. In Escobedo,\nhowever, the police did not relieve the defendant of the anxieties which they had created in the interrogation rooms. Rather, they\ndenied his request for the assistance of counsel, 378 U.S., at 481, 488, 491, 84 S.Ct. at 1760, 1763, 1765.35 This heightened his\ndilemma, and *466 made his later statements the product of this compulsion. Cf. Haynes v. State of Washington, 373 U.S. 503,\n514, 83 S.Ct. 1336, 1343 (1963). The denial of the defendant's request for his attorney thus undermined his ability to exercise the\nprivilege\u2014to remain silent if he chose or to speak without any intimidation, blatant or subtle. The presence of counsel, in all the\ncases before us today, would be the adequate protective device necessary to make the process of police interrogation conform\nto the dictates of the privilege. His presence would insure that statements made in the government-established atmosphere are\nnot the product of compulsion.\nIt was in this manner that Escobedo explicated another facet of the pre-trial privilege, noted in many of the Court's prior\ndecisions: the protection of rights at trial. 36 That counsel is present when **1624 statements are taken from an individual\nduring interrogation obviously enhances the integrity of the fact-finding processes in court. The presence of an attorney, and the\nwarnings delivered to the individual, enable the defendant under otherwise compelling circumstances to tell his story without\nfear, effectively, and in a way that eliminates the evils in the interrogation process. Without the protections flowing from adequate\nwarning and the rights of counsel, \u2018all the careful safeguards erected around the giving of testimony, whether by an accused\nor any other witness, would become empty formalities in a procedure where the most compelling possible evidence of guilt, a\nconfession, would have already been obtained at the unsupervised pleasure of the police.\u2019 Mapp v. Ohio, 367 U.S. 643, 685,\n81 S.Ct. 1684, 1707, 6 L.Ed.2d 1081 (1961) (Harlan, J., dissenting). Cf. Pointer v. State of Texas, 380 U.S. 400, 85 S.Ct. 1065,\n13 L.Ed.2d 923 (1965).", "mimetype": "text/plain", "start_char_idx": 2962, "end_char_idx": 5318, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9a99af8c-ea56-48f8-84ae-8cbe7625947e": {"__data__": {"id_": "9a99af8c-ea56-48f8-84ae-8cbe7625947e", "embedding": null, "metadata": {"page_label": "11", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e0beedcd-80ce-4e77-92d5-b71264f6d247", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "51802eb0cafb0326b0758b8da95546edbf7812d6b4008f5adc87ea6d56f9f384", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "12e6b9d1-afd7-4ee2-86e4-43bff9795e10", "node_type": "1", "metadata": {}, "hash": "1284e4de9d6a951a693aaf089728ed7b1c3e4cca102398fa45a0e3688487b732", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 11\n*467 III.\n Today, then, there can be no doubt that the Fifth Amendment privilege is available outside of criminal court proceedings and\nserves to protect persons in all settings in which their freedom of action is curtailed in any significant way from being compelled\nto incriminate themselves. We have concluded that without proper safeguards the process of in-custody interrogation of persons\nsuspected or accused of crime contains inherently compelling pressures which work to undermine the individual's will to resist\nand to compel him to speak where he would not otherwise do so freely. In order to combat these pressures and to permit a full\nopportunity to exercise the privilege against self-incrimination, the accused must be adequately and effectively apprised of his\nrights and the exercise of those rights must be fully honored.\nIt is impossible for us to foresee the potential alternatives for protecting the privilege which might be devised by Congress or the\nStates in the exercise of their creative rule-making capacities. Therefore we cannot say that the Constitution necessarily requires\nadherence to any particular solution for the inherent compulsions of the interrogation process as it is presently conducted. Our\ndecision in no way creates a constitutional straitjacket which will handicap sound efforts at reform, nor is it intended to have\nthis effect. We encourage Congress and the States to continue their laudable search for increasingly effective ways of protecting\nthe rights of the individual while promoting efficient enforcement of our criminal laws. However, unless we are shown other\nprocedures which are at least as effective in apprising accused persons of their right of silence and in assuring a continuous\nopportunity to exercise it, the following safeguards must be observed.\n At the outset, if a person in custody is to be subjected to interrogation, he must first be informed in clear and *468 unequivocal\nterms that he has the right to remain silent. For those unaware of the privilege, the warning is needed simply to make them aware\nof it\u2014the threshold requirement for an intelligent decision as to its exercise. More important, such a warning is an absolute\nprerequisite in overcoming the inherent pressures of the interrogation atmosphere. It is not just the subnormal or woefully\nignorant who succumb to an interrogator's imprecations, whether implied or expressly stated, that the interrogation will continue\nuntil a confession is obtained or that silence in the face of accusation is itself damning and will bode ill when presented to a\njury.37 Further, **1625 the warning will show the individual that his interrogators are prepared to recognize his privilege\nshould he choose to exercise it.\n The Fifth Amendment privilege is so fundamental to our system of constitutional rule and the expedient of giving an adequate\nwarning as to the availability of the privilege so simple, we will not pause to inquire in individual cases whether the defendant\nwas aware of his rights without a warning being given. Assessments of the knowledge the defendant possessed, based on\ninformation *469 as to his age, education, intelligence, or prior contact with authorities, can never be more than speculation;38\na warning is a clearcut fact. More important, whatever the background of the person interrogated, a warning at the time of\nthe interrogation is indispensable to overcome its pressures and to insure that the individual knows he is free to exercise the\nprivilege at that point in time.\n The warning of the right to remain silent must be accompanied by the explanation that anything said can and will be used\nagainst the individual in court. This warning is needed in order to make him aware not only of the privilege, but also of the\nconsequences of forgoing it. It is only through an awareness of these consequences that there can be any assurance of real\nunderstanding and intelligent exercise of the privilege. Moreover, this warning may serve to make the individual more acutely\naware that he is faced with a phase of the adversary system\u2014that he is not in the presence of persons acting solely in his interest.\n The circumstances surrounding in-custody interrogation can operate very quickly to overbear the will of one merely made\naware of his privilege by his interrogators. Therefore, the right to have counsel present at the interrogation is indispensable to the\nprotection of the Fifth Amendment privilege under the system we delineate today. Our aim is to assure that the individual's right\nto choose between silence and speech remains unfettered throughout the interrogation process.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4840, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "12e6b9d1-afd7-4ee2-86e4-43bff9795e10": {"__data__": {"id_": "12e6b9d1-afd7-4ee2-86e4-43bff9795e10", "embedding": null, "metadata": {"page_label": "11", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e0beedcd-80ce-4e77-92d5-b71264f6d247", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "51802eb0cafb0326b0758b8da95546edbf7812d6b4008f5adc87ea6d56f9f384", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9a99af8c-ea56-48f8-84ae-8cbe7625947e", "node_type": "1", "metadata": {"page_label": "11", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a6e928cb0c9ed7f8858b92f219516082269e5cce339f71ff779288e98dea7251", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "This warning is needed in order to make him aware not only of the privilege, but also of the\nconsequences of forgoing it. It is only through an awareness of these consequences that there can be any assurance of real\nunderstanding and intelligent exercise of the privilege. Moreover, this warning may serve to make the individual more acutely\naware that he is faced with a phase of the adversary system\u2014that he is not in the presence of persons acting solely in his interest.\n The circumstances surrounding in-custody interrogation can operate very quickly to overbear the will of one merely made\naware of his privilege by his interrogators. Therefore, the right to have counsel present at the interrogation is indispensable to the\nprotection of the Fifth Amendment privilege under the system we delineate today. Our aim is to assure that the individual's right\nto choose between silence and speech remains unfettered throughout the interrogation process. A once-stated warning, delivered\nby those who will conduct the interrogation, cannot itself suffice to that end among those who most require knowledge of their\nrights. A mere *470 warning given by the interrogators is not alone sufficient to accomplish that end. Prosecutors themselves", "mimetype": "text/plain", "start_char_idx": 3885, "end_char_idx": 5127, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b2bd4ef0-a330-41ad-a89a-0a56c4d150bb": {"__data__": {"id_": "b2bd4ef0-a330-41ad-a89a-0a56c4d150bb", "embedding": null, "metadata": {"page_label": "12", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d9ddbeb7-f230-47f2-9b2c-9179aa99334f", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "93d60e525590d45fb76a4830d0f4544120b683c0d2e404f961f62568056b6ce3", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "84413f9b-500f-499f-9567-0fe1a92facbb", "node_type": "1", "metadata": {}, "hash": "ca32ee66ee94096f07ffdd6f08f4137a6d83c1d5c79c17b92e98c5f1299f0861", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 12\nclaim that the admonishment of the right to remain silent without more \u2018will benefit only the recidivist and the professional.\u2019\nBrief for the National District Attorneys Association as amicus curiae, p. 14. Even preliminary advice given to the accused by\nhis own attorney can be swiftly overcome by the secret interrogation process. Cf. Escobedo v. State of Illinois, 378 U.S. 478,\n485, n. 5, 84 S.Ct. 1758, 1762. Thus, the need for counsel to protect **1626 the Fifth Amendment privilege comprehends\nnot merely a right to consult with counsel prior to questioning, but also to have counsel present during any questioning if the\ndefendant so desires.\nThe presence of counsel at the interrogation may serve several significant subsidiary functions as well. If the accused decides\nto talk to his interrogators, the assistance of counsel can mitigate the dangers of untrustworthiness. With a lawyer present the\nlikelihood that the police will practice coercion is reduced, and if coercion is nevertheless exercised the lawyer can testify to it\nin court. The presence of a lawyer can also help to guarantee that the accused gives a fully accurate statement to the police and\nthat the statement is rightly reported by the prosecution at trial. See Crooker v. State of California, 357 U.S. 433, 443\u2014448, 78\nS.Ct. 1287, 1293\u20141296, 2 L.Ed.2d 1448 (1958) (Douglas, J., dissenting).\n An individual need not make a pre-interrogation request for a lawyer. While such request affirmatively secures his right to have\none, his failure to ask for a lawyer does not constitute a waiver. No effective waiver of the right to counsel during interrogation\ncan be recognized unless specifically made after the warnings we here delineate have been given. The accused who does not\nknow his rights and therefore does not make a request *471 may be the person who most needs counsel. As the California\nSupreme Court has aptly put it:\n\u2018Finally, we must recognize that the imposition of the requirement for the request would discriminate against the defendant\nwho does not know his rights. The defendant who does not ask for counsel is the very defendant who most needs counsel. We\ncannot penalize a defendant who, not understanding his constitutional rights, does not make the formal request and by such\nfailure demonstrates his helplessness. To require the request would be to favor the defendant whose sophistication or status\nhad fortuitously prompted him to make it.\u2019 People v. Dorado, 62 Cal.2d 338, 351, 42 Cal.Rptr. 169, 177\u2014178, 398 P.2d 361,\n369\u2014370, (1965) (Tobriner, J.).\nIn Carnley v. Cochran, 369 U.S. 506, 513, 82 S.Ct. 884, 889, 8 L.Ed.2d 70 (1962) , we stated: \u2018(I)t is settled that where the\nassistance of counsel is a constitutional requisite, the right to be furnished counsel does not depend on a request.\u2019 This proposition\napplies with equal force in the context of providing counsel to protect an accused's Fifth Amendment privilege in the face of\ninterrogation. 39 Although the role of counsel at trial differs from the role during interrogation, the differences are not relevant\nto the question whether a request is a prerequisite.\n Accordingly we hold that an individual held for interrogation must be clearly informed that he has the right to consult with a\nlawyer and to have the lawyer with him during interrogation under the system for protecting the privilege we delineate today.\nAs with the warnings of the right to remain silent and that anything stated can be used in evidence against him, this warning\nis an absolute prerequisite to interrogation. No amount of *472 circumstantial evidence that the person may have been aware\nof this right will suffice to stand in its stead. Only through such a warning is there ascertainable assurance that the accused\nwas aware of this right.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3985, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "84413f9b-500f-499f-9567-0fe1a92facbb": {"__data__": {"id_": "84413f9b-500f-499f-9567-0fe1a92facbb", "embedding": null, "metadata": {"page_label": "12", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d9ddbeb7-f230-47f2-9b2c-9179aa99334f", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "93d60e525590d45fb76a4830d0f4544120b683c0d2e404f961f62568056b6ce3", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "b2bd4ef0-a330-41ad-a89a-0a56c4d150bb", "node_type": "1", "metadata": {"page_label": "12", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "56065f1fe90613ca600305f35e27b425cf7299f50550e670654a481f893e036c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "39 Although the role of counsel at trial differs from the role during interrogation, the differences are not relevant\nto the question whether a request is a prerequisite.\n Accordingly we hold that an individual held for interrogation must be clearly informed that he has the right to consult with a\nlawyer and to have the lawyer with him during interrogation under the system for protecting the privilege we delineate today.\nAs with the warnings of the right to remain silent and that anything stated can be used in evidence against him, this warning\nis an absolute prerequisite to interrogation. No amount of *472 circumstantial evidence that the person may have been aware\nof this right will suffice to stand in its stead. Only through such a warning is there ascertainable assurance that the accused\nwas aware of this right.\n If an individual indicates that he wishes the assistance of counsel before any interrogation occurs, the authorities cannot\nrationally ignore or deny his request on the basis that the individual does not have or cannot afford a retained attorney. The\nfinancial ability **1627 of the individual has no relationship to the scope of the rights involved here. The privilege against\nself-incrimination secured by the Constitution applies to all individuals. The need for counsel in order to protect the privilege\nexists for the indigent as well as the affluent. In fact, were we to limit these constitutional rights to those who can retain an\nattorney, our decisions today would be of little significance. The cases before us as well as the vast majority of confession cases\nwith which we have dealt in the past involve those unable to retain counsel.40 While authorities are not required to relieve the\naccused of his poverty, they have the obligation not to take advantage of indigence in the administration of justice. 41 Denial\n*473 of counsel to the indigent at the time of interrogation while allowing an attorney to those who can afford one would be", "mimetype": "text/plain", "start_char_idx": 3156, "end_char_idx": 5142, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eb72e045-5626-4bb3-9a28-cd06767f800a": {"__data__": {"id_": "eb72e045-5626-4bb3-9a28-cd06767f800a", "embedding": null, "metadata": {"page_label": "13", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bf394c11-7479-45f9-a388-b846e3fcc275", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "00fc7e9b82bfba6463f45507f9b471159629c8f79d09a99eea8a178469bf22a5", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "b19d1606-74d9-4a14-9783-84ea603aedc2", "node_type": "1", "metadata": {}, "hash": "bd2ec46ad2736ca0ed12860da9af96c7ea01212f16570ed239d9f03aca7a400f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 13\nno more supportable by reason or logic than the similar situation at trial and on appeal struck down in Gideon v. Wainwright,\n372 U.S. 335, 83 S.Ct. 792, 9 L.Ed.2d 799 (1963) , and Douglas v. People of State of California, 372 U.S. 353, 83 S.Ct. 814,\n9 L.Ed.2d 811 (1963).\n In order fully to apprise a person interrogated of the extent of his rights under this system then, it is necessary to warn him\nnot only that he has the right to consult with an attorney, but also that if he is indigent a lawyer will be appointed to represent\nhim. Without this additional warning, the admonition of the right to consult with counsel would often be understood as meaning\nonly that he can consult with a lawyer if he has one or has the funds to obtain one. The warning of a right to counsel would\nbe hollow if not couched in terms that would convey to the indigent\u2014the person most often subjected to interrogation\u2014the\nknowledge that he too has a right to have counsel present. 42 As with the warnings of the right to remain silent and of the\ngeneral right to counsel, only by effective and express explanation to the indigent of this right can there be assurance that he\nwas truly in a position to exercise it. 43\n Once warnings have been given, the subsequent procedure is clear. If the individual indicates in any manner, *474 at any\ntime prior to or during questioning, that he wishes to remain silent, the interrogation must cease. 44 At this **1628 point he\nhas shown that he intends to exercise his Fifth Amendment privilege; any statement taken after the person invokes his privilege\ncannot be other than the product of compulsion, subtle or otherwise. Without the right to cut off questioning, the setting of in-\ncustody interrogation operates on the individual to overcome free choice in producing a statement after the privilege has been\nonce invoked. If the individual states that he wants an attorney, the interrogation must cease until an attorney is present. At\nthat time, the individual must have an opportunity to confer with the attorney and to have him present during any subsequent\nquestioning. If the individual cannot obtain an attorney and he indicates that he wants one before speaking to police, they must\nrespect his decision to remain silent.\n This does not mean, as some have suggested, that each police station must have a \u2018station house lawyer\u2019 present at all times to\nadvise prisoners. It does mean, however, that if police propose to interrogate a person they must make known to him that he is\nentitled to a lawyer and that if he cannot afford one, a lawyer will be provided for him prior to any interrogation. If authorities\nconclude that they will not provide counsel during a reasonable period of time in which investigation in the field is carried\nout, they may refrain from doing so without violating the person's Fifth Amendment privilege so long as they do not question\nhim during that time.\n *475 If the interrogation continues without the presence of an attorney and a statement is taken, a heavy burden rests on\nthe government to demonstrate that the defendant knowingly and intelligently waived his privilege against self-incrimination\nand his right to retained or appointed counsel. Escobedo v. State of Illinois, 378 U.S. 478, 490, n. 14, 84 S.Ct. 1758, 1764, 12\nL.Ed.2d 977. This Court has always set high standards of proof for the waiver of constitutional rights, Johnson v. Zerbst, 304\nU.S. 458, 58 S.Ct. 1019, 82 L.Ed. 1461 (1938) , and we reassert these standards as applied to incustody interrogation. Since\nthe State is responsible for establishing the isolated circumstances under which the interrogation takes place and has the only\nmeans of making available corroborated evidence of warnings given during incommunicado interrogation, the burden is rightly\non its shoulders.\n An express statement that the individual is willing to make a statement and does not want an attorney followed closely by\na statement could constitute a waiver.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4178, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b19d1606-74d9-4a14-9783-84ea603aedc2": {"__data__": {"id_": "b19d1606-74d9-4a14-9783-84ea603aedc2", "embedding": null, "metadata": {"page_label": "13", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bf394c11-7479-45f9-a388-b846e3fcc275", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "00fc7e9b82bfba6463f45507f9b471159629c8f79d09a99eea8a178469bf22a5", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "eb72e045-5626-4bb3-9a28-cd06767f800a", "node_type": "1", "metadata": {"page_label": "13", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "10ae11f2b4219aebb471e16716be35464feced39cefe90785e21be8ff36bc701", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Escobedo v. State of Illinois, 378 U.S. 478, 490, n. 14, 84 S.Ct. 1758, 1764, 12\nL.Ed.2d 977. This Court has always set high standards of proof for the waiver of constitutional rights, Johnson v. Zerbst, 304\nU.S. 458, 58 S.Ct. 1019, 82 L.Ed. 1461 (1938) , and we reassert these standards as applied to incustody interrogation. Since\nthe State is responsible for establishing the isolated circumstances under which the interrogation takes place and has the only\nmeans of making available corroborated evidence of warnings given during incommunicado interrogation, the burden is rightly\non its shoulders.\n An express statement that the individual is willing to make a statement and does not want an attorney followed closely by\na statement could constitute a waiver. But a valid waiver will not be presumed simply from the silence of the accused after\nwarnings are given or simply from the fact that a confession was in fact eventually obtained. A statement we made in Carnley\nv. Cochran, 369 U.S. 506, 516, 82 S.Ct. 884, 890, 8 L.Ed.2d 70 (1962), is applicable here:\n\u2018Presuming waiver from a silent record is impermissible. The record must show, or there must be\nan allegation and evidence which show, that an accused was offered counsel but intelligently and\nunderstandingly rejected the offer. Anything less is not waiver.\u2019", "mimetype": "text/plain", "start_char_idx": 3414, "end_char_idx": 4738, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e40d2b55-a491-4754-ab65-328ae17061fc": {"__data__": {"id_": "e40d2b55-a491-4754-ab65-328ae17061fc", "embedding": null, "metadata": {"page_label": "14", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a3125ead-2dd3-45e3-8047-b448d6e98518", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d08831bbd14b2850d0dc2e88ffd37fe053ed755c892a715235e765973f610f3d", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "6a1ee02d-de72-4006-bf92-98bc7933e3d8", "node_type": "1", "metadata": {}, "hash": "30e9789dbe146b50ef16abfacac292a43fdcee1900dabd448da587c454bdebcb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 14\nSee also Glasser v. United States, 315 U.S. 60, 62 S.Ct. 457, 86 L.Ed. 680 (1942) . Moreover, where in-custody interrogation\nis involved, there is no room for the contention that the privilege is waived if the individual answers some questions or gives\n*476 some information on his own prior to invoking his right to remain silent when interrogated. 45\n**1629 Whatever the testimony of the authorities as to waiver of rights by an accused, the fact of lengthy interrogation or\nincommunicado incarceration before a statement is made is strong evidence that the accused did not validly waive his rights. In\nthese circumstances the fact that the individual eventually made a statement is consistent with the conclusion that the compelling\ninfluence of the interrogation finally forced him to do so. It is inconsistent with any notion of a voluntary relinquishment of the\nprivilege. Moreover, any evidence that the accused was threatened, tricked, or cajoled into a waiver will, of course, show that\nthe defendant did not voluntarily waive his privilege. The requirement of warnings and waiver of rights is a fundamental with\nrespect to the Fifth Amendment privilege and not simply a preliminary ritual to existing methods of interrogation.\n The warnings required and the waiver necessary in accordance with our opinion today are, in the absence of a fully effective\nequivalent, prerequisites to the admissibility of any statement made by a defendant. No distinction can be drawn between\nstatements which are direct confessions and statements which amount to \u2018admissions' of part or all of an offense. The privilege\nagainst self-incrimination protects the individual from being compelled to incriminate himself in any manner; it does not\ndistinguish degrees of incrimination. Similarly, *477 for precisely the same reason, no distinction may be drawn between\ninculpatory statements and statements alleged to be merely \u2018exculpatory.\u2019 If a statement made were in fact truly exculpatory\nit would, of course, never be used by the prosecution. In fact, statements merely intended to be exculpatory by the defendant\nare often used to impeach his testimony at trial or to demonstrate untruths in the statement given under interrogation and thus\nto prove guilt by implication. These statements are incriminating in any meaningful sense of the word and may not be used\nwithout the full warnings and effective waiver required for any other statement. In Escobedo itself, the defendant fully intended\nhis accusation of another as the slayer to be exculpatory as to himself.\nThe principles announced today deal with the protection which must be given to the privilege against self-incrimination when\nthe individual is first subjected to police interrogation while in custody at the station or otherwise deprived of his freedom of\naction in any significant way. It is at this point that our adversary system of criminal proceedings commences, distinguishing\nitself at the outset from the inquisitorial system recognized in some countries. Under the system of warnings we delineate today\nor under any other system which may be devised and found effective, the safeguards to be erected about the privilege must\ncome into play at this point.\n Our decision is not intended to hamper the traditional function of police officers in investigating crime. See Escobedo v. State\nof Illinois, 378 U.S. 478, 492, 84 S.Ct. 1758, 1765. When an individual is in custody on probable cause, the police may, of\ncourse, seek out evidence in the field to be used at trial against him. Such investigation may include inquiry of persons not\nunder restraint. General on-the-scene questioning as to facts surrounding a crime or other general questioning of citizens in the\nfact-finding process is not affected by our holding. It is an act of *478 responsible citizenship for individuals to give whatever\ninformation they may have to aid in **1630 law enforcement. In such situations the compelling atmosphere inherent in the\nprocess of in-custody interrogation is not necessarily present. 46\n In dealing with statements obtained through interrogation, we do not purport to find all confessions inadmissible. Confessions\nremain a proper element in law enforcement. Any statement given freely and voluntarily without any compelling influences is,\nof course, admissible in evidence.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4539, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6a1ee02d-de72-4006-bf92-98bc7933e3d8": {"__data__": {"id_": "6a1ee02d-de72-4006-bf92-98bc7933e3d8", "embedding": null, "metadata": {"page_label": "14", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a3125ead-2dd3-45e3-8047-b448d6e98518", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d08831bbd14b2850d0dc2e88ffd37fe053ed755c892a715235e765973f610f3d", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "e40d2b55-a491-4754-ab65-328ae17061fc", "node_type": "1", "metadata": {"page_label": "14", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ca194e11a077bb49e61a844ba0d0e0a4b9bb806673c4c63bf9f476140271f0b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1758, 1765. When an individual is in custody on probable cause, the police may, of\ncourse, seek out evidence in the field to be used at trial against him. Such investigation may include inquiry of persons not\nunder restraint. General on-the-scene questioning as to facts surrounding a crime or other general questioning of citizens in the\nfact-finding process is not affected by our holding. It is an act of *478 responsible citizenship for individuals to give whatever\ninformation they may have to aid in **1630 law enforcement. In such situations the compelling atmosphere inherent in the\nprocess of in-custody interrogation is not necessarily present. 46\n In dealing with statements obtained through interrogation, we do not purport to find all confessions inadmissible. Confessions\nremain a proper element in law enforcement. Any statement given freely and voluntarily without any compelling influences is,\nof course, admissible in evidence. The fundamental import of the privilege while an individual is in custody is not whether he\nis allowed to talk to the police without the benefit of warnings and counsel, but whether he can be interrogated. There is no\nrequirement that police stop a person who enters a police station and states that he wishes to confess to a crime, 47 or a person\nwho calls the police to offer a confession or any other statement he desires to make. V olunteered statements of any kind are not\nbarred by the Fifth Amendment and their admissibility is not affected by our holding today.", "mimetype": "text/plain", "start_char_idx": 3591, "end_char_idx": 5110, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a3f9feaa-3e9b-4334-8f32-2b7b63b47f06": {"__data__": {"id_": "a3f9feaa-3e9b-4334-8f32-2b7b63b47f06", "embedding": null, "metadata": {"page_label": "15", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d365ad41-6055-4d61-8a92-c51920a2725f", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8dec75b62d62983b13b74a6eb9108b6f31bd2fb89321aa3b42ae2c74292b2fe5", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "8622d672-dabe-4281-bc56-613fb70e091e", "node_type": "1", "metadata": {}, "hash": "f7da57183adeba91c264e3923252ee98f47961401f8194caf537098b00bc11ca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 15\n To summarize, we hold that when an individual is taken into custody or otherwise deprived of his freedom by the authorities in\nany significant way and is subjected to questioning, the privilege against self-incrimination is jeopardized. Procedural safeguards\nmust be employed to *479 protect the privilege and unless other fully effective means are adopted to notify the person of his\nright of silence and to assure that the exercise of the right will be scrupulously honored, the following measures are required. He\nmust be warned prior to any questioning that he has the right to remain silent, that anything he says can be used against him in\na court of law, that he has the right to the presence of an attorney, and that if he cannot afford an attorney one will be appointed\nfor him prior to any questioning if he so desires. Opportunity to exercise these rights must be afforded to him throughout the\ninterrogation. After such warnings have been given, and such opportunity afforded him, the individual may knowingly and\nintelligently waive these rights and agree to answer questions or make a statement. But unless and until such warnings and\nwaiver are demonstrated by the prosecution at trial, no evidence obtained as a result of interrogation can be used against him.48\nIV .\n A recurrent argument made in these cases is that society's need for interrogation outweighs the privilege. This argument is not\nunfamiliar to this Court. See, e.g., Chambers v. State of Florida, 309 U.S. 227, 240\u2014241, 60 S.Ct. 472, 478\u2014479, 84 L.Ed.\n716 (1940). The whole thrust of our foregoing discussion demonstrates that the Constitution has prescribed the rights of the\nindividual when confronted with the power of government when it provided in the Fifth Amendment that an individual cannot\nbe compelled to be a witness against himself. That right cannot be abridged. As Mr. Justice Brandeis once observed:\n\u2018Decency, security, and liberty alike demand that government officials shall **1631 be subjected to the same *480 rules of\nconduct that are commands to the citizen. In a government of laws, existence of the government will be imperilled if it fails to\nobserve the law scrupulously. Our government is the potent, the omnipresent teacher. For good or for ill, it teaches the whole\npeople by its example. Crime is contagious. If the government becomes a lawbreaker, it breeds contempt for law; it invites\nevery man to become a law unto himself; it invites anarchy. To declare that in the administration of the criminal law the end\njustifies the means * * * would bring terrible retribution. Against that pernicious doctrine this court should resolutely set its\nface.\u2019 Olmstead v. United States, 277 U.S. 438, 485, 48 S.Ct. 564, 575, 72 L.Ed. 944 (1928) (dissenting opinion). 49\nIn this connection, one of our country's distinguished jurists has pointed out: \u2018The quality of a nation's civilization can be largely\nmeasured by the methods it uses in the enforcement of its criminal law.'50\n If the individual desires to exercise his privilege, he has the right to do so. This is not for the authorities to decide. An attorney\nmay advise his client not to talk to police until he has had an opportunity to investigate the case, or he may wish to be present\nwith his client during any police questioning. In doing so an attorney is merely exercising the good professional judgment he\nhas been taught. This is not cause for considering the attorney a menace to law enforcement. He is merely carrying out what he\nis sworn to do under his oath\u2014to protect to the extent of his ability the rights of his *481 client. In fulfilling this responsibility\nthe attorney plays a vital role in the administration of criminal justice under our Constitution.\nIn announcing these principles, we are not unmindful of the burdens which law enforcement officials must bear, often under\ntrying circumstances. We also fully recognize the obligation of all citizens to aid in enforcing the criminal laws. This Court,\nwhile protecting individual rights, has always given ample latitude to law enforcement agencies in the legitimate exercise of their\nduties.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4324, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8622d672-dabe-4281-bc56-613fb70e091e": {"__data__": {"id_": "8622d672-dabe-4281-bc56-613fb70e091e", "embedding": null, "metadata": {"page_label": "15", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d365ad41-6055-4d61-8a92-c51920a2725f", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8dec75b62d62983b13b74a6eb9108b6f31bd2fb89321aa3b42ae2c74292b2fe5", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "a3f9feaa-3e9b-4334-8f32-2b7b63b47f06", "node_type": "1", "metadata": {"page_label": "15", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "46ed12526a9c321c620b3e30d50d1f00fa58a61657aaad85bea737c91b5a603d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "In doing so an attorney is merely exercising the good professional judgment he\nhas been taught. This is not cause for considering the attorney a menace to law enforcement. He is merely carrying out what he\nis sworn to do under his oath\u2014to protect to the extent of his ability the rights of his *481 client. In fulfilling this responsibility\nthe attorney plays a vital role in the administration of criminal justice under our Constitution.\nIn announcing these principles, we are not unmindful of the burdens which law enforcement officials must bear, often under\ntrying circumstances. We also fully recognize the obligation of all citizens to aid in enforcing the criminal laws. This Court,\nwhile protecting individual rights, has always given ample latitude to law enforcement agencies in the legitimate exercise of their\nduties. The limits we have placed on the interrogation process should not constitute an undue interference with a proper system\nof law enforcement. As we have noted, our decision does not in any way preclude police from carrying out their traditional\ninvestigatory functions. Although confessions may play an important role in some convictions, the cases before us present\ngraphic examples of the overstatement of the \u2018need\u2019 for confessions. In each case authorities conducted interrogations ranging\nup to five days in duration despite the presence, through standard investigating practices, of considerable evidence against each\ndefendant. 51 Further examples are chronicled in our prior cases. See, e.g., Haynes v. State of Washington, 373 U.S. 503, 518\u2014", "mimetype": "text/plain", "start_char_idx": 3494, "end_char_idx": 5074, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cbbf1009-aeb3-472b-83c4-de6b9c0047b6": {"__data__": {"id_": "cbbf1009-aeb3-472b-83c4-de6b9c0047b6", "embedding": null, "metadata": {"page_label": "16", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d2622d24-c23e-4050-826d-51857533a44d", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "538dc7328082b56e3cb1b650cd8043b66e8fe5a7e39b29c8d989220d41f69253", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "266ae132-2515-4d10-a902-d88adbd97ac4", "node_type": "1", "metadata": {}, "hash": "4b8610960859d26d06cee3bbe9bf937fb4dea59c6799d20409f302a1f6642989", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 16\n519, 83 S.Ct. 1336, 1345, 1346, 10 L.Ed.2d 513 (1963); Rogers v. Richmond, 365 U.S. 534, 541, 81 S.Ct. 735, 739, 5 L.Ed.2d\n760 (1961); Malinski v. People of State of New York, 324 U.S. 401, 402, 65 S.Ct. 781, 782 (1945). 52\n**1632 *482 It is also urged that an unfettered right to detention for interrogation should be allowed because it will often\nredound to the benefit of the person questioned. When police inquiry determines that there is no reason to believe that the\nperson has committed any crime, it is said, he will be released without need for further formal procedures. The person who has\ncommitted no offense, however, will be better able to clear himself after warnings with counsel present than without. It can be\nassumed that in such circumstances a lawyer would advise his client to talk freely to police in order to clear himself.\nCustodial interrogation, by contrast, does not necessarily afford the innocent an opportunity to clear themselves. A serious\nconsequence of the present practice of the interrogation alleged to be beneficial for the innocent is that many arrests \u2018for\ninvestigation\u2019 subject large numbers of innocent persons to detention and interrogation. In one of the cases before us, No. 584,\nCalifornia v. Stewart, police held four persons, who were in the defendant's house at the time of the arrest, in jail for five days\nuntil defendant confessed. At that time they were finally released. Police stated that there was \u2018no evidence to connect them\nwith any crime.\u2019 Available statistics on the extent of this practice where it is condoned indicate that these four are far from alone\nin being subjected to arrest, prolonged detention, and interrogation without the requisite probable cause.53\n*483 Over the years the Federal Bureau of Investigation has compiled an exemplary record of effective law enforcement\nwhile advising any suspect or arrested person, at the outset of an interview, that he is not required to make a statement, that any\nstatement may be used against him in court, that the individual may obtain the services of an attorney of his own choice and,\nmore recently, that he has a right to free counsel if he is unable to pay.54 A **1633 letter received from the Solicitor General\nin response to a question from the Bench makes it clear that the present pattern of warnings and respect for the *484 rights of\nthe individual followed as a practice by the FBI is consistent with the procedure which we delineate today. It states:\n\u2018At the oral argument of the above cause, Mr. Justice Fortas asked whether I could provide certain information as to the practices\nfollowed by the Federal Bureau of Investigation. I have directed these questions to the attention of the Director of the Federal\nBureau of Investigation and am submitting herewith a statement of the questions and of the answers which we have received.\n\u201c(1) When an individual is interviewed by agents of the Bureau, what warning is given to him?\n\u201cThe standard warning long given by Special Agents of the FBI to both suspects and persons under arrest is that the person has\na right to say nothing and a right to counsel, and that any statement he does make may be used against him in court. Examples\nof this warning are to be found in the Westover case at 342 F.2d 684 (1965), and Jackson v. U.S., (119 U.S.App.D.C. 100) 337\nF.2d 136 (1964), cert. den. 380 U.S. 935, 85 S.Ct. 1353,\n\u201cAfter passage of the Criminal Justice Act of 1964, which provides free counsel for Federal defendants unable to pay, we added\nto our instructions to Special Agents the requirement that any person who is under arrest for an offense under FBI jurisdiction,\nor whose arrest is contemplated following the interview, must also be advised of his right to free counsel if he is unable to pay,\nand the fact that such counsel will be assigned by the Judge.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4040, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "266ae132-2515-4d10-a902-d88adbd97ac4": {"__data__": {"id_": "266ae132-2515-4d10-a902-d88adbd97ac4", "embedding": null, "metadata": {"page_label": "16", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d2622d24-c23e-4050-826d-51857533a44d", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "538dc7328082b56e3cb1b650cd8043b66e8fe5a7e39b29c8d989220d41f69253", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "cbbf1009-aeb3-472b-83c4-de6b9c0047b6", "node_type": "1", "metadata": {"page_label": "16", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "72987ab665fa85c2311b7bc3c83de1faf29cd1028ff0509137e82ca56dfa4293", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Examples\nof this warning are to be found in the Westover case at 342 F.2d 684 (1965), and Jackson v. U.S., (119 U.S.App.D.C. 100) 337\nF.2d 136 (1964), cert. den. 380 U.S. 935, 85 S.Ct. 1353,\n\u201cAfter passage of the Criminal Justice Act of 1964, which provides free counsel for Federal defendants unable to pay, we added\nto our instructions to Special Agents the requirement that any person who is under arrest for an offense under FBI jurisdiction,\nor whose arrest is contemplated following the interview, must also be advised of his right to free counsel if he is unable to pay,\nand the fact that such counsel will be assigned by the Judge. At the same time, we broadened the right to counsel warning *485\nto read counsel of his own choice, or anyone else with whom he might wish to speak.\n\u201c(2) When is the warning given?\n\u201cThe FBI warning is given to a suspect at the very outset of the interview, as shown in the Westover case, cited above. The\nwarning may be given to a person arrested as soon as practicable after the arrest, as shown in the Jackson case, also cited above,\nand in U.S. v. Konigsberg, 336 F.2d 844 (1964), cert. den. (Celso v. United States) 379 U.S. 933 (85 S.Ct. 327, 13 L.Ed.2d 342)\nbut in any event it must precede the interview with the person for a confession or admission of his own guilt.\n\u201c(3) What is the Bureau's practice in the event that (a) the individual requests counsel and (b) counsel appears?", "mimetype": "text/plain", "start_char_idx": 3401, "end_char_idx": 4829, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e11c42c1-990f-452f-b0c4-e667be069124": {"__data__": {"id_": "e11c42c1-990f-452f-b0c4-e667be069124", "embedding": null, "metadata": {"page_label": "17", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "66904acf-e0dd-4c49-8215-90ebe929a1e2", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "32199010449e8814b330b6acad2bae97c4079ffc18a00a909c44c15b237f436e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "0ef6a263-7213-4a5e-9173-052b1cc7f876", "node_type": "1", "metadata": {}, "hash": "2c366b74fd9cd06f91c1d9f05095bd7473174b6323051a88771bedec5b914282", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 17\n\u201cWhen the person who has been warned of his right to counsel decides that he wishes to consult with counsel before making a\nstatement, the interview is terminated at that point, Shultz v. U.S., 351 F.2d 287 ((10 Cir.) 1965). It may be continued, however,\nas to all matters other than the person's own guilt or innocence. If he is indecisive in his request for counsel, there may be some\nquestion on whether he did or did not waive counsel. Situations of this kind must necessarily be left to the judgment of the\ninterviewing Agent. For example, in Hiram v. U.S., 354 F.2d 4 ((9 Cir.) 1965), the Agent's conclusion that the person arrested\nhad waived his right to counsel was upheld by the courts.\n\u201cA person being interviewed and desiring to consult counsel by telephone must be permitted to do so, as shown in Caldwell v.\nU.S., 351 F.2d 459 ((1 Cir.) 1965). When counsel **1634 appears in person, he is permitted to confer with his client in private.\n*486 \u201c(4) What is the Bureau's practice if the individual requests counsel, but cannot afford to retain an attorney?\n\u201cIf any person being interviewed after warning of counsel decides that he wishes to consult with counsel before proceeding\nfurther the interview is terminated, as shown above. FBI Agents do not pass judgment on the ability of the person to pay\nfor counsel. They do, however, advise those who have been arrested for an offense under FBI jurisdiction, or whose arrest is\ncontemplated following the interview, of a right to free counsel if they are unable to pay, and the availability of such counsel\nfrom the Judge.\u201d 55\n The practice of the FBI can readily be emulated by state and local enforcement agencies. The argument that the FBI deals with\ndifferent crimes than are dealt with by state authorities does not mitigate the significance of the FBI experience.56\nThe experience in some other countries also suggests that the danger to law enforcement in curbs on interrogation is overplayed.\nThe English procedure since 1912 under the Judges' Rules is significant. As recently *487 strengthened, the Rules require that\na cautionary warning be given an accused by a police officer as soon as he has evidence that affords reasonable grounds for\nsuspicion; they also require that any statement made be given by the accused without questioning by police.57 *488 The right\nof the individual to **1635 consult with an attorney during this period is expressly recognized. 58\nThe safeguards present under Scottish law may be even greater than in England. Scottish judicial decisions bar use in evidence\nof most confessions obtained through police interrogation. 59 In India, confessions made to police not in the presence of a\nmagistrate have been excluded *489 by rule of evidence since 1872, at a time when it operated under British law.60 Identical\nprovisions appear in the Evidence Ordinance of Ceylon, enacted in 1895. 61 Similarly, in our country the Uniform Code of\nMilitary Justice has long provided that no suspect may be interrogated without first being warned of his right not to make a\nstatement and that any statement he makes may be used against him.62 Denial of the right to consult counsel during interrogation\nhas also been proscribed by military tribunals.63 **1636 There appears to have been no marked detrimental effect on criminal\nlaw enforcement in these jurisdictions as a result of these rules. Conditions of law enforcement in our country are sufficiently\nsimilar to permit reference to this experience as assurance that lawlessness will not result from warning an individual of his\nrights or allowing him to exercise them. Moreover, it is consistent with our legal system that we give at least as much protection\nto these rights as is given in the jurisdictions described. We deal in our country with rights grounded in a specific requirement\nof the Fifth Amendment of the Constitution, *490 whereas other jurisdictions arrived at their conclusions on the basis of\nprinciples of justice not so specifically defined. 64\n It is also urged upon us that we withhold decision on this issue until state legislative bodies and advisory groups have had an\nopportunity to deal with these problems by rule making.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4397, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0ef6a263-7213-4a5e-9173-052b1cc7f876": {"__data__": {"id_": "0ef6a263-7213-4a5e-9173-052b1cc7f876", "embedding": null, "metadata": {"page_label": "17", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "66904acf-e0dd-4c49-8215-90ebe929a1e2", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "32199010449e8814b330b6acad2bae97c4079ffc18a00a909c44c15b237f436e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "e11c42c1-990f-452f-b0c4-e667be069124", "node_type": "1", "metadata": {"page_label": "17", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f3dece8759577ad1063dac0c562754b65b4908ba6c1ba763d454a1b7472d2874", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Conditions of law enforcement in our country are sufficiently\nsimilar to permit reference to this experience as assurance that lawlessness will not result from warning an individual of his\nrights or allowing him to exercise them. Moreover, it is consistent with our legal system that we give at least as much protection\nto these rights as is given in the jurisdictions described. We deal in our country with rights grounded in a specific requirement\nof the Fifth Amendment of the Constitution, *490 whereas other jurisdictions arrived at their conclusions on the basis of\nprinciples of justice not so specifically defined. 64\n It is also urged upon us that we withhold decision on this issue until state legislative bodies and advisory groups have had an\nopportunity to deal with these problems by rule making. 65 We have already pointed out that the Constitution does not require\nany specific code of procedures for protecting the privilege against self-incrimination during custodial interrogation. Congress\nand the States are free to develop their own safeguards for the privilege, so long as they are fully as effective as those described\nabove in informing accused persons of their right of silence and in affording a continuous opportunity to exercise it. In any", "mimetype": "text/plain", "start_char_idx": 3586, "end_char_idx": 4856, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "239dee1e-f5c5-4355-bb37-fd6dee421632": {"__data__": {"id_": "239dee1e-f5c5-4355-bb37-fd6dee421632", "embedding": null, "metadata": {"page_label": "18", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "74fbdd83-4dc9-40ec-8828-8250958c5c34", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ee7038e0696d2ae2c79a4398c5831867cea7bdb5375f77b6eefaf1e2e77c7aa9", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "08c9c875-2a59-4a9e-9296-0ba034da725f", "node_type": "1", "metadata": {}, "hash": "6d30b19db0a2af8f7cff69e21f200edf85964cc1816dae6d6e6d1968e492364c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 18\nevent, however, the issues presented are of constitutional dimensions and must be determined by the courts. The admissibility\nof a statement in the face of a claim that it was obtained in violation of the defendant's constitutional rights is an issue the\nresolution of which has long since been undertaken by this Court. See Hopt v. People of Territory of Utah, 110 U.S. 574, 4\nS.Ct. 202, 28 L.Ed. 262 (1884). Judicial solutions to problems of constitutional dimension have evolved decade by decade. As\ncourts have been presented with the need to enforce constitutional rights, they have found means of doing so. That was our\nresponsibility when Escobedo was before us and it is our *491 responsibility today. Where rights secured by the Constitution\nare involved, there can be no rule making or legislation which would abrogate them.\nV.\nBecause of the nature of the problem and because of its recurrent significance in numerous cases, we have to this point discussed\nthe relationship of the Fifth Amendment privilege to police interrogation without specific concentration on the facts of the cases\nbefore us. We turn now to these facts to consider the application to these cases of the constitutional principles discussed above.\nIn each instance, we have concluded that statements were obtained from the defendant under circumstances that did not meet\nconstitutional standards for protection of the privilege.\nNo. 759. Miranda v. Arizona.\nOn March 13, 1963, petitioner, Ernesto Miranda, was arrested at his home and taken in custody to a Phoenix police station.\nHe was there identified by the complaining witness. The police then took him to \u2018Interrogation Room No. 2\u2019 of the detective\nbureau. There he was questioned by two police officers. The officers admitted at trial that Miranda was **1637 not advised\nthat he had a right to have an attorney present.66 Two hours later, the *492 officers emerged from the interrogation room with\na written confession signed by Miranda. At the top of the statement was a typed paragraph stating that the confession was made\nvoluntarily, without threats or promises of immunity and \u2018with full knowledge of my legal rights, understanding any statement\nI make may be used against me.\u2019 67\nAt his trial before a jury, the written confession was admitted into evidence over the objection of defense counsel, and the\nofficers testified to the prior oral confession made by Miranda during the interrogation. Miranda was found guilty of kidnapping\nand rape. He was sentenced to 20 to 30 years' imprisonment on each count, the sentences to run concurrently. On appeal, the\nSupreme Court of Arizona held that Miranda's constitutional rights were not violated in obtaining the confession and affirmed\nthe conviction. 98 Ariz. 18, 401 P.2d 721. In reaching its decision, the court emphasized heavily the fact that Miranda did not\nspecifically request counsel.\n We reverse. From the testimony of the officers and by the admission of respondent, it is clear that Miranda was not in any\nway apprised of his right to consult with an attorney and to have one present during the interrogation, nor was his right not\nto be compelled to incriminate himself effectively protected in any other manner. Without these warnings the statements were\ninadmissible. The mere fact that he signed a statement which contained a typed-in clause stating that he had \u2018full knowledge\u2019 of\nhis \u2018legal rights' does not approach the knowing and intelligent waiver required to relinquish constitutional rights. Cf. Haynes\nv. State of Washington, 373 U.S. 503, 512\u2014513, 83 S.Ct. 1336, 1342, 10 L.Ed.2d 513 (1963) ; *493 Haley v. State of Ohio,\n332 U.S. 596, 601, 68 S.Ct. 302, 304, 92 L.Ed. 224 (1948) (opinion of Mr. Justice Douglas).\nNo. 760. Vignera v. New York.\nPetitioner, Michael Vignera, was picked up by New York police on October 14, 1960, in connection with the robbery three days\nearlier of a Brooklyn dress shop.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4120, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "08c9c875-2a59-4a9e-9296-0ba034da725f": {"__data__": {"id_": "08c9c875-2a59-4a9e-9296-0ba034da725f", "embedding": null, "metadata": {"page_label": "18", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "74fbdd83-4dc9-40ec-8828-8250958c5c34", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ee7038e0696d2ae2c79a4398c5831867cea7bdb5375f77b6eefaf1e2e77c7aa9", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "239dee1e-f5c5-4355-bb37-fd6dee421632", "node_type": "1", "metadata": {"page_label": "18", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ffb4ff94401d7c4c30c95dcb0a4f1edb9fdcab37bab7bbb3d3451d804f6c6aae", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Cf. Haynes\nv. State of Washington, 373 U.S. 503, 512\u2014513, 83 S.Ct. 1336, 1342, 10 L.Ed.2d 513 (1963) ; *493 Haley v. State of Ohio,\n332 U.S. 596, 601, 68 S.Ct. 302, 304, 92 L.Ed. 224 (1948) (opinion of Mr. Justice Douglas).\nNo. 760. Vignera v. New York.\nPetitioner, Michael Vignera, was picked up by New York police on October 14, 1960, in connection with the robbery three days\nearlier of a Brooklyn dress shop. They took him to the 17th Detective Squad headquarters in Manhattan. Sometime thereafter\nhe was taken to the 66th Detective Squad. There a detective questioned Vignera with respect to the robbery. Vignera orally\nadmitted the robbery to the detective. The detective was asked on cross-examination at trial by defense counsel whether Vignera\nwas warned of his right to counsel before being interrogated. The prosecution objected to the question and the trial judge\nsustained the objection. Thus, the defense was precluded from making any showing that warnings had not been given. While at", "mimetype": "text/plain", "start_char_idx": 3707, "end_char_idx": 4707, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b5643b5a-e96b-4ccf-959d-b14ecd9a8ff9": {"__data__": {"id_": "b5643b5a-e96b-4ccf-959d-b14ecd9a8ff9", "embedding": null, "metadata": {"page_label": "19", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0b8bc016-7c81-408b-9b8b-89874bdfe4a0", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "36a65ce736948c5c377c24e4edb967410f3df1cadb985179f1625ccf7224d0a5", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "4b061cb5-3509-4d5e-a776-d31ecc85ce63", "node_type": "1", "metadata": {}, "hash": "d38cf38263679fb78623c8418a79bb815131934ad0ba8d91d62f2a1e08df1d99", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 19\nthe 66th Detective Squad, Vignera was identified by the store owner and a saleslady as the man who robbed the dress shop. At\nabout 3 p.m. he was formally arrested. The police then transported him to still another station, the 70th Precinct in Brooklyn,\n\u2018for detention.\u2019 At 11 p.m. Vignera was questioned by an assistant district attorney in the presence of a hearing reporter who\ntranscribed the questions and Vignera's answers. This verbatim account of these proceedings **1638 contains no statement of\nany warnings given by the assistant district attorney. At Vignera's trial on a charge of first degree robbery, the detective testified\nas to the oral confession. The transcription of the statement taken was also introduced in evidence. At the conclusion of the\ntestimony, the trial judge charged the jury in part as follows:\n\u2018The law doesn't say that the confession is void or invalidated because the police officer didn't advise the\ndefendant as to his rights. Did you hear what *494 I said? I am telling you what the law of the State of\nNew York is.\u2019\nVignera was found guilty of first degree robbery. He was subsequently adjudged a third-felony offender and sentenced to 30\nto 60 years' imprisonment.68 The conviction was affirmed without opinion by the Appellate Division, Second Department, 21\nA.D.2d 752, 252 N.Y .S.2d 19, and by the Court of Appeals, also without opinion, 15 N.Y .2d 970, 259 N.Y .S.2d 857, 207 N.E.2d\n527, remittitur amended, 16 N.y.2d 614, 261 N.Y .S.2d 65, 209 N.E.2d 110. In argument to the Court of Appeals, the State\ncontended that Vignera had no constitutional right to be advised of his right to counsel or his privilege against self-incrimination.\n We reverse. The foregoing indicates that Vignera was not warned of any of his rights before the questioning by the detective\nand by the assistant district attorney. No other steps were taken to protect these rights. Thus he was not effectively apprised of\nhis Fifth Amendment privilege or of his right to have counsel present and his statements are inadmissible.\nNo. 761. Westover v. United States.\nAt approximately 9:45 p.m. on March 20, 1963, petitioner, Carl Calvin Westover, was arrested by local police in Kansas City\nas a suspect in two Kansas City robberies. A report was also received from the FBI that he was wanted on a felony charge\nin California. The local authorities took him to a police station and placed him in a line-up on the local charges, and at about\n11:45 p.m. he was booked. Kansas City police interrogated Westover *495 on the night of his arrest. He denied any knowledge\nof criminal activities. The next day local officers interrogated him again throughout the morning. Shortly before noon they\ninformed the FBI that they were through interrogating Westover and that the FBI could proceed to interrogate him. There is\nnothing in the record to indicate that Westover was ever given any warning as to his rights by local police. At noon, three\nspecial agents of the FBI continued the interrogation in a private interview room of the Kansas City Police Department, this\ntime with respect to the robbery of a savings and loan association and a bank in Sacramento, California. After two or two and\none-half hours, Westover signed separate confessions to each of these two robberies which had been prepared by one of the\nagents during the interrogation. At trial one of the agents testified, and a paragraph on each of the statements states, that the\nagents advised Westover that he did not have to make a statement, that any statement he made could be used against him, and\nthat he had the right to see an attorney.\n Westover was tried by a jury in federal court and convicted of the California robberies. His statements were introduced at trial.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3950, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4b061cb5-3509-4d5e-a776-d31ecc85ce63": {"__data__": {"id_": "4b061cb5-3509-4d5e-a776-d31ecc85ce63", "embedding": null, "metadata": {"page_label": "19", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0b8bc016-7c81-408b-9b8b-89874bdfe4a0", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "36a65ce736948c5c377c24e4edb967410f3df1cadb985179f1625ccf7224d0a5", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "b5643b5a-e96b-4ccf-959d-b14ecd9a8ff9", "node_type": "1", "metadata": {"page_label": "19", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f6de0941949cfd7e26384c7fbfb52adf530e6979421772391687b8b33323723b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "There is\nnothing in the record to indicate that Westover was ever given any warning as to his rights by local police. At noon, three\nspecial agents of the FBI continued the interrogation in a private interview room of the Kansas City Police Department, this\ntime with respect to the robbery of a savings and loan association and a bank in Sacramento, California. After two or two and\none-half hours, Westover signed separate confessions to each of these two robberies which had been prepared by one of the\nagents during the interrogation. At trial one of the agents testified, and a paragraph on each of the statements states, that the\nagents advised Westover that he did not have to make a statement, that any statement he made could be used against him, and\nthat he had the right to see an attorney.\n Westover was tried by a jury in federal court and convicted of the California robberies. His statements were introduced at trial.\nHe was sentenced to 15 years' imprisonment on each count, the sentences to run consecutively. On appeal, the conviction was\naffirmed by the Court of Appeals for the Ninth Circuit. 342 F.2d 684.\n**1639 We reverse. On the facts of this case we cannot find that Westover knowingly and intelligently waived his right to\nremain silent and his right to consult with counsel prior to the time he made the statement.69 At the *496 time the FBI agents\nbegan questioning Westover, he had been in custody for over 14 hours and had been interrogated at length during that period.\nThe FBI interrogation began immediately upon the conclusion of the interrogation by Kansas City police and was conducted\nin local police headquarters. Although the two law enforcement authorities are legally distinct and the crimes for which they", "mimetype": "text/plain", "start_char_idx": 3018, "end_char_idx": 4768, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8a71fcad-f7f7-4eed-9ba8-a32585a4ed34": {"__data__": {"id_": "8a71fcad-f7f7-4eed-9ba8-a32585a4ed34", "embedding": null, "metadata": {"page_label": "20", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d352c53c-49ee-45b5-9099-c74a45f43c6f", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "761cc3df26c801ffdb28b2d33f80ba31c2d067a6c10037a28fe814411f9dcdee", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "72b44a8b-e31a-4ac0-b80e-a445cdc8da61", "node_type": "1", "metadata": {}, "hash": "869d9b5bf20e767f862201af7bd4132937abb5bd0d6c52ae7da93a66b54ac2dd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 20\ninterrogated Westover were different, the impact on him was that of a continuous period of questioning. There is no evidence\nof any warning given prior to the FBI interrogation nor is there any evidence of an articulated waiver of rights after the FBI\ncommenced its interrogation. The record simply shows that the defendant did in fact confess a short time after being turned\nover to the FBI following interrogation by local police. Despite the fact that the FBI agents gave warnings at the outset of their\ninterview, from Westover's point of view the warnings came at the end of the interrogation process. In these circumstances an\nintelligent waiver of constitutional rights cannot be assumed.\n We do not suggest that law enforcement authorities are precluded from questioning any individual who has been held for a\nperiod of time by other authorities and interrogated by them without appropriate warnings. A different case would be presented\nif an accused were taken into custody by the second authority, removed both in time and place from his original surroundings,\nand then adequately advised of his rights and given an opportunity to exercise them. But here the FBI interrogation was\nconducted immediately following the state interrogation in the same police station\u2014in the same compelling surroundings. Thus,\nin obtaining a confession from Westover *497 the federal authorities were the beneficiaries of the pressure applied by the local\nin-custody interrogation. In these circumstances the giving of warnings alone was not sufficient to protect the privilege.\nNo. 584. California v. Stewart.\nIn the course of investigating a series of purse-snatch robberies in which one of the victims had died of injuries inflicted by her\nassailant, respondent, Roy Allen Stewart, was pointed out to Los Angeles police as the endorser of dividend checks taken in\none of the robberies. At about 7:15 p.m., January 31, 1963, police officers went to Stewart's house and arrested him. One of\nthe officers asked Stewart if they could search the house, to which he replied, \u2018Go ahead.\u2019 The search turned up various items\ntaken from the five robbery victims. At the time of Stewart's arrest, police also arrested Stewart's wife and three other persons\nwho were visiting him. These four were jailed along with Stewart and were interrogated. Stewart was taken to the University\nStation of the Los Angeles Police Department where he was placed in a cell. During the next five days, police interrogated\nStewart on nine different occasions. Except during the first interrogation session, when he was confronted with an accusing\nwitness, Stewart was isolated with his interrogators.\n**1640 During the ninth interrogation session, Stewart admitted that he had robbed the deceased and stated that he had not\nmeant to hurt her. Police then brought Stewart before a magistrate for the first time. Since there was no evidence to connect\nthem with any crime, the police then released the other four persons arrested with him.\nNothing in the record specifically indicates whether Stewart was or was not advised of his right to remain silent or his right to\ncounsel. In a number of instances, *498 however, the interrogating officers were asked to recount everything that was said\nduring the interrogations. None indicated that Stewart was ever advised of his rights.\n Stewart was charged with kidnapping to commit robbery, rape, and murder. At his trial, transcripts of the first interrogation and\nthe confession at the last interrogation were introduced in evidence. The jury found Stewart guilty of robbery and first degree\nmurder and fixed the penalty as death. On appeal, the Supreme Court of California reversed. 62 Cal.2d 571, 43 Cal.Rptr. 201, 400\nP.2d 97. It held that under this Court's decision in Escobedo, Stewart should have been advised of his right to remain silent and\nof his right to counsel and that it would not presume in the face of a silent record that the police advised Stewart of his rights.70\n We affirm. 71 In dealing with custodial interrogation, we will not presume that a defendant has been effectively apprised of\nhis rights and that his privilege against self-incrimination has been adequately safeguarded on a record that does not show that\nany warnings have been given or that any effective alternative has been employed.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4527, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "72b44a8b-e31a-4ac0-b80e-a445cdc8da61": {"__data__": {"id_": "72b44a8b-e31a-4ac0-b80e-a445cdc8da61", "embedding": null, "metadata": {"page_label": "20", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d352c53c-49ee-45b5-9099-c74a45f43c6f", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "761cc3df26c801ffdb28b2d33f80ba31c2d067a6c10037a28fe814411f9dcdee", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "8a71fcad-f7f7-4eed-9ba8-a32585a4ed34", "node_type": "1", "metadata": {"page_label": "20", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8c419bf9c7b4f6f17d9a7b63887aed9b28b6750203f21a9f56235995ce9a0f58", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The jury found Stewart guilty of robbery and first degree\nmurder and fixed the penalty as death. On appeal, the Supreme Court of California reversed. 62 Cal.2d 571, 43 Cal.Rptr. 201, 400\nP.2d 97. It held that under this Court's decision in Escobedo, Stewart should have been advised of his right to remain silent and\nof his right to counsel and that it would not presume in the face of a silent record that the police advised Stewart of his rights.70\n We affirm. 71 In dealing with custodial interrogation, we will not presume that a defendant has been effectively apprised of\nhis rights and that his privilege against self-incrimination has been adequately safeguarded on a record that does not show that\nany warnings have been given or that any effective alternative has been employed. Nor can a knowing and intelligent waiver of\n*499 these rights be assumed on a silent record. Furthermore, Stewart's steadfast denial of the alleged offenses through eight\nof the nine interrogations over a period of five days is subject to no other construction than that he was compelled by persistent\ninterrogation to forgo his Fifth Amendment privilege.", "mimetype": "text/plain", "start_char_idx": 3739, "end_char_idx": 4884, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b02cae29-a8a7-4bd8-9573-a5edb6b10237": {"__data__": {"id_": "b02cae29-a8a7-4bd8-9573-a5edb6b10237", "embedding": null, "metadata": {"page_label": "21", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9ad0675e-bc03-4434-ba7b-d00fddd4c481", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "607717965930a8882cd8229fad9046786e251a3383815ed46ebc00db3b8b12d6", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "5be0bdae-6269-4f7a-91b6-544c674d06a5", "node_type": "1", "metadata": {}, "hash": "a119903a6f815772e379a3531902e78490a84a35fc5e98c9601007f4a88f429d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 21\nTherefore, in accordance with the foregoing, the judgments of the Supreme Court of Arizona in No. 759, of the New York Court\nof Appeals in No. 760, and of the Court of Appeals for the Ninth Circuit in No. 761 are reversed. The judgment of the Supreme\nCourt of California in No. 584 is affirmed. It is so ordered.\nJudgments of Supreme Court of Arizona in No. 759, of New York Court of Appeals in No. 760, and of the Court of Appeals\nfor the Ninth Circuit in No. 761 reversed.\nJudgment of Supreme Court of California in No. 584 affirmed.\nMr. Justice CLARK, dissenting in Nos. 759, 760, and 761, and concurring in the result in No. 584.\nIt is with regret that I find it necessary to write in these cases. However, I am unable to join the majority because its opinion goes\ntoo far on too little, while my **1641 dissenting brethren do not go quite far enough. Nor can I join in the Court's criticism\nof the present practices of police and investigatory agencies as to custodial interrogation. The materials it refers to as \u2018police\nmanuals' 1 are, as I read them, merely writings in this filed by professors and some police officers. Not one is shown by the\nrecord here to be the official manual of any police department, much less in universal use in crime detection. Moreover the\nexamples of police brutality mentioned by the Court2 are rare exceptions to the thousands of cases *500 that appear every year\nin the law reports. The police agencies\u2014all the way from municipal and state forces to the federal bureaus\u2014are responsible\nfor law enforcement and public safety in this country. I am proud of their efforts, which in my view are not fairly characterized\nby the Court's opinion.\nI.\nThe ipse dixit of the majority has no support in our cases. Indeed, the Court admits that \u2018we might not find the defendants'\nstatements (here) to have been involuntary in traditional terms.\u2019 Ante, p. 1618. In short, the Court has added more to the\nrequirements that the accused is entitled to consult with his lawyer and that he must be given the traditional warning that he may\nremain silent and that anything that he says may be used against him. Escobedo v. State of Illinois, 378 U.S. 478, 490\u2014491,\n84 S.Ct. 1758, 1764\u20141765, 12 L.Ed.2d 977 (1964) . Now, the Court fashions a constitutional rule that the police may engage\nin no custodial interrogation without additionally advising the accused that he has a right under the Fifth Amendment to the\npresence of counsel during interrogation and that, if he is without funds, counsel will be furnished him. When at any point during\nan interrogation the accused seeks affirmatively or impliedly to invoke his rights to silence or counsel, interrogation must be\nforgone or postponed. The Court further holds that failure to follow the new procedures requires inexorably the exclusion of any\nstatement by the accused, as well as the fruits thereof. Such a strict constitutional specific inserted at the nerve center of crime\ndetection may well kill the patient. 3 *501 Since there is at **1642 this time a paucity of information and an almost total\nlack of empirical knowledge on the practical operation of requirements truly comparable to those announced by the majority,\nI would be more restrained lest we go too far too fast.\nII.\nCustodial interrogation has long been recognized as \u2018undoubtedly an essential tool in effective law enforcement.\u2019 Haynes v.\nState of Washington, 373 U.S. 503, 515, 83 S.Ct. 1336, 1344, 10 L.Ed.2d 513 (1963) . Recognition of this fact should put us\non guard against the promulgation of doctrinaire rules. Especially is this true where the Court finds that \u2018the Constitution has\nprescribed\u2019 its holding and where the light of our past cases, from Hopt v. People of Territory of Utah, 110 U.S. 574, 4 S.Ct.\n202, 28 L.Ed.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3982, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5be0bdae-6269-4f7a-91b6-544c674d06a5": {"__data__": {"id_": "5be0bdae-6269-4f7a-91b6-544c674d06a5", "embedding": null, "metadata": {"page_label": "21", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9ad0675e-bc03-4434-ba7b-d00fddd4c481", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "607717965930a8882cd8229fad9046786e251a3383815ed46ebc00db3b8b12d6", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "b02cae29-a8a7-4bd8-9573-a5edb6b10237", "node_type": "1", "metadata": {"page_label": "21", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0a6c405f158cba7d1fed2ea7d9ca8a641ec8ac2f1ebf46af98fbbe51609adf67", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "II.\nCustodial interrogation has long been recognized as \u2018undoubtedly an essential tool in effective law enforcement.\u2019 Haynes v.\nState of Washington, 373 U.S. 503, 515, 83 S.Ct. 1336, 1344, 10 L.Ed.2d 513 (1963) . Recognition of this fact should put us\non guard against the promulgation of doctrinaire rules. Especially is this true where the Court finds that \u2018the Constitution has\nprescribed\u2019 its holding and where the light of our past cases, from Hopt v. People of Territory of Utah, 110 U.S. 574, 4 S.Ct.\n202, 28 L.Ed. 262 (1884), down to Haynes v. State of Washington, supra, is to *502 the contrary. Indeed, even in Escobedo\nthe Court never hinted that an affirmative \u2018waiver\u2019 was a prerequisite to questioning; that the burden of proof as to waiver was\non the prosecution; that the presence of counsel\u2014absent a waiver\u2014during interrogation was required; that a waiver can be\nwithdrawn at the will of the accused; that counsel must be furnished during an accusatory stage to those unable to pay; nor\nthat admissions and exculpatory statements are \u2018confessions.\u2019 To require all those things at one gulp should cause the Court to", "mimetype": "text/plain", "start_char_idx": 3461, "end_char_idx": 4593, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0e162f62-d213-4bdb-a47a-13ff92f32681": {"__data__": {"id_": "0e162f62-d213-4bdb-a47a-13ff92f32681", "embedding": null, "metadata": {"page_label": "22", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "39cd96c6-a841-46ce-8193-e96cc2ca4efd", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f69b9bcc9f31d5ae77ae98ecc614ef74d92851acd9cd2d372783631bf7e47720", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "a65b088b-11b6-4084-acbb-a73f0f6d7771", "node_type": "1", "metadata": {}, "hash": "8ba201135ddb5eff4fe49371cc6e8c70740176231280dbf8b9446ee59726a272", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 22\nchoke over more cases than Crooker v. State of California, 357 U.S. 433, 78 S.Ct. 1287, 2 L.Ed.2d 1448 (1958), and Cicenia v.\nLa Gay, 357 U.S. 504, 78 S.Ct. 1297, 2 L.Ed.2d 1523 (1958), which it expressly overrules today.\nThe rule prior to today\u2014as Mr. Justice Goldberg, the author of the Court's opinion in Escobedo, stated it in Haynes v. Washington\n\u2014depended upon \u2018a totality of circumstances evidencing an involuntary * * * adminission of guilt.\u2019 373 U.S., at 514, 83 S.Ct.\nat 1343. And he concluded:\n\u2018Of course, detection and solution of crime is, at best, a difficult and arduous task requiring determination and persistence on\nthe part of all responsible officers charged with the duty of law enforcement. And, certainly, we do not mean to suggest that\nall interrogation of witnesses and suspects is impermissible. Such questioning is undoubtedly an essential took in effective law\nenforcement. The line between proper and permissible police conduct and techniques and methods offensive to due process\nis, at best, a difficult one to draw, particularly in cases such as this where it is necessary to make fine judgments as to the\neffect of psychologically coercive pressures and inducements on the mind and will of an accused. * * * We are here impelled\nto the conclusion, from all of the facts presented, that the bounds of due process have been exceeded.\u2019 Id., at 514\u2014515, 83\nS.Ct. at 1344.\n*503 III.\nI would continue to follow that rule. Under the \u2018totality of circumstances' rule of which my Brother Goldberg spoke in Haynes,\nI would consider in each case whether the police officer prior to custodial interrogation added the warning that the suspect\nmight have counsel present at the interrogation and, further, that a court would appoint one at his request if he was too poor\nto employ counsel. In the absence of warnings, the burden would be on the State to prove that counsel was knowingly and\nintelligently waived or that in the totality of the circumstances, including the failure to give **1643 the necessary warnings,\nthe confession was clearly voluntary.\nRather than employing the arbitrary Fifth Amendment rule4 which the Court lays down I would follow the more pliable dictates\nof the Due Process Clauses of the Fifth and Fourteenth Amendments which we are accustomed to administering and which we\nknow from our cases are effective instruments in protecting persons in police custody. In this way we would not be acting in the\ndark nor in one full sweep changing the traditional rules of custodial interrogation which this Court has for so long recognized\nas a justifiable and proper tool in balancing individual rights against the rights of society. It will be soon enough to go further\nwhen we are able to appraise with somewhat better accuracy the effect of such a holding.\nI would affirm the convictions in Miranda v. Arizona, No. 759; Vignera v. New York, No. 760; and Westover v. United States,\nNo. 761. In each of those cases I find from the circumstances no warrant for reversal. In *504 California v. Stewart, No. 584,\nI would dismiss the writ of certiorari for want of a final judgment, 28 U.S.C. s 1257(3) (1964 ed.); but if the merits are to be\nreached I would affirm on the ground that the State failed to fulfill its burden, in the absence of a showing that appropriate\nwarnings were given, of proving a waiver or a totality of circumstances showing voluntariness. Should there be a retrial, I would\nleave the State free to attempt to prove these elements.\nMr. Justice HARLAN, whom Mr. Justice STEWART and Mr. Justice WHITE join, dissenting.\nI believe the decision of the Court represents poor constitutional law and entails harmful consequences for the country at large.\nHow serious these consequences may prove to be only time can tell. But the basic flaws in the Court's justification seem to me\nreadily apparent now once all sides of the problem are considered.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4100, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a65b088b-11b6-4084-acbb-a73f0f6d7771": {"__data__": {"id_": "a65b088b-11b6-4084-acbb-a73f0f6d7771", "embedding": null, "metadata": {"page_label": "22", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "39cd96c6-a841-46ce-8193-e96cc2ca4efd", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f69b9bcc9f31d5ae77ae98ecc614ef74d92851acd9cd2d372783631bf7e47720", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "0e162f62-d213-4bdb-a47a-13ff92f32681", "node_type": "1", "metadata": {"page_label": "22", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2d64a7868beb662be7e651fc7bbe13d8cdd5d003eedb6b3b8a6026db4626be9d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "s 1257(3) (1964 ed.); but if the merits are to be\nreached I would affirm on the ground that the State failed to fulfill its burden, in the absence of a showing that appropriate\nwarnings were given, of proving a waiver or a totality of circumstances showing voluntariness. Should there be a retrial, I would\nleave the State free to attempt to prove these elements.\nMr. Justice HARLAN, whom Mr. Justice STEWART and Mr. Justice WHITE join, dissenting.\nI believe the decision of the Court represents poor constitutional law and entails harmful consequences for the country at large.\nHow serious these consequences may prove to be only time can tell. But the basic flaws in the Court's justification seem to me\nreadily apparent now once all sides of the problem are considered.\nI. INTRODUCTION\nAt the outset, it is well to note exactly what is required by the Court's new constitutional code of rules for confessions. The\nforemost requirement, upon which later admissibility of a confession depends, is that a fourfold warning be given to a person in", "mimetype": "text/plain", "start_char_idx": 3327, "end_char_idx": 4373, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "591feef2-b131-46c9-8f81-98057cc3e758": {"__data__": {"id_": "591feef2-b131-46c9-8f81-98057cc3e758", "embedding": null, "metadata": {"page_label": "23", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fd50bb87-340e-4e9b-9a42-6c59da352db4", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "dca44ec5e58e0a99d5e5f6eaeec8fcb66852a009865a0bf380066593f4dd556b", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "fca32444-05a2-4968-abf2-8f4217df724a", "node_type": "1", "metadata": {}, "hash": "0330bdf01fbccba661430dcc367a3d92616c1990856226d4234eb7a4b6638280", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 23\ncustody before he is questioned, namely, that he has a right to remain silent, that anything he says may be used against him, that\nhe has a right to have present an attorney during the questioning, and that if indigent he has a right to a lawyer without charge.\nTo forgo these rights, some affirmative statement of rejection is seemingly required, and threats, tricks, or cajolings to obtain\nthis waiver are forbidden. If before or during questioning the suspect seeks to invoke his right to remain silent, interrogation\nmust be forgone or cease; a request for counsel *505 brings about the same result until a lawyer is procured. Finally, there\nare a miscellany of minor directives, for example, the burden of proof of waiver is on the State, admissions and exculpatory\nstatements are treated just like confessions, withdrawal of a waiver is always permitted, and so forth.1\nWhile the fine points of this scheme are far less clear than the Court admits, the tenor is quite apparent. The new **1644\nrules are not designed to guard against police brutality or other unmistakably banned forms of coercion. Those who use third-\ndegree tactics and deny them in court are equally able and destined to lie as skillfully about warnings and waivers. Rather, the\nthrust of the new rules is to negate all pressures, to reinforce the nervous or ignorant suspect, and ultimately to discourage any\nconfession at all. The aim in short is toward \u2018voluntariness' in a utopian sense, or to view it from a different angle, voluntariness\nwith a vengeance.\nTo incorporate this notion into the Constitution requires a strained reading of history and precedent and a disregard of the very\npragmatic concerns that alone may on occasion justify such strains. I believe that reasoned examination will show that the Due\nProcess Clauses provide an adequate tool for coping with confessions and that, even if the Fifth Amendment privilege against\nself-incrimination be invoked, its precedents taken as a whole do not sustain the present rules. Viewed as a choice based on\npure policy, these new rules prove to be a highly debatable, if not one-sided, appraisal of the competing interests, imposed over\nwidespread objection, at the very time when judicial restraint is most called for by the circumstances.\n*506 II. CONSTITUTIONAL PREMISES.\nIt is most fitting to begin an inquiry into the constitutional precedents by surverying the limits on confessions the Court has\nevolved under the Due Process Clause of the Fourteenth Amendment. This is so because these cases show that there exists a\nworkable and effective means of dealing with confessions in a judicial manner; because the cases are the baseline from which the\nCourt now departs and so serve to measure the actual as opposed to the professed distance it travels; and because examination\nof them helps reveal how the Court has coasted into its present position.\nThe earliest confession cases in this Court emerged from federal prosecutions and were settled on a nonconstitutional basis, the\nCourt adopting the common-law rule that the absence of inducements, promises, and threats made a confession voluntary and\nadmissible. Hopt v. People, of Territory of Utah, 110 U.S. 574, 4 S.Ct. 202, 28 L.Ed. 262; Pierce v. United States, 160 U.S. 355,\n16 S.Ct. 321, 40 L.Ed. 454. While a later case said the Fifth Amendment privilege controlled admissibility, this proposition\nwas not itself developed in subsequent decisions. 2 The Court did, however, heighten the test of admissibility in federal trials\nto one of voluntariness \u2018in fact,\u2019 Ziang Sung Wan v. United States, 266 U.S. 1, 14, 45 S.Ct. 1, 3, 69 L.Ed. 131 *507 (quoted,\nante, p. 1621), and then by and large left federal judges to apply the same standards the Court began to derive in a string of\nstate court cases.\nThis new line of decisions, testing admissibility by the Due Process Clause, began in 1936 with Brown v. State of Mississippi,\n297 U.S. 278, 56 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4147, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fca32444-05a2-4968-abf2-8f4217df724a": {"__data__": {"id_": "fca32444-05a2-4968-abf2-8f4217df724a", "embedding": null, "metadata": {"page_label": "23", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fd50bb87-340e-4e9b-9a42-6c59da352db4", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "dca44ec5e58e0a99d5e5f6eaeec8fcb66852a009865a0bf380066593f4dd556b", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "591feef2-b131-46c9-8f81-98057cc3e758", "node_type": "1", "metadata": {"page_label": "23", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e2cfefbd783ce768dbc3b2f6ea3e47edfd344df90f1b659a3bcbf8fad4027e6d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "355,\n16 S.Ct. 321, 40 L.Ed. 454. While a later case said the Fifth Amendment privilege controlled admissibility, this proposition\nwas not itself developed in subsequent decisions. 2 The Court did, however, heighten the test of admissibility in federal trials\nto one of voluntariness \u2018in fact,\u2019 Ziang Sung Wan v. United States, 266 U.S. 1, 14, 45 S.Ct. 1, 3, 69 L.Ed. 131 *507 (quoted,\nante, p. 1621), and then by and large left federal judges to apply the same standards the Court began to derive in a string of\nstate court cases.\nThis new line of decisions, testing admissibility by the Due Process Clause, began in 1936 with Brown v. State of Mississippi,\n297 U.S. 278, 56 S.Ct. 461, 80 L.Ed. 682, and must now embrace somewhat more than 30 full opinions of **1645 the Court.3\nWhile the voluntariness rubric was repeated in many instances, e.g., Lyons v. State of Oklahoma, 322 U.S. 596, 64 S.Ct. 1208,\n88 L.Ed. 1481, the Court never pinned it down to a single meaning but on the contrary infused it with a number of different\nvalues. To travel quickly over the main themes, there was an initial emphasis on reliability, e.g., Ward v. State of Texas, 316\nU.S. 547, 62 S.Ct. 1139, 86 L.Ed. 1663, supplemented by concern over the legality and fairness of the police practices, e.g.,\nAshcraft v. State of Tennessee, 322 U.S. 143, 64 S.Ct. 921, 88 L.Ed. 1192, in an \u2018accusatorial\u2019 system of law enforcement, Watts\nv. State of Indiana, 338 U.S. 49, 54, 69 S.Ct. 1347, 1350, 93 L.Ed. 1801, and eventually by close attention to the individual's\nstate of mind and capacity for effective choice, e.g., Gallegos v. State of Colorado, 370 U.S. 49, 82 S.Ct. 1209, 8 L.Ed.2d 325.\nThe outcome was a continuing re-evaluation on the facts of each case of how much pressure on the suspect was permissible.4", "mimetype": "text/plain", "start_char_idx": 3464, "end_char_idx": 5261, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e4987eef-86bb-4039-9770-1d64490f9f2d": {"__data__": {"id_": "e4987eef-86bb-4039-9770-1d64490f9f2d", "embedding": null, "metadata": {"page_label": "24", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a20a6210-768f-473f-a131-4e7d8b2b2350", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "626fcc0299ccc2490891510c71866b9579c3f9a8d1a690cfc50f06960854f295", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "119c5f46-dc5c-4016-b41a-ae7ec421b171", "node_type": "1", "metadata": {}, "hash": "3d2ff670ab6c99d591f8f8c1ecaa8d7d8e21460110f9529cd3406bb72b734225", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 24\n*508 Among the criteria often taken into account were threats or imminent danger, e.g., Payne v. State of Arkansas, 356 U.S.\n560, 78 S.Ct. 844, 2 L.Ed.2d 975, physical deprivations such as lack of sleep or food, e.g., Reck v. Pate, 367 U.S. 433, 81 S.Ct.\n1541, 6 L.Ed.2d 948, repeated or extended interrogation, e.g., Chambers v. State of Florida, 309 U.S. 227, 60 S.Ct. 472, 84\nL.Ed. 716, limits on access to counsel or friends, Crooker v. State of California, 357 U.S. 433, 78 S.Ct. 1287, 2 L.Ed.2d 1448;\nCicenia v. La. Gay, 357 U.S. 504, 78 S.Ct. 1297, 2 L.Ed.2d 1523, length and illegality of detention under state law, e.g., Haynes\nv. State of Washington, 373 U.S. 503, 83 S.Ct. 1336, 10 L.Ed.2d 513, and individual weakness or incapacities, Lynumn v. State\nof Illinois, 372 U.S. 528, 83 S.Ct. 917, 9 L.Ed.2d 922. Apart from direct physical coercion, however, no single default or fixed\ncombination of defaults guaranteed exclusion, and synopses of the cases would serve little use because the overall gauge has\nbeen steadily changing, usually in the direction of restricting admissibility. But to mark just what point had been reached before\nthe Court jumped the rails in Escobedo v. State of Illinois, 378 U.S. 478, 84 S.Ct. 1758, 12 L.Ed.2d 977, it is worth capsulizing\nthe then-recent case of Haynes v. State of Washington, 373 U.S. 503, 83 S.Ct. 1336. There, Haynes had been held some 16 or\nmore hours in violation of state law before signing the disputed confession, had received no warnings of any kind, and despite\nrequests had been refused access to his wife or to counsel, the police indicating that access would be allowed after a confession.\nEmphasizing especially this last inducement and rejecting some contrary indicia of voluntariness, the Court in a 5-to-4 decision\nheld the confession inadmissible.\nThere are several relevant lessons to be drawn from this constitutional history. The first is that with over 25 years of precedent\nthe Court has developed an elaborate, sophisticated, and sensitive approach to admissibility of confessions. It is \u2018judicial\u2019 in its\ntreatment of one case at a time, see **1646 Culombe v. Connecticut, 367 U.S. 568, 635, 81 S.Ct. 1860, 1896, 6 L.Ed.2d 1037\n(concurring opinion of The Chief Justice), flexible in its ability to respond to the endless mutations of fact presented, and ever\nmore familiar to the lower courts. *509 Of course, strict certainty is not obtained in this developing process, but this is often\nso with constitutional principles, and disagreement is usually confined to that borderland of close cases where it matters least.\nThe second point is that in practice and from time to time in principle, the Court has given ample recognition to society's\ninterest in suspect questioning as an instrument of law enforcement. Cases countenancing quite significant pressures can be\ncited without difficulty,5 and the lower courts may often have been yet more tolerant. Of course the limitations imposed today\nwere rejected by necessary implication in case after case, the right to warnings having been explicitly rebuffed in this Court\nmany years ago. Powers v. United States, 223 U.S. 303, 32 S.Ct. 281, 56 L.Ed. 448; Wilson v. United States, 162 U.S. 613,\n16 S.Ct. 895, 40 L.Ed. 1090.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3452, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "119c5f46-dc5c-4016-b41a-ae7ec421b171": {"__data__": {"id_": "119c5f46-dc5c-4016-b41a-ae7ec421b171", "embedding": null, "metadata": {"page_label": "24", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a20a6210-768f-473f-a131-4e7d8b2b2350", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "626fcc0299ccc2490891510c71866b9579c3f9a8d1a690cfc50f06960854f295", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "e4987eef-86bb-4039-9770-1d64490f9f2d", "node_type": "1", "metadata": {"page_label": "24", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2cf2c845af2e807783b3ebc86124426b38dcc3440a7864c337bcd6156ff835fe", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The second point is that in practice and from time to time in principle, the Court has given ample recognition to society's\ninterest in suspect questioning as an instrument of law enforcement. Cases countenancing quite significant pressures can be\ncited without difficulty,5 and the lower courts may often have been yet more tolerant. Of course the limitations imposed today\nwere rejected by necessary implication in case after case, the right to warnings having been explicitly rebuffed in this Court\nmany years ago. Powers v. United States, 223 U.S. 303, 32 S.Ct. 281, 56 L.Ed. 448; Wilson v. United States, 162 U.S. 613,\n16 S.Ct. 895, 40 L.Ed. 1090. As recently as Haynes v. State of Washington, 373 U.S. 503, 515, 83 S.Ct. 1336, 1344, the Court\nopenly acknowledged that questioning of witnesses and suspects \u2018is undoubtedly an essential tool in effective law enforcement.\u2019\nAccord, Crooker v. State of California, 357 U.S. 433, 441, 78 S.Ct. 1287, 1292.\nFinally, the cases disclose that the language in many of the opinions overstates the actual course of decision. It has been said,\nfor example, that an admissible confession must be made by the suspect \u2018in the unfettered exercise of his own will,\u2019 Malloy\nv. Hogan, 378 U.S. 1, 8, 84 S.Ct. 1489, 1493, 12 L.Ed.2d 653, and that \u2018a prisoner is not \u2018to be made the deluded instrument\nof his own coniviction,\u2018\u2018 Culombe v. Connecticut, 367 U.S. 568, 581, 81 S.Ct. 1860, 1867, 6 L.Ed.2d 1037 (Frankfurter, J.,\nannouncing the Court's judgment and an opinion). Though often repeated, such principles are rarely observed in full measure.\nEven the word \u2018voluntary\u2019 may be deemed somewhat *510 misleading, especially when one considers many of the confessions\nthat have been brought under its umbrella. See, e.g., supra, n. 5. The tendency to overstate may be laid in part to the flagrant\nfacts often before the Court; but in any event one must recognize how it has tempered attitudes and lent some color of authority\nto the approach now taken by the Court.\nI turn now to the Court's asserted reliance on the Fifth Amendment, an approach which I frankly regard as a trompe l'oeil. The\nCourt's opinion in my view reveals no adequate basis for extending the Fifth Amendment's privilege against self-incrimination\nto the police station. Far more important, it fails to show that the Court's new rules are well supported, let alone compelled, by\nFifth Amendment precedents. Instead, the new rules actually derive from quotation and analogy drawn from precedents under\nthe Sixth Amendment, which should properly have no bearing on police interrogation.\nThe Court's opening contention, that the Fifth Amendment governs police station confessions, is perhaps not an impermissible\nextension of the law but it has little to commend itself in the present circumstances. Historically, the privilege against self-", "mimetype": "text/plain", "start_char_idx": 2798, "end_char_idx": 5648, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d348c420-32ce-4c80-a8d6-d70b3e199e81": {"__data__": {"id_": "d348c420-32ce-4c80-a8d6-d70b3e199e81", "embedding": null, "metadata": {"page_label": "25", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "53003719-6816-431d-b0c7-3774ba157daa", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5f4c8a554339b597de6ff02c24a7da595ee9705cab9c63471a990420703282b7", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "183954f4-14fc-4484-9cce-8beb0bbb674c", "node_type": "1", "metadata": {}, "hash": "7d22acfd83c46980870c815ccb71bad5f14667ed58d1037d37c71471908fe3aa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 25\nincrimination did not bear at all on the use of extra-legal confessions, for which distinct standards evolved; indeed, \u2018the history\nof the two principles is wide apart, differing by one hundred years in origin, and derived through separate **1647 lines of\nprecedents. * * *\u2019 8 Wigmore, Evidence s 2266, at 401 (McNaughton rev. 1961). Practice under the two doctrines has also\ndiffered in a number of important respects. 6 *511 Even those who would readily enlarge the privilege must concede some\nlinguistic difficulties since the Fifth Amendment in terms proscribes only compelling any person \u2018in any criminal case to be\na witness against himself.\u2019 Cf. Kamisar, Equal Justice in the Gatehouses and Mansions of American Criminal Procedure, in\nCriminal Justice in Our Time 1, 25\u201426 (1965).\nThough weighty, I do not say these points and similar ones are conclusive, for, as the Court reiterates, the privilege embodies\nbasic principles always capable of expansion. 7 Certainly the privilege does represent a protective concern for the accused\nand an emphasis upon accusatorial rather than inquisitorial values in law enforcement, although this is similarly true of other\nlimitations such as the grand jury requirement and the reasonable doubt standard. Accusatorial values, however, have openly\nbeen absorbed into the due process standard governing confessions; this indeed is why at present \u2018the kinship of the two rules\n(governing confessions and self-incrimination) is too apparent for denial.\u2019 McCormick, Evidence 155 (1954). Since extension\nof the general principle has already occurred, to insist that the privilege applies as such serves only to carry over inapposite\nhistorical details and engaging rhetoric and to obscure the policy choices to be made in regulating confessions.\nHaving decided that the Fifth Amendment privilege does apply in the police station, the Court reveals that the privilege imposes\nmore exacting restrictions than does the Fourteenth Amendment's voluntariness test.8 *512 It then emerges from a discussion\nof Escobedo that the Fifth Amendment requires for an admissible confession that it be given by one distinctly aware of his\nright not to speak and shielded from \u2018the compelling atmosphere\u2019 of interrogation. See ante, pp. 1623\u20141624. From these\nkey premises, the Court finally develops the safeguards of warning, counsel, and so forth. I do not believe these premises are\nsustained by precedents under the Fifth Amendment. 9\nThe more important premise is that pressure on the suspect must be eliminated though it be only the subtle influence of the\natmosphere and surroundings. The Fifth Amendment, however, has never been thought to forbid all pressure to incriminate\none's self in the situations **1648 covered by it. On the contrary, it has been held that failure to incriminate one's self can result\nin denial of removal of one's case from state to federal court, State of Maryland v. Soper, 270 U.S. 9, 46 S.Ct. 185, 70 L.Ed. 449;\nin refusal of a military commission, Orloff v. Willoughby, 345 U.S 83, 73 S.Ct. 534, 97 L.Ed. 842; in denial of a discharge in\nbankruptcy, Kaufman v. Hurwitz, 4 Cir., 176 F.2d 210; and in numerous other adverse consequences. See 8 Wigmore, Evidence\ns 2272, at 441\u2014444, n. 18 (McNaughton rev. 1961); Maguire, Evidence of Guilt s 2.062 (1959). This is not to say that short\nof jail or torture any sanction is permissible in any case; policy and history alike may impose sharp limits. See, e.g., *513\nGriffin v. State of California, 380 U.S. 609, 85 S.Ct. 1229, 14 L.Ed.2d 106.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3747, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "183954f4-14fc-4484-9cce-8beb0bbb674c": {"__data__": {"id_": "183954f4-14fc-4484-9cce-8beb0bbb674c", "embedding": null, "metadata": {"page_label": "25", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "53003719-6816-431d-b0c7-3774ba157daa", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5f4c8a554339b597de6ff02c24a7da595ee9705cab9c63471a990420703282b7", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "d348c420-32ce-4c80-a8d6-d70b3e199e81", "node_type": "1", "metadata": {"page_label": "25", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "69fa5999591e47eaea23a861edbab7f8ca32dac6d3a3212132d680ce1df4450d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "534, 97 L.Ed. 842; in denial of a discharge in\nbankruptcy, Kaufman v. Hurwitz, 4 Cir., 176 F.2d 210; and in numerous other adverse consequences. See 8 Wigmore, Evidence\ns 2272, at 441\u2014444, n. 18 (McNaughton rev. 1961); Maguire, Evidence of Guilt s 2.062 (1959). This is not to say that short\nof jail or torture any sanction is permissible in any case; policy and history alike may impose sharp limits. See, e.g., *513\nGriffin v. State of California, 380 U.S. 609, 85 S.Ct. 1229, 14 L.Ed.2d 106. However, the Court's unspoken assumption that any\npressure violates the privilege is not supported by the precedents and it has failed to show why the Fifth Amendment prohibits\nthat relatively mild pressure the Due Process Clause permits.\nThe Court appears similarly wrong in thinking that precise knowledge of one's rights is a settled prerequisite under the Fifth\nAmendment to the loss of its protections. A number of lower federal court cases have held that grand jury witnesses need not\nalways be warned of their privilege, e.g., United States v. Scully, 2 Cir., 225 F.2d 113, 116, and Wigmore states this to be the\nbetter rule for trial witnesses. See 8 Wigmore, Evidence s 2269 (McNaughton rev. 1961). Cf. Henry v. State of Mississippi, 379\nU.S. 443, 451\u2014452, 85 S.Ct. 564, 569, 13 L.Ed.2d 408 (waiver of constitutional rights by counsel despite defendant's ignorance\nheld allowable). No Fifth Amendment precedent is cited for the Court's contrary view. There might of course be reasons apart\nfrom Fifth Amendment precedent for requiring warning or any other safeguard on questioning but that is a different matter\nentirely. See infra, pp. 1649\u20141650.\nA closing word must be said about the Assistance of Counsel Clause of the Sixth Amendment, which is never expressly relied\non by the Court but whose judicial precedents turn out to be linchpins of the confession rules announced today. To support its\nrequirement of a knowing and intelligent waiver, the Court cites Johnson v. Zerbst, 304 U.S. 458, 58 S.Ct. 1019, 82 L.Ed. 1461,\nante, p. 1628; appointment of counsel for the indigent suspect is tied to Gideon v. Wainwright, 372 U.S. 335, 83 S.Ct. 792, 9\nL.Ed.2d 799, and Douglas v. People of State of California, 372 U.S. 353, 83 S.Ct. 814, 9 L.Ed.2d 811, ante, p. 1627; the silent-", "mimetype": "text/plain", "start_char_idx": 3253, "end_char_idx": 5537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "73eb8ea4-a5c5-41ed-90fc-e5414ce3677c": {"__data__": {"id_": "73eb8ea4-a5c5-41ed-90fc-e5414ce3677c", "embedding": null, "metadata": {"page_label": "26", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ef546d1f-4ec6-4b29-a0cb-b31bf6e952a0", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "69f1c272bac8a753df1453974950214638b4bd8b0211c9583a1dbe1ac24bfeb4", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "88471547-ad2f-499b-9145-431e05c62854", "node_type": "1", "metadata": {}, "hash": "b11a0b0e223d6a0a1545c55def286557b1c67f7c93f91dc1b782ea59c11c81b0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 26\nrecord doctrine is borrowed from Carnley v. Cochran, 369 U.S. 506, 82 S.Ct. 884, 8 L.Ed.2d 70, ante, p. 1628, as is the right to an\nexpress offer of counsel, ante, p. 1626. All these cases imparting glosses to the Sixth Amendment concerned counsel at trial or\non appeal. While the Court finds no petinent difference between judicial proceedings and police interrogation, I believe *514\nthe differences are so vast as to disqualify wholly the Sixth Amendment precedents as suitable analogies in the present cases.10\nThe only attempt in this Court to carry the right to counsel into the station house occurred in Escobedo, the Court repeating\nseveral times that that stage was no less \u2018critical\u2019 than trial itself. See 378 U.S. 485\u2014488, 84 S.Ct. 1762\u20141763. This is hardly\npersuasive when we consider that a grand jury inquiry, the filing of a certiorari petition, and certainly the purchase of narcotics\nby an undercover agent from a prospective defendant may all be equally \u2018critical\u2019 yet provision of counsel and advice on the\nscore have never been **1649 thought compelled by the Constitution in such cases. The sound reason why this right is so freely\nextended for a criminal trial is the severe injustice risked by confronting an untrained defendant with a range of technical points\nof law, evidence, and tactics familiar to the prosecutor but not to himself. This danger shrinks markedly in the police station\nwhere indeed the lawyer in fulfilling his professional responsibilities of necessity may become an obstacle to truthfinding. See\ninfra, n. 12. The Court's summary citation of the Sixth Amendment cases here seems to me best described as \u2018the domino\nmethod of constitutional adjudication * * * wherein every explanatory statement in a previous opinion is made the basis for\nextension to a wholly different situation.\u2019 Friendly, supra, n. 10, at 950.\nIII. POLICY CONSIDERATIONS.\nExamined as an expression of public policy, the Court's new regime proves so dubious that there can be no due *515\ncompensation for its weakness in constitutional law. The foregoing discussion has shown, I think, how mistaken is the Court in\nimplying that the Constitution has struck the balance in favor of the approach the Court takes. Ante, p. 1630. Rather, precedent\nreveals that the Fourteenth Amendment in practice has been construed to strike a different balance, that the Fifth Amendment\ngives the Court little solid support in this context, and that the Sixth Amendment should have no bearing at all. Legal history\nhas been stretched before to satisfy deep needs of society. In this instance, however, the Court has not and cannot make the\npowerful showing that its new rules are plainly desirable in the context of our society, something which is surely demanded\nbefore those rules are engrafted onto the Constitution and imposed on every State and county in the land.\nWithout at all subscribing to the generally black picture of police conduct painted by the Court, I think it must be frankly\nrecognized at the outset that police questioning allowable under due process precedents may inherently entail some pressure\non the suspect and may seek advantage in his ignorance or weaknesses. The atmosphere and questioning techniques, proper\nand fair though they be, can in themselves exert a tug on the suspect to confess, and in this light \u2018(t)o speak of any confessions\nof crime made after arrest as being \u2018voluntary\u2019 or \u2018uncoerced\u2019 is somewhat inaccurate, although traditional. A confession is\nwholly and incontestably voluntary only if a guilty person gives himself up to the law and becomes his own accuser.' Ashcraft\nv. State of Tennessee, 322 U.S. 143, 161, 64 S.Ct. 921, 929, 88 L.Ed. 1192 (Jackson, J., dissenting). Until today, the role of the\nConstitution has been only to sift out undue pressure, not to assure spontaneous confessions. 11\n*516 The Court's new rules aim to offset these minor pressures and disadvantages intrinsic to any kind of police interrogation.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4171, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "88471547-ad2f-499b-9145-431e05c62854": {"__data__": {"id_": "88471547-ad2f-499b-9145-431e05c62854", "embedding": null, "metadata": {"page_label": "26", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ef546d1f-4ec6-4b29-a0cb-b31bf6e952a0", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "69f1c272bac8a753df1453974950214638b4bd8b0211c9583a1dbe1ac24bfeb4", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "73eb8ea4-a5c5-41ed-90fc-e5414ce3677c", "node_type": "1", "metadata": {"page_label": "26", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "de73366254c0b5cb272b912d4cc6cbd802025441c3b5e1907499a70dfd55104f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The atmosphere and questioning techniques, proper\nand fair though they be, can in themselves exert a tug on the suspect to confess, and in this light \u2018(t)o speak of any confessions\nof crime made after arrest as being \u2018voluntary\u2019 or \u2018uncoerced\u2019 is somewhat inaccurate, although traditional. A confession is\nwholly and incontestably voluntary only if a guilty person gives himself up to the law and becomes his own accuser.' Ashcraft\nv. State of Tennessee, 322 U.S. 143, 161, 64 S.Ct. 921, 929, 88 L.Ed. 1192 (Jackson, J., dissenting). Until today, the role of the\nConstitution has been only to sift out undue pressure, not to assure spontaneous confessions. 11\n*516 The Court's new rules aim to offset these minor pressures and disadvantages intrinsic to any kind of police interrogation.\nThe rules do not serve due process interests in preventing blatant coercion since, as I noted earlier, they do nothing to contain\nthe policeman who is prepared to lie from the start. The rules work for reliability in confessions almost only in the Pickwickian\nsense that they can prevent some from being given at all. 12 **1650 In short, the benefit of this new regime is simply to\nlessen or wipe out the inherent compulsion and inequalities to which the Court devotes some nine pages of description. Ante,\npp. 1614\u20141618.\nWhat the Court largely ignores is that its rules impair, if they will not eventually serve wholly to frustrate, an instrument of\nlaw enforcement that has long and quite reasonably been thought worth the price paid for it. 13 There can be little doubt that\nthe Court's new code would markedly decrease the number of confessions. To warn the suspect that he may remain silent and\nremind him that his confession may be used in court are minor obstructions. To require also an express waiver by the suspect", "mimetype": "text/plain", "start_char_idx": 3383, "end_char_idx": 5199, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c6ee1ab5-90ce-483d-93ef-cf3526690de3": {"__data__": {"id_": "c6ee1ab5-90ce-483d-93ef-cf3526690de3", "embedding": null, "metadata": {"page_label": "27", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0111f62a-511a-4498-a062-387979342cbb", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6f24d1c119aa09f87b08a297d8220a8e4cadcbaf76c375f346cdff24b922ca9b", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "23130aaa-eac3-4961-ab84-ad054bf47790", "node_type": "1", "metadata": {}, "hash": "ad75e08cbc9fff789945c66b9604407a88a93c0bea3e63cc41aca21cacbe58a6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 27\nand an end to questioning whenever he demurs *517 must heavily handicap questioning. And to suggest or provide counsel\nfor the suspect simply invites the end of the interrogation. See, supra, n. 12.\nHow much harm this decision will inflict on law enforcement cannot fairly be predicted with accuracy. Evidence on the role of\nconfessions is notoriously incomplete, see Developments, supra, n. 2, at 941\u2014944, and little is added by the Court's reference\nto the FBI experience and the resources believed wasted in interrogation. See infra, n. 19, and text. We do know that some\ncrimes cannot be solved without confessions, that ample expert testimony attests to their importance in crime control, 14 and\nthat the Court is taking a real risk with society's welfare in imposing its new regime on the country. The social costs of crime\nare too great to call the new rules anything but a hazardous experimentation.\nWhile passing over the costs and risks of its experiment, the Court portrays the evils of normal police questioning in terms which\nI think are exaggerated. Albeit stringently confined by the due process standards interrogation is no doubt often inconvenient\nand unpleasant for the suspect. However, it is no less so for a man to be arrested and jailed, to have his house searched, or to\nstand trial in court, yet all this may properly happen to the most innocent given probable cause, a warrant, or an indictment.\nSociety has always paid a stiff price for law and order, and peaceful interrogation is not one of the dark moments of the law.\nThis brief statement of the competing considerations seems to me ample proof that the Court's preference is highly debatable\nat best and therefore not to be read into *518 the Constitution. However, it may make the analysis more graphic to consider\nthe actual facts of one of the four cases reversed by the Court. Miranda v. Arizona serves best, being neither the hardest nor\neasiest of the four under the Court's standards. 15\nOn March 3, 1963, an 18-year-old girl was kidnapped and forcibly raped near Phoenix, Arizona. Ten days later, on the morning\nof March 13, petitioner Miranda was arrested and taken to the police station. At this time Miranda was 23 years **1651 old,\nindigent, and educated to the extent of completing half the ninth grade. He had \u2018an emotional illness' of the schizophrenic type,\naccording to the doctor who eventually examined him; the doctor's report also stated that Miranda was \u2018alert and oriented as\nto time, place, and person,\u2019 intelligent within normal limits, competent to stand trial, and sane within the legal definitoin. At\nthe police station, the victim picked Miranda out of a lineup, and two officers then took him into a separate room to interrogate\nhim, starting about 11:30 a.m. Though at first denying his guilt, within a short time Miranda gave a detailed oral confession\nand then wrote out in his own hand and signed a brief statement admitting and describing the crime. All this was accomplished\nin two hours or less without any force, threats or promises and\u2014I will assume this though the record is uncertain, ante, 1636\n\u20141637 and nn. 66\u201467\u2014without any effective warnings at all.\nMiranda's oral and written confessions are now held inadmissible under the Court's new rules. One is entitled to feel astonished\nthat the Constitution can be read to produce this result. These confessions were obtained *519 during brief, daytime questioning\nconducted by two officers and unmarked by any of the traditional indicia of coercion. They assured a conviction for a brutal and\nunsettling crime, for which the police had and quite possibly could obtain little evidence other than the victim's identifications,\nevidence which is frequently unreliable. There was, in sum, a legitimate purpose, no perceptible unfairness, and certainly little\nrisk of injustice in the interrogation. Yet the resulting confessions, and the responsible course of police practice they represent,\nare to be sacrificed to the Court's own finespun conception of fairness which I seriously doubt is shared by many thinking\ncitizens in this country.16\nThe tenor of judicial opinion also falls well short of supporting the Court's new approach.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4402, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "23130aaa-eac3-4961-ab84-ad054bf47790": {"__data__": {"id_": "23130aaa-eac3-4961-ab84-ad054bf47790", "embedding": null, "metadata": {"page_label": "27", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0111f62a-511a-4498-a062-387979342cbb", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6f24d1c119aa09f87b08a297d8220a8e4cadcbaf76c375f346cdff24b922ca9b", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "c6ee1ab5-90ce-483d-93ef-cf3526690de3", "node_type": "1", "metadata": {"page_label": "27", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "99003d9a68bad0dc8509532d9530f84ebdf5abd6fb2f6d93021ea6520f66e5a0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "One is entitled to feel astonished\nthat the Constitution can be read to produce this result. These confessions were obtained *519 during brief, daytime questioning\nconducted by two officers and unmarked by any of the traditional indicia of coercion. They assured a conviction for a brutal and\nunsettling crime, for which the police had and quite possibly could obtain little evidence other than the victim's identifications,\nevidence which is frequently unreliable. There was, in sum, a legitimate purpose, no perceptible unfairness, and certainly little\nrisk of injustice in the interrogation. Yet the resulting confessions, and the responsible course of police practice they represent,\nare to be sacrificed to the Court's own finespun conception of fairness which I seriously doubt is shared by many thinking\ncitizens in this country.16\nThe tenor of judicial opinion also falls well short of supporting the Court's new approach. Although Escobedo has widely been\ninterpreted as an open invitation to lower courts to rewrite the law of confessions, a significant heavy majority of the state and\nfederal decisions in point have sought quite narrow interpretations. 17 Of *520 the courts that have accepted the invitation, it\nis hard to know how many have felt compelled by their best guess as to this Court's likely construction; but none of the state\ndecisions saw fit to rely on the state privilege against self-incrimination, and no decision at all **1652 has gone as far as\nthis Court goes today.18\nIt is also instructive to compare the attitude in this case of those responsible for law enforcement with the official views that\nexisted when the Court undertook three major revisions of prosecutorial practice prior to this case, Johnson v. Zerbst, 304 U.S.", "mimetype": "text/plain", "start_char_idx": 3471, "end_char_idx": 5236, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9d6a9e84-404e-474e-b519-d9ba23874531": {"__data__": {"id_": "9d6a9e84-404e-474e-b519-d9ba23874531", "embedding": null, "metadata": {"page_label": "28", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a3a7d606-5d4d-4f6f-8715-60a724c6202d", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "98e3cc6b1d5056f47cdbee902a617877a2e2341f7510d49b37d8690a2cccc287", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "feb40e9e-dd75-4156-be03-bc71cd6a4281", "node_type": "1", "metadata": {}, "hash": "9018117455e0b5a0d5fbb410c3e3255bc52065f02e08a7eb9ba6d9e3d9447cd3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 28\n458, 58 S.Ct. 1019, 82 L.Ed. 1461; Mapp v. Ohio, 367 U.S. 643, 81 S.Ct. 1684, 6 L.Ed.2d 1081, and Gideon v. Wainwright,\n372 U.S. 335, 83 S.Ct. 792, 9 L.Ed.2d 799. In Johnson, which established that appointed counsel must be offered the indigent\nin federal criminal trials, the Federal Government all but conceded the basic issue, which had in fact been recently fixed as\nDepartment of Justice policy. See Beaney, Right to Counsel 29\u201430, 36\u201442 (1955). In Mapp, which imposed the exclusionary\nrule on the States for Fourth Amendment violations, more than half of the States had themselves already adopted some such\nrule. See 367 U.S., at 651, 81 S.Ct., at 1689. In Gideon, which extended Johnson v. Zerbst to the States, an amicus brief was\nfiled by 22 States and Commonwealths urging that course; only two States besides that of the respondent came forward to\nprotest. See 372 U.S., at 345, 83 S.Ct., at 797. By contrast, in this case new restrictions on police *521 questioning have been\nopposed by the United States and in an amicus brief signed by 27 States and Commonwealths, not including the three other\nStates which are parties. No State in the country has urged this Court to impose the newly announced rules, nor has any State\nchosen to go nearly so far on its own.\nThe Court in closing its general discussion invokes the practice in federal and foreign jurisdictions as lending weight to its new\ncurbs on confessions for all the States. A brief re sume will suffice to show that none of these jurisdictions has struck so one-\nsided a balance as the Court does today. Heaviest reliance is placed on the FBI practice. Differing circumstances may make this\ncomparison quite untrustworthy, 19 but in any event the FBI falls sensibly short of the Court's formalistic rules. For example,\nthere is no indication that FBI agents must obtain an affirmative \u2018waiver\u2019 before they pursue their questioning. Nor is it clear\nthat one invoking his right to silence may not be prevailed upon to change his mind. And the warning as to appointed counsel\napparently indicates only that one will be assigned by the judge when the suspect appears before him; the thrust of the Court's\nrules is to induce the suspect to obtain appointed counsel before continuing the interview. See ante, pp. 1633\u20141634. Apparently\nAmerican military practice, briefly mentioned by the Court, has these same limits and is still less favorable to the suspect than\nthe FBI warning, making no mention of appointed counsel. Developments, supra, n. 2, at 1084\u20141089.\nThe law of the foreign countries described by the Court also reflects a more moderate conception of the rights of *522 the\naccused as against those of society when other data are considered. Concededly, the English experience is most relevant. In\nthat country, a caution as to silence but not counsel has long been mandated by the \u2018Judges' Rules,\u2019 which also place other\nsomewhat imprecise limits on police cross-examination o suspects. However, in the courts discretion confessions can be and\napparently quite frequently are admitted in evidence despite disregard of **1653 the Judges' Rules, so long as they are found\nvoluntary under the common-law test. Moreover, the check that exists on the use of pretrial statements is counterbalanced by\nthe evident admissibility of fruits of an illegal confession and by the judge's often-used authority to comment adversely on the\ndefendant's failure to testify.20\nIndia, Ceylon and Scotland are the other examples chosen by the Court. In India and Ceylon the general ban on police-\nadduced confessions cited by the Court is subject to a major exception: if evidence is uncovered by police questioning, it is\nfully admissible at trial along with the confession itself, so far as it relates to the evidence and is not blatantly coerced.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4008, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "feb40e9e-dd75-4156-be03-bc71cd6a4281": {"__data__": {"id_": "feb40e9e-dd75-4156-be03-bc71cd6a4281", "embedding": null, "metadata": {"page_label": "28", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a3a7d606-5d4d-4f6f-8715-60a724c6202d", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "98e3cc6b1d5056f47cdbee902a617877a2e2341f7510d49b37d8690a2cccc287", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9d6a9e84-404e-474e-b519-d9ba23874531", "node_type": "1", "metadata": {"page_label": "28", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f6c37fcd47f64f00512a111c0c4c912eeecfb0c81c36cb1ef1b5e299d8c49708", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "However, in the courts discretion confessions can be and\napparently quite frequently are admitted in evidence despite disregard of **1653 the Judges' Rules, so long as they are found\nvoluntary under the common-law test. Moreover, the check that exists on the use of pretrial statements is counterbalanced by\nthe evident admissibility of fruits of an illegal confession and by the judge's often-used authority to comment adversely on the\ndefendant's failure to testify.20\nIndia, Ceylon and Scotland are the other examples chosen by the Court. In India and Ceylon the general ban on police-\nadduced confessions cited by the Court is subject to a major exception: if evidence is uncovered by police questioning, it is\nfully admissible at trial along with the confession itself, so far as it relates to the evidence and is not blatantly coerced. See\nDevelopments, supra, n. 2, at 1106\u20141110; Reg. v. Ramasamy (1965) A.C. 1 (P.C.). Scotland's limits on interrogation do measure\nup to the Court's; however, restrained comment at trial on the defendant's failure to take the stand is allowed the judge, and in\nmany other respects Scotch law redresses the prosecutor's disadvantage in ways not permitted in this country.21 The Court ends\nits survey by imputing *523 added strength to our privilege against self-incrimination since, by contrast to other countries,\nit is embodied in a written Constitution. Considering the liberties the Court has today taken with constitutional history and\nprecedent, few will find this emphasis persuasive.\nIn closing this necessarily truncated discussion of policy considerations attending the new confession rules, some reference\nmust be made to their ironic untimeliness. There is now in progress in this country a massive re-examination of criminal\nlaw enforcement procedures on a scale never before witnessed. Participants in this undertaking include a Special Committee\nof the American Bar Association, under the chairmanship of Chief Judge Lumbard of the Court of Appeals for the Second\nCircuit; a distinguished study group of the American Law Institute, headed by Professors V orenberg and Bator of the Harvard\nLaw School; and the President's Commission on Law Enforcement and Administration of Justice, under the leadership of the\nAttorney General of the United States.22 Studies are also being conducted by the District of Columbia Crime Commission, the", "mimetype": "text/plain", "start_char_idx": 3166, "end_char_idx": 5559, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2b74ca4b-23a2-442d-bbd2-0b7c4e0ebd16": {"__data__": {"id_": "2b74ca4b-23a2-442d-bbd2-0b7c4e0ebd16", "embedding": null, "metadata": {"page_label": "29", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9a726dd0-5b0e-46e6-8a84-b0715a85d642", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "02f3f1703700035b59e617683b17e6c6fb60f01e3d8cdcd44343425ec6b1c5f7", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "62e75e87-7e06-48d9-b1c8-a4853e678eaa", "node_type": "1", "metadata": {}, "hash": "b534e176258bc7a7d83840dfd402d80be797dcb2a2b92f1372ed2e98f3c0d681", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 29\nGeorgetown Law Center, and by others equipped to do practical research. 23 There are also signs that legislatures in some of\nthe States may be preparing to re-examine the problem before us. 24\n*524 It is no secret that concern has been expressed lest long-range and lasting reforms be frustrated by this Court's too rapid\ndeparture from existing constitutional standards. Despite the Court's **1654 disclaimer, the practical effect of the decision\nmade today must inevitably be to handicap seriously sound efforts at reform, not least by removing options necessary to a just\ncompromise of competing interests. Of course legislative reform is rarely speedy or unanimous, though this Court has been\nmore patient in the past. 25 But the legislative reforms when they come would have the vast advantage of empirical data and\ncomprehensive study, they would allow experimentation and use of solutions not open to the courts, and they would restore the\ninitiative in criminal law reform to those forums where it truly belongs.\nIV . CONCLUSIONS.\nAll four of the cases involved here present express claims that confessions were inadmissible, not because of coercion in the\ntraditional due process sense, but solely because of lack of counsel or lack of warnings concerning counsel and silence. For the\nreasons stated in this opinion, I would adhere to the due process test and reject the new requirements inaugurated by the Court.\nOn this premise my disposition of each of these cases can be stated briefly.\nIn two of the three cases coming from state courts, Miranda v. Arizona (No. 759) and Vignera v. New York (No. 760), the\nconfessions were held admissible and no other errors worth comment are alleged by petitioners. *525 I would affirm in these\ntwo cases. The other state case is California v. Stewart (No. 584), where the state supreme court held the confession inadmissible\nand reversed the conviction. In that case I would dismiss the writ of certiorari on the ground that no final judgment is before us,\n28 U.S.C. s 1257 (1964 ed.); putting aside the new trial open to the State in any event, the confession itself has not even been\nfinally excluded since the California Supreme Court left the State free to show proof of a waiver. If the merits of the decision\nin Stewart be reached, then I believe it should be reversed and the case remanded so the state supreme court may pass on the\nother claims available to respondent.\nIn the federal case, Westover v. United States (No. 761), a number of issues are raised by petitioner apart from the one already\ndealt with in this dissent. None of these other claims appears to me tenable, nor in this context to warrant extended discussion.\nIt is urged that the confession was also inadmissible because not voluntary even measured by due process standards and\nbecause federal-state cooperation brought the McNabb-Mallory rule into play under Anderson v. United States, 318 U.S. 350,\n63 S.Ct. 599, 87 L.Ed. 829. However, the facts alleged fall well short of coercion in my view, and I believe the involvement\nof federal agents in pettioner's arrest and detention by the State too slight to invoke Anderson. I agree with the Government\nthat the admission of the evidence now protested by petitioner was at most harmless error, and two final contentions\u2014one\ninvolving weight of the evidence and another improper prosecutor comment\u2014seem to me without merit. I would therefore\naffirm Westover's conviction.\nIn conclusion: Nothing in the letter or the spirit of the Constitution or in the precedents squares with the heavy-handed and one-\nsided action that is so precipitously *526 taken by the Court in the name of fulfulling its constitutional responsibilities. The\nforay which the Court makes today brings to mind the wise and farsighted words of Mr. Justice Jackson in Douglas v. City of\nJeannette, 319 U.S. 157, 181, 63 S.Ct. 877, 889, 87 L.Ed. 1324 (separate opinion): \u2018This Court is forever adding new stories to\nthe temples of **1655 constitutional law, and the temples have a way of collapsing when one story too many is added.\u2019\nMr.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4283, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "62e75e87-7e06-48d9-b1c8-a4853e678eaa": {"__data__": {"id_": "62e75e87-7e06-48d9-b1c8-a4853e678eaa", "embedding": null, "metadata": {"page_label": "29", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9a726dd0-5b0e-46e6-8a84-b0715a85d642", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "02f3f1703700035b59e617683b17e6c6fb60f01e3d8cdcd44343425ec6b1c5f7", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "2b74ca4b-23a2-442d-bbd2-0b7c4e0ebd16", "node_type": "1", "metadata": {"page_label": "29", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4a4047a67f6fb96f6f761615b1a11d22161a6dcaf2e4a2b38ee1fbfa15d8744c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "I would therefore\naffirm Westover's conviction.\nIn conclusion: Nothing in the letter or the spirit of the Constitution or in the precedents squares with the heavy-handed and one-\nsided action that is so precipitously *526 taken by the Court in the name of fulfulling its constitutional responsibilities. The\nforay which the Court makes today brings to mind the wise and farsighted words of Mr. Justice Jackson in Douglas v. City of\nJeannette, 319 U.S. 157, 181, 63 S.Ct. 877, 889, 87 L.Ed. 1324 (separate opinion): \u2018This Court is forever adding new stories to\nthe temples of **1655 constitutional law, and the temples have a way of collapsing when one story too many is added.\u2019\nMr. Justice WHITE, with whom Mr. Justice HARLAN and Mr. Justice STEWART join, dissenting.\nI.\nThe proposition that the privilege against self-incrimination forbids incustody interrogation without the warnings specified in\nthe majority opinion and without a clear waiver of counsel has no significant support in the history of the privilege or in the\nlanguage of the Fifth Amendment. As for the English authorities and the common-law history, the privilege, firmly established", "mimetype": "text/plain", "start_char_idx": 3600, "end_char_idx": 4754, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d8b5b27a-d6fc-4cb6-9d88-a4595aa233da": {"__data__": {"id_": "d8b5b27a-d6fc-4cb6-9d88-a4595aa233da", "embedding": null, "metadata": {"page_label": "30", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "77e35c5a-3f7e-4f2f-bcf3-90692a34e66f", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b82b226ce4c9e95ae158e653f98af4904cda1b7c7652e568f3952e9718fc4038", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "e1a1eaff-5b20-4136-b308-fe6e9d169a0f", "node_type": "1", "metadata": {}, "hash": "a9fbfe16a603836b060d42310a4769ea5b2b850fc716f43c3b0648c7ade33c1c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 30\nin the second half of the seventeenth century, was never applied except to prohibit compelled judicial interrogations. The rule\nexcluding coerced confessions matured about 100 years later, \u2018(b)ut there is nothing in the reports to suggest that the theory\nhas its roots in the privilege against self-incrimination. And so far as the cases reveal, the privilege, as such, seems to have\nbeen given effect only in judicial proceedings, including the preliminary examinations by authorized magistrates.\u2019 Morgan, The\nPrivilege Against Self-Incrimination, 34 Minn.L.Rev. 1, 18 (1949).\nOur own constitutional provision provides that no person \u2018shall be compelled in any criminal case to be a witness against\nhimself.\u2019 These words, when \u2018(c) onsidered in the light to be shed by grammar and the dictionary * * * appear to signify\nsimply that nobody shall be *527 compelled to give oral testimony against himself in a criminal proceeding under way in\nwhich he is defendant.\u2019 Corwin, The Supreme Court's Construction of the Self-Incrimination Clause, 29 Mich.L.Rev. 1, 2. And\nthere is very little in the surrounding circumstances of the adoption of the Fifth Amendment or in the provisions of the then\nexisting state constitutions or in state practice which would give the constitutional provision any broader meaning. Mayers, The\nFederal Witness' Privilege Against Self-Incrimination: Constitutional or Common-Law? 4 American Journal of Legal History\n107 (1960). Such a construction, however, was considerably narrower than the privilege at common law, and when eventually\nfaced with the issues, the Court extended the constitutional privilege to the compulsory production of books and papers, to the\nordinary witness before the grand jury and to witnesses generally. Boyd v. United States, 116 U.S. 616, 6 S.Ct. 524, 29 L.Ed.\n746, and Counselman v. Hitchcock, 142 U.S. 547, 12 S.Ct. 195, 35 L.Ed. 1110. Both rules had solid support in common-law\nhistory, if not in the history of our own constitutional provision.\nA few years later the Fifth Amendment privilege was similarly extended to encompass the then well-established rule against\ncoerced confessions: \u2018In criminal trials, in the courts of the United States, wherever a question arises whether a confession\nis incompetent because not voluntary, the issue is controlled by that portion of the fifth amendment to the constitution of the\nUnited States, commanding that no person \u2018shall be compelled in any criminal case to be a witness against himself.\u2018\u2018 Bram\nv. United States, 168 U.S. 532, 542, 18 S.Ct. 183, 187, 42 L.Ed. 568. Although this view has found approval in other cases,\nBurdeau v. McDowell, 256 U.S. 465, 475, 41 S.Ct. 574, 576, 65 L.Ed. 1048; Powers v. United States, 223 U.S. 303, 313, 32\nS.Ct. 281, 283, 56 L.Ed. 448; Shotwell Mfg. Co. v. United States, 371 U.S. 341, 347, 83 S.Ct. 448, 453, 9 L.Ed.2d 357, it has\nalso been questioned, see Brown v. State of Mississippi, 297 U.S. 278, 285, 56 S.Ct. 461, 464, 80 L.Ed. 682; United States v.\nCarignan, 342 U.S. 36, 41, 72 S.Ct. 97, 100, 96 L.Ed. 48; Stein v. People of State of New York, 346 U.S. 156, 191, n. 35, 73\nS.Ct. 1077, 1095, 97 L.Ed. 1522, *528 and finds scant support in either the English or American authorities, see generally\nRegina v. Scott, Dears.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3474, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e1a1eaff-5b20-4136-b308-fe6e9d169a0f": {"__data__": {"id_": "e1a1eaff-5b20-4136-b308-fe6e9d169a0f", "embedding": null, "metadata": {"page_label": "30", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "77e35c5a-3f7e-4f2f-bcf3-90692a34e66f", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b82b226ce4c9e95ae158e653f98af4904cda1b7c7652e568f3952e9718fc4038", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "d8b5b27a-d6fc-4cb6-9d88-a4595aa233da", "node_type": "1", "metadata": {"page_label": "30", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ff593b27ee3b5404872c8e6664cc48609e567de38e9482f98d8c03587f1e44b2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "v. United States, 371 U.S. 341, 347, 83 S.Ct. 448, 453, 9 L.Ed.2d 357, it has\nalso been questioned, see Brown v. State of Mississippi, 297 U.S. 278, 285, 56 S.Ct. 461, 464, 80 L.Ed. 682; United States v.\nCarignan, 342 U.S. 36, 41, 72 S.Ct. 97, 100, 96 L.Ed. 48; Stein v. People of State of New York, 346 U.S. 156, 191, n. 35, 73\nS.Ct. 1077, 1095, 97 L.Ed. 1522, *528 and finds scant support in either the English or American authorities, see generally\nRegina v. Scott, Dears. & Bell 47; 3 **1656 Wigmore, Evidence s 823 (3d ed. 1940), at 249 (\u2018a confession is not rejected\nbecause of any connection with the privilege against self-crimination\u2019), and 250, n. 5 (particularly criticizing Bram); 8 Wigmore,\nEvidence s 2266, at 400\u2014401 (McNaughton rev. 1961). Whatever the source of the rule excluding coerced confessions, it is\nclear that prior to the application of the privilege itself to state courts, Malloy v. Hogan, 378 U.S. 1, 84 S.Ct. 1489, 12 L.Ed.2d\n653, the admissibility of a confession in a state criminal prosecution was tested by the same standards as were applied in federal\nprosecutions. Id., at 6\u20147, 10, 84 S.Ct., at 1492\u20141493, 1494.\nBram, however, itself rejected the proposition which the Court now espouses. The question in Bram was whether a confession,\nobtained during custodial interrogation, had been compelled, and if such interrogation was to be deemed inherently vulnerable\nthe Court's inquiry could have ended there. After examining the English and American authorities, however, the Court declared\nthat:\n\u2018In this court also it has been settled that the mere fact that the confession is made to a police officer, while the accused was\nunder arrest in or out of prison, or was drawn out by his questions, does not necessarily render the confession involuntary; but,\nas one of the circumstances, such imprisonment or interrogation may be taken into account in determining whether or not the\nstatements of the prisoner were voluntary.\u2019 168 U.S., at 558, 18 S.Ct., at 192.\nIn this respect the Court was wholly consistent with prior and subsequent pronouncements in this Court.\nThus prior to Bram the Court, in Hopt v. People of Territory of Utah, 110 U.S. 574, 583\u2014587, 4 S.Ct. 202, 206, 28 L.Ed. 262, had\nupheld the admissibility of a *529 confession made to police officers following arrest, the record being silent concerning what", "mimetype": "text/plain", "start_char_idx": 2995, "end_char_idx": 5356, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8c20e165-612e-4962-9a74-de5ff7cd907b": {"__data__": {"id_": "8c20e165-612e-4962-9a74-de5ff7cd907b", "embedding": null, "metadata": {"page_label": "31", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f5fbb428-c853-4216-b2c4-ef572d7d93aa", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8d23f410925c5e55bd957d91ef54e8b768578f26b10d49a4485f94818f6b0e1e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "89a2bc2f-c935-44fd-b55e-1d05b21a61f5", "node_type": "1", "metadata": {}, "hash": "8363009fb2b413017408b0cffba080669335d71ab57c33d4eddd5ae675c4c04d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 31\nconversation had occurred between the officers and the defendant in the short period preceding the confession. Relying on Hopt,\nthe Court ruled squarely on the issue in Sparf and Hansen v. United States, 156 U.S. 51, 55, 15 S.Ct. 273, 275, 39 L.Ed. 343:\n\u2018Counsel for the accused insist that there cannot be a voluntary statement, a free, open confession, while\na defendant is confined and in irons, under an accusation of having committed a capital offence. We have\nnot been referred to any authority in support of that position. It is true that the fact of a prisoner being in\ncustody at the time he makes a confession is a circumstance not to be overlooked, because it bears upon the\ninquiry whether the confession was voluntarily made, or was extorted by threats or violence or made under\nthe influence of fear. But confinement or imprisonment is not in itself sufficient to justify the exclusion of\na confession, if it appears to have been voluntary and was not obtained by putting the prisoner in fear or by\npromises. Whart(on's) Cr.Ev. (9th Ed.) ss 661, 663, and authorities cited.\u2019\nAccord, Pierce v. United States, 160 U.S. 355, 357, 16 S.Ct. 321, 322, 40 L.Ed. 454.\nAnd in Wilson v. United States, 162 U.S. 613, 623, 16 S.Ct. 895, 899, 40 L.Ed. 1090, the Court had considered the significance\nof custodial interrogation without any antecedent warnings regarding the right to remain silent or the right to counsel. There the\ndefendant had answered questions posed by a Commissioner, who had filed to advise him of his rights, and his answers were\nheld admissible over his claim of involuntariness. \u2018The fact that (a defendant) is in custody and manacled does not necessarily\nrender his statement involuntary, nor is that necessarily the effect of popular excitement shortly preceding. * * * And it is laid\ndown *530 that it is not essential to the admissibility of a confession **1657 that it should appear that the person was warned\nthat what he said would be used against him; but, on the contrary, if the confession was voluntary, it is sufficient, though it\nappear that he was not so warned.\u2019\nSince Bram, the admissibility of statements made during custodial interrogation has been frequently reiterated. Powers v. United\nStates, 223 U.S. 303, 32 S.Ct. 281, cited Wilson approvingly and held admissible as voluntary statements the accused's testimony\nat a preliminary hearing even though he was not warned that what he said might be used against him. Without any discussion of\nthe presence or absence of warnings, presumably because such discussion was deemed unnecessary, numerous other cases have\ndeclared that \u2018(t) he mere fact that a confession was made while in the custody of the police does not render it inadmissible,\u2019\nMcNabb v. United States, 318 U.S. 332, 346, 63 S.Ct. 608, 615, 87 L.Ed. 819; accord, United States v. Mitchell, 322 U.S. 65, 64\nS.Ct. 896, 88 L.Ed. 1140, despite its having been elicited by police examination. Ziang Sung Wan v. United States, 266 U.S. 1,\n14, 45 S.Ct. 3; United States v. Carignan, 342 U.S. 36, 39, 72 S.Ct. 97, 99. Likewise, in Crooker v. State of California, 357 U.S.\n433, 437, 78 S.Ct. 1287, 1290, 2 L.Ed.2d 1448, the Court said that \u2018(t)he bare fact of police \u2018detention and police examination in\nprivate of one in official state custody\u2019 does not render involuntary a confession by the one so detained.' And finally, in Cicenia\nv. La Gay, 357 U.S. 504, 78 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3617, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "89a2bc2f-c935-44fd-b55e-1d05b21a61f5": {"__data__": {"id_": "89a2bc2f-c935-44fd-b55e-1d05b21a61f5", "embedding": null, "metadata": {"page_label": "31", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f5fbb428-c853-4216-b2c4-ef572d7d93aa", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8d23f410925c5e55bd957d91ef54e8b768578f26b10d49a4485f94818f6b0e1e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "8c20e165-612e-4962-9a74-de5ff7cd907b", "node_type": "1", "metadata": {"page_label": "31", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "3f50c43cfd61f44586d0894bbe158a48beed25b6ef845f34fbd1b193ab2da9c1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "896, 88 L.Ed. 1140, despite its having been elicited by police examination. Ziang Sung Wan v. United States, 266 U.S. 1,\n14, 45 S.Ct. 3; United States v. Carignan, 342 U.S. 36, 39, 72 S.Ct. 97, 99. Likewise, in Crooker v. State of California, 357 U.S.\n433, 437, 78 S.Ct. 1287, 1290, 2 L.Ed.2d 1448, the Court said that \u2018(t)he bare fact of police \u2018detention and police examination in\nprivate of one in official state custody\u2019 does not render involuntary a confession by the one so detained.' And finally, in Cicenia\nv. La Gay, 357 U.S. 504, 78 S.Ct. 1297, 2 L.Ed.2d 1523, a confession obtained by police interrogation after arrest was held\nvoluntary even though the authorities refused to permit the defendant to consult with his attorney. See generally Culombe v.\nConnecticut, 367 U.S. 568, 587\u2014602, 81 S.Ct. 1860, 1870, 6 L.Ed.2d 1037 (opinion of Frankfurter, J.); 3 Wigmore, Evidence\ns 851, at 313 (3d ed. 1940); see also Joy, Admissibility of Confessions 38, 46 (1842).\nOnly a tiny minority of our judges who have dealt with the question, including today's majority, have considered incustody\ninterrogation, without more, to be a violation of the Fifth Amendment. And this Court, as *531 every member knows, has left\nstanding literally thousands of criminal convictions that rested at least in part on confessions taken in the course of interrogation\nby the police after arrest.\nII.\nThat the Court's holding today is neither compelled nor even strongly suggested by the language of the Fifth Amendment, is at\nodds with American and English legal history, and involves a departure from a long line of precedent does not prove either that", "mimetype": "text/plain", "start_char_idx": 3069, "end_char_idx": 4711, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "758267ce-f3b8-4f8b-af1d-187ada01b5fa": {"__data__": {"id_": "758267ce-f3b8-4f8b-af1d-187ada01b5fa", "embedding": null, "metadata": {"page_label": "32", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9683ca93-2a7e-43b8-b0cc-75c4bd6bfdd7", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e88ba8198be9c2168d647d76dba16274b67a7e4d5f8afd95bf53737f7176e4b3", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "0ed8efbf-f5d2-435c-a346-618d87b4ddf2", "node_type": "1", "metadata": {}, "hash": "50799770379ee9e0b900d8b0941ba7a7731a2c70eb3be8055828e48166aa40f7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 32\nthe Court has exceeded its powers or that the Court is wrong or unwise in its present reinter-pretation of the Fifth Amendment.\nIt does, however, underscore the obvious\u2014that the Court has not discovered or found the law in making today's decision, nor\nhas it derived it from some irrefutable sources; what it has done is to make new law and new public policy in much the same\nway that it has in the course of interpreting other great clauses of the Constitution.1 This is what the Court historically has done.\nIndeed, it is what it must do and will continue to do until and unless there is some fundamental change in the constitutional\ndistribution of governmental powers.\nBut if the Court is here and now to announce new and fundamental policy to govern certain aspects of our affairs, it is wholly\nlegitimate to examine the mode of this or any other constitutional decision in this Court and to inquire into the advisability\nof its end product in **1658 terms of the long-range interest of the country. At the very least, the Court's text and reasoning\nshould withstand analysis and be a fair exposition of the constitutional provision which its opinion interprets. Decisions *532\nlike these cannot rest alone on syllogism, metaphysics or some ill-defined notions of natural justice, although each will perhaps\nplay its part. In proceeding to such constructions as it now announces, the Court should also duly consider all the factors and\ninterests bearing upon the cases, at least insofar as the relevant materials are available; and if the necessary considerations are\nnot treated in the record or obtainable from some other reliable source, the Court should not proceed to formulate fundamental\npolicies based on speculation alone.\nIII.\nFirst, we may inquire what are the textual and factual bases of this new fundamental rule. To reach the result announced on\nthe grounds it does, the Court must stay within the confines of the Fifth Amendment, which forbids self-incrimination only\nif compelled. Hence the core of the Court's opinion is that because of the \u2018compulsion inherent in custodial surroundings, no\nstatement obtained from (a) defendant (in custody) can truly be the product of his free choice,\u2019 ante, at 1619, absent the use of\nadequate protective devices as described by the Court. However, the Court does not point to any sudden inrush of new knowledge\nrequiring the rejection of 70 years' experience. Nor does it assert that its novel conclusion reflects a changing consensus among\nstate courts, see Mapp v. Ohio, 367 U.S. 643, 81 S.Ct. 1684, 6 L.Ed.2d 1081, or that a succession of cases had steadily eroded the\nold rule and proved it unworkable, see Gideon v. Wainwright, 372 U.S. 335, 83 S.Ct. 792, 9 L.Ed.2d 799. Rather than asserting\nnew knowledge, the Court concedes that it cannot truly know what occurs during custodial questioning, because of the innate\nsecrecy of such proceedings. It extrapolates a picture of what it conceives to be the norm from police investigatorial manuals,\npublished in 1959 and 1962 or earlier, without any attempt to allow for adjustments in police practices that may *533 have\noccurred in the wake of more recent decisions of state appellate tribunals or this Court. But even if the relentless application\nof the described procedures could lead to involuntary confessions, it most assuredly does not follow that each and every case\nwill disclose this kind of interrogation or this kind of consequence. 2 Insofar as appears from the Court's opinion, it has not\nexamined a single transcript of any police interrogation, let alone the interrogation that took place in any one of these cases\nwhich it decides today. Judged by any of the standards for empirical investigation utilized in the social sciences the factual basis\nfor the Court's premise is patently inadequate.\nAlthough in the Court's view in-custody interrogation is inherently coercive, the Court says that the spontaneous product of\nthe coercion of arrest and detention is still to be deemed voluntary.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4219, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0ed8efbf-f5d2-435c-a346-618d87b4ddf2": {"__data__": {"id_": "0ed8efbf-f5d2-435c-a346-618d87b4ddf2", "embedding": null, "metadata": {"page_label": "32", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9683ca93-2a7e-43b8-b0cc-75c4bd6bfdd7", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e88ba8198be9c2168d647d76dba16274b67a7e4d5f8afd95bf53737f7176e4b3", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "758267ce-f3b8-4f8b-af1d-187ada01b5fa", "node_type": "1", "metadata": {"page_label": "32", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "540940b1dfcb11246d9a990abe9728c5038fe855bf7153e30c996381313f1832", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "But even if the relentless application\nof the described procedures could lead to involuntary confessions, it most assuredly does not follow that each and every case\nwill disclose this kind of interrogation or this kind of consequence. 2 Insofar as appears from the Court's opinion, it has not\nexamined a single transcript of any police interrogation, let alone the interrogation that took place in any one of these cases\nwhich it decides today. Judged by any of the standards for empirical investigation utilized in the social sciences the factual basis\nfor the Court's premise is patently inadequate.\nAlthough in the Court's view in-custody interrogation is inherently coercive, the Court says that the spontaneous product of\nthe coercion of arrest and detention is still to be deemed voluntary. An accused, arrested on probable cause, may blurt out a\nconfession which will be admissible despite the fact that he is alone and in custody, without any showing that **1659 he had\nany notion of his right to remain silent or of the consequences of his admission. Yet, under the Court's rule, if the police ask him\na single question such as \u2018Do you have anything to say?\u2019 or \u2018Did you kill your wife?\u2019 his response, if there is one, has somehow\nbeen compelled, even if the accused has *534 been clearly warned of his right to remain silent. Common sense informs us\nto the contrary. While one may say that the response was \u2018involuntary\u2019 in the sense the question provoked or was the occasion\nfor the response and thus the defendant was induced to speak out when he might have remained silent if not arrested and not\nquestioned, it is patently unsound to say the response is compelled.\nToday's result would not follow even if it were agreed that to some extent custodial interrogation is inherently coercive. See\nAshcraft v. State of Tennessee, 322 U.S. 143, 161, 64 S.Ct. 921, 929, 88 L.Ed. 1192 (Jackson, J., dissenting). The test has been", "mimetype": "text/plain", "start_char_idx": 3422, "end_char_idx": 5359, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b43fde75-2689-4c56-8c4b-8756cb6f0c4c": {"__data__": {"id_": "b43fde75-2689-4c56-8c4b-8756cb6f0c4c", "embedding": null, "metadata": {"page_label": "33", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "be3361cd-0339-4a3d-90c3-e29fe9db77db", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "115be63ecbc2e7d669966569700933308404d843ad05b38166410d512766a272", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "f0b3a50d-0fcc-4723-a5fd-b65b74f8866a", "node_type": "1", "metadata": {}, "hash": "69dae172619362bd89833ff62c0fe3fa2eff3c976b0b4d03a22b4db1795a6a2c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 33\nwhether the totality of circumstances deprived the defendant of a \u2018free choice to admit, to deny, or to refuse to answer,\u2019 Lisenba\nv. People of State of California, 314 U.S. 219, 241, 62 S.Ct. 280, 292, 86 L.Ed. 166, and whether physical or psychological\ncoercion was of such a degree that \u2018the defendant's will was overborne at the time he confessed,\u2019 Haynes v. State of Washington,\n373 U.S. 503, 513, 83 S.Ct. 1336, 1343, 10 L.Ed.2d 513; Lynumn v. State of Illinois, 372 U.S. 528, 534, 83 S.Ct. 917, 920, 9\nL.Ed.2d 922. The duration and nature of incommunicado custody, the presence or absence of advice concerning the defendant's\nconstitutional rights, and the granting or refusal of requests to communicate with lawyers, relatives or friends have all been\nrightly regarded as important data bearing on the basic inquiry. See, e.g., Ashcraft v. State of Tennessee, 322 U.S. 143, 64 S.Ct.\n921; Haynes v. State of Washington, 373 U.S. 503, 83 S.Ct. 1336.3 *535 But it has never been suggested, until today, that such\nquestioning was so coercive and accused persons so lacking in hardihood that the very first response to the very first question\nfollowing the commencement of custody must be conclusively presumed to be the product of an overborne will.\nIf the rule announced today were truly based on a conclusion that all confessions resulting from custodial interrogation are\ncoerced, then it would simply have no rational foundation. Compare Tot v. United States, 319 U.S. 463, 466, 63 S.Ct. 1241,\n1244, 87 L.Ed. 1519; United States v. Romano, 382 U.S. 136, 86 S.Ct. 279, 15 L.Ed.2d 210. A fortiori that would be true of\nthe extension of the rule to exculpatory statements, which the Court effects after a brief discussion of why, in the Court's view,\nthey must be deemed incriminatory but without any discussion of why they must be deemed coerced. See Wilson v. United\nStates, 162 U.S. 613, 624, 16 S.Ct. 895, 900, 40 L.Ed. 1090. Even if one were to postulate that the Court's concern is not that all\nconfessions induced by police interrogation are coerced but rather that some such confessions are coerced and present judicial\nprocedures are believed to be inadequate to identify the confessions that are coerced **1660 and those that are not, it would\nstill not be essential to impose the rule that the Court has now fashioned. Transcripts or observers could be required, specific\ntime limits, tailored to fit the cause, could be imposed, or other devices could be utilized to reduce the chances that otherwise\nindiscernible coercion will produce an inadmissible confession.\nOn the other hand, even if one assumed that there was an adequate factual basis for the conclusion that all confessions obtained\nduring in-custody interrogation are the product of compulsion, the rule propounded by *536 the Court will still be irrational,\nfor, apparently, it is only if the accused is also warned of his right to counsel and waives both that right and the right against\nself-incrimination that the inherent compulsiveness of interrogation disappears. But if the defendant may not answer without\na warning a question such as \u2018Where were you last night?\u2019 without having his answer be a compelled one, how can the Court\never accept his negative answer to the question of whether he wants to consult his retained counsel or counsel whom the court\nwill appoint? And why if counsel is present and the accused nevertheless confesses, or counsel tells the accused to tell the truth,\nand that is what the accused does, is the situation any less coercive insofar as the accused is concerned?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3781, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f0b3a50d-0fcc-4723-a5fd-b65b74f8866a": {"__data__": {"id_": "f0b3a50d-0fcc-4723-a5fd-b65b74f8866a", "embedding": null, "metadata": {"page_label": "33", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "be3361cd-0339-4a3d-90c3-e29fe9db77db", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "115be63ecbc2e7d669966569700933308404d843ad05b38166410d512766a272", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "b43fde75-2689-4c56-8c4b-8756cb6f0c4c", "node_type": "1", "metadata": {"page_label": "33", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "24706cd08e8be11cfda0036693158d2a806859480c2085ae93f1af5f9ae0c0f5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "But if the defendant may not answer without\na warning a question such as \u2018Where were you last night?\u2019 without having his answer be a compelled one, how can the Court\never accept his negative answer to the question of whether he wants to consult his retained counsel or counsel whom the court\nwill appoint? And why if counsel is present and the accused nevertheless confesses, or counsel tells the accused to tell the truth,\nand that is what the accused does, is the situation any less coercive insofar as the accused is concerned? The Court apparently\nrealizes its dilemma of foreclosing questioning without the necessary warnings but at the same time permitting the accused,\nsitting in the same chair in front of the same policemen, to waive his right to consult an attorney. It expects, however, that the\naccused will not often waive the right; and if it is claimed that he has, the State faces a severe, if not impossible burden of proof.\nAll of this makes very little sense in terms of the compulsion which the Fifth Amendment proscribes. That amendment deals\nwith compelling the accused himself. It is his free will that is involved. Confessions and incriminating admissions, as such, are\nnot forbidden evidence; only those which are compelled are banned. I doubt that the Court observes these distinctions today.\nBy considering any answers to any interrogation to be compelled regardless of the content and course of examination and by\nescalating the requirements to prove waiver, the Court not only prevents the use of compelled confessions but for all practical\npurposes forbids interrogation except in the presence of counsel. That is, instead of confining itself to protection of the right\nagainst compelled *537 self-incrimination the Court has created a limited Fifth Amendment right to counsel\u2014or, as the Court\nexpresses it, a \u2018need for counsel to protect the Fifth Amendment privilege * * *.\u2019 Ante, at 1625. The focus then is not on the will\nof the accused but on the will of counsel and how much influence he can have on the accused. Obviously there is no warrant\nin the Fifth Amendment for thus installing counsel as the arbiter of the privilege.\nIn sum, for all the Court's expounding on the menacing atmosphere of police interrogation procedures, it has failed to supply\nany foundation for the conclusions it draws or the measures it adopts.", "mimetype": "text/plain", "start_char_idx": 3251, "end_char_idx": 5612, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9375a539-f114-4e2b-b00e-aa23c476375f": {"__data__": {"id_": "9375a539-f114-4e2b-b00e-aa23c476375f", "embedding": null, "metadata": {"page_label": "34", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e29d8999-ac63-4e75-b1f6-bd32afc7242a", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "938c65a296fe6e6d44eb0c7dff35fdba9e4a08d22c6918479d1bab0eed4d71e3", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "8cfde54d-e51f-4021-b602-df048c0aab06", "node_type": "1", "metadata": {}, "hash": "fc0a1bf489c357584aa5691a0b63e05007475dc888608a2cee9020f767eab8e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 34\nIV .\nCriticism of the Court's opinion, however, cannot stop with a demonstration that the factual and textual bases for the rule it\nproponds are, at best, less than compelling. Equally relevant is an assessment of the rule's consequences measured against\ncommunity values. The Court's duty to assess the consequences of its action is not satisfied by the utterance of the truth that\na value of our system of criminal justice is \u2018to respect the inviolability of the human personality\u2019 and to require government\nto produce the evidence against the accused by its own independent labors. Ante, at 1620. More than the human dignity of the\naccused is involved; the human personality of others in the society must also be preserved. **1661 Thus the values reflected\nby the privilege are not the sole desideratum; society's interest in the general security is of equal weight.\nThe obvious underpinning of the Court's decision is a deep-seated distrust of all confessions. As the Court declares that the\naccused may not be interrogated without counsel present, absent a waiver of the right to counsel, and as the Court all but\nadmonishes the lawyer to *538 advise the accused to remain silent, the result adds up to a judicial judgment that evidence\nfrom the accused should not be used against him in any way, whether compelled or not. This is the not so subtle overtone of the\nopinion\u2014that it is inherently wrong for the police to gather evidence from the accused himself. And this is precisely the nub of\nthis dissent. I see nothing wrong or immoral, and certainly nothing unconstitutional, in the police's asking a suspect whom they\nhave reasonable cause to arrest whether or not he killed his wife or in confronting him with the evidence on which the arrest\nwas based, at least where he has been plainly advised that he may remain completely silent, see Escobedo v. State of Illinois,\n378 U.S. 478, 499, 84 S.Ct. 1758, 1769, 12 L.Ed.2d 977 (dissenting opinion). Until today, \u2018the admissions or confessions of the\nprisoner, when voluntarily and freely made, have always ranked high in the scale of incriminating evidence.\u2019 Brown v. Walker,\n161 U.S. 591, 596, 16 S.Ct. 644, 646, 40 L.Ed. 819, see also Hopt v. People of Territory of Utah, 110 U.S. 574, 584\u2014585, 4\nS.Ct. 202, 207. Particularly when corroborated, as where the police have confirmed the accused's disclosure of the hiding place\nof implements or fruits of the crime, such confessions have the highest reliability and significantly contribute to the certitude\nwith which we may believe the accused is guilty. Moreover, it is by no means certain that the process of confessing is injurious\nto the accused. To the contrary it may provide psychological relief and enhance the prospects for rehabilitation.\nThis is not to say that the value of respect for the inviolability of the accused's individual personality should be accorded\nno weight or that all confessions should be indiscriminately admitted. This Court has long read the Constitution to proscribe\ncompelled confessions, a salutary rule from which there should be no retreat. But I see no sound basis, factual or otherwise,\nand the Court gives none, for concluding that the present rule against the receipt of coerced confessions is inadequate for the\n*539 task of sorting out inadmissible evidence and must be replaced by the per se rule which is now imposed. Even if the\nnew concept can be said to have advantages of some sort over the present law, they are far outweighed by its likely undesirable\nimpact on other very relevant and important interests.\nThe most basic function of any government is to provide for the security of the individual and of his property. Lanzetta v. State\nof New Jersey, 306 U.S. 451, 455, 59 S.Ct. 618, 619, 83 L.Ed. 888. These ends of society are served by the criminal laws which\nfor the most part are aimed at the prevention of crime.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4079, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8cfde54d-e51f-4021-b602-df048c0aab06": {"__data__": {"id_": "8cfde54d-e51f-4021-b602-df048c0aab06", "embedding": null, "metadata": {"page_label": "34", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e29d8999-ac63-4e75-b1f6-bd32afc7242a", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "938c65a296fe6e6d44eb0c7dff35fdba9e4a08d22c6918479d1bab0eed4d71e3", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9375a539-f114-4e2b-b00e-aa23c476375f", "node_type": "1", "metadata": {"page_label": "34", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1ddfcb5028e283385511a58e241167628a1b449c19f955189874b315320348cc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "But I see no sound basis, factual or otherwise,\nand the Court gives none, for concluding that the present rule against the receipt of coerced confessions is inadequate for the\n*539 task of sorting out inadmissible evidence and must be replaced by the per se rule which is now imposed. Even if the\nnew concept can be said to have advantages of some sort over the present law, they are far outweighed by its likely undesirable\nimpact on other very relevant and important interests.\nThe most basic function of any government is to provide for the security of the individual and of his property. Lanzetta v. State\nof New Jersey, 306 U.S. 451, 455, 59 S.Ct. 618, 619, 83 L.Ed. 888. These ends of society are served by the criminal laws which\nfor the most part are aimed at the prevention of crime. Without the reasonably effective performance of the task of preventing\nprivate violence and retaliation, it is idle to talk about human dignity and civilized values.\nThe modes by which the criminal laws serve the interest in general security are many. First the murderer who has taken the\nlife of another is removed from the streets, deprived of his liberty and thereby prevented from repeating his offense. In view\nof the statistics on recidivism in this country 4 and of the number of instances **1662 *540 in which apprehension occurs\nonly after repeated offenses, no one can sensibly claim that this aspect of the criminal law does not prevent crime or contribute\nsignificantly to the personal security of the ordinary citizen.\nSecondly, the swift and sure apprehension of those who refuse to respect the personal security and dignity of their neighbor\nunquestionably has its impact on others who might be similarly tempted. That the criminal law is wholly or partly ineffective\nwith a segment of the population or with many of those who have been apprehended and convicted is a very faulty basis for\nconcluding that it is not effective with respect to the great bulk of our citizens or for thinking that without the criminal laws,", "mimetype": "text/plain", "start_char_idx": 3286, "end_char_idx": 5318, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "963566cd-94f0-4c0f-8886-dbed6f3d5f6d": {"__data__": {"id_": "963566cd-94f0-4c0f-8886-dbed6f3d5f6d", "embedding": null, "metadata": {"page_label": "35", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "476570b8-858d-4f6d-b722-8f75bf01969b", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8a85c9c2a687d06dc3fb3bd741aec3832b7491da52d398cc876ebe71ff06dd94", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "7f27083f-e48c-412b-98ea-32af72b2e135", "node_type": "1", "metadata": {}, "hash": "df5a3c09d898738a78233c7a63d3e3fc6d64c2c89ffc39f0523fbf2fe631c9b1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 35\n*541 or in the absence of their enforcement, there would be no increase in crime. Arguments of this nature are not borne out\nby any kind of reliable evidence that I have been to this date.\nThirdly, the law concerns itself with those whom it has confined. The hope and aim of modern penology, fortunately, is as soon\nas possible to return the convict to society a better and more law-abiding man than when he left. Sometimes there is success,\nsometimes failure. But at least the effort is made, and it should be made to the very maximum extent of our present and future\ncapabilities.\nThe rule announced today will measurably weaken the ability of the criminal law to perform these tasks. It is a deliberate\ncalculus to prevent interrogations, to reduce the incidence of confessions and pleas of guilty and to increase the number of\ntrials. 5 Criminal trials, **1663 no *542 matter how efficient the police are, are not sure bets for the prosecution, nor should\nthey be if the evidence is not forthcoming. Under the present law, the prosecution fails to prove its case in about 30% of the\ncriminal cases actually tried in the federal courts. See Federal Offenders: 1964, supra, note 4, at 6 (Table 4), 59 (Table 1);\nFederal Offenders; 1963, supra, note 4, at 5 (Table 3); District of Columbia Offenders: 1963, supra, note 4, at 2 (Table 1). But\nit is something else again to remove from the ordinary criminal case all those confessions which heretofore have been held to\nbe free and voluntary acts of the accused and to thus establish a new constitutional barrier to the ascertainment of truth by the\njudicial process. There is, in my view, every reason to believe that a good many criminal defendants who otherwise would have\nbeen convicted on what this Court has previously thought to be the most satisfactory kind of evidence will now under this new\nversion of the Fifth Amendment, either not be tried at all or will be acquitted if the State's evidence, minus the confession, is\nput to the test of litigation.\nI have no desire whatsoever to share the responsibility for any such impact on the present criminal process.\nIn some unknown number of cases the Court's rule will return a killer, a rapist or other criminal to the streets and to the\nenvironment which produced him, to repeat his crime whenever it pleases him. As a consequence, there will not be a gain,\nbut a loss, in human dignity. The real concern is not the unfortunate consequences of this new decision on the criminal law\nas an abstract, disembodied series of authoritative proscriptions, but the impact on those who rely on the public authority for\nprotection and who without it can only engage in violent self-help with guns, knives and the help of their neighbors similarly\ninclined. There is, of *543 course, a saving factor: the next victims are uncertain, unnamed and unrepresented in this case.\nNor can this decision do other than have a corrosive effect on the criminal laws as an effective device to prevent crime. A major\ncomponent in its effectiveness in this regard is its swift and sure enforcement. The easier it is to get away with rape and murder,\nthe less the deterrent effect on those who are inclined to attempt it. This is still good common sense. If it were not, we should\nposthaste liquidate the whole law enforcement establishment as a useless, misguided effort to control human conduct.\nAnd what about the accused who has confessed or would confess in response to simple, noncoercive questioning and whose\nguilt could not otherwise be proved? Is it so clear that release is the best thing for him in every case? Has it so unquestionably\nbeen resolved that in **1664 each and every case it would be better for him not to confess and to return to his environment\nwith no attempt whatsoever to help him? I think not. It may well be that in many cases it will be no less than a callous disregard\nfor his own welfare as well as for the interests of his next victim.\nThere is another aspect to the effect of the Court's rule on the person whom the police have arrested on probable cause.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4273, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7f27083f-e48c-412b-98ea-32af72b2e135": {"__data__": {"id_": "7f27083f-e48c-412b-98ea-32af72b2e135", "embedding": null, "metadata": {"page_label": "35", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "476570b8-858d-4f6d-b722-8f75bf01969b", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "8a85c9c2a687d06dc3fb3bd741aec3832b7491da52d398cc876ebe71ff06dd94", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "963566cd-94f0-4c0f-8886-dbed6f3d5f6d", "node_type": "1", "metadata": {"page_label": "35", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "3b33740a010f4bae63868d1dce4e67d8493de823e7c5e947f071dda294097f68", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "This is still good common sense. If it were not, we should\nposthaste liquidate the whole law enforcement establishment as a useless, misguided effort to control human conduct.\nAnd what about the accused who has confessed or would confess in response to simple, noncoercive questioning and whose\nguilt could not otherwise be proved? Is it so clear that release is the best thing for him in every case? Has it so unquestionably\nbeen resolved that in **1664 each and every case it would be better for him not to confess and to return to his environment\nwith no attempt whatsoever to help him? I think not. It may well be that in many cases it will be no less than a callous disregard\nfor his own welfare as well as for the interests of his next victim.\nThere is another aspect to the effect of the Court's rule on the person whom the police have arrested on probable cause. The\nfact is that he may not be guilty at all and may be able to extricate himself quickly and simply if he were told the circumstances\nof his arrest and were asked to explain. This effort, and his release, must now await the hiring of a lawyer or his appointment\nby the court, consultation with counsel and then a session with the police or the prosecutor. Similarly, where probable cause\nexists to arrest several suspects, as where the body of the victim is discovered in a house having several residents, compare\nJohnson v. State, 238 Md. 140, 207 A.2d 643 (1965) , cert. denied, 382 U.S. 1013, 86 S.Ct. 623, 15 L.Ed.2d 528, it will often\n*544 be true that a suspect may be cleared only through the results of interrogation of other suspects. Here too the release of\nthe innocent may be delayed by the Court's rule.", "mimetype": "text/plain", "start_char_idx": 3402, "end_char_idx": 5093, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2ee65ee1-560f-40b7-9cd2-eddb615ff994": {"__data__": {"id_": "2ee65ee1-560f-40b7-9cd2-eddb615ff994", "embedding": null, "metadata": {"page_label": "36", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b5a256dc-fc33-4c5d-b1db-bd17c24d2c86", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e2670cc62ed186f90732cdd03af93b81595b0ade7c1d4fa7481c64d920ec2c4e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "9bd9548f-ee43-4a48-81b1-2ca532ac7465", "node_type": "1", "metadata": {}, "hash": "7b4f62ab2fed3ac3a6fe0620e7a4e725b85ae6d3a95ae8571373aa821b324de1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 36\nMuch of the trouble with the Court's new rule is that it will operate indiscriminately in all criminal cases, regardless of the\nseverity of the crime or the circumstances involved. It applies to every defendant, whether the professional criminal or one\ncommitting a crime of momentary passion who is not part and parcel of organized crime. It will slow down the investigation\nand the apprehension of confederates in those cases where time is of the essence, such as kidnapping, see Brinegar v. United\nStates, 338 U.S. 160, 183, 69 S.Ct. 1302, 1314, 93 L.Ed. 1879 (Jackson, J., dissenting); People v. Modesto, 62 Cal.2d 436, 446,\n42 Cal.Rptr. 417, 423, 398 P.2d 753, 759 (1965) , those involving the national security, see United States v. Drummond, 354\nF.2d 132, 147 (C.A.2d Cir. 1965) (en banc) (espionage case), pet. for cert. pending, No. 1203, Misc., O.T. 1965; cf. Gessner v.\nUnited States, 354 F.2d 726, 730, n. 10 (C.A.10th Cir. 1965) (upholding, in espionage case, trial ruling that Government need\nnot submit classified portions of interrogation transcript), and some of those involving organized crime. In the latter context the\nlawyer who arrives may also be the lawyer for the defendant's colleagues and can be relied upon to insure that no breach of the\norganization's security takes place even though the accused may feel that the best thing he can do is to cooperate.\nAt the same time, the Court's per se approach may not be justified on the ground that it provides a \u2018bright line\u2019 permitting\nthe authorities to judge in advance whether interrogation may safely be pursued without jeopardizing the admissibility of\nany information obtained as a consequence. Nor can it be claimed that judicial time and effort, assuming that is a relevant\nconsideration, *545 will be conserved because of the ease of application of the new rule. Today's decision leaves open such\nquestions as whether the accused was in custody, whether his statements were spontaneous or the product of interrogation,\nwhether the accused has effectively waived his rights, and whether nontestimonial evidence introduced at trial is the fruit\nof statements made during a prohibited interrogation, all of which are certain to prove productive of uncertainty during\ninvestigation and litigation during prosecution. For all these reasons, if further restrictions on police interrogation are desirable\nat this time, a more flexible approach makes much more sense than the Court's constitutional straitjacket which forecloses more\ndiscriminating treatment by legislative or rule-making pronouncements.\n**1665 Applying the traditional standards to the cases before the Court, I would hold these confessions voluntary. I would\ntherefore affirm in Nos. 759, 760, and 761, and reverse in No. 584.\nAll Citations\n384 U.S. 436, 10 Ohio Misc. 9, 86 S.Ct. 1602, 16 L.Ed.2d 694, 10 A.L.R.3d 974, 36 O.O.2d 237, 39 O.O.2d 63\nFootnotes\n1 Compare United States v. Childress, 347 F.2d 448 (C.A.7th Cir. 1965), with Collins v. Beto, 348 F.2d 823 (C.A.5th Cir.\n1965). Compare People v. Dorado, 62 Cal.2d 338, 42 Cal.Rptr. 169, 398 P.2d 361 (1964) with People v. Hartgraves,\n31 Ill.2d 375, 202 N.E.2d 33 (1964).\n2 See, e.g., Enker & Elsen, Counsel for the Suspect: Massiah v. United States, 377 U.S. 201, 84 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3469, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9bd9548f-ee43-4a48-81b1-2ca532ac7465": {"__data__": {"id_": "9bd9548f-ee43-4a48-81b1-2ca532ac7465", "embedding": null, "metadata": {"page_label": "36", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b5a256dc-fc33-4c5d-b1db-bd17c24d2c86", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e2670cc62ed186f90732cdd03af93b81595b0ade7c1d4fa7481c64d920ec2c4e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "2ee65ee1-560f-40b7-9cd2-eddb615ff994", "node_type": "1", "metadata": {"page_label": "36", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "be4088e4775c744eeebfbe201b20a267dc5714cb886f576a55cdaa96e5267bcd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1965), with Collins v. Beto, 348 F.2d 823 (C.A.5th Cir.\n1965). Compare People v. Dorado, 62 Cal.2d 338, 42 Cal.Rptr. 169, 398 P.2d 361 (1964) with People v. Hartgraves,\n31 Ill.2d 375, 202 N.E.2d 33 (1964).\n2 See, e.g., Enker & Elsen, Counsel for the Suspect: Massiah v. United States, 377 U.S. 201, 84 S.Ct. 1199, 12 L.Ed.2d 246\nand Escobedo v. State of Illinois, 49 Minn.L.Rev. 47 (1964); Herman, The Supreme Court and Restrictions on Police\nInterrogation, 25 Ohio St.L.J. 449 (1964); Kamisar, Equal Justice in the Gatehouses and Mansions of American Criminal\nProcedure, in Criminal Justice in Our Time 1 (1965); Dowling, Escobedo and Beyond: The Need for a Fourteenth\nAmendment Code of Criminal Procedure, 56 J.Crim.L., C. & P.S. 143, 156 (1965).\nThe complex problems also prompted discussions by jurists. Compare Bazelon, Law, Morality, and Civil Liberties, 12\nU.C.L.A.L.Rev. 13 (1964), with Friendly, The Bill of Rights as a Code of Criminal Procedure, 53 Calif.L.Rev. 929\n(1965).", "mimetype": "text/plain", "start_char_idx": 3161, "end_char_idx": 4146, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f0045335-116c-47bb-8651-0831c19f3f7c": {"__data__": {"id_": "f0045335-116c-47bb-8651-0831c19f3f7c", "embedding": null, "metadata": {"page_label": "37", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "940b90d1-a675-4fb7-a956-85d6f152bd8a", "node_type": "4", "metadata": {"page_label": "37", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "41e220047aa02841655e84d870bd512461c77ed5b7a22c98f05270403d0c67fa", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "99b75cfb-2ccf-40ae-872e-077d704e528f", "node_type": "1", "metadata": {}, "hash": "cdc101b472907583574ee7adf2618dde25a63ea01000fed9918b2b034c8d13a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 37\n3 For example, the Los Angeles Police Chief stated that \u2018If the police are required * * * to * * * establish that the defendant\nwas apprised of his constitutional guarantees of silence and legal counsel prior to the uttering of any admission or\nconfession, and that he intelligently waived these guarantees * * * a whole Pandora's box is opened as to under what\ncircumstances * * * can a defendant intelligently waive these rights. * * * Allegations that modern criminal investigation\ncan compensate for the lack of a confession of admission in every criminal case is totally absurd!\u2019 Parker, 40 L.A.Bar\nBull. 603, 607, 642 (1965). His prosecutorial counterpart, District Attorney Younger, stated that \u2018(I)t begins to appear\nthat many of these seemingly restrictive decisions are going to contribute directly to a more effective, efficient and\nprofessional level of law enforcement.\u2019 L.A. Times, Oct. 2, 1965, p. 1. The former Police Commissioner of New York,\nMichael J. Murphy, stated of Escobedo: \u2018What the Court is doing is akin to requiring one boxer to fight by Marquis of\nQueensbury rules while permitting the other to butt, gouge and bite.\u2019 N.Y . Times, May 14, 1965, p. 39. The former United\nStates Attorney for the District of Columbia, David C. Acheson, who is presently Special Assistant to the Secretary of\nthe Treasury (for Enforcement), and directly in charge of the Secret Service and the Bureau of Narcotics, observed that\n\u2018Prosecution procedure has, at most, only the most remote causal connection with crime. Changes in court decisions and\nprosecution procedure would have about the same effect on the crime rate as an aspirin would have on a tumor of the\nbrain.\u2019 Quoted in Herman, supra, n. 2, at 500, n. 270. Other views on the subject in general are collected in Weisberg,\nPolice Interrogation of Arrested Persons: A Skeptical View, 52 J.Crim.L., C. & P.S. 21 (1961).\n4 This is what we meant in Escobedo when we spoke of an investigation which had focused on an accused.\n5 See, for example, IV National Commission on Law Observance and Enforcement, Report on Lawlessness in\nLaw Enforcement (1931) (Wickersham Report); Booth, Confessions and Methods Employed in Procuring Them,\n4 So.Calif.L.Rev. 83 (1930); Kauper, Judicial Examination of the Accused\u2014A Remedy for the Third Degree, 30\nMich.L.Rev. 1224 (1932). It is significant that instances of third-degree treatment of prisoners almost invariably took\nplace during the period between arrest and preliminary examination. Wickersham Report, at 169; Hall, The Law of\nArrest in Relation to Contemporary Social Problems, 3 U.Chi.L.Rev. 345, 357 (1936). See also Foote, Law and Polio\nPractice: Safeguards in the Law of Arrest, 52 Nw.U.L.Rev. 16 (1957).\n6 Brown v. State of Mississippi, 297 U.S. 278, 56 S.Ct. 461, 80 L.Ed. 682 (1936); Chambers v. State of Florida, 309 U.S.\n227, 60 S.Ct. 472, 84 L.Ed. 716 (1940) ; Canty v. State of Alabama, 309 U.S. 629, 60 S.Ct. 612, 84 L.Ed. 988 (1940) ;\nWhite v. State of Texas, 310 U.S. 530, 60 S.Ct. 1032, 84 L.Ed. 1342 (1940) ; Vernon v. State of Alabama, 313 U.S.\n547, 61 S.Ct. 1092, 85 L.Ed. 1513 (1941); Ward v. State of Texas, 316 U.S. 547, 62 S.Ct. 1139, 86 L.Ed. 1663 (1942);\nAshcraft v. State of Tennessee, 322 U.S.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99b75cfb-2ccf-40ae-872e-077d704e528f": {"__data__": {"id_": "99b75cfb-2ccf-40ae-872e-077d704e528f", "embedding": null, "metadata": {"page_label": "37", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "940b90d1-a675-4fb7-a956-85d6f152bd8a", "node_type": "4", "metadata": {"page_label": "37", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "41e220047aa02841655e84d870bd512461c77ed5b7a22c98f05270403d0c67fa", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "f0045335-116c-47bb-8651-0831c19f3f7c", "node_type": "1", "metadata": {"page_label": "37", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0b6a40a6e24ef4cb578a1ddb04fb27db5019b6522209b997c603e19597a0ef7a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "682 (1936); Chambers v. State of Florida, 309 U.S.\n227, 60 S.Ct. 472, 84 L.Ed. 716 (1940) ; Canty v. State of Alabama, 309 U.S. 629, 60 S.Ct. 612, 84 L.Ed. 988 (1940) ;\nWhite v. State of Texas, 310 U.S. 530, 60 S.Ct. 1032, 84 L.Ed. 1342 (1940) ; Vernon v. State of Alabama, 313 U.S.\n547, 61 S.Ct. 1092, 85 L.Ed. 1513 (1941); Ward v. State of Texas, 316 U.S. 547, 62 S.Ct. 1139, 86 L.Ed. 1663 (1942);\nAshcraft v. State of Tennessee, 322 U.S. 143, 64 S.Ct. 921, 88 L.Ed. 1192 (1944); Malinski v. People of State of New\nYork, 324 U.S. 401, 65 S.Ct. 781, 89 L.Ed. 1029 (1945) ; Leyra v. Denno, 347 U.S. 556, 74 S.Ct. 716, 98 L.Ed. 948\n(1954). See also Williams v. United States, 341 U.S. 97, 71 S.Ct. 576, 95 L.Ed. 774 (1951).\n7 In addition, see People v. Wakat, 415 Ill. 610, 114 N.E.2d 706 (1953); Wakat v. Harlib, 253 F.2d 59 (C.A.7th Cir.1958)\n(defendant suffering from broken bones, multiple bruises and injuries sufficiently serious to require eight months'\nmedical treatment after being manhandled by five policemen); Kier v. State, 213 Md. 556, 132 A.2d 494 (1957) (police\ndoctor told accused, who was strapped to a chair completely nude, that he proposed to take hair and skin scrapings\nfrom anything that looked like blood or sperm from various parts of his body); Bruner v. People, 113 Colo. 194, 156\nP.2d 111 (1945) (defendant held in custody over two months, deprived of food for 15 hours, forced to submit to a lie\ndetector test when he wanted to go to the toilet); People v. Matlock, 51 Cal.2d 682, 336 P.2d 505, 71 A.L.R.2d 605\n(1959) (defendant questioned incessantly over an evening's time, made to lie on cold board and to answer questions\nwhenever it appeared he was getting sleepy). Other cases are documented in American Civil Liberties Union, Illinois\nDivision, Secret Detention by the Chicago Police (1959); Potts, The Preliminary Examination and \u2018The Third Degree,\u2019\n2 Baylor L.Rev. 131 (1950); Sterling, Police Interrogation and the Psychology of Confession, 14 J.Pub.L. 25 (1965).\n8 The manuals quoted in the text following are the most recent and representative of the texts currently available. Material\nof the same nature appeals in Kidd, Police Interrogation (1940); Mulbar, Interrogation (1951); Dienstein, Technics for\nthe Crime Investigator 97\u2014115 (1952). Studies concerning the observed practices of the police appear in LaFave, Arrest:\nThe Decision To Take a Suspect Into Custody 244\u2014437, 490\u2014521 (1965); LaFave, Detention for Investigation by the", "mimetype": "text/plain", "start_char_idx": 2984, "end_char_idx": 5462, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "519d8e25-0ae7-4de6-bae5-317a5b9943a5": {"__data__": {"id_": "519d8e25-0ae7-4de6-bae5-317a5b9943a5", "embedding": null, "metadata": {"page_label": "38", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "70427c2f-f214-48fb-a23d-d83d808ad2f9", "node_type": "4", "metadata": {"page_label": "38", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "59fac1f7665a7ad4273a5fb1270e42f49411bbde4809fa0bc98b0b2d31182f76", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 38\nPolice: An Analysis of Current Practices, 1962 Wash.U.L.Q. 331; Barrett, Police Practices and the Law\u2014From Arrest\nto Release or Charge, 50 Calif.L.Rev. 11 (1962); Sterling, supra, n. 7, at 47\u201465.\n9 The methods described in Inbau & Reid Criminal Interrogation and Confessions (1962), are a revision and enlargement\nof material presented in three prior editions of a predecessor text, Lie Detection and Criminal Interrogation (3d ed.\n1953). The authors and their associates are officers of the Chicago Police Scientific Crime Detection Laboratory and\nhave had extensive experience in writing, lecturing and speaking to law enforcement authorities over a 20-year period.\nThey say that the techniques portrayed in their manuals reflect their experiences and are the most effective psychological\nstratagems to employ during interrogations. Similarly, the techniques described in O'Hara, Fundamentals of Criminal\nInvestigation (1956), were gleaned from long service as observer, lecturer in police science, and work as a federal\ncriminal investigator. All these texts have had rather extensive use among law enforcement agencies and among students\nof police science, with total sales and circulation of over 44,000.\n10 Inbau & Reid, Criminal Interrogation and Confessions (1962), at 1.\n11 O'Hara, supra, at 99.\n12 Inbau & Reid, supra, at 34\u201443, 87. For example, in Leyra v. Denno, 347 U.S. 556, 74 S.Ct. 716, 98 L.Ed. 948 (1954),\nthe interrogator-psychiatrist told the accused, \u2018We do sometimes things that are not right, but in a fit of temper or anger\nwe sometimes do things we aren't really responsible for,\u2019 id., at 562, 74 S.Ct. at 719, and again, \u2018We know that morally\nyou were just in anger. Morally, you are not to be condemned,\u2019 id., at 582, 74 S.Ct. at 729.\n13 Inbau & Reid, supra, at 43\u201455.\n14 O'Hara, supra, at 112.\n15 Inbau & Reid, supra, at 40.\n16 Ibid.\n17 O'Hara, supra, at 104, Inbau & Reid, supra, at 58\u201459. See Spano v. People of State of New York, 360 U.S. 315, 79\nS.Ct. 1202, 3 L.Ed.2d 1265 (1959) . A variant on the technique of creating hostility is one of engendering fear. This is\nperhaps best described by the prosecuting attorney in Malinski v. People of State of New York, 324 U.S. 401, 407, 65\nS.Ct. 781, 784, 89 L.Ed. 1029 (1945) : \u2018Why this talk about being undressed? Of course, they had a right to undress\nhim to look for bullet scars, and keep the clothes off him. That was quite proper police procedure. That is some more\npsychology\u2014let him sit around with a blanket on him, humiliate him there for a while; let him sit in the corner, let him\nthink he is going to get a shellacking.\u2019\n18 O'Hara, supra, at 105\u2014106.\n19 Id., at 106.\n20 Inbau & Reid, supra, at 111.\n21 Ibid.\n22 Inbau & Reid, supra, at 112.\n23 Inbau & Reid, Lie Detection and Criminal Interrogation 185 (3d ed. 1953).\n24 Interrogation procedures may even give rise to a false confession. The most recent conspicuous example occurred in\nNew York, in 1964, when a Negro of limited intelligence confessed to two brutal murders and a rape which he had not\ncommitted. When this was discovered, the prosecutor was reported as saying: \u2018Call it what you want\u2014brain-washing,\nhypnosis, fright. They made him give an untrue confession. The only thing I don't believe is that Whitmore was beaten.\u2019", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3469, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8da30a1f-0d1a-4bb7-b96d-bc7cb096fbf5": {"__data__": {"id_": "8da30a1f-0d1a-4bb7-b96d-bc7cb096fbf5", "embedding": null, "metadata": {"page_label": "39", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "907ae918-e073-47e8-9082-3638db3d3a0d", "node_type": "4", "metadata": {"page_label": "39", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "56510af08f4374548a467d1ef5d66cfd16100917d6da510a0d67b608d4a7b81d", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "1983c374-9f16-40fb-b4b5-ed7ef4f054e7", "node_type": "1", "metadata": {}, "hash": "37f579da008362f1bf5bcc5660307203ab877a0b05a8d051605de99a7c3980d3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 39\nN.Y . Times, Jan. 28, 1965, p. 1, col. 5. In two other instances, similar events had occurred. N.Y . Times, Oct. 20, 1964,\np. 22, col. 1; N.Y . Times, Aug. 25, 1965, p. 1, col. 1. In general, see Borchard, Convicting the Innocent (1932); Frank\n& Frank, Not Guilty (1957).\n25 In the fourth confession case decided by the Court in the 1962 Term, Fay v. Noia, 372 U.S. 391, 83 S.Ct. 822, 9 L.Ed.2d\n837 (1963), our disposition made it unnecessary to delve at length into the facts. The facts of the defendant's case there,\nhowever, paralleled those of his co-defendants, whose confessions were found to have resulted from continuous and\ncoercive interrogation for 27 hours, with denial of requests for friends or attorney. See United States ex rel. Caminito v.\nMurphy, 222 F.2d 698 (C.A.2d Cir. 1955) (Frank, J.); People v. Bonino, 1 N.Y .2d 752, 152 N.Y .S.2d 298, 135 N.E.2d\n51 (1956).\n26 The absurdity of denying that a confession obtained under these circumstances is compelled is aptly portrayed by an\nexample in Professor Sutherland's recent article, Crime and Confession, 79 Harv.L.Rev. 21, 37 (1965):\n\u2018Suppose a well-to-do testatrix says she intends to will her property to Elizabeth. John and James want her to bequeath\nit to them instead. They capture the testatrix, put her in a carefully designed room, out of touch with everyone but\nthemselves and their convenient \u2018withnesses,\u2019 keep her secluded there for hours while they make insistent demands,\nweary her with contradictions of her assertions that she wants to leave her money to Elizabeth, and finally induce her\nto execute the will in their favor. Assume that John and James are deeply and correctly convinced that Elizabeth is\nunworthy and will make base use of the property if she gets her hands on it, whereas John and James have the noblest and\nmost righteous intentions. Would any judge of probate accept the will so procured as the \u2018voluntary\u2019 act of the testatrix?\u2018\n27 Thirteenth century commentators found an analogue to the privilege grounded in the Bible. \u2018To sum up the matter, the\nprinciple that no man is to be declared guilty on his own admission is a divine decree.\u2019 Maimonides, Mishneh Torah\n(Code of Jewish Law), Book of Judges, Laws of the Sanhedrin, c. 18, 6, III Yale Judaica Series 52\u201453. See also Lamm,\nThe Fifth Amendment and Its Equivalent in the Halakhan, 5 Judaism 53 (Winter 1956).\n28 See Morgan, The Privilege Against Self-Incrimination, 34 Minn.L.Rev. 1, 9\u201411 (1949); 8 Wigmore, Evidence 285\u2014\n295 (McNaughton rev. 1961). See also Lowell, The Judicial Use of Torture, Parts I and II, 11 Harv.L.Rev. 220, 290\n(1897).\n29 See Pittman, The Colonial and Constitutional History of the Privilege Against Self-Incrimination in America, 21\nVa.L.Rev. 763 (1935); Ullmann v. United States, 350 U.S. 422, 445\u2014449, 76 S.Ct. 497, 510\u2014512, 100 L.Ed. 511\n(1956) (Douglas, J., dissenting).\n30 Compare Brown v. Walker, 161 U.S. 591, 16 S.Ct. 644, 40 L.Ed. 819 (1896) ; Quinn v. United States, 349 U.S. 155,\n75 S.Ct. 668, 99 L.Ed.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3197, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1983c374-9f16-40fb-b4b5-ed7ef4f054e7": {"__data__": {"id_": "1983c374-9f16-40fb-b4b5-ed7ef4f054e7", "embedding": null, "metadata": {"page_label": "39", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "907ae918-e073-47e8-9082-3638db3d3a0d", "node_type": "4", "metadata": {"page_label": "39", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "56510af08f4374548a467d1ef5d66cfd16100917d6da510a0d67b608d4a7b81d", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "8da30a1f-0d1a-4bb7-b96d-bc7cb096fbf5", "node_type": "1", "metadata": {"page_label": "39", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "552f616b9adaca8ce5c87b4e925b8890cc55fa178f456e49722600f049c400a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1961). See also Lowell, The Judicial Use of Torture, Parts I and II, 11 Harv.L.Rev. 220, 290\n(1897).\n29 See Pittman, The Colonial and Constitutional History of the Privilege Against Self-Incrimination in America, 21\nVa.L.Rev. 763 (1935); Ullmann v. United States, 350 U.S. 422, 445\u2014449, 76 S.Ct. 497, 510\u2014512, 100 L.Ed. 511\n(1956) (Douglas, J., dissenting).\n30 Compare Brown v. Walker, 161 U.S. 591, 16 S.Ct. 644, 40 L.Ed. 819 (1896) ; Quinn v. United States, 349 U.S. 155,\n75 S.Ct. 668, 99 L.Ed. 964 (1955).\n31 Brief for the United States, p. 28. To the same effect, see Brief for the United States, pp. 40\u201449, n. 44, Anderson v.\nUnited States, 318 U.S. 350, 63 S.Ct. 599, 87 L.Ed. 829 (1943) ; Brief for the United States, pp. 17\u201418, McNabb v.\nUnited States, 318 U.S. 332, 63 S.Ct. 608 (1943).\n32 Our decision today does not indicate in any manner, of course, that these rules can be disregarded. When federal officials\narrest an individual, they must as always comply with the dictates of the congressional legislation and cases thereunder.\nSee generally, Hogan & Snee, The McNabb-Mallory Rule: Its Rise, Rationale and Rescue, 47 Geo.L.J. 1 (1958).\n33 The decisions of this Court have guaranteed the same procedural protection for the defendant whether his confession\nwas used in a federal or state court. It is now axiomatic that the defendant's constitutional rights have been violated if\nhis conviction is based, in whole or in part, on an involuntary confession, regardless of its truth or falsity. Rogers v.\nRichmond, 365 U.S. 534, 544, 81 S.Ct. 735, 741, 5 L.Ed.2d 760 (1961) ; Siang Sung Wan v. United States, 266 U.S.\n1, 45 S.Ct. 1, 69 L.Ed. 131 (1924) . This is so even if there is ample evidence aside from the confession to support\nthe conviction, e.g., Malinski v. People of State of New York, 324 U.S. 401, 404, 65 S.Ct. 781, 783, 89 L.Ed. 1029", "mimetype": "text/plain", "start_char_idx": 2701, "end_char_idx": 4561, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53cf77f0-02a9-4e58-857f-c4ab0983ddef": {"__data__": {"id_": "53cf77f0-02a9-4e58-857f-c4ab0983ddef", "embedding": null, "metadata": {"page_label": "40", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cd58141c-d018-4832-ba41-3ccd657898d6", "node_type": "4", "metadata": {"page_label": "40", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "91804955d30e41efab1c2f93f9be6dde8587349b9bf0e0505e47a5c110c0f7a9", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "bb34e419-8bb3-4e65-a203-fa9d88d26411", "node_type": "1", "metadata": {}, "hash": "d941b1dadca299e4ed74e36bec89228aa62fa2060996000add99d21b96abe69d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 40\n(1945); Bram v. United States, 168 U.S. 532, 540\u2014542, 18 S.Ct. 183, 185\u2014186 (1897) . Both state and federal courts\nnow adhere to trial procedures which seek to assure a reliable and clear-cut determination of the voluntariness of the\nconfession offered at trial, Jackson v. Denno, 378 U.S. 368, 84 S.Ct. 1774, 12 L.Ed.2d 904 (1964); United States v.\nCarignan, 342 U.S. 36, 38, 72 S.Ct. 97, 98, 96 L.Ed. 48 (1951) ; see also Wilson v. United States, 162 U.S. 613, 624,\n16 S.Ct. 895, 900, 40 L.Ed. 1090 (1896) . Appellate review is exacting, see Haynes v. State of Washington, 373 U.S.\n503, 83 S.Ct. 1336, 10 L.Ed.2d 513 (1963); Blackburn v. State of Alabama, 361 U.S. 199, 80 S.Ct. 274, 4 L.Ed.2d 242\n(1960). Whether his conviction was in a federal or state court, the defendant may secure a post-conviction hearing based\non the alleged involuntary character of his confession, provided he meets the procedural requirements, Fay v. Noia, 372\nU.S. 391, 83 S.Ct. 822, 9 L.Ed.2d 837 (1963); Townsend v. Sain, 372 U.S. 293, 83 S.Ct. 745, 9 L.Ed.2d 770 (1963). In\naddition, see Murphy v. Waterfront Comm. of New York Harbor, 378 U.S. 52, 84 S.Ct. 1594 (1964).\n34 See Lisenba v. People of State of California, 314 U.S. 219, 241, 62 S.Ct. 280, 292, 86 L.Ed. 166 (1941) ; Ashcraft v.\nState of Tennessee, 322 U.S. 143, 64 S.Ct. 921, 88 L.Ed. 1192 (1944) ; Malinski v. People of State of New York, 324\nU.S. 401, 65 S.Ct. 781 (1945) ; Spano v. People of State of New York, 360 U.S. 315, 79 S.Ct. 1202, 3 L.Ed.2d 1265\n(1959); Lynumn v. State of Illinois, 372 U.S. 528, 83 S.Ct. 917, 9 L.Ed.2d 922 (1963); Haynes v. State of Washington,\n373 U.S. 503, 83 S.Ct. 1336, 10 L.Ed.2d 513 (1963).\n35 The police also prevented the attorney from consulting with his client. Independent of any other constitutional\nproscription, this action constitutes a violation of the Sixth Amendment right to the assistance of counsel and excludes\nany statement obtained in its wake. See People v. Donovan, 13 N.Y .2d 148, 243 N.Y .S.2d 841, 193 N.E.2d 628 (1963)\n(Fuld, J.).\n36 In re Groban, 352 U.S. 330, 340\u2014352, 77 S.Ct. 510, 517\u2014523, 1 L.Ed.2d 376 (1957) (Black, J., dissenting); Note, 73\nYale L.J. 1000, 1048\u20141051 (1964); Comment, 31 U.Chi.L.Rev. 313, 320 (1964) and authorities cited.\n37 See p. 1617, supra.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2472, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bb34e419-8bb3-4e65-a203-fa9d88d26411": {"__data__": {"id_": "bb34e419-8bb3-4e65-a203-fa9d88d26411", "embedding": null, "metadata": {"page_label": "40", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "cd58141c-d018-4832-ba41-3ccd657898d6", "node_type": "4", "metadata": {"page_label": "40", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "91804955d30e41efab1c2f93f9be6dde8587349b9bf0e0505e47a5c110c0f7a9", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "53cf77f0-02a9-4e58-857f-c4ab0983ddef", "node_type": "1", "metadata": {"page_label": "40", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "088daf387baba8d0e76602e6c6ab5402a0c85c8eddf9c935ea06147015df9c53", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Independent of any other constitutional\nproscription, this action constitutes a violation of the Sixth Amendment right to the assistance of counsel and excludes\nany statement obtained in its wake. See People v. Donovan, 13 N.Y .2d 148, 243 N.Y .S.2d 841, 193 N.E.2d 628 (1963)\n(Fuld, J.).\n36 In re Groban, 352 U.S. 330, 340\u2014352, 77 S.Ct. 510, 517\u2014523, 1 L.Ed.2d 376 (1957) (Black, J., dissenting); Note, 73\nYale L.J. 1000, 1048\u20141051 (1964); Comment, 31 U.Chi.L.Rev. 313, 320 (1964) and authorities cited.\n37 See p. 1617, supra. Lord Devlin has commented:\n\u2018It is probable that even today, when there is much less ignorance about these matters than formerly, there is still a\ngeneral belief that you must answer all questions put to you by a policeman, or at least that it will be the worse for you\nif you do not.\u2019 Devlin, The Criminal Prosecution in England 32 (1958).\nIn accord with our decision today, it is impermissible to penalize an individual for exercising his Fifth Amendment\nprivilege when he is under police custodial interrogation. The prosecution may not, therefore, use at trial the fact that he\nstood mute or claimed his privilege in the face of accusation. Cf. Griffin v. State of California, 380 U.S. 609, 85 S.Ct.\n1229, 14 L.Ed.2d 106 (1965); Malloy v. Hogan, 378 U.S. 1, 8, 84 S.Ct. 1489, 1493, 12 L.Ed.2d 653 (1964); Comment,\n31 U.Chi.L.Rev. 556 (1964); Developments in the Law\u2014Confessions, 79 Harv.L.Rev. 935, 1041\u20141044 (1966) . See\nalso Bram v. United States, 168 U.S. 532, 562, 18 S.Ct. 183, 194, 42 L.Ed. 568 (1897).\n38 Cf. Betts v. Brady, 316 U.S. 455, 62 S.Ct. 1252, 86 L.Ed. 1595 (1942) , and the recurrent inquiry into special\ncircumstances it necessitated. See generally, Kamisar, Betts v. Brady Twenty Years Later: The Right to Counsel and\nDue Process Values, 61 Mich.L.Rev. 219 (1962).\n39 See Herman, The Supreme Court and Restrictions on Police Interrogation, 25 Ohio St.L.J. 449, 480 (1964).\n40 Estimates of 50\u201490% indigency among felony defendants have been reported. Pollock, Equal Justice in Practice, 45\nMinn.L.Rev. 737, 738\u2014739 (1961); Birzon, Kasanof & Forma, The Right to Counsel and the Indigent Accused in\nCourts of Criminal Jurisdiction in New York State, 14 Buffalo L.Rev. 428, 433 (1965).\n41 See Kamisar, Equal Justice in the Gatehouses and Mansions of American Criminal Procedure, in Criminal Justice in\nOur Time 1, 64\u201481 (1965). As was stated in the Report of the Attorney General's Committee on Poverty and the\nAdministration of Federal Criminal Justice 9 (1963):", "mimetype": "text/plain", "start_char_idx": 1945, "end_char_idx": 4455, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a95b4a21-5f03-4092-8bab-1dfd5e676c82": {"__data__": {"id_": "a95b4a21-5f03-4092-8bab-1dfd5e676c82", "embedding": null, "metadata": {"page_label": "41", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e2e42737-61c2-4f7b-9b79-c99063f24d02", "node_type": "4", "metadata": {"page_label": "41", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5e904eb7e15331dcebba85830868fd44e976ca33b94280590ded9e2400f5a7d2", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "83c00977-04aa-4b9b-a892-6d1008408031", "node_type": "1", "metadata": {}, "hash": "0487e2e358acc1a0f71ba971039162afac95ab2b0cd229655719423487808502", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 41\n\u2018When government chooses to exert its powers in the criminal area, its obligation is surely no less than that of taking\nreasonable measures to eliminate those factors that are irrelevant to just administration of the law but which, nevertheless,\nmay occasionally affect determinations of the accused's liability or penalty. While government may not be required to\nrelieve the accused of his proverty, it may properly be required to minimize the influence of poverty on its administration\nof justice.\u2019\n42 Cf. United States ex rel. Brown v. Fay, 242 F.Supp. 273, 277 (D.C.S.D.N.Y .1965); People v. Witenski, 15 N.Y .2d 392,\n259 N.Y .S.2d 413, 207 N.E.2d 358 (1965).\n43 While a warning that the indigent may have counsel appointed need not be given to the person who is known to have\nan attorney or is known to have ample funds to secure one, the expedient of giving a warning is too simple and the\nrights involved too important to engage in ex post facto inquiries into financial ability when there is any doubt at all\non that score.\n44 If an individual indicates his desire to remain silent, but has an attorney present, there may be some circumstances in\nwhich further questioning would be permissible. In the absence of evidence of overbearing, statements them made in the\npresence of counsel might be free of the compelling influence of the interrogation process and might fairly be construed\nas a waiver of the privilege for purposes of these statements.\n45 Although this Court held in Rogers v. United States, 340 U.S. 367, 71 S.Ct. 438, 95 L.Ed. 344 (1951) , over strong\ndissent, that a witness before a grand jury may not in certain circumstanes decide to answer some questions and then\nrefuse to answer others, that decision has no application to the interrogation situation we deal with today. No legislative\nor judicial fact-finding authority is involved here, nor is there a possibility that the individual might make self-serving\nstatements of which he could make use at trial while refusing to answer incriminating statements.\n46 The distinction and its significance has been aptly described in the opinion of a Scottish court:\n\u2018In former times such questioning, if undertaken, would be conducted by police officers visiting the house or place of\nbusiness of the suspect and there questioning him, probably in the presence of a relation or friend. However convenient\nthe modern practice may be, it must normally create a situation very unfavourable to the suspect.\u2019 Chalmers v. H. M.\nAdvocate, (1954) Sess.Cas. 66, 78 (J.C.).\n47 See People v. Dorado, 62 Cal.2d 338, 354, 42 Cal.Rptr. 169, 179, 398 P.2d 361, 371 (1965).\n48 In accordance with our holdings today and in Escobedo v. State of Illinois, 378 U.S. 478, 492, 84 S.Ct. 1758, 1765;\nCrooker v. State of California, 357 U.S. 433, 78 S.Ct. 1287, 2 L.Ed.2d 1448 (1958) and Cicenia v. La Gay, 357 U.S.\n504, 78 S.Ct. 1297, 2 L.Ed.2d 1523 (1958) are not to be followed.\n49 In quoting the above from the dissenting opinion of Mr. Justice Brandeis we, of course, do not intend to pass on the\nconstitutional questions involved in the Olmstead case.\n50 Schaefer, Federalism and State Criminal Procedure, 70 Harv.L.Rev. 1, 26 (1956).\n51 Miranda, Vignera, and Westover were identified by eyewitnesses. Marked bills from the bank robbed were found in\nWestover's car. Articles stolen from the victim as well as from several other robbery victims were found in Stewart's\nhome at the outset of the investigation.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3660, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "83c00977-04aa-4b9b-a892-6d1008408031": {"__data__": {"id_": "83c00977-04aa-4b9b-a892-6d1008408031", "embedding": null, "metadata": {"page_label": "41", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e2e42737-61c2-4f7b-9b79-c99063f24d02", "node_type": "4", "metadata": {"page_label": "41", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5e904eb7e15331dcebba85830868fd44e976ca33b94280590ded9e2400f5a7d2", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "a95b4a21-5f03-4092-8bab-1dfd5e676c82", "node_type": "1", "metadata": {"page_label": "41", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4455fe1c7b6054099430674585b3eb8b80aaf6c5e5f3548bc5fa9466eafa4567", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1287, 2 L.Ed.2d 1448 (1958) and Cicenia v. La Gay, 357 U.S.\n504, 78 S.Ct. 1297, 2 L.Ed.2d 1523 (1958) are not to be followed.\n49 In quoting the above from the dissenting opinion of Mr. Justice Brandeis we, of course, do not intend to pass on the\nconstitutional questions involved in the Olmstead case.\n50 Schaefer, Federalism and State Criminal Procedure, 70 Harv.L.Rev. 1, 26 (1956).\n51 Miranda, Vignera, and Westover were identified by eyewitnesses. Marked bills from the bank robbed were found in\nWestover's car. Articles stolen from the victim as well as from several other robbery victims were found in Stewart's\nhome at the outset of the investigation.\n52 Dealing as we do here with constitutional standards in relation to statements made, the existence of independent\ncorroborating evidence produced at trial is, of course, irrelevant to our decisions. Haynes v. State of Washington, 373\nU.S. 503, 518\u2014519, 83 S.Ct. 1336, 1345\u20141346 (1963); Lynumn v. State of Illinois, 372 U.S. 528, 537\u2014538, 83 S.Ct.\n917, 922, 9 L.Ed.2d 922 (1963); Rogers v. Richmond, 365 U.S. 534, 541, 81 S.Ct. 735, 739 (1961); Blackburn v. State\nof Alabama, 361 U.S. 199, 206, 80 S.Ct. 274, 279, 4 L.Ed.2d 242 (1960).", "mimetype": "text/plain", "start_char_idx": 3001, "end_char_idx": 4197, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "419fe496-4bfe-4117-8161-25160354d3f1": {"__data__": {"id_": "419fe496-4bfe-4117-8161-25160354d3f1", "embedding": null, "metadata": {"page_label": "42", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6d97610e-c050-4c02-bde3-4b2a77a9717e", "node_type": "4", "metadata": {"page_label": "42", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9fcc8a424d1c966c0f2180bb3cde2f2c6ae90b50fea39a05b1d967cec18e003c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 42\n53 See, e.g., Report and Recommendations of the (District of Columbia) Commissioners' Committee on Police Arrests\nfor Investigation (1962); American Civil Liberties Union, Secret Detention by the Chicago Police (1959). An extreme\nexample of this practice occurred in the District of Columbia in 1958. Seeking three \u2018stocky\u2019 young Negroes who had\nrobbed a restaurant, police rounded up 90 persons of that general description. Sixth-three were held overnight before\nbeing released for lack of evidence. A man not among the 90 arrested was ultimately charged with the crime. Washington\nDaily News, January 21, 1958, p. 5, col. 1; Hearings before a Subcommittee of the Senate Judiciary Committee on H.R.\n11477, S. 2970, S. 3325, and S. 3355, 85th Cong., 2d Sess. (July 1958), pp. 40, 78.\n54 In 1952, J. Edgar Hoover, Director of the Federal Bureau of Investigation, stated:\n\u2018Law enforcement, however, in defeating the criminal, must maintain inviolate the historic liberties of the individual.\nTo turn back the criminal, yet, by so doing, destroy the dignity of the individual, would be a hollow victory.\nLa\n\u2018We can have the Constitution, the best laws in the land, and the most honest reviews by courts\u2014but unless the law\nenforcement profession is steeped in the democratic tradition, maintains the highest in ethics, and makes its work a\ncareer of honor, civil liberties will continually\u2014and without end be violated. * * * The best protection of civil liberties\nis an alert, intelligent and honest law enforcement agency. There can be no alternative.\n, c\n\u2018* * * Special Agents are taught that any suspect or arrested person, at the outset of an interview, must be advised that\nhe is not required to make a statement and that any statement given can be used against him in court. Moreover, the\nindividual must be informed that, if he desires, he may obtain the services of an attorney of his own choice.\u2019 Hoover,\nCivil Liberties and Law Enforcement: The Role of the FBI, 37 Iowa L.Rev. 175, 177\u2014182 (1952).\n55 We agree that the interviewing agent must exercise his judgment in determining whether the individual waives his right\nto counsel. Because of the constitutional basis of the right, however, the standard for waiver iis necessarily high. And,\nof course, the ultimate responsibility for resolving this constitutional question lies with the courts.\n56 Among the crimes within the enforcement jurisdiction of the FBI are kidnapping, 18 U.S.C. s 1201 (1964 ed.), white\nslavery, 18 U.S.C. ss 2421\u20142423 (1964 ed.), bank robbery, 18 U.S.C. s 2113 (1964 ed.), interstate transportation and\nsale of stolen property, 18 U.S.C. ss 2311 \u20142317 (1964 ed.), all manner of conspiracies, 18 U.S.C. s 371 (1964 ed.),\nand violations of civil rights, 18 U.S.C. ss 241\u2014242 (1964 ed.). See also 18 U.S.C. s 1114 (1964 ed.) (murder of officer\nor employee of the United States).\n57 (1964) Crim.L.Rev., at 166\u2014170. These Rules provide in part:\n\u2018II. As soon as a police officer has evidence which would afford reasonable grounds for suspecting that a person has\ncommitted an offence, he shall caution that person or cause him to be cautioned before putting to him any questions,\nor further questions, relating to that offence.\n\u2018The caution shall be in the following terms:\n\u201cYou are not obliged to say anything unless you wish to do so but what you say may be put into writing and given\nin evidence.'\n\u2018When after being cantioned a person is being questioned, or elects to make a statement, a record shall be kept of the\ntime and place at which any such questioning or statement began and ended and of the persons present.\n\u2018III. * * *", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3807, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7c7e199d-39d2-4a92-aeaa-66376695ece4": {"__data__": {"id_": "7c7e199d-39d2-4a92-aeaa-66376695ece4", "embedding": null, "metadata": {"page_label": "43", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a1eaa447-e80a-4478-8d93-b1594ad738ca", "node_type": "4", "metadata": {"page_label": "43", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "02f60acc04c5b74e50f4635f673d75d5cd78873b888279c02230fd015f99f707", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 43\n\u2018(b) It is only in exceptional cases that questions relating to the offence should be put to the accused person after he has\nbeen charged or informed that he may be prosecuted.\n\u2018IV . All written statements made after caution shall be taken in the following manner:\n\u2018(a) If a person says that he wants to make a statement he shall be told that it is intended to make a written record of\nwhat he says.\n\u2018He shall always be asked whether he wishes to write down himself what he wants to say; if he says that he cannot write\nor that he would like someone to write it for him, a police officer may offer to write the statement for him. * * *\n\u2018(b) Any person writing his own statement shall be allowed to do so without any prompting as distinct from indicating\nto him what matters are material.\n\u2018(d) Whenever a police officer writes the statement, he shall take down the exact words spoken by the person making the\nstatement, without putting any questions other than such as may be needed to make the statement coherent, intelligible\nand relevant to the material matters: he shall not prompt him.\u2019\nThe prior Rules appear in Devlin, The Criminal Prosecution in England 137\u2014141 (1958).\nDespite suggestions of some laxity in enforcement of the Rules and despite the fact some discretion as to admissibility\nis invested in the trial judge, the Rules are a significant influence in the English criminal law enforcement system. See,\ne.g., (1964) Crim.L.Rev., at 182; and articles collected in (1960) Crim.L.Rev., at 298\u2014356.\n58 The introduction to the Judges' Rules states in part:\nThese Rules do not affect the principles\n\u2018(c) That every person at any stage of an investigation should be able to communicate and to consult privately with a\nsolicitor. This is so even if he is in custody provided that in such a case no unreasonable delay or hindrance is caused to\nthe processes of investigation or the administration of justice by his doing so. * * *\u2019 (1964) Crim.L.Rev., at 166\u2014167.\n59 As stated by the Lord Justice General in Chalmers v. H. M. Advocate, (1954) Sess.Cas. 66, 78 (J.C.):\n\u2018The theory of our law is that at the stage of initial investigation the police may question anyone with a view to acquiring\ninformation which may lead to the detection of the criminal; but that, when the stage has been reached at which suspicion,\nor more than suspicion, has in their view centred upon some person as the likely perpetrator of the crime, further\ninterrogation of that person becomes very dangerous, and, if carried too far, e.g., to the point of extracting a confession\nby what amounts to cross-examination, the evidence of that confession will almost certainly be excluded. Once the\naccused has been apprehended and charged he has the statutory right to a private interview with a solicitor and to be\nbrought before a magistrate with all convenient speed so that he may, if so advised, emit a declaration in presence of\nhis solicitor under conditions which safeguard him against prejudice.\u2019\n60 \u2018No confession made to a police officer shall be provided as against a person accused of any offense.\u2019 Indian Evidence\nAct s 25.\n\u2018No confession made by any person whilst he is in the custody of a police officer unless it be made in the immediate\npresence of a Magistrate, shall be proved as against such person.\u2019 Indian Evidence Act s 26. See 1 Ramaswami\n& Rajagopalan, Law of Evidence in India 553\u2014569 (1962). To avoid any continuing effect of police pressure or\ninducement, the Indian Supreme Court has invalidated a confession made shortly after police brought a suspect before a\nmagistrate, suggesting: \u2018(I)t would, we think, be reasonable to insist upon giving an accused person at least 24 hours to", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3886, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e4b2f66f-0b0f-4c55-97f8-2cf352d44673": {"__data__": {"id_": "e4b2f66f-0b0f-4c55-97f8-2cf352d44673", "embedding": null, "metadata": {"page_label": "44", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bd26837d-e065-43c3-8312-71a2f4e099ee", "node_type": "4", "metadata": {"page_label": "44", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f8a39d4403014d4b2a4960219033baa0d0a9b921271f80e19934bbc4eaa83e12", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "e74c0cd0-3a50-404d-88f6-377807489501", "node_type": "1", "metadata": {}, "hash": "d7ff939f5e86288c55ff3df156a04b59cb5f1efa3af0210a3bcf8173262d80a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 44\ndecide whether or not he should make a confession.\u2019 Sarwan Singh v. State of Punjab, 44 All India Rep. 1957, Sup.Ct.\n637, 644.\n61 I Legislative Enactments of Ceylon 211 (1958).\n62 10 U.S.C. s 831(b) (1964 ed.).\n63 United States v. Rose, 24 CMR 251 (1957); United States v. Gunnels, 23 CMR 354 (1957).\n64 Although no constitution existed at the time confessions were excluded by rule of evidence in 1872, India now has a\nwritten constitution which includes the provision that \u2018No person accused of any offence shall be compelled to be a\nwitness against himself.\u2019 Constitution of India, Article 20(3). See Tope, The Constitution of India 63\u201467 (1960).\n65 Brief for United States in No. 761, Westover v. United States, pp. 44\u201447; Brief for the State of New York as amicus\ncuriae, pp. 35\u201439. See also Brief for the National District Attorneys Association as amicus curiae, pp. 23\u201426.\n66 Miranda was also convicted in a separate trial on an unrelated robbery charge not presented here for review. A statement\nintroduced at that trial was obtained from Miranda during the same interrogation which resulted in the confession\ninvolved here. At the robbery trial, one officer testified that during the interrogation he did not tell Miranda that anything\nhe said would be held against him or that he could consult with an attorney. The other officer stated that they had both\ntold Miranda that anything he said would be used against him and that he was not required by law to tell them anything.\n67 One of the officers testified that he read this paragraph to Miranda. Apparently, however, he did not do so until after\nMiranda had confessed orally.\n68 Vignera thereafter successfully attacked the validity of one of the prior convictions, Vignera v. Wilkins, Civ. 9901\n(D.C.W.D.N.Y . Dec. 31, 1961) (unreported), but was then resentenced as a second-felony offender to the same term of\nimprisonment as the original sentence. R. 31\u201433.\n69 The failure of defense counsel to object to the introduction of the confession at trial, noted by the Court of Appeals and\nemphasized by the Solicitor General, does not preclude our consideration of the issue. Since the trial was held prior to\nour decision in Escobedo and, of course, prior to our decision today making the objection available, the failure to object\nat trial does not constitute a waiver of the claim. See, e.g., United States ex rel. Angelet v. Fay, 333 F.2d 12, 16 (C.A.2d\nCir. 1964), aff'd, 381 U.S. 654, 85 S.Ct. 1750, 14 L.Ed.2d 623 (1965) . Cf. Ziffrin, Inc. v. United States, 318 U.S. 73,\n78, 63 S.Ct. 465, 87 L.Ed. 621 (1943).\n70 Because of this disposition of the case, the California Supreme Court did not reach the claims that the confession was\ncoerced by police threats to hold his ailing wife in custody until he confessed, that there was no hearing as required\nby Jackson v. Denno, 378 U.S. 368, 84 S.Ct. 1774, 12 L.Ed.2d 908 (1964) , and that the trial judge gave an instruction\ncondemned by the California Supreme Court's decision in People v. Morse, 60 Cal.2d 631, 36 Cal.Rptr. 201, 388 P.2d\n33 (1964).\n71 After certiorari was granted in this case, respondent moved to dismiss on the ground that there was no final judgment\nfrom which the State could appeal since the judgment below directed that he be retried.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3468, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e74c0cd0-3a50-404d-88f6-377807489501": {"__data__": {"id_": "e74c0cd0-3a50-404d-88f6-377807489501", "embedding": null, "metadata": {"page_label": "44", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bd26837d-e065-43c3-8312-71a2f4e099ee", "node_type": "4", "metadata": {"page_label": "44", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f8a39d4403014d4b2a4960219033baa0d0a9b921271f80e19934bbc4eaa83e12", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "e4b2f66f-0b0f-4c55-97f8-2cf352d44673", "node_type": "1", "metadata": {"page_label": "44", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6a3c39d4aa12eac50619ffdf69aa4f3d3a57268a70e81c5ce03b66b97d9c191f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "465, 87 L.Ed. 621 (1943).\n70 Because of this disposition of the case, the California Supreme Court did not reach the claims that the confession was\ncoerced by police threats to hold his ailing wife in custody until he confessed, that there was no hearing as required\nby Jackson v. Denno, 378 U.S. 368, 84 S.Ct. 1774, 12 L.Ed.2d 908 (1964) , and that the trial judge gave an instruction\ncondemned by the California Supreme Court's decision in People v. Morse, 60 Cal.2d 631, 36 Cal.Rptr. 201, 388 P.2d\n33 (1964).\n71 After certiorari was granted in this case, respondent moved to dismiss on the ground that there was no final judgment\nfrom which the State could appeal since the judgment below directed that he be retried. In the event respondent was\nsuccessful in obtaining an acquittal on retrial, however, under California law the State would have no appeal. Satisfied\nthat in these circumstances the decision below constituted a final judgment under 28 U.S.C. s 1257(3) (1964 ed.), we\ndenied the motion. 383 U.S. 903, 86 S.Ct. 885.\n1 E.g., Inbau & Reid, Criminal Interrogation and Confessions (1962); O'Hara, Fundamentals of Criminal Investigation\n(1956); Dienstein, Technics for the Crime Investigator (1952); Mulbar, Interrogation (1951); Kidd, Police Interrogation\n(1940).", "mimetype": "text/plain", "start_char_idx": 2748, "end_char_idx": 4026, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "231f9cef-1465-4760-be63-21ff97535ba7": {"__data__": {"id_": "231f9cef-1465-4760-be63-21ff97535ba7", "embedding": null, "metadata": {"page_label": "45", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e3623d38-9c97-4b87-af05-33b368532532", "node_type": "4", "metadata": {"page_label": "45", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "71c6bb51860b3f3550a37c974cd4eb6ca7b4ac246d2ef9b7afe3ee9040d2af14", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "cb8dc595-1a51-4517-945b-4e07cbeaa0b5", "node_type": "1", "metadata": {}, "hash": "99fdaeff75ee608cebb8826fb5508d8b1927dda7e2eaac6b81b7bc4020a944bb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 45\n2 As developed by my Brother HARLAN, post, pp. 1644\u20141649, such cases, with the exception of the long-discredited\ndecision in Bram v. United States, 168 U.S. 532, 18 S.Ct. 183, 42 L.Ed. 568 (1897) , were adequately treated in terms\nof due process.\n3 The Court points to England, Scotland, Ceylon and India as having equally rigid rules. As my Brother Harlan points out,\npost, pp. 1652\u20141653, the Court is mistaken in this regard, for it overlooks counterbalancing prosecutorial advantages.\nMoreover, the requirements of the Federal Bureau of Investigation do not appear from the Solicitor General's latter, ante,\npp. 1633\u20141634, to be as strict as those imposed today in at least two respects: (1) The offer of counsel is articulated\nonly as \u2018a right to counsel\u2019; nothing is said about a right to have counsel present at the custodial interrogation. (See\nalso the examples cited by the Solicitor General, Westover v. United States, 342 F.2d 684, 685 (9 Cir., 1965) (\u2018right\nto consult counsel\u2019); Jackson v. United States, 119 U.S.App.D.C. 100, 337 F.2d 136, 138 (1964) (accused \u2018entitled to\nan attorney\u2019).) Indeed, the practice is that whenever the suspect \u2018decides that he wishes to consult with counsel before\nmaking a statement, the interview is terminated at that point. * * * When counsel appears in person, he is permitted to\nconfer with his client in private.\u2019 This clearly indicates that the FBI does not warn that counsel may be present during\ncustodial interrogation. (2) The Solicitor General's letter states: \u2018(T)hose who have been arrested for an offense under\nFBI jurisdiction, or whose arrest is contemplated following the interview, (are advised) of a right to free counsel if they\nare unable to pay, and the availability of such counsel from the Judge.\u2019 So phrased, this warning does not indicate that\nthe agent will secure counsel. Rather, the statement may well be interpreted by the suspect to mean that the burden is\nplaced upon himself and that he may have counsel appointed only when brought before the judge or at trial\u2014but not at\ncustodial interrogation. As I view the FBI practice, it is not as broad as the one laid down today by the Court.\n4 In my view there is \u2018no significant support\u2019 in our cases for the holding of the Court today that the Fifth Amendment\nprivilege, in effect, forbids custodial interrogation. For a discussion of this point see the dissenting opinion of my Brother\nWHITE, post, pp. 1655\u20141657.\n1 My discussion in this opinion is directed to the main questions decided by the Court and necessary to its decision; in\nignoring some of the collateral points, I do not mean to imply agreement.\n2 The case was Bram v. United States, 168 U.S. 532, 18 S.Ct. 183, 42 L.Ed. 568 (quoted, ante, p. 1621). Its historical\npremises were afterwards disproved by Wigmore, who concluded \u2018that no assertions could be more unfounded.\u2019 3\nWigmore, Evidence s 823, at 250, n. 5 (3d ed. 1940). The Court in United States v. Carignan, 342 U.S. 36, 41, 72 S.Ct.\n97, 100, 96 L.Ed. 48, declined to choose between Bram and Wigmore, and Stein v. People of State of New York, 346\nU.S. 156, 191, n. 35, 73 S.Ct. 1077, 1095, 97 L.Ed. 1522, cast further doubt on Bram. There are, however, several Court\nopinions which assume in dicta the relevance of the Fifth Amendment privilege to confessions. Burdeau v. McDowell,\n256 U.S. 465, 475, 41 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3553, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cb8dc595-1a51-4517-945b-4e07cbeaa0b5": {"__data__": {"id_": "cb8dc595-1a51-4517-945b-4e07cbeaa0b5", "embedding": null, "metadata": {"page_label": "45", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e3623d38-9c97-4b87-af05-33b368532532", "node_type": "4", "metadata": {"page_label": "45", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "71c6bb51860b3f3550a37c974cd4eb6ca7b4ac246d2ef9b7afe3ee9040d2af14", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "231f9cef-1465-4760-be63-21ff97535ba7", "node_type": "1", "metadata": {"page_label": "45", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9b88a2a944df14b10835abbea1d2ca560aca0bd9ec7b06b611fe126af1465540", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "5 (3d ed. 1940). The Court in United States v. Carignan, 342 U.S. 36, 41, 72 S.Ct.\n97, 100, 96 L.Ed. 48, declined to choose between Bram and Wigmore, and Stein v. People of State of New York, 346\nU.S. 156, 191, n. 35, 73 S.Ct. 1077, 1095, 97 L.Ed. 1522, cast further doubt on Bram. There are, however, several Court\nopinions which assume in dicta the relevance of the Fifth Amendment privilege to confessions. Burdeau v. McDowell,\n256 U.S. 465, 475, 41 S.Ct. 574, 576, 65 L.Ed. 1048; see Shotwell Mfg. Co. v. United States, 371 U.S. 341, 347, 83\nS.Ct. 448, 453, 9 L.Ed.2d 357. On Bram and the federal confession cases generally, see Developments in the Law\u2014\nConfessions, 79 Harv.L.Rev. 935, 959\u2014961 (1966).\n3 Comment, 31 U.Chi.L.Rev. 313 & n. 1 (1964), states that by the 1963 Term 33 state coerced-confession cases had been\ndecided by this Court, apart from per curiams. Spano v. People of State of New York, 360 U.S. 315, 321, n. 2, 79 S.Ct.\n1202, 1206, 3 L.Ed.2d 1265, collects 28 cases.\n4 Bator & V orenberg, Arrest, Detention, Interrogation and the Right to Counsel, 66 Col.L.Rev. 62, 73 (1966): \u2018In fact,\nthe concept of involuntariness seems to be used by the courts as a shorthand to refer to practices which are repellent\nto civilized standards of decency or which, under the circumstances, are thought to apply a degree of pressure to\nan individual which unfairly impairs his capacity to make a rational choice.\u2019 See Herman, The Supreme Court and\nRestrictions on Police Interrogation, 25 Ohio St.L.J. 449, 452\u2014458 (1964); Developments, supra, n. 2, at 964\u2014984.\n5 See the cases synopsized in Herman, supra, n. 4, at 456, nn. 36\u201439. One not too distant example is Stroble v. State of\nCalifornia, 343 U.S. 181, 72 S.Ct. 599, 96 L.Ed. 872, in which the suspect was kicked and threatened after his arrest,", "mimetype": "text/plain", "start_char_idx": 3095, "end_char_idx": 4907, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "79dcb170-7155-4c82-9b45-82a0ef33a4d1": {"__data__": {"id_": "79dcb170-7155-4c82-9b45-82a0ef33a4d1", "embedding": null, "metadata": {"page_label": "46", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "65f3a743-6fd1-4b98-a433-687f3bfef5e3", "node_type": "4", "metadata": {"page_label": "46", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "715983e800f7e734326259b312611c6cb62907b6aa0db91570f470ede43232d7", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "04075d2b-4539-496d-bf7b-ed1664afc516", "node_type": "1", "metadata": {}, "hash": "033ffee03d738def86cbae475f3dd3902a485065ae33173db60f2ee6b614faec", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 46\nquestioned a little later for two hours, and isolated from a lawyer trying to see him; the resulting confession was held\nadmissible.\n6 Among the examples given in 8 Wigmore, Evidence s 2266, at 401 (McNaughton rev. 1961), are these: the privilege\napplies to any witness, civil or criminal, but the confession rule protects only criminal defendants; the privilege deals\nonly with compulsion, while the confession rule may exclude statements obtained by trick or promise; and where the\nprivilege has been nullified\u2014as by the English Bankruptcy Act\u2014the confession rule may still operate.\n7 Additionally, there are precedents and even historical arguments that can be arrayed in favor of bringing extra-legal\nquestioning within the privilege. See generally Maguire, Evidence of Guilt s 2.03 at 15\u201416 (1959).\n8 This, of course, is implicit in the Court's introductory announcement that \u2018(o)ur decision in Malloy v. Hogan, 378\nU.S. 1, 84 S.Ct. 1489, 12 L.Ed.2d 653 (1964) (extending the Fifth Amendment privilege to the States) necessitates an\nexamination of the scope of the privilege in state cases as well.\u2019 Ante, p. 1622. It is also inconsistent with Malloy itself, in\nwhich extension of the Fifth Amendment to the States rested in part on the view that the Due Process Clause restriction\non state confessions has in recent years been \u2018the same standard\u2019 as that imposed in federal prosecutions assertedly by\nthe Fifth Amendment. 378 U.S., at 7, 84 S.Ct., at 1493.\n9 I lay aside Escobedo itself; it contains no reasoning or even general conclusions addressed to the Fifth Amendment and\nindeed its citation in this regard seems surprising in view of Escobedo's primary reliance on the Sixth Amendment.\n10 Since the Court conspicuously does not assert that the Sixth Amendment itself warrants its new police-interrogation\nrules, there is no reason now to draw out the extremely powerful historical and precedential evidence that the Amendment\nwill bear no such meaning. See generally Friendly, The Bill of Rights as a Code of Criminal Procedure, 53 Calif.L.Rev.\n929, 943\u2014948 (1965).\n11 See supra, n. 4, and text. Of course, the use of terms like voluntariness involves questions of law and terminology quite\nas much as questions of fact. See Collins v. Beto, 5 Cir., 348 F.2d 823, 832 (concurring opinion); Bator & V orenberg,\nsupra, n. 4, at 72\u201473.\n12 The Court's vision of a lawyer \u2018mitigat(ing) the dangers of untrustworthiness' ante, p. 1626) by witnessing coercion and\nassisting accuracy in the confession is largely a fancy; for if counsel arrives, there is rarely going to be a police station\nconfession. Watts v. State of Indiana, 338 U.S. 49, 59, 69 S.Ct. 1347, 1358, 93 L.Ed. 1801 (separate opinion of Jackson,\nJ.): '(A)ny lawyer worth his salt will tell the suspect in no uncertain terms to make no statement to police under any\ncircumstances.\u2019 See Enker & Elsen, Counsel for the Suspect, 49 Minn.L.Rev. 47, 66\u201468 (1964).\n13 This need is, of course, what makes so misleading the Court's comparison of a probate judge readily setting aside as\ninvoluntary the will of an old lady badgered and beleaguered by the new heirs. Ante, p. 1619, n. 26. With wills, there is\nno public interest save in a totally free choice; with confessions, the solution of crime is a countervailing gain, however\nthe balance is resolved.\n14 See, e.g., the voluminous citations to congressional committee testimony and other sources collected in Culombe v.\nConnecticut, 367 U.S. 568, 578\u2014579, 81 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3677, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "04075d2b-4539-496d-bf7b-ed1664afc516": {"__data__": {"id_": "04075d2b-4539-496d-bf7b-ed1664afc516", "embedding": null, "metadata": {"page_label": "46", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "65f3a743-6fd1-4b98-a433-687f3bfef5e3", "node_type": "4", "metadata": {"page_label": "46", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "715983e800f7e734326259b312611c6cb62907b6aa0db91570f470ede43232d7", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "79dcb170-7155-4c82-9b45-82a0ef33a4d1", "node_type": "1", "metadata": {"page_label": "46", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d0477668a416ba3b86f297393b4e14ac144a4bc60348f5c8eefae428540ea2ac", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "47, 66\u201468 (1964).\n13 This need is, of course, what makes so misleading the Court's comparison of a probate judge readily setting aside as\ninvoluntary the will of an old lady badgered and beleaguered by the new heirs. Ante, p. 1619, n. 26. With wills, there is\nno public interest save in a totally free choice; with confessions, the solution of crime is a countervailing gain, however\nthe balance is resolved.\n14 See, e.g., the voluminous citations to congressional committee testimony and other sources collected in Culombe v.\nConnecticut, 367 U.S. 568, 578\u2014579, 81 S.Ct. 1860, 1865, 1866, 6 L.Ed.2d 1037, (Frankfurter, J., announcing the\nCourt's judgment and an opinion).\n15 In Westover, a seasoned criminal was practically given the Court's full complement of warnings and did not heed them.\nThe Stewart case, on the other hand, involves long detention and successive questioning. In Vignera, the facts are\ncomplicated and the record somewhat incomplete.\n16 \u2018(J)ustice, though due to the accused, is due to the accuser also. The concept of fairness must not be strained till it is\nnarrowed to a filament. We are to keep the balance true.\u2019 Snyder v. Commonwealth of Massachusetts, 291 U.S. 97, 122,\n54 S.Ct. 330, 338, 78 L.Ed. 674 (Cardozo, J.).", "mimetype": "text/plain", "start_char_idx": 3106, "end_char_idx": 4353, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6ccd16c0-23da-422f-8e93-900f3b1236ec": {"__data__": {"id_": "6ccd16c0-23da-422f-8e93-900f3b1236ec", "embedding": null, "metadata": {"page_label": "47", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5dd8906b-114f-47f2-9d7b-4d6b04c8b2c8", "node_type": "4", "metadata": {"page_label": "47", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0d1ed7070d4095a2a29d3608157ca513b2f944847152fcf91b052f7dc28ee31d", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "859bbc99-0979-4419-9ad6-17eeadd1b1fd", "node_type": "1", "metadata": {}, "hash": "3e27b0ab92697bbe85bd9ece90a7c2fa6358e33b582b0c7efe80c1a6c3dbf42f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 47\n17 A narrow reading is given in: United States v. Robinson, 354 F.2d 109 (C.A.2d Cir.); Davis v. State of North Carolina,\n339 F.2d 770 (C.A.4th Cir.); Edwards v. Holman, 342 F.2d 679 (C.A.5th Cir.); United States ex rel. Townsend v. Ogilvie,\n334 F.2d 837 (C.A.7th Cir.); People v. Hartgraves, 31 Ill.2d 375, 202 N.E.2d 33; State v. Fox, 131 N.W.2d 684 (Iowa);\nRowe v. Commonwealth, 394 S.W.2d 751 (Ky.); Parker v. Warden, 236 Md. 236, 203 A.2d 418; State v. Howard, 383\nS.W.2d 701 (Mo.); Bean v. State, 398 P.2d 251 (Nev.) ; State of New Jersey v. Hodgson, 44 N.J. 151, 207 A.2d 542;\nPeople v. Gunner, 15 N.Y .2d 226, 257 N.Y .S.2d 924, 205 N.E.2d 852; Commonwealth ex rel. Linde v. Maroney, 416\nPa. 331, 206 A.2d 288; Browne v. State, 24 Wis.2d 491, 129 N.W.2d 175, 131 N.W.2d 169.\nAn ample reading is given in: United States ex rel. Russo v. State of New Jersey, 351 F.2d 429 (C.A.3d Cir.); Wright v.\nDickson, 336 F.2d 878 (C.A.9th Cir.); People v. Dorado, 62 Cal.2d 338, 42 Cal.Rptr. 169, 398 P.2d 361; State v. Dufour,\n206 A.2d 82 (R.I.); State v. Neely, 239 Or. 487, 395 P.2d 557, modified 398 P.2d 482.\nThe cases in both categories are those readily available; there are certainly many others.\n18 For instance, compare the requirements of the catalytic case of People v. Dorado, 62 Cal.2d 338, 42 Cal.Rptr. 169, 398\nP.2d 361, with those laid down today. See also Traynor, The Devils of Due Process in Criminal Detection, Detention,\nand Trial, 33 U.Chi.L.Rev. 657, 670.\n19 The Court's obiter dictum notwithstanding ante, p. 1634, there is some basis for believing that the staple of FBI criminal\nwork differs importantly from much crime within the ken of local police. The skill and resources of the FBI may also\nbe unusual.\n20 For citations and discussion covering each of these points, see Developments, supra, n. 2, at 1091\u20141097, and Enker\n& Elsen, supra, n. 12, at 80 & n. 94.\n21 On Comment, see Hardin, Other Answers: Search and Seizure, Coerced Confession, and Criminal Trial in Scotland,\n113 U.Pa.L.Rev. 165, 181 and nn. 96\u201497 (1964) . Other examples are less stringent search and seizure rules and no\nautomatic exclusion for violation of them, id., at 167\u2014169; guilt based on majority jury verdicts, id., at 185; and pre-\ntrial discovery of evidence on both sides, id., at 175.\n22 Of particular relevance is the ALI's drafting of a Model Code of Pre-Arraignment Procedure, now in its first tentative\ndraft. While the ABA and National Commission studies have wider scope, the former is lending its advice to the ALI\nproject and the executive director of the latter is one of the reporters for the Model Code.\n23 See Brief for the United States in Westover, p.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2865, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "859bbc99-0979-4419-9ad6-17eeadd1b1fd": {"__data__": {"id_": "859bbc99-0979-4419-9ad6-17eeadd1b1fd", "embedding": null, "metadata": {"page_label": "47", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5dd8906b-114f-47f2-9d7b-4d6b04c8b2c8", "node_type": "4", "metadata": {"page_label": "47", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0d1ed7070d4095a2a29d3608157ca513b2f944847152fcf91b052f7dc28ee31d", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "6ccd16c0-23da-422f-8e93-900f3b1236ec", "node_type": "1", "metadata": {"page_label": "47", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c0211c3660cebb771286aefdf95cbc25517d5813282c239200efca4fb39a0586", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "21 On Comment, see Hardin, Other Answers: Search and Seizure, Coerced Confession, and Criminal Trial in Scotland,\n113 U.Pa.L.Rev. 165, 181 and nn. 96\u201497 (1964) . Other examples are less stringent search and seizure rules and no\nautomatic exclusion for violation of them, id., at 167\u2014169; guilt based on majority jury verdicts, id., at 185; and pre-\ntrial discovery of evidence on both sides, id., at 175.\n22 Of particular relevance is the ALI's drafting of a Model Code of Pre-Arraignment Procedure, now in its first tentative\ndraft. While the ABA and National Commission studies have wider scope, the former is lending its advice to the ALI\nproject and the executive director of the latter is one of the reporters for the Model Code.\n23 See Brief for the United States in Westover, p. 45. The N.Y . Times, June 3, 1966, p. 41 (late city ed.) reported that the\nFord Foundation has awarded $1,100,000 for a five-year study of arrests and confessions in New York.\n24 The New York Assembly recently passed a bill to require certain warnings before an admissible confession is taken,\nthough the rules are less strict than are the Court's. N.Y . Times, May 24, 1966, p. 35 (late city ed.).\n25 The Court waited 12 years after Wolf v. People of State of Colorado, 338 U.S. 25, 69 S.Ct. 1359, 93 L.Ed. 1782, declared\nprivacy against improper state intrusions to be constitutionally safeguarded before it concluded in Mapp v. Ohio, 367\nU.S. 643, 81 S.Ct. 1684, 6 L.Ed.2d 1081, that adequate state remedies had not been provided to protect this interest so\nthe exclusionary rule was necessary.\n1 Of course the Court does not deny that it is departing from prior precedent; it expressly overrules Crooker and Cicenia,\nante, at 1630, n. 48, and it acknowledges that in the instant \u2018cases we might not find the defendants' statements to have\nbeen involuntary in traditional terms,\u2019 ante, at 1618.\n2 In fact, the type of sustained interrogation described by the Court appears to be the exception rather than the rule. A\nsurvey of 399 cases in one city found that in almost half of the cases the interrogation lasted less than 30 minutes. Barrett,\nPolice Practices and the Law\u2014From Arrest to Release or Charge, 50 Calif.L.Rev. 11, 41\u201445 (1962). Questioning tends\nto be confused and sporadic and is usually concentrated on confrontations with witnesses or new items of evidence,", "mimetype": "text/plain", "start_char_idx": 2080, "end_char_idx": 4442, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f3240c3d-4082-4e0f-8eae-81a30525b7d6": {"__data__": {"id_": "f3240c3d-4082-4e0f-8eae-81a30525b7d6", "embedding": null, "metadata": {"page_label": "48", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "64b499cc-e23e-48d9-9996-c680d100b443", "node_type": "4", "metadata": {"page_label": "48", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c4e85589c9a62a1e5b8475cc931282ebbff8a6a3ed4c8711df1d6c1e45110c07", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "53dae983-7707-4b49-9d5f-a7f72c93354f", "node_type": "1", "metadata": {}, "hash": "8551fdbb460e51739c2ae64f03076775b4f385796fd9ffc8415762a8d00b2a0e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 48\nas these are obtained by officers conducting the investigation. See generally LaFave, Arrest: The Decision to Take a\nSuspect into Custody 386 (1965); ALI, A Model Code of Pre-Arraignment Procedure, Commentary s 5.01, at 170, n.\n4 (Tent.Draft No. 1, 1966).\n3 By contrast, the Court indicates that in applying this new rule it \u2018will not pause to inquire in individual cases whether the\ndefendant was aware of his rights without a warning being given.\u2019 Ante, at 1625. The reason given is that assessment of\nthe knowledge of the defendant based on information as to age, education, intelligence, or prior contact with authorities\ncan never be more than speculation, while a warning is a clear-cut fact. But the officers' claim that they gave the requisite\nwarnings may be disputed, and facts respecting the defendant's prior experience may be undisputed and be of such a\nnature as to virtually preclude any doubt that the defendant knew of his rights. See United States v. Bolden, 355 F.2d\n453 (C.A.7th Cir.1965), petition for cert. pending No. 1146, O.T. 1965 (Secret Service agent); People v. Du Bont, 235\nCal.App.2d 844, 45 Cal.Rptr. 717, pet. for cert. pending No. 1053, Misc., O.T. 1965 (former police officer).\n4 Precise statistics on the extent of recidivism are unavailable, in part because not all crimes are solved and in part because\ncriminal records of convictions in different jurisdictions are not brought together by a central data collection agency.\nBeginning in 1963, however, the Federal Bureau of Investigation began collating data on \u2018Careers in Crime,\u2019 which it\npublishes in its Uniform Crime Reports. Of 92,869 offenders processed in 1963 and 1964, 76% had a prior arrest record\non some charge. Over a period of 10 years the group had accumulated 434,000 charges. FBI, Uniform Crime Reports\u2014\n1964, 27\u201428. In 1963 and 1964 between 23% and 25% of all offenders sentenced in 88 federal district courts (excluding\nthe District Court for the District of Columbia) whose criminal records were reported had previously been sentenced\nto a term of imprisonment of 13 months or more. Approximately an additional 40% had a prior record less than prison\n(juvenile record, probation record, etc.). Administrative Office of the United States Courts, Federal Offenders in the\nUnited States District Courts: 1964, x, 36 (hereinafter cited as Federal Offenders: 1964); Administrative Office of the\nUnited States Courts, Federal Offenders in the United States District Courts: 1963, 25\u201427 (hereinafter cited as Federal\nOffenders: 1963). During the same two years in the District Court for the District of Columbia between 28% and 35%\nof those sentenced had prior prison records and from 37% to 40% had a prior record less than prison. Federal Offenders:\n1964, xii, 64, 66; Administrative Office of the United States Courts, Federal Offenders in the United States District\nCourt for the District of Columbia: 1963, 8, 10 (hereinafter cited as District of Columbia Offenders: 1963).\nA similar picture is obtained if one looks at the subsequent records of those released from confinement. In 1964, 12.3%\nof persons on federal probation had their probation revoked because of the commission of major violations (defined\nas one in which the probationer has been committed to imprisonment for a period of 90 days or more, been placed on\nprobation for over one year on a new offense, or has absconded with felony charges outstanding). Twenty-three and\ntwo-tenths percent of parolees and 16.9% of those who had been mandatorily released after service of a portion of their\nsentence likewise committed major violations.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3804, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53dae983-7707-4b49-9d5f-a7f72c93354f": {"__data__": {"id_": "53dae983-7707-4b49-9d5f-a7f72c93354f", "embedding": null, "metadata": {"page_label": "48", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "64b499cc-e23e-48d9-9996-c680d100b443", "node_type": "4", "metadata": {"page_label": "48", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c4e85589c9a62a1e5b8475cc931282ebbff8a6a3ed4c8711df1d6c1e45110c07", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "f3240c3d-4082-4e0f-8eae-81a30525b7d6", "node_type": "1", "metadata": {"page_label": "48", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c61d10bf199592b3aa786bea9f26c20a8ce322c29b032c608ab9e28a49a617a8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "A similar picture is obtained if one looks at the subsequent records of those released from confinement. In 1964, 12.3%\nof persons on federal probation had their probation revoked because of the commission of major violations (defined\nas one in which the probationer has been committed to imprisonment for a period of 90 days or more, been placed on\nprobation for over one year on a new offense, or has absconded with felony charges outstanding). Twenty-three and\ntwo-tenths percent of parolees and 16.9% of those who had been mandatorily released after service of a portion of their\nsentence likewise committed major violations. Reports of the Proceedings of the Judicial Conference of the United\nStates and Annual Report of the Director of the Administrative Office of the United States Courts: 1965, 138. See also\nMandel et al., Recidivism Studied and Defined, 56 J. Crim.L., C. & P.S. 59 (1965) (within five years of release 62.33%\nof sample had committed offenses placing them in recidivist category).\n5 Eighty-eight federal district courts (excluding the District Court for the District of Columbia) disposed of the cases of\n33,381 criminal defendants in 1964. Only 12.5% of those cases were actually tried. Of the remaining cases, 89.9% were\nterminated by convictions upon pleas of guilty and 10.1% were dismissed. Stated differently, approximately 90% of\nall convictions resulted from guilty pleas. Federal Offenders: 1964, supra, note 4, 3\u20146. In the District Court for the\nDistrict of Columbia a higher percentage, 27%, went to trial, and the defendant pleaded guilty in approximately 78% of\nthe cases terminated prior to trial. Id., at 58\u201459. No reliable statistics are available concerning the percentage of cases\nin which guilty pleas are induced because of the existence of a confession or of physical evidence unearthed as a result\nof a confession. Undoubtedly the number of such cases is substantial.\nPerhaps of equal significance is the number of instances of known crimes which are not solved. In 1964, only 388,946,\nor 23.9% of 1,626,574 serious known offenses were cleared. The clearance rate ranged from 89.8% for homicides to\n18.7% for larceny. FBI, Uniform Crime Reports\u20141964, 20\u201422, 101. Those who would replace interrogation as an", "mimetype": "text/plain", "start_char_idx": 3175, "end_char_idx": 5429, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f2a40c68-2dba-46d8-aa4b-ccf6b217ebea": {"__data__": {"id_": "f2a40c68-2dba-46d8-aa4b-ccf6b217ebea", "embedding": null, "metadata": {"page_label": "49", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e774652c-d6b3-4577-b008-78af708410c8", "node_type": "4", "metadata": {"page_label": "49", "file_name": "Miranda v. Arizona.pdf", "file_path": "data/Miranda v. Arizona.pdf", "file_type": "application/pdf", "file_size": 1021607, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0541729746b89975c5ed9571a8bf23d4366fc74d6655574ad1e61a9a0854ca8f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Miranda v. Arizona, 384 U.S. 436 (1966)\n10 Ohio Misc. 9, 86 S.Ct. 1602, 10 A.L.R.3d 974, 16 L.Ed.2d 694, 36 O.O.2d 237...\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 49\ninvestigatorial tool by modern scientific investigation techniques significantly overestimate the effectiveness of present\nprocedures, even when interrogation is included.\nEnd of Document \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 449, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fb55d7d3-7e47-4955-8bef-02b1e9efb22c": {"__data__": {"id_": "fb55d7d3-7e47-4955-8bef-02b1e9efb22c", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8dc3503f-bc16-40fc-8fd6-d9815403e825", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9f8df74b86a0f40755de89d2495964ffc7a6f02585aeaf7b281eb6351281aa35", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL07 Requirements Elicitation II\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "af086be1-8f95-4074-9777-556fd66105fb": {"__data__": {"id_": "af086be1-8f95-4074-9777-556fd66105fb", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c2ff82cb-db1f-43f3-9069-101ba452acf8", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d2bc71ab48fe5c54b9c81d59d3fc3b7b124e4fdfd88adb878ccdb67495cefe0a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1481, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6c879875-d657-4696-8f47-89c1ce4bf788": {"__data__": {"id_": "6c879875-d657-4696-8f47-89c1ce4bf788", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8c4ba443-5ef0-49dc-bb85-b681987cebcd", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "bfb64ea2cf4107fe4d9b9159c52387629eb8400348ef357151faabc08c347fc6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nLearning goals\n\u2022 You have a deeper understanding of functional requirements\n\u2022 You can de\ufb01ne non-functional requirements\n\u2022 You can de\ufb01ne constraints\n3CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 273, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3a78332d-48f1-4752-9b31-86a1671404d2": {"__data__": {"id_": "3a78332d-48f1-4752-9b31-86a1671404d2", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7c7a826b-070c-4487-909e-3b7661f6a0ab", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "32cbb36cf3a329286a2b46d4ef4bba8e757cc92dd0c33061de188b4dce5294fc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n4CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\n\u2022 Deriving requirements\n\u2022 [Recap] Deriving functional requirements \n\u2022 Non-functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7a8b6d32-1c91-4ff0-b391-3306bfa8e61e": {"__data__": {"id_": "7a8b6d32-1c91-4ff0-b391-3306bfa8e61e", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "371326dc-76a1-4f29-89ed-436bfcab68d5", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3ce61cda921612c256cf475b9d2a9a66d2e0e64e2ae59ba6eaceb0815365ecc6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nGoals of Requirements Elicitation\n\u2022 De\ufb01ne the problem: Understanding the stakeholders\u2019 real needs\u2028\n(not just what they think they need)\n\u2022 Avoid ambiguity: Requirements should be clear, testable, and unambiguous\n\u2022 Build a shared understanding: Align developers, customers, and other \nstakeholders\n\u2022 Users, endusers, customers, maintainers, support sta\ufb00, etc.\n5CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nProper requirements elicitation avoids rework, saves money, \nand keeps projects on track.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 573, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "613dfcac-2952-4633-9208-f11652fef2b9": {"__data__": {"id_": "613dfcac-2952-4633-9208-f11652fef2b9", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c31c80e8-9dcf-479a-a2bc-937d4320c8be", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b390008b587decd45bcdb565e063b39d54cdecc61cc7b9ebc63cfcf0eab638e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Examples] Issues with requirements\n\u2022 healthcare.gov: Launch in 2013, crashed under high load\n\u2022 Zoom: Security issues (2020)\n\u2022 Windows/CrowdStrike (mid 2024): No backward compatibility (BSOD)\n\u2022 Tesla HW4 Computer Failures (late 2024): Safety requirements inadequate\n\u2022 \u2026\n6CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 395, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a09cbcd1-23af-4464-b651-7b76e6ac4b8f": {"__data__": {"id_": "a09cbcd1-23af-4464-b651-7b76e6ac4b8f", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2a72fa73-55c0-41fb-8647-0b54bb979632", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3fc8f2d57f55c5bd83618e89dedace443cf2a96df6e5ccaf3c425b27b9dd687a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Recap] Functional Requirements \n\u2022 Describe the essential functionality of the system\n\u2022 De\ufb01ne one requirement per function (feature)\n\u2022 They should be phrased in a general (/\"detailed enough\") manner\n7CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nFR# Short title Description:\nPhrased in \nimperative mood!\nShould be \nnumbered based \non their \n\ud83d\udd1c priority\nThe description should not include \nimplementation details!\n[Example] \nFR1 Select location: The user can select a location on a map to view sinkholes in the selected area.\nFR2 Login: The user can login to the system using their email address and password.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 686, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "022a47aa-7bca-4369-9d90-a2401f9b487e": {"__data__": {"id_": "022a47aa-7bca-4369-9d90-a2401f9b487e", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "91f5c48a-5d41-4358-834c-aee95dc5256f", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "82049df637c435c7c4676f1365c7985e41ff25da89dd524745d97f9c35b4bc0b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Recap] What is functionality?\n\u2022 Single purpose: Each functional requirement should represent one logical \nunit of work (one operation or one step from the actor\u2019s/user\u2019s perspective)\n\u2022 Low complexity: Complex requirements should be split into separate \nrequirements (or grouped as sub-requirements)\n\u2022 Uni\ufb01ed testing & maintenance: Each functional requirement should be \ntreated as one unit during testing and maintenance\n\u2022 An atomic requirement is a requirement that cannot be further broken down \ninto individual tasks \n8CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nSplitting complex requirements into smaller, \nmanageable requirements helps in system \ndesign to better identify reusable parts", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 775, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c95f001a-6d09-4b47-aa3a-690c1f2a6d27": {"__data__": {"id_": "c95f001a-6d09-4b47-aa3a-690c1f2a6d27", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "609fdf1f-ebf3-4ae2-9b28-385dcc89d0ac", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "fe37461e4f3d9ac4f48c97f00f2c7193c69f911ddf3aba13e8a1c9bf34d9817a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] De\ufb01ning requirements\nFR4 Access account statements: The customer can access account \nstatements. \nFR4.1 View Monthly Statements: The customer can view their past \ntransactions in their account statement, updated monthly. \nFR4.2 Download Statements: The customer can download their statements \nas a PDF \ufb01le. \nFR4.3 Receive statements via email: The customer can choose to receive \ntheir account statement automatically via email automatically each month.\n9CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nSub-steps indicate a logical categorization\nUser\u2019s perspective: viewing and downloading an account statement are two distinct actions\u2028\nEach has its own functionality and does not depend on each other\u2028\nTesting & maintenance will most likely be treated separately", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 851, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "676c6aaa-aacc-490e-82da-d93dcba3c044": {"__data__": {"id_": "676c6aaa-aacc-490e-82da-d93dcba3c044", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fd2e645b-154e-481e-b51e-6a7a3ae4f43e", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "05b81ff6e3f46a416521af4e6449613f0d37d0a6ac2772ab11a8478a12f5c2d2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nI06/I07 \u2014 De \ufb01ne functional requirements\n10CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\n \n\u23f3\n \ud83e\uddd1\ud83d\udcbb\n\ud83e\uddd1\ud83d\udcbb Pairs15 min\nI07 - Functional \nRequirements\n2 points\nBased on the problem statement, de\ufb01ne functional requirements for \nthe SiMCity system", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 317, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fccbd19d-49b4-42a5-b6b2-cf9c6aa6c766": {"__data__": {"id_": "fccbd19d-49b4-42a5-b6b2-cf9c6aa6c766", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "879bdff6-50eb-4bc9-9dae-2fe020c48b99", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a2124919bca52024fbcced5e9771f795d92b768e320768646aa63b8a68999479", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem Statement\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System \n(SiMCity) to address the issue of sinkholes within the city. The \ufb01rst version of \nSiMCity should enable residents and city o\ufb03cials to report sinkhole occurrences \nand track their locations. \nThe system should be easy to use, accessible through web and mobile platforms, \nand track sinkholes in real-time. \nResidents should be able to view sinkholes on a map, helping them to avoid such \nareas. It should also allow residents to report new sinkholes by sending in their \nlocation and photographic evidence for veri\ufb01cation, or call for help. City o\ufb03cials \ncan remove sinkholes from the map after they have been re-\ufb01lled and repaired.\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and \nimprove the city\u2019s ability to manage and mitigate the impact of these geohazards.\n11CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nLet\u2019s develop this system!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1051, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f7e1dec2-dc2c-4324-b0af-1e9bb7c8314e": {"__data__": {"id_": "f7e1dec2-dc2c-4324-b0af-1e9bb7c8314e", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "73ae3a4d-4759-465d-a9b3-dccfcaf5c76a", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "72b4b02bf7861ae9bceb453bac501c4793b808126e503635dd9d7e90806cf29e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Deriving requirements\n\u2022 [Recap] Deriving functional requirements \n\u2022 Non-functional requirements\n12CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 240, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fcd28dbb-4292-44e9-9552-59a61cec9d44": {"__data__": {"id_": "fcd28dbb-4292-44e9-9552-59a61cec9d44", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "01ac6409-89b9-49c4-94d4-670ca45174a7", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ca4d248b652322eadd8bfd48ea3c23e3f3aed92dce55f9993506d21b55d60302", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Recap] Deriving requirements: FURPS+ Model\n\u2022 FURPS+ is a model used to categorize features and attributes\n\u2022 Functional Requirements\n\u2022 Non-functional Requirements\n\u2022 Usability\n\u2022 Reliability\n\u2022 Performance\n\u2022 Supportability\n\u2022 \u2026\n\u2022 Constraints (pseudo-requirements)\n13CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints 13\nE.g., robustness, maintainability, \u2026\nE.g., standards, physical limitations, \nsoftware limitations, dependencies, \u2026\nWhat functionalities/features should the system provide?\n\u2705", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 563, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "198eee22-33fe-4f4b-9b4d-052896f65eaf": {"__data__": {"id_": "198eee22-33fe-4f4b-9b4d-052896f65eaf", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "86b61bc3-6df7-4ab6-830b-da3be4a7eb3a", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "786807a3a6baecf1a5f6d580dd40b9bf53bf4fe4e51dc8826dd4fa65a64294d7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nNon-functional requirements & constraints\n\u2022 Non-functional requirements (NFR) describe quality attributes that are \nimportant for the system (but do not describe functionality)\n\u2022 Constraints describe limitations or conditions that restrict the solution space\n\u2022 E.g., budgetary constraints, time constraints, technical constraints (e.g., the use of \nspeci\ufb01c technologies), \u2026\n14CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 500, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca2cfc43-ac6d-4159-b4af-b36e46d9d601": {"__data__": {"id_": "ca2cfc43-ac6d-4159-b4af-b36e46d9d601", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "51fdacc8-db9f-4806-8af2-8e6876f89c23", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b8909f63f260452e1a1cfbd1e005217f4e02765d92e1296c1cf5e4d9a4ce6bbd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDe\ufb01ning non-functional requirements\n\u2022 Usability: How easy to use is the system?\n\u2022 Robustness: How stable and reliable is the system?\n\u2022 Performance: How fast and e\ufb03cient is the system?\n\u2022 Security: How secure is the system?\n\u2022 \u2026\n15CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nCan be in \nimperative mood, \ncan be a noun. \nShould be \nexpressive!\nThe description \nshould not include \nimplementation \ndetails!\nE.g. Usability\nNFR# Short title Description:[Category]\nShould be \nnumbered based \non their \n\ud83d\udd1c priority", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 585, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d9d6877d-09fe-461b-8595-2046ea08e280": {"__data__": {"id_": "d9d6877d-09fe-461b-8595-2046ea08e280", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d44aa4a8-9134-4117-ac0e-4e5b7367c669", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a28d0b96df366265b0a5ca47d194223a98ec2e5bcaea497d837d51426d55e6b6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n\u2022 NFRs are observed during the testing, validation & veri\ufb01cation phase\n\u2022 Focus on measurable, testable, and speci\ufb01c (enough) criteria! \n\u2022 It is (often) up to the requirements engineer to de\ufb01ne measurable NFRs \n\u2022 Problem statements often hint at NFRs\n[Example] \u2028\n\"Wording and color scheme should be consistent\"\u2028\n\"The user should always be able to get back to the dashboard \u2028\nwithin at most 2 clicks.\"\n\"The system must be user-friendly\", \"The system should be intuitive\",\u2028\n\"The system should be easy to use\"\nDe\ufb01ning non-functional requirements\n16CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\n\"The system must be user-friendly\", \"The system should be intuitive\",\u2028\n\"The system should be easy to use\"", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 774, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f6ec8511-4b2b-4fba-abf7-b17e09519e84": {"__data__": {"id_": "f6ec8511-4b2b-4fba-abf7-b17e09519e84", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "99cbef10-0b31-4787-a409-41de49ea4efe", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "20d2aeb554ae903484c15e357a8472bee13dfc0e1066be96e6a8f56a77f3eab5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\"The system must be \"\neasy to use\nuser-friendly\nintuitive\n\u2026", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 85, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a833b40b-f2bc-4dcc-a254-d5d6d1e7752a": {"__data__": {"id_": "a833b40b-f2bc-4dcc-a254-d5d6d1e7752a", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b1004fb7-e9e2-4fbb-8f0e-6b94bc90b9a1", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c412a75100a17909c47881b946a6c39f309729addcce3f3a48b617e912c756ef", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUsability \u2014 Overview \n\u2022 \"How e\ufb00ectively, e\ufb03ciently and satisfactorily a \nuser can interact with a user interface\" \n(usability.gov)\n\u2022 \"Quality attribute that assesses how easy user \ninterfaces are\" (Nielsen, 2003)\n18CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 339, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "afeb115b-8513-4c93-9fa2-9d894cd507b3": {"__data__": {"id_": "afeb115b-8513-4c93-9fa2-9d894cd507b3", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6601544b-3c97-4f9a-b39c-a8d6e0ae42f4", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "3342f8a053511832b20bf20e59564c2aba831ebf0520f64015d0906b1ff27d87", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUsability Engineering\n\u2022 Process to \"build\" usability into products\n\u2022 Helps to ensure \"high quality\" of products\n19CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nWhy is Usability Engineering important? \nHow can we describe usability?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 310, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0c41fcc1-e13c-4572-bb62-6d88ad44f484": {"__data__": {"id_": "0c41fcc1-e13c-4572-bb62-6d88ad44f484", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6da75947-3a71-4567-be7b-fc4fa8df14c3", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "45020eacc9ffd28d1e64fb34d23ea25de0a3e207b1068666a390e486ac2ca9b7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUsability\n\u2022 Learnability \u2014 How quickly can users grasp the user interface?\n\u2022 E\ufb03ciency \u2014 Once mastered, does the interface enable swift and e \ufb03cient \nusage?\n\u2022 Memorability \u2014 Can users easily recall how to navigate and use the \ninterface? Is the design memorable and user-friendly over time?\n\u2022 Error Handling & Robustness \u2014 How well does the system handle errors or \nunexpected user actions? \n\u2022 (subjective) Satisfaction & User Experience \u2014 Does the user interface o \ufb00er \nan enjoyable and satisfying experience?\n20CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 636, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0fb89d92-8410-478c-b250-1e2c1bb03279": {"__data__": {"id_": "0fb89d92-8410-478c-b250-1e2c1bb03279", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "583d99fe-5ca3-4c16-8a54-0765c3c0059d", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ab5e0a04cbc3d8b0d28336deb213b2c9b516280518b8af1e70437e4df5f1340e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUsability (cont.)\n\u2022 Consistency: Is the interface design uniform across di\ufb00erent sections, \nreducing cognitive load for users?\n\u2022 Flexibility: Can users customize the interface to better suit their individual \npreferences and needs?\n\u2022 Task Completion: How e\ufb00ectively does the interface support users in \naccomplishing their intended tasks without unnecessary complications?\n\u2022 Feedback: Does the interface provide users with helpful feedback after \nperforming an action or guidance when they encounter di\ufb03culties or make \nerrors?\n\u2022 \u2026\n21CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\n(7\u00b12) !\nE.g., IDE themes", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 683, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "014f73bd-c09d-4373-aabf-97308d1dd6c9": {"__data__": {"id_": "014f73bd-c09d-4373-aabf-97308d1dd6c9", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "68a2b666-7456-4fc4-b149-3f83550daf2e", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "99227cca0d9f10e52a47b66f273d54185d45334b2b17e58e3a45f7faf282efc8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Usability requirements\nNFR1 Student Learnability [Usability]: Students must be able to use the \nsystem without needing a manual. \nNFR2 Instructor Learnability [Usability]: Instructors must be able to learn and \nrecall the main functionality of the system after following a user tutorial.\n22CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "70b1d5e9-15f5-4f5d-b1e3-7ac986b9743b": {"__data__": {"id_": "70b1d5e9-15f5-4f5d-b1e3-7ac986b9743b", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "663baeca-ef35-4a6a-afd2-770b0cc00376", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "867e57826b227128b69fd1e440c4f15e3567207a3fde4f7017b0957f692c9d4f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Usability requirements\nNFR1 Student Learnability [Usability]: Students must be able to use the \nsystem to complete basic tasks within 10 minutes without requiring a manual.\nNFR2 Instructor Learnability [Usability]: Instructors must be able to learn and \nrecall 90% of the core system functionality after completing a one-hour tutorial \nand must be able to perform key tasks within 5 minutes after a one-week break.\n23CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 551, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "88730b32-3d0f-4520-92b5-288a2f8a005f": {"__data__": {"id_": "88730b32-3d0f-4520-92b5-288a2f8a005f", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a902ac31-6c69-4614-b3ce-60dcb3b1f029", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6b056c66eed2bbb329ce7b032d84a3060c5a9228226ac48d4702d56daa87d625", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Usability requirements\nNFR1 Student Learnability [Usability]: Students must be able to use the \nsystem without needing a manual. \nNFR2 Instructor Learnability [Usability]: Instructors must be able to learn and \nrecall the main functionality of the system after following a user tutorial. \nNFR1 Student Learnability [Usability]: Students must be able to use the \nsystem to complete basic tasks within 10 minutes without requiring a manual.\nNFR2 Instructor Learnability [Usability]: Instructors must be able to learn and \nrecall 90% of the core system functionality after completing a one-hour tutorial \nand must be able to perform key tasks within 5 minutes after a one-week break.\n24CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nRevised / more detailed version\nInitial version. Measurability is vague, should be revised and re\ufb01ned when more is known", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 938, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "276807aa-bde9-4cef-a1ec-9323526798e0": {"__data__": {"id_": "276807aa-bde9-4cef-a1ec-9323526798e0", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1bc25192-dc17-458d-9417-1ec449c831f9", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "81478071e36a3bac6540e61b5608e04b3360fb29e3d251afc937ea9e3f714fcc", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Deriving requirements\n\u2022 [Recap] Deriving functional requirements \n\u2022 Non-functional requirements\n\u2022 Organizational: Team Project\n25CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 271, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2aebe4f3-8339-42a8-9015-28298f093f63": {"__data__": {"id_": "2aebe4f3-8339-42a8-9015-28298f093f63", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2dbefa73-2d8f-44c5-b295-5e9faa659280", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "92366c02fc013b9f6100a8e3b4dfea94089017a7c3f367472d4b0250bee4b0a6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Team Project]\n\u2022 Team: 4 - 6 students\n\u2022 Goal: Develop a software system throughout this term\n\u2022 Learn to apply SE best practices\n\u2022 Become more con\ufb01dent in using git and build up your GitHub pro\ufb01le\n\u2022 Setup a development pipeline and follow a work\ufb02ow\n\u2022 Create test cases\n\u2022 Learn to use new tools\n\u2022 \u2026\n26CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 423, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca19fae9-304e-497b-83df-cdeeb0f7389d": {"__data__": {"id_": "ca19fae9-304e-497b-83df-cdeeb0f7389d", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "04901ae7-7d57-458d-a651-0f73b59e1edd", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "681db9abc2c15cefb4eab92419608701a9e9adb79be8c92cc65bfe144818d090", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Team Project] Timeline & First Tasks\n\u2022 Team forming: Due September 18, 2025, 11:59pm\n\u2022 Problem statement: Due September 25, 2025, 11:59pm\n\u2022 Find someone (your customer) who has a problem that can be solved with a \n(somewhat) complex software system\n\u2022 Customers can be: \n\u2022 Family members, friends\n\u2022 Pitt community: Professor (me included), sta\ufb00\n\u2022 Local shop owner\n\u2022 \u2026\n27CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\n\u2022 System examples: \n\u2022 Campus navigation app\n\u2022 Fitness challenge platform\n\u2022 Personal \ufb01nance tracker\n\u2022 Smart grocery list\n\u2022 Local events website\n\u2022 Sustainability tipps app\n\u2022 Coding challenge website\n\u2022 \u2026\n\u203c If you already have an idea, please make \nuse of Discord to \ufb01nd a team by 09/18. \u2028\nOtherwise I will allocate the teams.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 817, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "17ea5270-01fd-4fac-b3c3-92a7d81f5ca0": {"__data__": {"id_": "17ea5270-01fd-4fac-b3c3-92a7d81f5ca0", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a95a4a8a-4bed-4723-890e-921854239de1", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5bc832d12d2f680af721e8b6bc07b441ef2d14267f323fd4cdd240f274e601e1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Team Project] Timeline & First Tasks\n\u2022 Team forming: Due September 18, 2025, 11:59pm\n\u2022 If you already have a team, you must register it -> Q2\n\u2022 Name + email + GitHub handle\n\u2022 Roles: PO & Scrum Master (can rotate later)\n\u2022 If you do not have a team -> Q1\n\u2022 Name + Email + GitHub handle\n\u2022 Preferred Role: (PO, SM, Developer \u2014 or \"no preference\", can be changed later)\n\u2022 Project interests (short text or category you \ufb01nd interersting), no guarantee though \n\ud83d\ude43\n28CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\n\u203c If you already have a project idea but no team / not enough members, \nplease make use of Discord to \ufb01nd a team by 09/17,\u2028\notherwise I will allocate you into teams.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 748, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "06c4bbfb-d09a-4e5c-a12a-4e050b7e992c": {"__data__": {"id_": "06c4bbfb-d09a-4e5c-a12a-4e050b7e992c", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "42e69954-cd60-4470-b106-eb0231f7dab4", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7ef8df4939d72908a738163d62301172dff81771cdd2011cadceefd407bc0296", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Team Project] Basic requirements\n\u2022 Project must be hosted open-source (GitHub or GitLab) (more on that soon!)\n\u2022 Project must contain:\n\u2022 User interface\n\u2022 Middleware (logical components)\n\u2022 Data storage\n\u2022 Optional: connect to an external API\n\u2022 Meet at least on a (bi-) weekly basis\n\u2022 Work as a TEAM (you are all responsible \u2028\nfor the outcome!)\n\u2022 Each major milestone will include a peer review\u2028\nof the other team members.\n29CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 546, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "64ff9e05-ea43-4ca0-bdc2-e4b50942ac21": {"__data__": {"id_": "64ff9e05-ea43-4ca0-bdc2-e4b50942ac21", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "54d6aeef-0e54-46e0-8352-e5fe4396eed8", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e79645a175c721cc2b50c08d980e62ca4a29eccce58548bdec5183e3f76d18b0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTeam project schedule [tentative]\n30CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\n# Milestone Pt Start Due Format\n- Team formation 1 09/16 09/18 Team / preferences\n0 Project Kicko\ufb00\u00a0\u2028\n(Problem Statement) 5 09/19 09/25 Problem Statement\n1 Sprint 1: Requirements & Use Cases 15 09/25 10/07 Requirements, user stories, use case \ndiagram, acceptance criteria\n2 Sprint 2: Analysis & Modeling 10 10/07 10/21 Analysis object model, class diagram, \n2 dynamic models\n3 Sprint 3: Architecture & Tech Stack 10 10/21 11/04 Architecture model, choice of stack\n4 Sprint 4: Implementation 0 11/04 11/18 Basic skeleton running\n5 Sprint 5: Presentation & Delivery 50 11/18 12/05 Final code, documentation, live demo", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 776, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "25bc8450-dfc8-4ef2-b5a9-6bb9ae25e4b8": {"__data__": {"id_": "25bc8450-dfc8-4ef2-b5a9-6bb9ae25e4b8", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "351b857c-742d-4171-912c-3be5e07a45a4", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b7f5dd1a2eb12471233bd310cf16e123dabee9507511b869d65d19abca73c6e5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nHomework assignment schedule [tentative]\n31CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nAssignment Pt Start Due Topic\nA1 25 09/18 09/27 Requirements\nA2 25 10/07 10/16 Modeling\nA3 25 10/30 11/11 Patterns\nA4 25 11/18 12/05 Testing", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 308, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d958c815-8fa5-4299-aa1b-6263e0627dfc": {"__data__": {"id_": "d958c815-8fa5-4299-aa1b-6263e0627dfc", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "75eb3979-503b-473d-bac6-d791fe611ba9", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "722936e660c7b7a8c3193f0d57cb4cc9705658a76e61f9ae8bbbe6d5893084a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n 32CS 1530 - L07 Requirements Elicitation II: Functional, nonfunctional requirements, constraints\nTake-Away: Overview of requirements elicitation\n\u2022 User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and \nstakeholders\n\u2022 E\ufb00ective Communication: Establish clear and open channels of communication to gather accurate \nrequirements\n\u2022 Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving \nproject needs\n\u2022 Documentation: Thoroughly document gathered requirements to ensure clarity and alignment \nthroughout the project lifecycle", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 634, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3496985a-770e-4967-a19e-ed749ae5067e": {"__data__": {"id_": "3496985a-770e-4967-a19e-ed749ae5067e", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2bf41c79-6b48-411f-bd83-5c36578b6c3e", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_path": "data/Fall25 1530 - L07 Requirements Elicitation II.pdf", "file_type": "application/pdf", "file_size": 9026165, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a02551ef0e038364e532726a52f321e48ae19e1f954daf95811c51d59511695e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL07 Requirements Elicitation II\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 167, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99c6b77b-2871-41a1-b655-2c9946063d3a": {"__data__": {"id_": "99c6b77b-2871-41a1-b655-2c9946063d3a", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "71adb986-19c3-4f6d-be24-5157b2edf32f", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "213a7210054932bafd4af14a5ba406fa91cbe984781cc15968840aeb448cfd62", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nL01 Introduction\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "940ee8b1-4115-4c45-8126-0dc1a964620f": {"__data__": {"id_": "940ee8b1-4115-4c45-8126-0dc1a964620f", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bfd119a0-3cdf-4edf-9eb9-44354191b8c6", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d83e9b019c2243145ae567be888a8b2398eb00cef3fdd5b35dc369fedf9722be", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1412, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "888ba6cb-fdd1-4003-94bf-55f7a4e57d22": {"__data__": {"id_": "888ba6cb-fdd1-4003-94bf-55f7a4e57d22", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9eeb98f5-9b60-41ae-ab5c-08e573d8f08f", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c577becf9c1ec3f8659ec4c90102e6e06912ced7613d3087b896a9171cf0eecb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Organizational & syllabus\n\u2022 Prerequisites\n\u2022 Learning goals & course organization\n\u2022 Grading\n\u2022 Tools\n\u2022 Communication & Feedback\n\u2022 Q&A\n\u2022 Intro to Software Engineering\n3CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 238, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6481781f-e85d-4be4-bb07-02c2871a5212": {"__data__": {"id_": "6481781f-e85d-4be4-bb07-02c2871a5212", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "100ee067-250d-4841-8ff4-81d4617bd7dc", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "8b41a55592798474c63443ae2f9a4f484d7e02700e5a55dffc59e888773c5bfa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nOrganizational matters\n\u2022 Please review the syllabus & course policies on Canvas!\n\u2022 If you need speci\ufb01c accommodations, please email me & the DRS ASAP! \n\u2022 Make sure you ful\ufb01ll the prerequisites for this course\n4CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 265, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a4027350-09bd-4869-b8a1-b3c6e65b05a4": {"__data__": {"id_": "a4027350-09bd-4869-b8a1-b3c6e65b05a4", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2b8e2567-96f7-4ac3-b2f0-f1c738cf0689", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e581d7e07dae8f74a973bfc77da2249093a073f1d7bd58a35c61a0546771ee71", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nPrerequisites & assumptions for this course\n\u2022 You have some programming experience\n\u2022 Previous experience with Java OR Python, C, C++, Visual Basic, \u2026 \n\u2022 Lecture code examples & coding homework assignments will be in Java\n\u2022 Team project (more later) can be in any language\n\u2022 You have access to a computer and use it during the lectures\n5CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 392, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "568b6337-dbb5-4173-a206-b62a9e9923d7": {"__data__": {"id_": "568b6337-dbb5-4173-a206-b62a9e9923d7", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ea039349-4568-4011-afac-d17effa1fa4e", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "44e93642335a22e733e94424a2962dde76dc17d1dd4ac22bcad29da2ec3c3a0f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nMaterial to refresh your knowledge (Java)\n\u2022 Interactive online tutorials\n\u2022 https://www.learnjavaonline.org \n\u2022 https://www.w3schools.com/java/\n\u2022 Java tutorials covering the basics: https://docs.oracle.com/javase/tutorial/\n6CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 277, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d1db94ae-09b9-4f0d-98d7-709e34ddf671": {"__data__": {"id_": "d1db94ae-09b9-4f0d-98d7-709e34ddf671", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "36f87263-43a7-4959-b600-3f4b0a373aa4", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f73f0db2abcc0a239d89dbeeb9ba98a6953eb91508f4ea3def5561707db2a767", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Organizational & syllabus\n\u2022 Prerequisites\n\u2022 Learning goals & course organization\n\u2022 Grading\n\u2022 Tools\n\u2022 Communication & Feedback\n\u2022 Q&A\n\u2022 Intro to Software Engineering\n7CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 238, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7e4be65f-5f10-46c1-936b-ada262bfb319": {"__data__": {"id_": "7e4be65f-5f10-46c1-936b-ada262bfb319", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7e8064aa-12a4-4ea6-9a5c-8bbfa76ae5fc", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f08125da45edb97c6d1b8a29e1690e67c165adcc9e9e480d10b8a664cf76aacf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCourse learning goals\n\u2022 You know the most important software engineering terms and work\ufb02ows\n\u2022 You understand the basic concepts and phases of a software project\n\u2022 You can apply suitable concepts and methods for concrete problems in \ncomplex projects\n\u2022 You are familiar with and can apply problem-solving techniques \n\u2022 You are able to analyze and evaluate given problems\n8CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 426, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6acf741f-f7c8-4429-bb6c-eb403309f712": {"__data__": {"id_": "6acf741f-f7c8-4429-bb6c-eb403309f712", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c61c23ce-174e-4455-b20d-647216b844f1", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "006f02a9068fd6fee5837162bf9dc734d8641738a6a51e86893c2f80ed025661", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTeaching philosophy\n9CS1530 - L01 Introduction\nTell me and I forget,\u2028 \nteach me and I remember,\u2028 \ninvolve me and I learn.\n\u2014 Chinese proverb | Confucius", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 181, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "59c1fcc4-2130-403c-b473-929f92cf8655": {"__data__": {"id_": "59c1fcc4-2130-403c-b473-929f92cf8655", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9309149d-36d4-4913-8ffa-00859e72bc08", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "63561f78cd37883efbd9ffe817774e118addbce3dfb44af3dde674594edcd976", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTeaching & learning framework\n10CS1530 - L01 Introduction\nLecture In-class \nexercises\nAssignments\nApply knowledge \nGuided SelfCollaborative\nTheoretical \nknowledge\nTest \nknowledge\nQuizzes & \nRapid Recaps\nTeam Project", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 245, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c4aa049f-c8dd-48e7-8f40-b62ea408e02a": {"__data__": {"id_": "c4aa049f-c8dd-48e7-8f40-b62ea408e02a", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "efa0b9da-c4ce-4a0a-ad59-f04caf613e49", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "30c8365d5895299c2ff8ef19e0a6f7afbaa03a9ac913e1b788c4b68e88bd51e4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nThis course\u2019s roadmap\n\u2022 Intro to Problem-Solving\n\u2022 Model-based Engineering (UML)\n\u2022 Software Development Lifecycle Models (Waterfall, Spiral, Agile, \u2026)\n\u2022 Requirements Engineering\n\u2022 System Design and Architecture\n\u2022 Object-Oriented Analysis and Design\n\u2022 Design Patterns\n\u2022 Software Testing and Quality Assurance\n\u2022 Project Management in Software Engineering\n\u2022 Software Con\ufb01guration Management & Deployment\n\u2022 User Interface Design and Usability\n\u2022 Emerging Trends in Software Engineering (AI in SE, Blockchain, etc.)\n\u2022 Veri\ufb01cation and Validation\n11CS1530 - L01 Introduction\nIf time permits\nOrder is subject to \nchange", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 640, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3bf09bba-6265-4b6c-a8d8-53089a01c0e1": {"__data__": {"id_": "3bf09bba-6265-4b6c-a8d8-53089a01c0e1", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "57e11679-7cf3-4b56-87ad-2ea176e085a8", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5de984b97bda15ae7c0bc131a70c36c0c37d74679275aa330d85309793a38c44", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCourse organization \u2014 Lectures\n12CS1530 - L01 Introduction\n#\u00a0 Date Subject\n1 08/26/2025\nIntroduction\n08/28/2025\n2 09/02/2025\nModel-based Engineering\n09/04/2025\n3 09/09/2025\nRequirements Analysis\n09/11/2025\n\u2026 \u2026", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1a8b7543-2a07-4e93-ab6c-8def4c9d337b": {"__data__": {"id_": "1a8b7543-2a07-4e93-ab6c-8def4c9d337b", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5486596f-3b83-41a2-ae9e-e619309267f6", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "78338132f7579e3cf4c7a7f46f90c805a4f43ae6ceea41bd1321817fef4dd545", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Organizational & syllabus\n\u2022 Prerequisites\n\u2022 Learning goals & course organization\n\u2022 Grading\n\u2022 Tools\n\u2022 Communication & Feedback\n\u2022 Q&A\n\u2022 Intro to Software Engineering\n13CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f40206c-8983-4814-82cf-a30ed1653005": {"__data__": {"id_": "5f40206c-8983-4814-82cf-a30ed1653005", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "527bc9a8-8089-418e-b3af-02ec2ba564a8", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "308bdf0a285331ba837eb6213c9dcfebf7da71afc96a99bc1420cc1aa9ef2dc0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nGrading \u2014 Scale\n14CS1530 - L01 Introduction\n% LG Breakdown\n>= 90% A\n100% \u2014 97% A+\n96% \u2014 94% A\n93% \u2014 90% A-\n>= 80% B\n89% \u2014 87% B+\n86% \u2014 84% B\n83% \u2014 80% B-\n>= 70% C\n79% \u2014 77% C+\n76% \u2014 74% C\n73% \u2014 70% C-\n>= 60% D\n69% \u2014 67% D+\n66% \u2014 64% D\n63% \u2014 60% D-\n < 60% F 59% \u2014 0% F", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 300, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "caf8534f-2e36-4733-a6b6-c6f4a1bcdab4": {"__data__": {"id_": "caf8534f-2e36-4733-a6b6-c6f4a1bcdab4", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3430381a-36ed-4af0-8fb0-a69a4cad2f71", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "62eb58aa95ca70296c2f5159b0bc97a4c798fa000deaaf666d8e0330f7fce37a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nGrading \u2014 Composition\n\u2022 Rapid recaps (in-class) [10%]\n\u2022 In-class exercises [20%]\n\u2022 Individual Homework Assignments [30%]\n\u2022 You will complete several assignments on your own\n\u2022 More information soon!\n\u2022 Team Project [40%]\n\u2022 In small teams, you will complete several \u2028\nassignments (more soon)\n\u2022 Each team must present their project (end of term)\n\u2022 No exams :-)\n15CS1530 - L01 Introduction\nType Percentage\nIn-class \u2028\nRapid Recaps 10%\nIn-class \nExercises 20%\nIndividual \nHomework \nAssignments\n30%\nTeam Project 40%", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0391c5de-e02e-4609-a7fd-362a8cc8b0ad": {"__data__": {"id_": "0391c5de-e02e-4609-a7fd-362a8cc8b0ad", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f03af23a-3f04-4a6a-b4d9-a76be3c94341", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a10136ee4b9c9ac2f90c9c2b27708f72c12785861aa819fdb486b5900b2612fa", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nRapid Recaps (RRs) [10%]\n\u2022 Short quiz questions about the previous week\u2019s content\n\u2022 Every Tuesday at the beginning of class, 11:00 am on the dot \n\u23f0\n\u2022 Open book, up to 5 questions, time will vary from ~ 3 - 10 min\n\u2022 There are no repetitions! No exceptions!\n\u2022 Your worst two RR results will be dropped\n16CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 357, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "112fee93-8b43-40dc-9d9f-1fba687316e0": {"__data__": {"id_": "112fee93-8b43-40dc-9d9f-1fba687316e0", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "14c3f17a-e698-497c-b210-d886695b3e33", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "5c35a346447905598a0fe049d48af22fc220233d66a9d4863263d95a4e019a8e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nIn-class Exercises [20%]\n\u2022 You will be given some time in-class to work on a problem in pairs\n\u2022 Follow-alongs or short exercises to be completed in class (latest by 11:59 pm)\n\u2022 E.g., programming exercises, modeling exercises, quiz questions, \u2026\n\u2022 After some time, a pair present their results\n\u2022 You receive feedback from peers & me\n\u2022 Allows you to adapt your solution before submitting it! \n\u2022 You see other solutions and understand other approaches\n\u2022 Practice communication skills\n17CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 537, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c709bd80-c1ed-4321-baa7-f8bddbca255e": {"__data__": {"id_": "c709bd80-c1ed-4321-baa7-f8bddbca255e", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7a26cacb-98c4-4afd-9ff7-c6b5bb355452", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a63fdd43b82a6e9b355fbb4980a65cc334c3486830c73a53b2aa27f1a332348c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nIndividual Homework Assignments [30%] \u2014 Preview\n\u2022 Individual submissions\n\u2022 Assignments allow you to apply & deepen your knowledge\n\u2022 More & schedule soon\n18CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 210, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "99902a08-880d-4582-8980-4f6aa34b1e0c": {"__data__": {"id_": "99902a08-880d-4582-8980-4f6aa34b1e0c", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6c107940-dacd-478d-8ae7-3892d98b363e", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "55723dc39c4f9b91c739cbd2c4baa0a7857595eb13659515adbb93010a6b6d25", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nTeam Project [40%] \u2014 Preview\n\u2022 In small teams, you will work together on designing a software system (and \nimplementing parts of it) throughout the term\n\u2022 You will come up with your own idea / \ufb01nd someone with an idea\n\u2022 Each team member must contribute somewhat equally (will be assessed!)\n\u2022 Each team must present their system\n\u2022 More & schedule soon\n19CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 408, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "629c5fe5-5a85-43d7-b22b-d2dd5193878d": {"__data__": {"id_": "629c5fe5-5a85-43d7-b22b-d2dd5193878d", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "eaab5184-f4ae-427d-8c7a-bd578f3af84b", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a34a44ab329bdeea2a79432d9925758d5be46c2415070574091463e871cecbb2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Organizational & syllabus\n\u2022 Prerequisites\n\u2022 Learning goals & course organization\n\u2022 Grading\n\u2022 Tools\n\u2022 Communication & Feedback\n\u2022 Q&A\n\u2022 Intro to Software Engineering\n20CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "34a88588-d004-400a-a20a-4230cfdc80dc": {"__data__": {"id_": "34a88588-d004-400a-a20a-4230cfdc80dc", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "34959cd4-0ed0-4ee7-92e8-1653709d40af", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "43b319737c1e5953739d02f43ab24bec30ddfc527423749d00ddae88ab2700d6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nMain course tools (1)\n\u2022 Canvas \n\u2022 Access lecture material \n\u2022 Take rapid recaps\u2028\n\u2022 TopHat \n\u2022 Follow-along with the slides\n\u2022 Complete in-class exercises\u2028\n\u2022 Gradescope\n\u2022 Access & submit coding exercises (in-class, assignments)\n21CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 281, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "f4f56b94-beb8-47d3-bbc8-76d58f0e9424": {"__data__": {"id_": "f4f56b94-beb8-47d3-bbc8-76d58f0e9424", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f06d6ee1-15d6-4ba9-b4b8-3960c8331ad5", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "8e5c70de578405d7f77361cc50d819d7c3896cfa24d92b4ca49799dde62ccf4e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nMain course tools (2)\n22CS1530 - L01 Introduction\n\u2022 Discord \n\u2022 Communicate with instructor, TA, & fellow students\n\u2022 Ask general questions about the organization, lectures, and exercises\n\u2022 Receive announcements\n\u2022 You can \ufb01nd the invite link on Canvas", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 279, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5980591c-465f-4380-98c6-225cfce4d86f": {"__data__": {"id_": "5980591c-465f-4380-98c6-225cfce4d86f", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "846f85c0-a3ab-44c6-8651-ec2674c95203", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1ff6d8a7cdd250a31fabcf674507e2fd88796dfc67f0d07bbbae1e984cfbfe05", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Organizational & syllabus\n\u2022 Prerequisites\n\u2022 Learning goals & course organization\n\u2022 Grading\n\u2022 Tools\n\u2022 Communication & Feedback\n\u2022 Q&A\n\u2022 Intro to Software Engineering\n23CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "98cd23cc-29fb-4c3e-9299-2350faf76146": {"__data__": {"id_": "98cd23cc-29fb-4c3e-9299-2350faf76146", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "460ad6f2-d7d4-41b1-9312-bce853313261", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "4c7f0664199421d0ad7724d324f63297221b298d0185273669a9c071006dfedf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n\"Life happens\" - Late submissions & Extensions\n\u2022 Reach out asap in case of medical/family/\u2026 emergencies\n\u2022 I will need some proof, e.g., doctor\u2019s note\n\u2022 (E.g., your roommate\u2019s friend\u2019s COVID test is NOT a valid form of proof)\n\u2022 Alternative: \u2028\nReach out to Lynnsey Doane (led114@pitt.edu, Director of Student Success)\n\u2022 Non-emergency late submissions/extensions\n\u2022 Please reach out if unsure how to handle a situation before the deadline (no later \nthan 3 days past the due date)!\n\u2022 Late assignments/in-class exercises: \u2028\nsee late policy in the syllabus\n\u2022 RR: in total, you can miss two \u2028\n(your best 10 RR scores will count)\n24CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 679, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "247d3c20-f815-459b-8a4b-14715c1b4470": {"__data__": {"id_": "247d3c20-f815-459b-8a4b-14715c1b4470", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c0c3926f-926a-46c2-a857-201fdf3c1f9f", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "39e93fb61e9baf8c6f524f582005a17704a917b2e74cf7fbce3ddeaf71211737", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n\u203c Expectations \u2014 Questions (in-class & Discord)\n\u2022 Ask questions! \n\u2022 If asking a question \"publicly\" makes you a little uncomfortable, I still encourage you to \ndo so; it will be good practice & bene\ufb01t you in the long run (e.g., being more comfortable \nto ask questions in a job later on)\n\u2022 THERE ARE NO STUPID QUESTIONS! \n\u2022 Remember, you are here to learn! \u2028\nIf you have a question, there is a high chance of someone else having the same question\n\u2022 If my/your TA\u2019s answer does not satisfy you, also please let do me/them know!\u2028\nWhat is obvious to us might not be obvious to you, but if we don\u2019t know, we can\u2019t \nchange anything\n\u2022 If there are no questions, I will assume that everyone understood everything!\n25CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 764, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "449de4f4-2838-4f8a-91e3-163d2791a443": {"__data__": {"id_": "449de4f4-2838-4f8a-91e3-163d2791a443", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7b43be43-b163-4afb-ba8b-cb154b77f18b", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "458e96974a495df4b3b92a22c18e62ad4f715e762f7ae90df3867c8c1e2f486a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nExpectations \u2014 Feedback\n\u2022 If you have any feedback, please talk to me!\n\u2022 I can only make changes if I know about what\u2019s working for you and what isn\u2019t\n\u2022 Knowing what\u2019s working for you is important for me!\n\u2022 Don\u2019t wait for the surveys, please reach out anytime!\n\u2022 There will be frequent questions/feedback TopHat discussions - do use them!\n\u2022 There will be two 'o\ufb03cial' surveys throughout the course\n\u2022 Midterm evaluation: 09/08 - 10/20/2025 \n\u2022\n \u203c Final course evaluation: 11/17 - 12/07/2025\n26CS1530 - L01 Introduction\nMost important one!\nBased on this feedback, I will make \nchanges for the remainder of the semester", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 645, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "272f9941-967e-4d26-a364-1a2f71fb5a05": {"__data__": {"id_": "272f9941-967e-4d26-a364-1a2f71fb5a05", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3869ed8a-0d65-41fd-b12e-718c213a3e1a", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7fcb3586daf02c448f9d8c49ce2aaba37dea811c26a70fcb84bb3134094c0da8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Previous Knowledge\n \n\u23f3 5-10 min Please complete this survey \nby the end of today!\n\ud83d\udcca Survey", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 91, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d375ecdf-4391-4be8-bf11-79f10a808817": {"__data__": {"id_": "d375ecdf-4391-4be8-bf11-79f10a808817", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0b77da18-c592-462b-8e3a-7802ba789789", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "4433366d43fdfe54acf8741a09cdbfcb7bcd4f4f29d3ca7aaddee4d0a250aaa4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Organizational & syllabus\n\u2022 Prerequisites\n\u2022 Learning goals & course organization\n\u2022 Grading\n\u2022 Tools\n\u2022 Communication & Feedback\n\u2022 Q&A\n\u2022 Intro to Software Engineering\n28CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 239, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8b0e4b39-4c2d-4fda-b623-5cc79a00972c": {"__data__": {"id_": "8b0e4b39-4c2d-4fda-b623-5cc79a00972c", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d82ba1f6-00cd-45d0-8a23-1cdd514f4b76", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "df586530386419258a8888310f8094a4373d2ab41826aa38798f1f7575379f07", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Questions? \nConcerns? \nFeedback?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 32, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "10f146a9-826f-48c7-ab97-a565123ec889": {"__data__": {"id_": "10f146a9-826f-48c7-ab97-a565123ec889", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6815a8e3-8990-457d-acf1-a5b071d52279", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "911504ef53587109750622e29aefc0a2683b34e05cce617795cc444210f70e7a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUseful websites every programmer should know & use\n\u2022 Google \n\u2022 Stack Over\ufb02ow\n\u2022 GitHub \n\u2022 Other useful websites:\n\u2022 Geeks for Geeks\n\u2022 SourceForge\n\u2022 Codecademy \n\u2022 CodeBeautify\n30CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 230, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "62676acf-ebaa-47d6-b59f-b23dd33e400a": {"__data__": {"id_": "62676acf-ebaa-47d6-b59f-b23dd33e400a", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a8537d82-ae43-4753-8f05-7314cb8f3060", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "02ea4609d6dd7f6b41585978391d1f53ea8aadd1d0ba3a858632dfd09ac3862b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat are your expectations for this class?\n31CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 100, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "389c4d42-8c56-425c-8ae9-e96af5f4e6e0": {"__data__": {"id_": "389c4d42-8c56-425c-8ae9-e96af5f4e6e0", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "403826af-9923-4fd1-9d07-298826214112", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e2631557bbc6e919570648b1c9dbd7c4d432f0d8744b0cf29e033f8d5aa857cb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Organizational & syllabus\n\u2022 Prerequisites\n\u2022 Learning goals & course organization\n\u2022 Grading\n\u2022 Tools\n\u2022 Communication & Feedback\n\u2022 Q&A\n\u2022 Mini-Intro to Software Engineering\n32CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 244, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b96a31e6-1a19-4256-89a7-8e12605d1388": {"__data__": {"id_": "b96a31e6-1a19-4256-89a7-8e12605d1388", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8e017da7-b7f5-4496-85cb-c70927883978", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6c9606e64bfb48b6a1e40f758671dd98c339a47baa5589acd036972ec3bd34ae", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat is software?\n\u2022 Software is complex \n\u2022 Typically composed of many parts\n\u2022 Software can be complicated\n\u2022 No su\ufb03cient documentation = not easy to understand\n\u2022 Often requires in-depth knowledge to make a change\n\u2022 Building & maintaining software involves many stakeholders \n\u2022 E.g., developer, customer, user, \u2026\n33CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 368, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "df02182f-0d74-4136-8849-31e4754b848d": {"__data__": {"id_": "df02182f-0d74-4136-8849-31e4754b848d", "embedding": null, "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8f04b3f1-ca9c-4e37-97ee-2678664b6e1b", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b525684e2665f72365004deaccd3fa5f6c6dd9ccc4710ef3fee2d83705f3a4c1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat is software engineering?\n34CS1530 - L01 Introduction\nCode? Coding?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 101, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1277c920-ab5d-4832-afee-d31ed879ed35": {"__data__": {"id_": "1277c920-ab5d-4832-afee-d31ed879ed35", "embedding": null, "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fb037b14-42ca-4bf5-ae98-5b15aeca279e", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9232bd9bafb7150ed16d7aaeb263f52f85de3623b439be6263e19479b41cc47d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n 35CS1530 - L01 Introduction\nSoftware Engineering is the use of common sense and \ndiscipline to solve real-world problems\nSoftware Engineering is not rocket science nor textbook knowledge", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 217, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc29e746-5e1c-471d-9b55-a32747d22d0a": {"__data__": {"id_": "dc29e746-5e1c-471d-9b55-a32747d22d0a", "embedding": null, "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "398d11ac-139c-4898-9376-ea587b1b6beb", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9cdf8588f76f50a300e6d17de414194301a4b21386c9603c73a4100ca7737be7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat is software engineering?\n\u2022 Software engineering is much more than 'just writing code'\n\u2022 Programming is a subset of software engineering!\n\u2022 Software engineering is the process of applying scienti\ufb01c principles to \nthe design & creation of software \n\u2022 Systematic approach to designing, building, testing, and maintaining software\n\u2022 Focuses on problem-solving and decision-making throughout the project lifecycle\n\u2022 Collaboration and teamwork across various roles & stakeholders\n\u2022 Emphasizes quality assurance, scalability, and sustainability\n\u2022 Involves both technical and non-technical skills\n36CS1530 - L01 Introduction\nCommunication & \nproject management", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 687, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80400e38-6628-4a48-8c22-3c9491197dae": {"__data__": {"id_": "80400e38-6628-4a48-8c22-3c9491197dae", "embedding": null, "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "59f79ea5-8fe5-440d-a9f2-f393ed099c4b", "node_type": "4", "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ff0a7e88776a845770ce91f4206301fb7149b97718f7ee429d93302859938ea6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nKey concepts in software engineering\n\u2022 Software engineering builds on problem-solving abilities\n1. Understand the problem\n2. Propose a solution and a project plan\n3. Engineer a system using best practices and good design principles\n\u2022 Software engineering is about dealing with complexity\n\u2022 Creating abstractions and models\n\u2022 Notations for abstractions\n\u2022 Software engineering is concerned with dealing with change\n\u2022 Requirements elicitation, analysis, design, implementation, validation of the system, \ndelivery and maintenance\n37CS1530 - L01 Introduction\nThe proposed solution is often \ncalled and used as a 'prototype'", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 649, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6852eb9b-b1a5-4a2a-931f-68f8ffe71fc2": {"__data__": {"id_": "6852eb9b-b1a5-4a2a-931f-68f8ffe71fc2", "embedding": null, "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "32d9bec3-a82c-4aa6-a914-0c020e67d597", "node_type": "4", "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "25c660fc2daa640797e95c71934078f1678d4f370c6b5831a49033dab50bfeff", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhy you should learn about software engineering\n\u2022 Building software without discipline is crazy!\n\u2022 Software is critical to society\n\u2022 Economy\n\u2022 Enterprises\n\u2022 Key part of many complex systems\n\u2022 Essential for designing products\n\u2022 Embedded in systems you are using daily\n\u2022 \u2026\n\u2022 Realizing large, complex projects is hard\n\u2022 Software crisis (more next lecture)\n\u2022 It\u2019s fun \n\ud83e\udd13\n38CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 424, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d715aea-69d5-4153-bcee-46633bda9915": {"__data__": {"id_": "5d715aea-69d5-4153-bcee-46633bda9915", "embedding": null, "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "993f9eaf-5d26-40b7-999c-36cb69d1f049", "node_type": "4", "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d46536dbe6b5e6c39b3720a226e20335980a71ad4c60967b556f685947034384", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u23f3\nRR00 - Demo\n\u26a1 Rapid Recap2 min\nPractice time! \n(Today\u2019s results will \ncount as a bonus \n\ud83d\udcaa)", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 95, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a700c3e7-8f79-4357-98e0-c651a7b25654": {"__data__": {"id_": "a700c3e7-8f79-4357-98e0-c651a7b25654", "embedding": null, "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "74590093-b80c-4e63-93ca-81e46206bc93", "node_type": "4", "metadata": {"page_label": "40", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "77320a6260bead499a0a0f517fd8ef0feffd85704c81b9113ce7d5c992d4faf5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nHow to build a complex system?\nWhere to start?\n40CS1530 - L01 Introduction", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 104, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "14de216d-9a24-4f4f-a8ee-c7344cedf8b8": {"__data__": {"id_": "14de216d-9a24-4f4f-a8ee-c7344cedf8b8", "embedding": null, "metadata": {"page_label": "41", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "32bd21fe-629f-4daf-8fc3-4afe0509f881", "node_type": "4", "metadata": {"page_label": "41", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6661c1fd39d41b93611317ecbe305ea8dce369537fd10feba11a2431852e4e0c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nI01\u2014 Group Exercise\nYour Task: \n\u2022 Form small groups of 2 \u2014 3 students\n\u2022 Identify steps you would naturally need to solve this problem\n\u2022 You now want to share your approach with many people in various cities!\n\u2022 Design & build this system: How many possible solutions are there? \nWhich solution is correct? Where to start? \n\u2022 Share your results!\n41CS1530 - L01 Introduction\n \n\u23f3\n \ud83d\udcac In-class10 min\nImagine you're in a new city for the \ufb01rst time, \nand you're very hungry. You want to \ufb01nd a good \nplace to eat but don't know the area.\u2028 \nHow would you go about solving this problem?\nProblem Statement: \nI1 - De\ufb01ning a system\n2 points", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 657, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5a66d0b4-866e-4cb2-a97f-ad12e1d3b659": {"__data__": {"id_": "5a66d0b4-866e-4cb2-a97f-ad12e1d3b659", "embedding": null, "metadata": {"page_label": "42", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a6b6e7e4-2be4-435c-92a3-ac9923b57f38", "node_type": "4", "metadata": {"page_label": "42", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e2225bb6d68d14b0e5dc1e4ba84320efe5abd16e6b40d64fac46ff832b615ffb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nI01\u2014 Group Exercise\nQuestions you might consider: \n\u2022 What do you need to build this system?\n\u2022 What assumptions are you making?\n\u2022 How will the user interact with the system?\n\u2022 How will you collect information about available restaurants?\n\u2022 Are other stakeholders involved? Who are they?\n\u2022 How will you measure the success of the system?\n\u2022 What happens after you have built this system?\n\u2022 \u2026\n42CS1530 - L01 Introduction\n \n\u23f3\n \ud83d\udcac In-class10 min\nImagine you're in a new city for the \ufb01rst time, \nand you're very hungry. You want to \ufb01nd a good \nplace to eat but don't know the area.\u2028 \nHow would you go about solving this problem?\nProblem Statement: \nI1 - De\ufb01ning a system\n2 points\nVia Gradescope. \u2028\nOne submission per group, please! \u2028\nYou can add your group members \nafter submitting the exercise.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 819, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "59998dfa-6729-40ea-8031-96606fa0a10b": {"__data__": {"id_": "59998dfa-6729-40ea-8031-96606fa0a10b", "embedding": null, "metadata": {"page_label": "43", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8cac21f2-b00b-4fb8-9797-92b9c7486b42", "node_type": "4", "metadata": {"page_label": "43", "file_name": "Fall25 1530 - L01 Introduction (1000).pdf", "file_path": "data/Fall25 1530 - L01 Introduction (1000).pdf", "file_type": "application/pdf", "file_size": 6631942, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1269fa506d108d0ada4888ad7219e6303553fd87cdca13166e30e7649cbbad8a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nL01 Introduction\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 152, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ae65cc8e-42a8-496c-b7a9-5025f1030f8d": {"__data__": {"id_": "ae65cc8e-42a8-496c-b7a9-5025f1030f8d", "embedding": null, "metadata": {"page_label": "1", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "440199b7-30fe-42c3-8ed4-693cc1b609d8", "node_type": "4", "metadata": {"page_label": "1", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a4dfef5578b2ad2c77943e1c9846a829cd69349283ce489bd9248d0648ec92f5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1.2. Length and Angle. The Dot Product. Projections.\nSunday, August 24, 2025 11:14\n MATH 0280 - Fall 25 Page 1", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 112, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "49765951-acc9-477a-b10f-70669d5354de": {"__data__": {"id_": "49765951-acc9-477a-b10f-70669d5354de", "embedding": null, "metadata": {"page_label": "2", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "03413021-6a62-4d62-ad9a-74c484ed44c3", "node_type": "4", "metadata": {"page_label": "2", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ebb96529865f76a94577d457b26a14c7d570aabe1497f2d004f8510a88ae0a34", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "MATH 0280 - Fall 25 Page 2", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 29, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a1cae6a9-1e2c-4e79-8b27-20e83a69aabe": {"__data__": {"id_": "a1cae6a9-1e2c-4e79-8b27-20e83a69aabe", "embedding": null, "metadata": {"page_label": "3", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "237d9e10-aa76-4d47-b8a2-06e3039bb4fd", "node_type": "4", "metadata": {"page_label": "3", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "25899dcd5b4a179efe8b501b870ebfe10edaf449b93b801eeea1c8e9b4dd496a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "MATH 0280 - Fall 25 Page 3", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 29, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bafac879-31e7-448e-ba13-45e1d170418b": {"__data__": {"id_": "bafac879-31e7-448e-ba13-45e1d170418b", "embedding": null, "metadata": {"page_label": "4", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "67b33e00-b8f0-4442-aefe-86b978bd0ab2", "node_type": "4", "metadata": {"page_label": "4", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4e845039e1a7fbe5dc338019325c912accfc4b2d11b27dde87c852b6f69ba1d9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "MATH 0280 - Fall 25 Page 4", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 29, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9446492b-847e-44b4-a080-3ee05cf2a5fe": {"__data__": {"id_": "9446492b-847e-44b4-a080-3ee05cf2a5fe", "embedding": null, "metadata": {"page_label": "5", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c39d4052-86dd-4298-8a29-cb9c1f2853b7", "node_type": "4", "metadata": {"page_label": "5", "file_name": "1.2. Length and Angle. The Dot Product. Projections..pdf", "file_path": "data/1.2. Length and Angle. The Dot Product. Projections..pdf", "file_type": "application/pdf", "file_size": 2691665, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7166fa4032e971ad2ef5019b5aaa882321d06187f1f8935a5b1f072bf9a250bf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "MATH 0280 - Fall 25 Page 5", "mimetype": "text/plain", "start_char_idx": 3, "end_char_idx": 29, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "44380a57-8e3d-48e3-81db-fd8c7f9f3223": {"__data__": {"id_": "44380a57-8e3d-48e3-81db-fd8c7f9f3223", "embedding": null, "metadata": {"page_label": "1", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "586e5be1-7c2b-4905-96d6-8c67c6a6a396", "node_type": "4", "metadata": {"page_label": "1", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f787b1df28bc0053d730a120d3ea26a0425a8dc4fb64f2abf59c2403ba178307", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works.\nMcDonnell Douglas Corp. v. Green\nSupreme Court of the United States | May 14, 1973 | 411 U.S. 792 | 93 S.Ct. 1817\nDocument Details\nstandard Citation: McDonnell Douglas Corp. v. Green, 411 U.S. 792, 93 S. Ct. 1817, 36 L.\nEd. 2d 668 (1973)\nAll Citations: 411 U.S. 792, 93 S.Ct. 1817, 36 L.Ed.2d 668, 5 Fair Empl.Prac.Cas.\n(BNA) 965, 5 Empl. Prac. Dec. P 8607\nSearch Details\nJurisdiction: Missouri\nDelivery Details\nDate: January 2, 2025 at 8:07 AM\nDelivered By: Mart Harris\nClient ID: CIVIL RIGHTS\nStatus Icons:\n \nOutline\nAttorneys and Law\nFirms (p.2)\nOpinion (p.2)\nAll Citations (p.6)", "mimetype": "text/plain", "start_char_idx": 1, "end_char_idx": 653, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d9add244-bb2b-4ada-8452-4e2a7c312cbd": {"__data__": {"id_": "d9add244-bb2b-4ada-8452-4e2a7c312cbd", "embedding": null, "metadata": {"page_label": "1", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f111f750-d3d4-41a8-a70e-7f3e770dd6bb", "node_type": "4", "metadata": {"page_label": "1", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c58f947206e7198fde0318db6fc6447e342811f0372dde27723f655fd171a8f2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 1\n93 S.Ct. 1817\nSupreme Court of the United States\nMcDONNELL DOUGLAS CORPORATION, Petitioner,\nv.\nPercy GREEN.\nNo. 72\u2014490\n|\nArgued March 28, 1973.\n|\nDecided May 14, 1973.\nSynopsis\nSuit claiming violation of provisions of Civil Rights Act of 1964. The District Court, 299 F.Supp. 1100 and 318 F.Supp. 846,\nentered judgment, and appeal was taken. The Court of Appeals, 463 F.2d 337, ordered the case remanded, and certiorari was\ngranted. The Supreme Court, Mr. Justice Powell, held that the Act did not restrict a complainant's right to sue to those charges as\nto which the Equal Employment Opportunity Commission has made findings of reasonable cause, and further held that where\nemployer sought mechanics, complainant's trade and continued to do so after complainant's rejection and employer did not\ndispute complainant's qualifications, complainant proved prima facie case under Title VII and furthermore, employer, which\nassigned complainant's participation in unlawful conduct against it as cause for his rejection, discharged its burden of proof to\narticulate legitimate, nondiscriminatory reason for complainant's rejection, but on remand complainant had to be afforded a fair\nopportunity to show that employer's stated reason for complainant's rejection was in fact pretextual.\nCause remanded.\nProcedural Posture(s): On Appeal.\n**1819 *792 Syllabus *\nRespondent, a black civil rights activist, engaged in disruptive and illegal activity against petitioner as part of his protest that his\ndischarge as an employee of petitioner's and the firm's general hiring practices were racially motivated. When petitioner, who\nsubsequently advertised for qualified personnel, rejected respondent's re-employment application on the ground of the illegal\nconduct, respondent filed a complaint with the Equal Employment Opportunity Commission (EEOC) charging violation of Title\nVII of the Civil Rights Act of 1964. The EEOC found that there was reasonable cause to believe that petitioner's rejection of\nrespondent violated s 704(a) of the Act, which forbids discrimination against applicants or employees for attempting to protest or\ncorrect allegedly discriminatory employment conditions, but made no finding on respondent's allegation that petitioner had also\nviolated s 703(a) (1), which prohibits discrimination in any employment decision. Following unsuccessful EEOC conciliation\nefforts, respondent brought suit in the District Court, which ruled that respondent's illegal activity was not protected by s 704(a)\nand dismissed the s 703(a)(1) claim because the EEOC had made no finding with respect thereto. The Court of Appeals affirmed\nthe s 704(a) ruling, but reversed with respect to s 703(a)(1), holding that an EEOC determination of reasonable cause was not\na jurisdictional prerequisite to claiming a violation of that provision in federal court. Held:\n1. A complainant's right to bring suit under the Civil Rights Act of 1964 is not confined to charges as to which the EEOC has\nmade a reasonable-cause finding, and the District Court's error in holding to the contrary was not harmless since the issues\nraised with respect to s 703(a)(1) were not identical to those with respect to s 704(a) and the dismissal of the former charge may\nhave prejudiced respondent's efforts at trial. Pp. 1822\u20141823.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3501, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "50f48c12-6b8d-4fdd-b9fd-a96562492262": {"__data__": {"id_": "50f48c12-6b8d-4fdd-b9fd-a96562492262", "embedding": null, "metadata": {"page_label": "2", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4379d747-adde-4c8a-833c-070d43a8ab68", "node_type": "4", "metadata": {"page_label": "2", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "734d60887753419ed83b20c6f3814f0d241e182e7a4f90e56d53a363747182ba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 2\n2. In a private, non-class-action complaint under Title VII charging racial employment discrimination, the complainant has the\nburden of establishing a prima facie case, which he can satisfy by showing that (i) he belongs to a racial **1820 minority; (ii)\nhe *793 applied and was qualified for a job the employer was trying to fill; (iii) though qualified, he was rejected; and (iv)\nthereafter the employer continued to seek applicants with complainant's qualifications. P. 1824.\n3. Here, the Court of Appeals, though correctly holding that respondent proved a prima facie case, erred in holding that petitioner\nhad not discharged its burden of proof in rebuttal by showing that its stated reason for the rehiring refusal was based on\nrespondent's illegal activity. But on remand respondent must be afforded a fair opportunity of proving that petitioner's stated\nreason was just a pretext for a racially discriminatory decision, such as by showing that whites engaging in similar illegal activity\nwere retained or hired by petitioner. Other evidence that may be relevant, depending on the circumstances, could include facts\nthat petitioner had discriminated against respondent when he was an employee or followed a discriminatory policy toward\nMinority employees. Pp. 1824\u20141826.\n8 Cir., 463 F.2d 337, vacated and remanded.\nAttorneys and Law Firms\nVeryl L. Riddle, St. Louis, Mo., for petitioner.\nLouis Gilden, St. Louis, Mo., for respondent.\nOpinion\nMr. Justice POWELL delivered the opinion for a unanimous Court.\nThe case before us raises significant questions as to the proper order and nature of proof in actions under Title *794 VII of\nthe Civil Rights Act of 1964, 78 Stat. 253, 42 U.S.C. s 2000e et seq.\nPetitioner, McDonnell Douglas Corp., is an aerospace and aircraft manufacturer headquartered in St. Louis, Missouri, where\nit employs over 30,000 people. Respondent, a black citizen of St. Louis, worked for petitioner as a mechanic and laboratory\ntechnician from 1956 until August 28, 19641 when he was laid off in the course of a general reduction in petitioner's work force.\nRespondent, a long-time activist in the civil rights movement, protested vigorously that his discharge and the general hiring\npractices of petitioner were racially motivated. 2 As part of this protest, respondent and other members of the Congress on\nRacial Equality illegally stalled their cars on the main roads leading to petitioner's plant for the purpose of blocking access\nto it at the time of the morning shift change. The District Judge described the plan for, and respondent's participation in, the\n\u2018stall-in\u2019 as follows:\n'(F)ive teams, each consisting of four cars would \u2018tie up\u2019 five main access roads into McDonnell at the time of the morning rush\nhour. The drivers of the cars were instructed to line up next to each other completely blocking the intersections or roads. The\ndrivers were also instructed to stop their cars, turn off the engines, pull the emergency brake, raise all windows, lock the doors,\nand remain in their cars until the police arrived. The plan was to have the cars remain in position for one hour.\n*795 'Acting under the \u2018stall in\u2019 plan, plaintiff (respondent in the present action) drove his car onto Brown Road, a McDonnell\naccess road, at approximately 7:00 a.m., at the start of the morning rush hour. Plaintiff was aware of the traffic problems that\nwould result. He stopped his car with the intent to block traffic. The police **1821 arrived shortly and requested plaintiff\nto move his car. He refused to move his car voluntarily. Plaintiff's car was towed away by the police, and he was arrested for\nobstructing traffic. Plaintiff pleaded guilty to the charge of obstructing traffic and was fined.' 318 F.Supp. 846.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3953, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53e4ef57-0940-4da9-99e1-806ecbf78a14": {"__data__": {"id_": "53e4ef57-0940-4da9-99e1-806ecbf78a14", "embedding": null, "metadata": {"page_label": "3", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a1933975-2a74-431b-84d2-b719aae7e0b6", "node_type": "4", "metadata": {"page_label": "3", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "796876dc7df9fb059ca0f663c4b66d702bc8172bb01046a7dd14e9f5f445ed8e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "74355f3f-5536-4b10-bb35-f242b07c02b4", "node_type": "1", "metadata": {}, "hash": "573725ce8e67e62e7e7c10a8ee8ccf3e760b3d81a33c47bb4bc20a053ecbff08", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 3\nOn July 2, 1965, a \u2018lock-in\u2019 took place wherein a chain and padlock were placed on the front door of a building to prevent the\noccupants, certain of petitioner's employees, from leaving. Though respondent apparently knew beforehand of the \u2018lock-in,\u2019\nthe full extent of his involvement remains uncertain. 3\n*796 Some three weeks following the \u2018lock-in,\u2019 on July 25, 1965, petitioner publicly advertised for qualified mechanics,\nrespondent's trade, and respondent promptly applied for re-employment. Petitioner turned down respondent, basing its rejection\non respondent's participation in the \u2018stall-in\u2019 and \u2018lock-in.\u2019 Shortly thereafter, respondent filed a formal complaint with the\nEqual Employment Opportunity Commission, claiming that petitioner had refused to rehire him because of his race and\npersistent involvement in the civil rights movement, in violation of ss 703(a)(1) and 704(a) of the Civil Rights Act of 1964, 42\nU.S.C. ss 2000e\u20142(a)(1) and 2000e\u20143(a). 4 The former section generally prohibits racial discrimination in any employment\ndecision while the latter forbids discrimination against applicants or employees for attempting to protest or correct allegedly\ndiscriminatory conditions of employment.\n*797 The Commission made no finding on respondent's allegation of racial bias under s 703(a)(1), but it did find reasonable\ncause to believe petitioner had violated s 704(a) by refusing to rehire respondent because of his civil rights activity. After the\nCommission unsuccess-fully attempted to conciliate the dispute, it advised respondent in March 1968, of his right to institute\na civil action in federal court within 30 days.\nOn April 15, 1968, respondent brought the present action, claiming initially a violation of s 704(a) and, in an amended **1822\ncomplaint, a violation of s 703(a)(1) as well. 5 The District Court, 299 F.Supp. 1100, dismissed the latter claim of racial\ndiscrimination in petitioner's hiring procedures on the ground that the Commission had failed to make a determination of\nreasonable cause to believe that a violation of that section had been committed. The District Court also found that petitioner's\nrefusal to rehire respondent was based solely on his participation in the illegal demonstrations and not on his legitimate civil\nrights activities. The court concluded that nothing in Title VII or s 704 protected \u2018such activity as employed by the plaintiff in\nthe \u2018stall in\u2019 and \u2018lock in\u2019 demonstrations.' 318 F.Supp., at 850.\nOn appeal, the Eighth Circuit affirmed that unlawful protests were not protected activities under s 704(a), 6 but reversed the\ndismissal of respondent's s 703(a)(1) claim relating to racially discriminatory hiring practices, holding that a prior Commission\ndetermination of reasonable cause was not a jurisdictional prerequisite to raising a claim under that section in federal court. The\ncourt *798 ordered the case remanded for trial of respondent's claim under s 703(a)(1).\nIn remanding, the Court of Appeals attempted to set forth standards to govern the consideration of respondent's claim. The\nmajority noted that respondent had established a prima facie case of racial discrimination; that petitioner's refusal to rehire\nrespondent rested on \u2018subjective\u2019 criteria which carried little weight in rebutting charges of discrimination; that, though\nrespondent's participation in the unlawful demonstrations might indicate a lack of a responsible attitude toward performing\nwork for that employer, respondent should be given the opportunity to demonstrate that petitioner's reasons for refusing to\nrehire him were mere pretext.7 In order to clarify the standards governing the disposition of an action challenging employment\ndiscrimination, we granted certiorari, 409 U.S. 1036, 93 S.Ct. 522, 34 L.Ed.2d 485 (1972).\nI\nWe agree with the Court of Appeals that absence of a Commission finding of reasonable cause cannot bar suit under an\nappropriate section of Title VII and that the District Judge erred in dismissing respondent's claim of racial discrimination under\ns 703(a)(1).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4266, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "74355f3f-5536-4b10-bb35-f242b07c02b4": {"__data__": {"id_": "74355f3f-5536-4b10-bb35-f242b07c02b4", "embedding": null, "metadata": {"page_label": "3", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a1933975-2a74-431b-84d2-b719aae7e0b6", "node_type": "4", "metadata": {"page_label": "3", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "796876dc7df9fb059ca0f663c4b66d702bc8172bb01046a7dd14e9f5f445ed8e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "53e4ef57-0940-4da9-99e1-806ecbf78a14", "node_type": "1", "metadata": {"page_label": "3", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e0eae714b0e48a4d433bf253fbabaa7a2fc75f0bf876298c8cd2488620769b8d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "1036, 93 S.Ct. 522, 34 L.Ed.2d 485 (1972).\nI\nWe agree with the Court of Appeals that absence of a Commission finding of reasonable cause cannot bar suit under an\nappropriate section of Title VII and that the District Judge erred in dismissing respondent's claim of racial discrimination under\ns 703(a)(1). Respondent satisfied the jurisdictional prerequisites to a federal action (i) by filing timely charges of employment\ndiscrimination with the Commission and (ii) by receiving and acting upon the Commission's statutory notice of the right to sue,\n42 U.S.C. ss 2000e\u20145(a) and 2000e\u20145(e). The Act does not restrict a complainant's right to sue to those charges as to which\nthe Commission has made findings of reasonable cause, and we will not engraft on the statute a requirement which may inhibit\nthe review of *799 claims of employment discrimination in the federal courts. The Commission itself does not consider the", "mimetype": "text/plain", "start_char_idx": 3961, "end_char_idx": 4883, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9a01e6d3-02b6-482e-a5f9-4c12ae55abe2": {"__data__": {"id_": "9a01e6d3-02b6-482e-a5f9-4c12ae55abe2", "embedding": null, "metadata": {"page_label": "4", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bc20d038-a3df-4cb3-aa08-da60a686530c", "node_type": "4", "metadata": {"page_label": "4", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6a26cd5611833408ecd5f7ef3934b37445b9b151bab0d8937318129e1b550673", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "09076d6f-deac-44ff-9043-856b05200c01", "node_type": "1", "metadata": {}, "hash": "bf92ccfe1fc7b9a03eca185b082dbf5018c50bf12d373addb724e0ab718e0d37", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 4\nabsence of a \u2018reasonable cause\u2019 determination as providing employer immunity from similar charges in a federal court, 29 CFR\ns 1601.30, and the courts of appeal have held that, in view of the large volume of complaints before the Commission and the\nnonadversary character of many of its proceedings, \u2018court actions under Title VII are de novo proceedings **1823 and . . .\na Commission \u2018no reasonable cause\u2019 finding does not bar a lawsuit in the case.' Robinson v. Lorillard Corp., 444 F.2d 791,\n800 (CA4 1971) ; Beverly v. Lone Star Lead Construction Corp., 437 F.2d 1136 (CA,5 1971) ; Flowers v. Local 6, Laborers\nInternational Union of North America, 431 F.2d 205 (CA7 1970); Fekete v. United States Steel Corp., 424 F.2d 331 (CA 3 1970).\nPetitioner argues, as it did below, that respondent sustained no prejudice from the trial court's erroneous ruling because in fact\nthe issue of racial discrimination in the refusal to re-employ \u2018was tried thoroughly\u2019 in a trial lasting four days with \u2018at least\n80%\u2019 of the questions relating to the issue of \u2018race.'8 Petitioner, therefore, requests that the judgment below be vacated and the\ncause remanded with instructions that the judgment of the District Court be affirmed. 9 We cannot agree that the dismissal of\nrespondent's s 703(a)(1) claim was harmless error. It is not clear that the District Court's findings as to respondent's s 704(a)\ncontentions involved the identical issues raised by his claim under s 703(a)(1). The former section relates solely to discrimination\nagainst an applicant or employee on account of his participation in legitimate civil rights activities or protests, while the latter\nsection deals with the broader and centrally *800 important question under the Act of whether for any reason, a racially\ndiscriminatory employment decision has been made. Moreover, respondent should have been accorded the right to prepare\nhis case and plan the strategy of trial with the knowledge that the s 703(a)(1) cause of action was properly before the District\nCourt. 10 Accordingly, we remand the case for trial of respondent's claim of racial discrimination consistent with the views\nset forth below.\nII\nThe critical issue before us concerns the order and allocation of proof in a private, non-class action challenging employment\ndiscrimination. The language of Title VII makes plain the purpose of Congress to assure equality of employment opportunities\nand to eliminate those discriminatory practices and devices which have fostered racially stratified job environments to the\ndisadvantage of minority citizens. Griggs v. Duke Power Co., 401 U.S. 424, 429, 91 S.Ct. 849, 852, 28 L.Ed.2d 158 (1971) ;\nCastro v. Beecher, 459 F.2d 725 (CA1 1972) ; Chance v. Board of Examiners, 458 F.2d 1167 (CA2 1972) ; Quarles v. Philip\nMorris, Inc., 279 F.Supp. 505 (ED Va.1968). As noted in Griggs, supra:\n'Congress did not intend by Title VII, however, to guarantee a job to every person regardless of qualifications. In short, the\nAct does not command that any person be hired simply because he was formerly the subject of discrimination, or because he\nis a member of a minority group. Discriminatory preference for any group, minority or majority, is precisely and only what\nCongress has proscribed. *801 What is required by Congress is the removal of artificial, arbitrary, and unnecessary barriers to\nemployment when the barriers operate invidiously to discriminate on the basis of racial or other impermissible classification.'\nId., 401 U.S., at 430\u2014431, 91 S.Ct., at 853.\nThere are societal as well as personal interests on both sides of this equation.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3818, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "09076d6f-deac-44ff-9043-856b05200c01": {"__data__": {"id_": "09076d6f-deac-44ff-9043-856b05200c01", "embedding": null, "metadata": {"page_label": "4", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bc20d038-a3df-4cb3-aa08-da60a686530c", "node_type": "4", "metadata": {"page_label": "4", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6a26cd5611833408ecd5f7ef3934b37445b9b151bab0d8937318129e1b550673", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9a01e6d3-02b6-482e-a5f9-4c12ae55abe2", "node_type": "1", "metadata": {"page_label": "4", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ff932ee117da5a529a151f4fd66fe7ecbe554505be694fd9dad102b388db9798", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "505 (ED Va.1968). As noted in Griggs, supra:\n'Congress did not intend by Title VII, however, to guarantee a job to every person regardless of qualifications. In short, the\nAct does not command that any person be hired simply because he was formerly the subject of discrimination, or because he\nis a member of a minority group. Discriminatory preference for any group, minority or majority, is precisely and only what\nCongress has proscribed. *801 What is required by Congress is the removal of artificial, arbitrary, and unnecessary barriers to\nemployment when the barriers operate invidiously to discriminate on the basis of racial or other impermissible classification.'\nId., 401 U.S., at 430\u2014431, 91 S.Ct., at 853.\nThere are societal as well as personal interests on both sides of this equation. The broad, overriding interest, shared by employer,\nemployee, and consumer, is efficient and trustworthy workmanship assured through fair and racially neutral employment and\npersonnel decisions. In the implementation of **1824 such decisions, it is abundantly clear that Title VII tolerates no racial\ndiscrimination, subtle or otherwise.\nIn this case respondent, the complainant below, charges that he was denied employment \u2018because of his involvement in civil\nrights activities' and \u2018because of his race and color.'11 Petitioner denied discrimination of any kind, asserting that its failure to\nre-employ respondent was based upon and justified by his participation in the unlawful conduct against it. Thus, the issue at\nthe trial on remand is framed by those opposing factual contentions. The two opinions of the Court of Appeals and the several\nopinions of the three judges of that court attempted, with a notable lack of harmony, to state the applicable rules as to burden\nof proof and how this shifts upon the making of a prima facie case. 12 We now address this problem.", "mimetype": "text/plain", "start_char_idx": 3019, "end_char_idx": 4897, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "92e29ca5-c238-4379-87ff-12df46df8ce5": {"__data__": {"id_": "92e29ca5-c238-4379-87ff-12df46df8ce5", "embedding": null, "metadata": {"page_label": "5", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1ba022d9-1910-4d58-9292-c6e2e286afdd", "node_type": "4", "metadata": {"page_label": "5", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "3cf2a90ef791dde5a5f66e59db5e8961ccc037414fcb84b0330ec698a045820d", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "05287217-7012-4de0-8d93-1e34c9f5c9ca", "node_type": "1", "metadata": {}, "hash": "79aaf6f6d5f4f159c94a3bbbdea3bd05a89c4a639b0900830e90c156f82d7b76", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 5\n*802 The complainant in a Title VII trial must carry the initial burden under the statute of establishing a prima facie case of\nracial discrimination. This may be done by showing (i) that he belongs to a racial minority; (ii) that he applied and was qualified\nfor a job for which the employer was seeking applicants; (iii) that, despite his qualifications, he was rejected; and (iv) that,\nafter his rejection, the position remained open and the employer continued to seek applicants from persons of complainant's\nqualifications. 13 In the instant case, we agree with the Court of Appeals that respondent proved a prima facie case. 463 F.2d 337,\n353. Petitioner sought mechanics, respondent's trade, and continued to do so after respondent's rejection. Petitioner, moreover,\ndoes not dispute respondent's qualifications 14 and acknowledges that his past work performance in petitioner's employ was\n\u2018satisfactory.'15\nThe burden then must shift to the employer to articulate some legitimate, nondiscriminatory reason for the employee's rejection.\nWe need not attempt in the instant case to detail every matter which fairly could be *803 recognized as a reasonable basis\nfor a refusal to hire. Here petitioner has assigned respondent's participation in unlawful conduct against it as the cause for his\nrejection. We think that this suffices to discharge petitioner's burden of proof at this stage and to meet respondent's prima facie\ncase of discrimination.\nThe Court of Appeals intimated, however, that petitioner's stated reason for refusing to rehire respondent was a \u2018subjective\u2019\nrather than objective criterion which \u2018carr[ies] little weight in rebutting charges of discrimination,\u2019 463 F.2d, at 343. This was\namong the statements which caused the dissenting judge **1825 to read the opinion as taking \u2018the position that such unlawful\nacts as Green committed against McDonnell would not legally entitle McDonnell to refuse to hire him, even though no racial\nmotivation was involved . . . .\u2019 Id., at 355. Regardless of whether this was the intended import of the opinion, we think the\ncourt below seriously underestimated the rebuttal weight to which petitioner's reasons were entitled. Respondent admittedly\nhad taken part in a carefully planned \u2018stall-in,\u2019 designed to tie up access to and egress from petitioner's plant at a peak traffic\nhour.16 Nothing in Title VII compels an employer to absolve and rehire one who has engaged in such deliberate, unlawful\nactivity against it. 17 In upholding, under the National Labor Relations Act, the discharge of employees who had seized and\nforcibly retained *804 an employer's factory buildings in an illegal sit-down strike, the Court noted pertinently:\n'We are unable to conclude that Congress intended to compel employers to retain persons in their employ regardless of their\nunlawful conduct,\u2014to invest those who go on strike with an immunity from discharge for acts of trespass or violence against\nthe employer's property . . . Apart from the question of the constitutional validity of an enactment of that sort, it is enough to\nsay that such a legislative intention should be found in some definite and unmistakable expression.' NLRB v. Fansteel Corp.,\n306 U.S. 240, 255, 59 S.Ct. 490, 496, 83 L.Ed. 627 (1939).\nPetitioner's reason for rejection thus suffices to meet the prima facie case, but the inquiry must not end here. While Title VII does\nnot, without more, compel rehiring of respondent, neither does it permit petitioner to use respondent's conduct as a pretext for the\nsort of discrimination prohibited by s 703(a)(1). On remand, respondent must, as the Court of Appeals recognized, be afforded\na fair opportunity to show that petitioner's stated reason for respondent's rejection was in fact pretext. Especially relevant to\nsuch a showing would be evidence that white employees involved in acts against petitioner of comparable seriousness to the\n\u2018stall-in\u2019 were nevertheless retained or rehired. Petitioner may justifiably refuse to rehire one who was engaged in unlawful,\ndisruptive acts against it, but only if this criterion is applied alike to members of all races.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4343, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "05287217-7012-4de0-8d93-1e34c9f5c9ca": {"__data__": {"id_": "05287217-7012-4de0-8d93-1e34c9f5c9ca", "embedding": null, "metadata": {"page_label": "5", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1ba022d9-1910-4d58-9292-c6e2e286afdd", "node_type": "4", "metadata": {"page_label": "5", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "3cf2a90ef791dde5a5f66e59db5e8961ccc037414fcb84b0330ec698a045820d", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "92e29ca5-c238-4379-87ff-12df46df8ce5", "node_type": "1", "metadata": {"page_label": "5", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "133e4fcb5a355d064fdcf64a39546db24ddd040979329a082823cd9d8e69df85", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "627 (1939).\nPetitioner's reason for rejection thus suffices to meet the prima facie case, but the inquiry must not end here. While Title VII does\nnot, without more, compel rehiring of respondent, neither does it permit petitioner to use respondent's conduct as a pretext for the\nsort of discrimination prohibited by s 703(a)(1). On remand, respondent must, as the Court of Appeals recognized, be afforded\na fair opportunity to show that petitioner's stated reason for respondent's rejection was in fact pretext. Especially relevant to\nsuch a showing would be evidence that white employees involved in acts against petitioner of comparable seriousness to the\n\u2018stall-in\u2019 were nevertheless retained or rehired. Petitioner may justifiably refuse to rehire one who was engaged in unlawful,\ndisruptive acts against it, but only if this criterion is applied alike to members of all races.\nOther evidence that may be relevant to any showing of pretext includes facts as to the petitioner's treatment of respondent\nduring his prior term of employment; petitioner's reaction, if any, to respondent's legitimate civil rights activities; and petitioner's\ngeneral policy and *805 practice with respect to minority employment. 18 On the latter point, statistics as to petitioner's\nemployment policy and practice may be helpful to a determination of whether petitioner's refusal to rehire respondent in this case\nconformed to a general pattern of discrimination against blacks. **1826 Jones v. Lee Way Motor Freight, Inc., 431 F.2d 245\n(CA10 1970); Blumrosen, Strangers in Paradise: Griggs v. Duke Power Co., and the Concept of Employment Discrimination,\n71 Mich.L.Rev. 59, 91\u201494 (1972).19 In short, on the retrial respondent must be given a full and fair opportunity to demonstrate", "mimetype": "text/plain", "start_char_idx": 3462, "end_char_idx": 5233, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4089cd26-b144-4b66-a2ed-eeb2afaf6176": {"__data__": {"id_": "4089cd26-b144-4b66-a2ed-eeb2afaf6176", "embedding": null, "metadata": {"page_label": "6", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8b24b627-730b-4727-a207-173406e8f2c8", "node_type": "4", "metadata": {"page_label": "6", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "80ca0d0f2550ec922869df7ea107b2720f1889d46eb2bc96da0c6fbc91345088", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 6\nby competent evidence that the presumptively valid reasons for his rejection were in fact a coverup for a racially discriminatory\ndecision.\nThe court below appeared to rely upon Griggs v. Duke Power Co., supra, in which the Court stated: \u2018If an employment practice\nwhich operates to exclude Negroes cannot *806 be shown to be related to job performance, the practice is prohibited.\u2019 401\nU.S., at 431, 91 S.Ct., at 853, 28 L.Ed.2d 158. 20 But Griggs differs from the instant case in important respects. It dealt with\nstandardized testing devices which, however neutral on their face, operated to exclude many blacks who were capable of\nperforming effectively in the desired positions. Griggs was rightly concerned that childhood deficiencies in the education and\nbackground of minority citizens, resulting from forces beyond their control, not be allowed to work a cumulative and invidious\nburden on such citizens for the remainder of their lives. Id., at 430, 91 S.Ct., at 853. Respondent, however, appears in different\nclothing. He had engaged in a seriously disruptive act against the very one from whom he now seeks employment. And petitioner\ndoes not seek his exclusion on the basis of a testing device which overstates what is necessary for competent performance, or\nthrough some sweeping disqualification of all those with any past record of unlawful behavior, however remote, insubstantial,\nor unrelated to applicant's personal qualifications as an employee. Petitioner assertedly rejected respondent for unlawful conduct\nagainst it and, in the absence of proof of pretext or discriminatory application of such a reason, this cannot be thought the kind of\n\u2018artificial, arbitrary, and unnecessary barriers to employment\u2019 which the Court found to be the intention of Congress to remove.\nId., at 431, 91 S.Ct., at 853. 21\n*807 III\nIn sum, respondent should have been allowed to pursue his claim under s 703(a) (1). If the evidence on retrial is substantially\nin accord with that before us in this case, we think that respondent carried his burden of establishing a prima facie case of racial\ndiscrimination and that petitioner successfully rebutted that case. But this does not end the matter. On retrial, respondent must\nbe afforded a fair opportunity to demonstrate **1827 that petitioner's assigned reason for refusing to re-employ was a pretext\nor discriminatory in its application. If the District Judge so finds, he must order a prompt and appropriate remedy. In the absence\nof such a finding, petitioner's refusal to rehire must stand.\nThe cause is hereby remanded to the District Court for reconsideration in accordance with this opinion.\nSo ordered.\nRemanded.\nAll Citations\n411 U.S. 792, 93 S.Ct. 1817, 36 L.Ed.2d 668, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607\nFootnotes\n* The syllabus constitutes no part of the opinion of the Court but has been prepared by the Reporter of Decisions for\nthe convenience of the reader. See United States v. Detroit Timber & Lumber Co., 200 U.S. 321, 337, 26 S.Ct. 282,\n287, 50 L.Ed. 499.\n1 His employment during these years was continuous except for 21 months of service in the military.\n2 The Court of Appeals noted that respondent then \u2018filed formal complaints of discrimination with the President's\nCommission on Civil Rights, the Justice Department, the Department of the Navy, the Defense Department, and the\nMissouri Commission on Human Rights.\u2019 463 F.2d 337 (8 Cir., 1972).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3650, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ccfa3c8b-bc4e-4a77-889f-46045a0d871c": {"__data__": {"id_": "ccfa3c8b-bc4e-4a77-889f-46045a0d871c", "embedding": null, "metadata": {"page_label": "7", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c062a14f-0d45-47f7-bf33-37df509f0c36", "node_type": "4", "metadata": {"page_label": "7", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "5928768bd65443ae7c5a298055639ddc75c418f96c9209d767a08b2c657f0c97", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 7\n3 The \u2018lock-in\u2019 occurred during a picketing demonstration by ACTION, a civil rights organization, at the entrance to a\ndowntown office building which housed a part of petitioner's offices and in which certain of petitioner's employees were\nworking at the time. A chain and padlock were placed on the front door of the building to prevent ingress and egress.\nAlthough respondent acknowledges that he was chairman of ACTION at the time, that the demonstration was planned\nand staged by his group, that he participated in and indeed was in charge of the picket line in front of the building, that\nhe was told in advance by a member of ACTION \u2018that he was planning to chain the front door,\u2019 and that he \u2018approved\nof\u2019 chaining the door, there is no evidence that respondent personally took part in the actual \u2018lock-in,\u2019 and he was not\narrested. App. 132\u2014133.\nThe Court of Appeals majority, however, found that the record did \u2018not support the trial court's conclusion that Green\n\u2018actively cooperated\u2019 in chaining the doors of the downtown St. Louis building during the \u2018lock-in\u2019 demonstration.' 463\nF.2d, at 341. See also concurring opinion of Judge Lay. Id., at 344. Judge Johnsen, in dissent, agreed with the District\nCourt that the \u2018chaining and padlocking (were) carried out as planned, (and that) Green had in fact given it . . . approval\nand authorization.\u2019 Id., at 348.\nIn view of respondent's admitted participation in the unlawful \u2018stall-in,\u2019 we find it unnecessary to resolve the\ncontradictory contentions surrounding this \u2018lock-in.\u2019\n4 Section 703(a)(1) of the Civil Rights Act of 1964, 42 U.S.C. s 2000e\u20142(a) (1), in pertinent part provides:\n'It shall be an unlawful employment practice for an employer . . . to fail or refuse to hire or to\ndischarge any individual, or otherwise to discriminate against any individual with respect to his\ncompensation, terms, conditions, or privileges of employment, because of such individual's race,\ncolor, religion, sex, or national origin . . ..'\nSection 704(a) of the Civil Rights Act of 1964, 42 U.S.C. s 2000e\u20143(a), in pertinent part provides:\n'It shall be an unlawful employment practice for an employer to discriminate against any of his\nemployees or applicants for employment . . . because he has opposed any practice made an unlawful\nemployment practice by this subchapter . . ..'\n5 Respondent also contested the legality of his 1964 discharge by petitioner, but both courts held this claim barred by the\nstatute of limitations. Respondent does not challenge those rulings here.\n6 Respondent has not sought review of this issue.\n7 All references are to Part V of the revised opinion of the Court of Appeals, 463 F.2d, at 352, which superseded Part V\nof the court's initial opinion with respect to the order and nature of proof. 463 F.2d 337.\n8 Tr. of Oral Arg. 11.\n9 Brief for Petitioner 40.\n10 The trial court did not discuss respondent's s 703(a)(1) claim in its opinion and denied requests for discovery of statistical\nmaterials which may have been relevant to that claim.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3227, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "21eac55a-578a-430a-90da-231187312fd1": {"__data__": {"id_": "21eac55a-578a-430a-90da-231187312fd1", "embedding": null, "metadata": {"page_label": "8", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6d23082c-9e48-4378-a24b-3cbe39a15041", "node_type": "4", "metadata": {"page_label": "8", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "69ba4008c1ebae2b1943fc7f3d5b1b9b514e143fdf5e9ae618e25c6360d4e893", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "d2ef04de-98cf-4aa5-9d99-7204b009cee9", "node_type": "1", "metadata": {}, "hash": "d1c4a5b1b1f04e522ad8a1d82e86eaf34eeb95cb0fe8d7732b1655a91a283286", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 8\n11 The respondent initially charged petitioner in his complaint filed April 15, 1968, with discrimination because of his\n\u2018involvement in civil rights activities.\u2019 App. 7, 8. In his amended complaint, filed March 20, 1969, plaintiff broadened\nhis charge to include denial of employment because of race in violation of s 703(a)(1). App. 27.\n12 See original opinion of the majority of the panel which heard the case, 463 F.2d, at 338; the concurring opinion of Judge\nLay, id., at 344; the first opinion of Judge Johnsen, dissenting in part, id., at 346; the revised opinion of the majority,\nid., at 352; and the supplemental dissent of Judge Johnsen, id., at 353. A petition for rehearing en banc was denied by\nan evenly divided Court of Appeals.\n13 The facts necessarily will vary in Title VII cases, and the specification above of the prima facie proof required from\nrespondent is not necessarily applicable in every respect to differing factual situations.\n14 We note that the issue of what may properly be used to test qualifications for employment is not present in this case.\nWhere employers have instituted employment tests and qualifications with an exclusionary effect on minority applicants,\nsuch requirements must be \u2018shown to bear a demonstrable relationship to successful performance of the jobs' for which\nthey were used, Griggs v. Duke Power Co., 401 U.S. 424, 431, 91 S.Ct. 849, 853, 28 L.Ed.2d 158 (1971) . Castro v.\nBeecher, 459 F.2d 725 (CA1 1972); Chance v. Board of Examiners, 458 F.2d 1167 (CA2 1972).\n15 Tr. of Oral Arg. 3; 463 F.2d, at 353.\n16 The trial judge noted that no personal injury or property damage resulted from the \u2018stall-in\u2019 due \u2018solely to the fact that\nlaw enforcement officials had obtained notice in advance of plaintiff's (here respondent's) demonstration and were at\nthe scene to remove plaintiff's car from the highway.\u2019 318 F.Supp. 846, 851.\n17 The unlawful activity in this case was directed specifically against petitioner. We need not consider or decide here\nwhether, or under what circumstances, unlawful activity not directed against the particular employer may be a legitimate\njustification for refusing to hire.\n18 We are aware that some of the above factors were, indeed, considered by the District Judge in finding under s 704(a),\nthat \u2018defendant's (here petitioner's) reasons for refusing to rehire the plaintiff were motivated solely and simply by the\nplaintiff's participation in the \u2018stall in\u2019 and \u2018lock in\u2019 demonstrations.' 318 F.Supp., at 850. We do not intimate that this\nfinding must be overturned after consideration on remand of respondent's s 703(a)(1) claim. We do, however, insist\nthat respondent under s 703(a)(1) must be given a full and fair opportunity to demonstrate by competent evidence that\nwhatever the stated reasons for his rejection, the decision was in reality racially premised.\n19 The District Court may, for example, determine, after reasonable discovery that \u2018the (racial) composition of defendant's\nlabor force is itself reflective of restrictive or exclusionary practices.\u2019 See Blumrosen, supra, at 92. We caution that\nsuch general determinations, while helpful, may not be in and of themselves controlling as to an individualized hiring\ndecision, particularly in the presence of an otherwise justifiable reason for refusing to rehire. See generally United States\nv. Bethlehem Steel Corp., 312 F.Supp. 977, 992 (WDNY 1970), order modified, 446 F.2d 652 (CA2 1971). Blumrosen,\nsupra, n. 19, at 93.\n20 See 463 F.2d, at 352.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3705, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d2ef04de-98cf-4aa5-9d99-7204b009cee9": {"__data__": {"id_": "d2ef04de-98cf-4aa5-9d99-7204b009cee9", "embedding": null, "metadata": {"page_label": "8", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6d23082c-9e48-4378-a24b-3cbe39a15041", "node_type": "4", "metadata": {"page_label": "8", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "69ba4008c1ebae2b1943fc7f3d5b1b9b514e143fdf5e9ae618e25c6360d4e893", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "21eac55a-578a-430a-90da-231187312fd1", "node_type": "1", "metadata": {"page_label": "8", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2965a4aadbdc90c4faf4a69a37ec19e4ca0054f09c7699d925ae4e7ea8786b80", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "19 The District Court may, for example, determine, after reasonable discovery that \u2018the (racial) composition of defendant's\nlabor force is itself reflective of restrictive or exclusionary practices.\u2019 See Blumrosen, supra, at 92. We caution that\nsuch general determinations, while helpful, may not be in and of themselves controlling as to an individualized hiring\ndecision, particularly in the presence of an otherwise justifiable reason for refusing to rehire. See generally United States\nv. Bethlehem Steel Corp., 312 F.Supp. 977, 992 (WDNY 1970), order modified, 446 F.2d 652 (CA2 1971). Blumrosen,\nsupra, n. 19, at 93.\n20 See 463 F.2d, at 352.\n21 It is, of course, a predictive evaluation, resistant to empirical proof, whether \u2018an applicant's past participation in\nunlawful conduct directed at his prospective employer might indicate the applicant's lack of a responsible attitude toward\nperforming work for that employer.\u2019 463 F.2d, at 353. But in this case, given the seriousness and harmful potential of\nrespondent's participation in the \u2018stall-in\u2019 and the accompanying inconvenience to other employees, it cannot be said\nthat petitioner's refusal to employ lacked a rational and neutral business justification. As the Court has noted elsewhere:\n'Past conduct may well relate to present fitness; past loyalty may have a reasonable relationship to present and future\ntrust.' Garner v. Board of Public Works of Los Angeles, 341 U.S. 716, 720, 71 S.Ct. 909, 912, 95 L.Ed. 1317 (1951).", "mimetype": "text/plain", "start_char_idx": 3058, "end_char_idx": 4547, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9102560e-e5d8-463e-bfc0-b7c96d12f652": {"__data__": {"id_": "9102560e-e5d8-463e-bfc0-b7c96d12f652", "embedding": null, "metadata": {"page_label": "9", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "88614a32-8184-4f48-ae11-180764152229", "node_type": "4", "metadata": {"page_label": "9", "file_name": "McDonnell Douglas Corp v Green.pdf", "file_path": "data/McDonnell Douglas Corp v Green.pdf", "file_type": "application/pdf", "file_size": 206078, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "96d39318a264af5d60aa03aba8422065af0570a78f89c1568a086e40a6bf83c3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "McDonnell Douglas Corp. v. Green, 411 U.S. 792 (1973)\n93 S.Ct. 1817, 5 Fair Empl.Prac.Cas. (BNA) 965, 5 Empl. Prac. Dec. P 8607...\n \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works. 9\nEnd of Document \u00a9 2025 Thomson Reuters. No claim to original U.S. Government Works.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 285, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8d71cfd9-fd97-4903-9348-1a10504cfd3a": {"__data__": {"id_": "8d71cfd9-fd97-4903-9348-1a10504cfd3a", "embedding": null, "metadata": {"page_label": "1", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2a91da54-381f-4894-97ea-b458c5c36b1a", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "7ff958ad88c2c308139e1e04a7b9890301714b7a50761946b601902b8fda4c7b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 1\n88 S.Ct. 1868\nSupreme Court of the United States\nJohn W. TERRY, Petitioner,\nv.\nSTATE OF OHIO.\nNo. 67.\n|\nArgued Dec. 12, 1967.\n|\nDecided June 10, 1968.\nSynopsis\nProsecution for carrying concealed weapon. The Court of Common Pleas of Cuyahoga County, Ohio, overruled pretrial motion\nto suppress and rendered judgment, and defendant appealed. The Court of Appeals for the Eighth Judicial District, 5 Ohio\nApp.2d 122, 214 N.E.2d 114, affirmed, the Ohio Supreme Court dismissed an appeal on ground that no substantial constitutional\nquestion was involved, and certiorari was granted. The Supreme Court, Mr. Chief Justice Warren, held that police officer who\nobserved conduct by defendant and another consistent with hypothesis that they were contemplating daylight robbery, and\nwho approached, identified himself as officer, and asked their names, acted reasonably, when nothing appeared to dispel his\nreasonable belief of their intent, in seizing defendant in order to search him for weapons, and did not exceed reasonable scope\nof search in patting down outer clothing of defendants without placing his hands in their pockets or under outer surface of\ngarments until he had felt weapons, and then merely reached for and removed guns.\nAffirmed.\nMr. Justice Douglas dissented.\nAttorneys and Law Firms\n**1871 *4 Louis Stokes, Cleveland, Ohio, for petitioner.\nReuben M. Payne, Cleveland, Ohio, for respondent.\nOpinion\nMr. Chief Justice WARREN delivered the opinion of the Court.\nThis case presents serious questions concerning the role of the Fourth Amendment in the confrontation on the street between\nthe citizen and the policeman investigating suspicious circumstances.\nPetitioner Terry was convicted of carrying a concealed weapon and sentenced to the statutorily prescribed term of one to three\nyears in the penitentiary.1 Following *5 the denial of a pretrial motion to suppress, the prosecution introduced in evidence two\nrevolvers and a number of bullets seized from Terry and a codefendant, Richard Chilton,2 by Cleveland Police Detective Martin\nMcFadden. At the hearing on the motion to suppress this evidence, Officer McFadden testified that while he was patrolling in\nplain clothes in downtown Cleveland at approximately 2:30 in the afternoon of October 31, 1963, his attention was attracted by\ntwo men, Chilton and Terry, standing on the corner of Huron Road and Euclid Avenue. He had never seen the two men before,\nand he was unable to say precisely what first drew his eye to them. However, he testified that he had been a policeman for 39\nyears and a detective for 35 and that he had been assigned to patrol this vicinity of downtown Cleveland for shoplifters and", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2826, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cbd168f6-c9a3-4b8d-9da2-db955f0eaac2": {"__data__": {"id_": "cbd168f6-c9a3-4b8d-9da2-db955f0eaac2", "embedding": null, "metadata": {"page_label": "2", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a7b92871-3627-4688-a750-8fe0e24d44ee", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2f15d7656de2e341097fdf3a4d92e84862adb2511a8f79c98bd0f2d264c8335e", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "5eb32720-b4e4-4506-9086-ae96314faeda", "node_type": "1", "metadata": {}, "hash": "b779ff1a598a251f95ce3c17694f94c5d34da4e0fb98b745746f0363a760569a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 2\npickpockets for 30 years. He explained that he had developed routine habits of observation over the years and that he would\n\u2018stand and watch people or walk and watch people at many intervals of the day.\u2019 He added: \u2018Now, in this case when I looked\nover they didn't look right to me at the time.\u2019\nHis interest aroused, Officer McFadden took up a post of observation in the **1872 entrance to a store 300 to 400 feet *6\naway from the two men. \u2018I get more purpose to watch them when I seen their movements,\u2019 he testified. He saw one of the men\nleave the other one and walk southwest on Huron Road, past some stores. The man paused for a moment and looked in a store\nwindow, then walked on a short distance, turned around and walked back toward the corner, pausing once again to look in the\nsame store window. He rejoined his companion at the corner, and the two conferred briefly. Then the second man went through\nthe same series of motions, strolling down Huron Road, looking in the same window, walking on a short distance, turning back,\npeering in the store window again, and returning to confer with the first man at the corner. The two men repeated this ritual\nalternately between five and six times apiece\u2014in all, roughly a dozen trips. At one point, while the two were standing together\non the corner, a third man approached them and engaged them briefly in conversation. This man then left the two others and\nwalked west on Euclid Avenue. Chilton and Terry resumed their measured pacing, peering and conferring. After this had gone\non for 10 to 12 minutes, the two men walked off together, heading west on Euclid Avenue, following the path taken earlier\nby the third man.\nBy this time Officer McFadden had become thoroughly suspicious. He testified that after observing their elaborately casual\nand oft-repeated reconnaissance of the store window on Huron Road, he suspected the two men of \u2018casing a job, a stick-up,\u2019\nand that he considered it his duty as a police officer to investigate further. He added that he feared \u2018they may have a gun.\u2019\nThus, Officer McFadden followed Chilton and Terry and saw them stop in front of Zucker's store to talk to the same man who\nhad conferred with them earlier on the street corner. Deciding that the situation was ripe for direct action, Officer McFadden\napproached the three men, identified *7 himself as a police officer and asked for their names. At this point his knowledge was\nconfined to what he had observed. He was not acquainted with any of the three men by name or by sight, and he had received no\ninformation concerning them from any other source. When the men \u2018mumbled something\u2019 in response to his inquiries, Officer\nMcFadden grabbed petitioner Terry, spun him around so that they were facing the other two, with Terry between McFadden\nand the others, and patted down the outside of his clothing. In the left breast pocket of Terry's overcoat Officer McFadden\nfelt a pistol. He reached inside the overcoat pocket, but was unable to remove the gun. At this point, keeping Terry between\nhimself and the others, the officer ordered all three men to enter Zucker's store. As they went in, he removed Terry's overcoat\ncompletely, removed a .38-caliber revolver from the pocket and ordered all three men to face the wall with their hands raised.\nOfficer McFadden proceeded to pat down the outer clothing of Chilton and the third man, Katz. He discovered another revolver\nin the outer pocket of Chilton's overcoat, but no weapons were found on Katz. The officer testified that he only patted the men\ndown to see whether they had weapons, and that he did not put his hands beneath the outer garments of either Terry or Chilton\nuntil he felt their guns. So far as appears from the record, he never placed his hands beneath Katz' outer garments. Officer\nMcFadden seized Chilton's gun, asked the proprietor of the store to call a police wagon, and took all three men to the station,\nwhere Chilton and Terry were formally charged with carrying concealed weapons.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4157, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5eb32720-b4e4-4506-9086-ae96314faeda": {"__data__": {"id_": "5eb32720-b4e4-4506-9086-ae96314faeda", "embedding": null, "metadata": {"page_label": "2", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a7b92871-3627-4688-a750-8fe0e24d44ee", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2f15d7656de2e341097fdf3a4d92e84862adb2511a8f79c98bd0f2d264c8335e", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "cbd168f6-c9a3-4b8d-9da2-db955f0eaac2", "node_type": "1", "metadata": {"page_label": "2", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "e3aab2eff0125e91871a3459e20f75f98f2b1b9b054637353a527a60e2e3c6dd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "As they went in, he removed Terry's overcoat\ncompletely, removed a .38-caliber revolver from the pocket and ordered all three men to face the wall with their hands raised.\nOfficer McFadden proceeded to pat down the outer clothing of Chilton and the third man, Katz. He discovered another revolver\nin the outer pocket of Chilton's overcoat, but no weapons were found on Katz. The officer testified that he only patted the men\ndown to see whether they had weapons, and that he did not put his hands beneath the outer garments of either Terry or Chilton\nuntil he felt their guns. So far as appears from the record, he never placed his hands beneath Katz' outer garments. Officer\nMcFadden seized Chilton's gun, asked the proprietor of the store to call a police wagon, and took all three men to the station,\nwhere Chilton and Terry were formally charged with carrying concealed weapons.\nOn the motion to suppress the guns the prosecution took the position that they had been seized following a search incident to a\nlawful arrest. The trial court rejected this theory, stating that it \u2018would be stretching the facts beyond reasonable comprehension\u2019\nto find that Officer *8 McFadden had had probable **1873 cause to arrest the men before he patted them down for weapons.\nHowever, the court denied the defendants' motion on the ground that Officer McFadden, on the basis of his experience, \u2018had\nreasonable cause to believe * * * that the defendants were conducting themselves suspiciously, and some interrogation should\nbe made of their action.\u2019 Purely for his own protection, the court held, the officer had the right to pat down the outer clothing\nof these men, who he had reasonable cause to believe might be armed. The court distinguished between an investigatory \u2018stop\u2019\nand an arrest, and between a \u2018frisk\u2019 of the outer clothing for weapons and a full-blown search for evidence of crime. The frisk, it\nheld, was essential to the proper performance of the officer's investigatory duties, for without it \u2018the answer to the police officer\nmay be a bullet, and a loaded pistol discovered during the frisk is admissible.\u2019\n After the court denied their motion to suppress, Chilton and Terry waived jury trial and pleaded not guilty. The court adjudged\nthem guilty, and the Court of Appeals for the Eighth Judicial District, Cuyahoga County, affirmed. State v. Terry, 5 Ohio App.2d\n122, 214 N.E.2d 114 (1966). The Supreme Court of Ohio dismissed their appeal on the ground that no \u2018substantial constitutional", "mimetype": "text/plain", "start_char_idx": 3275, "end_char_idx": 5776, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e6219b3f-a39d-47ec-b656-d0595c64f767": {"__data__": {"id_": "e6219b3f-a39d-47ec-b656-d0595c64f767", "embedding": null, "metadata": {"page_label": "3", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a8ba3f7f-97c8-4106-93d2-62463652285c", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "be48686dda74feb83b5b6a9aa46afde076eb0af0307eb6fce971eb33d1a79297", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "28f28f8f-159d-4d75-b827-f3e408c73fc6", "node_type": "1", "metadata": {}, "hash": "0cfe37dcc4680642415c79c5872d24b6d503184fa246f3ef2c681c59e77c3095", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 3\nquestion\u2019 was involved. We granted certiorari, 387 U.S. 929, 87 S.Ct. 2050, 18 L.Ed.2d 989 (1967) , to determine whether the\nadmission of the revolvers in evidence violated petitioner's rights under the Fourth Amendment, made applicable to the States\nby the Fourteenth. Mapp v. Ohio, 367 U.S. 643, 81 S.Ct. 1684, 6 L.Ed.2d 1081 (1961). We affirm the conviction.\nI.\n The Fourth Amendment provides that \u2018the right of the people to be secure in their persons, houses, papers, and effects, against\nunreasonable searches and seizures, shall not be violated * * *.\u2019 This inestimable right of *9 personal security belongs as\nmuch to the citizen on the streets of our cities as to the homeowner closeted in his study to dispose of his secret affairs. For,\nas this Court has always recognized,\n\u2018No right is held more sacred, or is more carefully guarded, by the common law, than the right of every individual to the\npossession and control of his own person, free from all restraint or interference of others, unless by clear and unquestionable\nauthority of law.\u2019 Union Pac. R. Co. v. Botsford, 141 U.S. 250, 251, 11 S.Ct. 1000, 1001, 35 L.Ed. 734 (1891).\nWe have recently held that \u2018the Fourth Amendment protects people, not places,\u2019 Katz v. United States, 389 U.S. 347, 351, 88\nS.Ct. 507, 511, 19 L.Ed.2d 576 (1967), and wherever an individual may harbor a reasonable \u2018expectation of privacy,\u2019 id., at 361,\n88 S.Ct. at 507, (Mr. Justice Harlan, concurring), he is entitled to be free from unreasonable governmental intrusion. Of course,\nthe specific content and incidents of this right must be shaped by the context in which it is asserted. For \u2018what the Constitution\nforbids is not all searches and seizures, but unreasonable searches and seizures.\u2019 Elkins v. United States, 364 U.S. 206, 222, 80\nS.Ct. 1437, 1446, 4 L.Ed.2d 1669 (1960). Unquestionably petitioner was entitled to the protection of the Fourth Amendment as\nhe walked down the street in Cleveland. Beck v. State of Ohio, 379 U.S. 89, 85 S.Ct. 223, 13 L.Ed.2d 142 (1964); Rios v. United\nStates, 364 U.S. 253, 80 S.Ct. 1431, 4 L.Ed.2d 1688 (1960); Henry v. United States, 361 U.S. 98, 80 S.Ct. 168, 4 L.Ed.2d 134\n(1959); United States v. Di Re, 332 U.S. 581, 68 S.Ct. 222, 92 L.Ed. 210 (1948) ; Carroll v. United States, 267 U.S. 132, 45\nS.Ct. 280, 69 L.Ed. 543 (1925) . The question is whether in all the circumstances of this on-the-street encounter, his right to\npersonal security was violated by an unreasonable search and seizure.\n**1874 We would be less than candid if we did not acknowledge that this question thrusts to the fore difficult and troublesome\nissues regarding a sensitive area of police activity\u2014issues which have never before been squarely *10 presented to this Court.\nReflective of the tensions involved are the practical and constitutional arguments pressed with great vigor on both sides of the\npublic debate over the power of the police to \u2018stop and frisk\u2019 \u2014as it is sometimes euphemistically termed\u2014suspicious persons.\nOn the one hand, it is frequently argued that in dealing with the rapidly unfolding and often dangerous situations on city streets\nthe police are in need of an escalating set of flexible responses, graduated in relation to the amount of information they possess.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3414, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "28f28f8f-159d-4d75-b827-f3e408c73fc6": {"__data__": {"id_": "28f28f8f-159d-4d75-b827-f3e408c73fc6", "embedding": null, "metadata": {"page_label": "3", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a8ba3f7f-97c8-4106-93d2-62463652285c", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "be48686dda74feb83b5b6a9aa46afde076eb0af0307eb6fce971eb33d1a79297", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "e6219b3f-a39d-47ec-b656-d0595c64f767", "node_type": "1", "metadata": {"page_label": "3", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "d6bf63eb2723a8ad40e66f9ca35cd74de726c38ff247925cdaba2adfd5c09d6b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "280, 69 L.Ed. 543 (1925) . The question is whether in all the circumstances of this on-the-street encounter, his right to\npersonal security was violated by an unreasonable search and seizure.\n**1874 We would be less than candid if we did not acknowledge that this question thrusts to the fore difficult and troublesome\nissues regarding a sensitive area of police activity\u2014issues which have never before been squarely *10 presented to this Court.\nReflective of the tensions involved are the practical and constitutional arguments pressed with great vigor on both sides of the\npublic debate over the power of the police to \u2018stop and frisk\u2019 \u2014as it is sometimes euphemistically termed\u2014suspicious persons.\nOn the one hand, it is frequently argued that in dealing with the rapidly unfolding and often dangerous situations on city streets\nthe police are in need of an escalating set of flexible responses, graduated in relation to the amount of information they possess.\nFor this purpose it is urged that distinctions should be made between a \u2018stop\u2019 and an \u2018arrest\u2019 (or a \u2018seizure\u2019 of a person), and\nbetween a \u2018frisk\u2019 and a \u2018search.' 3 Thus, it is argued, the police should be allowed to \u2018stop\u2019 a person and detain him briefly for\nquestioning upon suspicion that he may be connected with criminal activity. Upon suspicion that the person may be armed, the\npolice should have the power to \u2018frisk\u2019 him for weapons. If the \u2018stop\u2019 and the \u2018frisk\u2019 give rise to probable cause to believe that\nthe suspect has committed a crime, then the police should be empowered to make a formal \u2018arrest,\u2019 and a full incident \u2018search\u2019\nof the person. This scheme is justified in part upon the notion that a \u2018stop\u2019 and a \u2018frisk\u2019 amount to a mere \u2018minor inconvenience\nand petty indignity,'4 which can properly be imposed upon the *11 citizen in the interest of effective law enforcement on the\nbasis of a police officer's suspicion. 5\nOn the other side the argument is made that the authority of the police must be strictly circumscribed by the law of arrest and\nsearch as it has developed to date in the traditional jurisprudence of the Fourth Amendment. 6 It is contended with some force\nthat there is not\u2014and cannot be\u2014a variety of police activity which does not depend solely upon the voluntary cooperation of\nthe citizen and yet which stops short of an arrest based upon probable cause to make such an arrest. The heart of the Fourth", "mimetype": "text/plain", "start_char_idx": 2449, "end_char_idx": 4862, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fdd1e672-d277-408d-ad45-52719f5e0e7e": {"__data__": {"id_": "fdd1e672-d277-408d-ad45-52719f5e0e7e", "embedding": null, "metadata": {"page_label": "4", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "612a845b-fabc-4238-a395-b86c20516992", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c42bc3a4a9cb924c14db14625f4de46b961148c5265ccad7472b4d945b4c8575", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "89d00011-1f90-4292-ba4d-4b034f1720e5", "node_type": "1", "metadata": {}, "hash": "396a01e86e0a38f372a3d977eae835bce9d8dba80f6fe1dbaf5aee0e7a4aa4d9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 4\nAmendment, the argument **1875 runs, is a severe requirement of specific justification for any intrusion upon protected\npersonal security, coupled with a highly developed system of judicial controls to enforce upon the agents of the State the\ncommands of the Constitution. Acquiescence by the courts in the compulsion inherent *12 in the field interrogation practices\nat issue here, it is urged, would constitute an abdication of judicial control over, and indeed an encouragement of, substantial\ninterference with liberty and personal security by police officers whose judgment is necessarily colored by their primary\ninvolvement in \u2018the often competitive enterprise of ferreting out crime.\u2019 Johnson v. United States, 333 U.S. 10, 14, 68 S.Ct. 367,\n369, 92 L.Ed. 436 (1948) . This, it is argued, can only serve to exacerbate police-community tensions in the crowded centers\nof our Nation's cities. 7\n In this context we approach the issues in this case mindful of the limitations of the judicial function in controlling the myriad\ndaily situations in which policemen and citizens confront each other on the street. The State has characterized the issue here\nas \u2018the right of a police officer * * * to make an on-the-street stop, interrogate and pat down for weapons (known in street\nvernacular as \u2018stop and frisk\u2019).'8 But this is only partly accurate. For the issue is not the abstract propriety of the police conduct,\nbut the admissibility against petitioner of the evidence uncovered by the search and seizure. Ever since its inception, the rule\nexcluding evidence seized in violation of the Fourth Amendment has been recognized as a principal mode of discouraging\nlawless police conduct. See Weeks v. United States, 232 U.S. 383, 391\u2014393, 34 S.Ct. 341, 344, 58 L.Ed. 652 (1914). Thus its\nmajor thrust is a deterrent one, see Linkletter v. Walker, 381 U.S. 618, 629\u2014635, 85 S.Ct. 1731, 1741, 14 L.Ed.2d 601 (1965),\nand experience has taught that it is the only effective deterrent to police misconduct in the criminal context, and that without\nit the constitutional guarantee against unreasonable searches and seizures would be a mere \u2018form of words.\u2019 Mapp v. Ohio,\n367 U.S. 643, 655, 81 S.Ct. 1684, 1692, 6 L.Ed.2d 1081 (1961) . The rule also serves another vital function\u2014\u2018the imperative\nof judicial integrity.\u2019 *13 Elkins v. United States, 364 U.S. 206, 222, 80 S.Ct. 1437, 1447, 4 L.Ed.2d 1669 (1960) . Courts\nwhich sit under our Constitution cannot and will not be made party to lawless invasions of the constitutional rights of citizens\nby permitting unhindered governmental use of the fruits of such invasions. Thus in our system evidentiary rulings provide\nthe context in which the judicial process of inclusion and exclusion approves some conduct as comporting with constitutional\nguarantees and disapproves other actions by state agents. A ruling admitting evidence in a criminal trial, we recognize, has\nthe necessary effect of legitimizing the conduct which produced the evidence, while an application of the exclusionary rule\nwithholds the constitutional imprimatur.\n The exclusionary rule has its limitations, however, as a tool of judicial control. It cannot properly be invoked to exclude\nthe products of legitimate police investigative techniques on the ground that much conduct which is closely similar involves\nunwarranted intrusions upon constitutional protections. Moreover, in some contexts the rule is ineffective as a deterrent. Street\nencounters between citizens and police officers are incredibly rich in diversity. They range from wholly friendly exchanges\nof pleasantries or mutually useful information to hostile confrontations of armed men involving arrests, or injuries, or loss of\nlife. Moreover, hostile confrontations are not all of a piece. Some of them begin in a friendly enough manner, only to take a\n**1876 different turn upon the injection of some unexpected element into the conversation.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4086, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "89d00011-1f90-4292-ba4d-4b034f1720e5": {"__data__": {"id_": "89d00011-1f90-4292-ba4d-4b034f1720e5", "embedding": null, "metadata": {"page_label": "4", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "612a845b-fabc-4238-a395-b86c20516992", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "c42bc3a4a9cb924c14db14625f4de46b961148c5265ccad7472b4d945b4c8575", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "fdd1e672-d277-408d-ad45-52719f5e0e7e", "node_type": "1", "metadata": {"page_label": "4", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "0d00c4e918c4b6e449f4cfcdb7813e6200943d220ba7d2be6c90006e6899515a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "The exclusionary rule has its limitations, however, as a tool of judicial control. It cannot properly be invoked to exclude\nthe products of legitimate police investigative techniques on the ground that much conduct which is closely similar involves\nunwarranted intrusions upon constitutional protections. Moreover, in some contexts the rule is ineffective as a deterrent. Street\nencounters between citizens and police officers are incredibly rich in diversity. They range from wholly friendly exchanges\nof pleasantries or mutually useful information to hostile confrontations of armed men involving arrests, or injuries, or loss of\nlife. Moreover, hostile confrontations are not all of a piece. Some of them begin in a friendly enough manner, only to take a\n**1876 different turn upon the injection of some unexpected element into the conversation. Encounters are initiated by the\npolice for a wide variety of purposes, some of which are wholly unrelated to a desire to prosecute for crime.9 Doubtless some\n*14 police \u2018field interrogation\u2019 conduct violates the Fourth Amendment. But a stern refusal by this Court to condone such\nactivity does not necessarily render it responsive to the exclusionary rule. Regardless of how effective the rule may be where\nobtaining convictions is an important objective of the police,10 it is powerless to deter invasions of constitutionally guaranteed\nrights where the police either have no interest in prosecuting or are willing to forgo successful prosecution in the interest of\nserving some other goal.\n Proper adjudication of cases in which the exclusionary rule is invoked demands a constant awareness of these limitations. The\nwholesale harassment by certain elements of the police community, of which minority groups, particularly Negroes, frequently\ncomplain, 11 will not be *15 stopped by the exclusion of any evidence from any criminal trial. Yet a rigid and unthinking\napplication of the exclusionary rule, in futile protest against practices which it can never be used effectively to control, may\nexact a high toll in human injury and frustration of efforts to prevent crime. No judicial opinion can comprehend the protean\nvariety of the street encounter, and we can only judge the facts of the case before us. Nothing we say today is to be taken as\nindicating approval of police conduct outside the legitimate investigative sphere. Under our decision, courts still retain their", "mimetype": "text/plain", "start_char_idx": 3237, "end_char_idx": 5668, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "7235da4c-0272-4eb0-b465-882be9aa2d95": {"__data__": {"id_": "7235da4c-0272-4eb0-b465-882be9aa2d95", "embedding": null, "metadata": {"page_label": "5", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a72b1dc2-a328-4e4d-8e83-aaaf6818bffb", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1746990f005eef07c49e6f902853a4037fb079d844099dd7ebfbedef01dd2716", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "cf1a041a-56c2-40b8-a0db-bdcce0f4dffe", "node_type": "1", "metadata": {}, "hash": "7daec21d98946329af8ca253d7388a55d4a952e165c7d7fc2f5ec2ee4bc825f8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 5\ntraditional responsibility to guard against police conduct which is over-bearing or harassing, or which trenches upon personal\nsecurity without the objective evidentiary justification which the Constitution requires. When such conduct is identified, it must\nbe condemned by the judiciary and its fruits must be excluded from evidence in criminal trials. And, of course, our approval\nof legitimate and restrained investigative conduct undertaken **1877 on the basis of ample factual justification should in no\nway discourage the employment of other remedies than the exclusionary rule to curtail abuses for which that sanction may\nprove inappropriate.\nHaving thus roughly sketched the perimeters of the constitutional debate over the limits on police investigative conduct in\ngeneral and the background against which this case presents itself, we turn our attention to the quite narrow question posed\nby the facts before us: whether it is always unreasonable for a policeman to seize a person and subject him to a limited search\nfor weapons unless there is probable cause for an arrest. *16 Given the narrowness of this question, we have no occasion\nto canvass in detail the constitutional limitations upon the scope of a policeman's power when he confronts a citizen without\nprobable cause to arrest him.\nII.\n Our first task is to establish at what point in this encounter the Fourth Amendment becomes relevant. That is, we must decide\nwhether and when Officer McFadden \u2018seized\u2019 Terry and whether and when he conducted a \u2018search.\u2019 There is some suggestion\nin the use of such terms as \u2018stop\u2019 and \u2018frisk\u2019 that such police conduct is outside the purview of the Fourth Amendment because\nneither action rises to the level of a \u2018search\u2019 or \u2018seizure\u2019 within the meaning of the Constitution. 12 We emphatically reject\nthis notion. It is quite plain that the Fourth Amendment governs \u2018seizures' of the person which do not eventuate in a trip to\nthe station house and prosecution for crime\u2014\u2018arrests' in traditional terminology. It must be recognized that whenever a police\nofficer accosts an individual and restrains his freedom to walk away, he has \u2018seized\u2019 that person. And it is nothing less than\nsheer torture of the English language to suggest that a careful exploration of the outer surfaces of a person's clothing all over\nhis or her body in an attempt to find weapons is not a \u2018search,\u2019 Moreover, it is simply fantastic to urge that such a procedure\n*17 performed in public by a policeman while the citizen stands helpless, perhaps facing a wall with his hands raised, is a\n\u2018petty indignity.'13 It is a serious intrusion upon the sanctity of the person, which may inflict great indignity and arouse strong\nresentment, and it is not to be undertaken lightly.14\n The danger in the logic which proceeds upon distinctions between **1878 a \u2018stop\u2019 and an \u2018arrest,\u2019 or \u2018seizure\u2019 of the person,\nand between a \u2018frisk\u2019 and a \u2018search\u2019 is twofold. It seeks to isolate from constitutional scrutiny the initial stages of the contact\nbetween the policeman and the citizen. And by suggesting a rigid all-or-nothing model of justification and regulation under\nthe Amendment, it obscures the utility of limitations upon the scope, as well as the initiation, of police action as a means of\nconstitutional regulation. 15 This Court has held in *18 the past that a search which is reasonable at its inception may violate\nthe Fourth Amendment by virtue of its intolerable intensity and scope. Kremen v. United States, 353 U.S. 346, 77 S.Ct. 828,\n1 L.Ed.2d 876 (1957) ; *19 Go-Bart Importing Co. v. United States, 282 U.S. 344, 356\u2014358, 51 S.Ct. 153, 158, 75 L.Ed.\n374 (1931); see United States v. Di Re, 332 U.S. 581, 586\u2014587, 68 S.Ct. 222, 225, 92 L.Ed. 210 (1948) . The scope of the\nsearch must be \u2018strictly tied to and justified by\u2019 the circumstances which rendered its initiation permissible. Warden v. Hayden,\n387 U.S. 294, 310, 87 S.Ct. 1642, 1652 (1967) (Mr.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4100, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cf1a041a-56c2-40b8-a0db-bdcce0f4dffe": {"__data__": {"id_": "cf1a041a-56c2-40b8-a0db-bdcce0f4dffe", "embedding": null, "metadata": {"page_label": "5", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a72b1dc2-a328-4e4d-8e83-aaaf6818bffb", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1746990f005eef07c49e6f902853a4037fb079d844099dd7ebfbedef01dd2716", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "7235da4c-0272-4eb0-b465-882be9aa2d95", "node_type": "1", "metadata": {"page_label": "5", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a098f3dd4b4e52629fbe43a3d280523eeebb280073b3cb8b200eec96b22a9065", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Kremen v. United States, 353 U.S. 346, 77 S.Ct. 828,\n1 L.Ed.2d 876 (1957) ; *19 Go-Bart Importing Co. v. United States, 282 U.S. 344, 356\u2014358, 51 S.Ct. 153, 158, 75 L.Ed.\n374 (1931); see United States v. Di Re, 332 U.S. 581, 586\u2014587, 68 S.Ct. 222, 225, 92 L.Ed. 210 (1948) . The scope of the\nsearch must be \u2018strictly tied to and justified by\u2019 the circumstances which rendered its initiation permissible. Warden v. Hayden,\n387 U.S. 294, 310, 87 S.Ct. 1642, 1652 (1967) (Mr. Justice Fortas, concurring); see e.g., Preston v. United States, 376 U.S.\n364, 367\u2014368, 84 S.Ct. 881, 884, 11 L.Ed.2d 777 (1964) ; Agnello v. United States, 269 U.S. 20, 30\u201431, 46 S.Ct. 4, 6, 70\nL.Ed. 145 (1925).\nThe distinctions of classical \u2018stop-and-frisk\u2019 theory thus serve to divert attention from the central inquiry under the Fourth\nAmendment\u2014the reasonableness in all the circumstances of the particular **1879 governmental invasion of a citizen's\npersonal security. \u2018Search\u2019 and \u2018seizure\u2019 are not talismans. We therefore reject the notions that the Fourth Amendment does\nnot come into play at all as a limitation upon police conduct if the officers stop short of something called a \u2018technical arrest\u2019\nor a \u2018full-blown search.\u2019", "mimetype": "text/plain", "start_char_idx": 3626, "end_char_idx": 4837, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "80ce4ca9-4976-4b8a-9d25-70cfe6782251": {"__data__": {"id_": "80ce4ca9-4976-4b8a-9d25-70cfe6782251", "embedding": null, "metadata": {"page_label": "6", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5d4a065e-9ec3-45d4-b3e2-f46de9b1a88a", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9fc0c1b4bae8df5933b6b1bf01ef615a42d2c8fa2876be12417199fcfe588f79", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "ae9dc2cd-63a4-4d92-994d-3d1970ff66a7", "node_type": "1", "metadata": {}, "hash": "5b538b085d517b74780d121cdca0b961dba5ffa1e32b719fccd70bb3f6470308", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 6\n In this case there can be no question, then, that Officer McFadden \u2018seized\u2019 petitioner and subjected him to a \u2018search\u2019 when he\ntook hold of him and patted down the outer surfaces of his clothing. We must decide whether at that point it was reasonable for\nOfficer McFadden to have interfered with petitioner's personal security as he did. 16 And in determining whether the seizure\nand search were \u2018unreasonable\u2019 our inquiry *20 is a dual one\u2014whether the officer's action was justified at its inception, and\nwhether it was reasonably related in scope to the circumstances which justified the interference in the first place.\nIII.\n If this case involved police conduct subject to the Warrant Clause of the Fourth Amendment, we would have to ascertain whether\n\u2018probable cause\u2019 existed to justify the search and seizure which took place. However, that is not the case. We do not retreat from\nour holdings that the police must, whenever practicable, obtain advance judicial approval of searches and seizures through the\nwarrant procedure, see e.g., Katz v. United States, 389 U.S. 347, 88 S.Ct. 507, 19 L.Ed.2d 576 (1967); Beck v. State of Ohio, 379\nU.S. 89, 96, 85 S.Ct. 223, 228, 13 L.Ed.2d 142 (1964) ; Chapman v. United States, 365 U.S. 610, 81 S.Ct. 776, 5 L.Ed.2d 828\n(1961), or that in most instances failure to comply with the warrant requirement can only be excused by exigent circumstances,\nsee, e.g., Warden v. Hayden, 387 U.S. 294, 87 S.Ct. 1642, 18 L.Ed.2d 782 (1967) (hot pursuit); cf. Preston v. United States,\n376 U.S. 364, 367\u2014368, 84 S.Ct. 881, 884, 11 L.Ed.2d 777 (1964) . But we deal here with an entire rubric of police conduct\n\u2014necessarily swift action predicated upon the on-the-spot observations of the officer on the beat\u2014which historically has not\nbeen, and as a practical matter could not be, subjected to the warrant procedure. Instead, the conduct involved in this case must\nbe tested by the Fourth Amendment's general proscription against unreasonable searches and seizures. 17\nNonetheless, the notions which underlie both the warrant procedure and the requirement of probable cause remain fully relevant\nin this context. In order to assess the reasonableness of Officer McFadden's conduct as a general proposition, it is necessary \u2018first\nto focus upon *21 the governmental interest which allegedly justifies official intrusion upon the constitutionally protected\ninterests of the private citizen,\u2019 for there is \u2018no ready test for determining reasonableness other than by balancing the need to\nsearch (or seize) against the invasion which the search (or seizure) entails.\u2019 **1880 Camara v. Municipal Court, 387 U.S. 523,\n534\u2014535, 536\u2014537, 87 S.Ct. 1727, 1735, 18 L.Ed.2d 930 (1967). And in justifying the particular intrusion the police officer\nmust be able to point to specific and articulable facts which, taken together with rational inferences from those facts, reasonably\nwarrant that intrusion.18 The scheme of the Fourth Amendment becomes meaningful only when it is assured that at some point\nthe conduct of those charged with enforcing the laws can be subjected to the more detached, neutral scrutiny of a judge who\nmust evaluate the reasonableness of a particular search or seizure in light of the particular circumstances.19 And in making that\nassessment it is imperative that the facts be judged against an objective standard: would the facts *22 available to the officer at\nthe moment of the seizure or the search \u2018warrant a man of reasonable caution in the belief\u2019 that the action taken was appropriate?\nCf. Carroll v. United States, 267 U.S. 132, 45 S.Ct. 280, 69 L.Ed. 543 (1925); Beck v. State of Ohio, 379 U.S.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3809, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ae9dc2cd-63a4-4d92-994d-3d1970ff66a7": {"__data__": {"id_": "ae9dc2cd-63a4-4d92-994d-3d1970ff66a7", "embedding": null, "metadata": {"page_label": "6", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5d4a065e-9ec3-45d4-b3e2-f46de9b1a88a", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "9fc0c1b4bae8df5933b6b1bf01ef615a42d2c8fa2876be12417199fcfe588f79", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "80ce4ca9-4976-4b8a-9d25-70cfe6782251", "node_type": "1", "metadata": {"page_label": "6", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ab94099ecb2b93388ea00e9fdc41f44a7d3020ae7207016f064c4869059b03c5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Cf. Carroll v. United States, 267 U.S. 132, 45 S.Ct. 280, 69 L.Ed. 543 (1925); Beck v. State of Ohio, 379 U.S. 89, 96\u201497, 85\nS.Ct. 223, 229, 13 L.Ed.2d 142 (1964). 20 Anything less would invite intrusions upon constitutionally guaranteed rights based\non nothing more substantial than inarticulate hunches, a result this Court has consistently refused to sanction. See, e.g., Beck v.\nOhio, supra; Rios v. United States, 364 U.S. 253, 80 S.Ct. 1431, 4 L.Ed.2d 1688 (1960); Henry v. United States, 361 U.S. 98,\n80 S.Ct. 168, 4 L.Ed.2d 134 (1959). And simple \u201cgood faith on the part of the arresting officer is not enough.' * * * If subjective\ngood faith alone were the test, the protections of the Fourth Amendment would evaporate, and the people would be \u2018secure in\ntheir persons, houses, papers and effects,\u2019 only in the discretion of the police.' Beck v. Ohio, supra, at 97, 85 S.Ct. at 229.\n Applying these principles to this case, we consider first the nature and extent of the governmental interests involved. One\ngeneral interest is of course that of effective crime prevention and detection; it is this interest which underlies the recognition that\na police officer may in appropriate circumstances and in an appropriate manner approach a person for purposes of investigating\npossibly criminal behavior even though there is no probable cause to make an arrest. It was this legitimate investigative function\nOfficer McFadden was discharging when he decided to approach petitioner and his companions. He had observed Terry, Chilton,\nand Katz go Through a series of acts, each of them perhaps innocent **1881 in itself, but which taken together warranted\nfurther investigation. There is nothing unusual in two men standing together on a street corner, perhaps waiting for someone.", "mimetype": "text/plain", "start_char_idx": 3699, "end_char_idx": 5483, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b93b00b6-60e3-436e-9037-93b8c6e35b2d": {"__data__": {"id_": "b93b00b6-60e3-436e-9037-93b8c6e35b2d", "embedding": null, "metadata": {"page_label": "7", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "64c9a836-d307-4a8e-b39e-abff1cbb375f", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b71c799bf275957a1bbb9dc45cb0c5b64d2aa1d760197ac07e9e0b86bf6c79e4", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "48a1ecb3-61c7-4ff3-bdcf-597f22fb5269", "node_type": "1", "metadata": {}, "hash": "6e17f855ebc23c694d1da65c98d304aed02e3ca5efbfb1033a1b31c51620a94c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 7\nNor is there anything suspicious about people *23 in such circumstances strolling up and down the street, singly or in pairs.\nStore windows, moreover, are made to be looked in. But the story is quite different where, as here, two men hover about a street\ncorner for an extended period of time, at the end of which it becomes apparent that they are not waiting for anyone or anything;\nwhere these men pace alternately along an identical route, pausing to stare in the same store window roughly 24 times; where\neach completion of this route is followed immediately by a conference between the two men on the corner; where they are\njoined in one of these conferences by a third man who leaves swiftly; and where the two men finally follow the third and rejoin\nhim a couple of blocks away. It would have been poor police work indeed for an officer of 30 years' experience in the detection\nof thievery from stores in this same neighborhood to have failed to investigate this behavior further.\nThe crux of this case, however, is not the propriety of Officer McFadden's taking steps to investigate petitioner's suspicious\nbehavior, but rather, whether there was justification for McFadden's invasion of Terry's personal security by searching him for\nweapons in the course of that investigation. We are now concerned with more than the governmental interest in investigating\ncrime; in addition, there is the more immediate interest of the police officer in taking steps to assure himself that the person with\nwhom he is dealing is not armed with a weapon that could unexpectedly and fatally be used against him. Certainly it would\nbe unreasonable to require that police officers take unnecessary risks in the performance of their duties. American criminals\nhave a long tradition of armed violence, and every year in this country many law enforcement officers are killed in the line of\nduty, and thousands more are wounded. *24 Virtually all of these deaths and a substantial portion of the injuries are inflicted\nwith guns and knives. 21\nIn view of these facts, we cannot blind ourselves to the need for law enforcement officers to protect themselves and other\nprospective victims of violence in situations where they may lack probable cause for an arrest. When an officer is justified in\nbelieving that the individual whose suspicious behavior he is investigating at close range is armed and presently dangerous to\nthe officer or to others, it would appear to be clearly unreasonable to deny the officer the power to take necessary measures to\ndetermine whether the person is in fact carrying a weapon and to neutralize the threat of physical harm.\nWe must still consider, however, the nature and quality of the intrusion on individual rights which must be accepted if police\nofficers are to be conceded the right to search for weapons in situations where probable cause to arrest for crime is lacking. Even\na limited search of the **1882 outer clothing for weapons constitutes a severe, *25 though brief, intrusion upon cherished\npersonal security, and it must surely be an annoying, frightening, and perhaps humiliating experience. Petitioner contends that\nsuch an intrusion is permissible only incident to a lawful arrest, either for a crime involving the possession of weapons or for a\ncrime the commission of which led the officer to investigate in the first place. However, this argument must be closely examined.\nPetitioner does not argue that a police officer should refrain from making any investigation of suspicious circumstances until\nsuch time as he has probable cause to make an arrest; nor does he deny that police officers in properly discharging their\ninvestigative function may find themselves confronting persons who might well be armed and dangerous. Moreover, he does\nnot say that an officer is always unjustified in searching a suspect to discover weapons. Rather, he says it is unreasonable for the\npoliceman to take that step until such time as the situation evolves to a point where there is probable cause to make an arrest.\nWhen that point has been reached, petitioner would concede the officer's right to conduct a search of the suspect for weapons,\nfruits or instrumentalities of the crime, or \u2018mere\u2019 evidence, incident to the arrest.\n There are two weaknesses in this line of reasoning however. First, it fails to take account of traditional limitations upon the\nscope of searches, and thus recognizes no distinction in purpose, character, and extent between a search incident to an arrest and\na limited search for weapons.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4700, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "48a1ecb3-61c7-4ff3-bdcf-597f22fb5269": {"__data__": {"id_": "48a1ecb3-61c7-4ff3-bdcf-597f22fb5269", "embedding": null, "metadata": {"page_label": "7", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "64c9a836-d307-4a8e-b39e-abff1cbb375f", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b71c799bf275957a1bbb9dc45cb0c5b64d2aa1d760197ac07e9e0b86bf6c79e4", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "b93b00b6-60e3-436e-9037-93b8c6e35b2d", "node_type": "1", "metadata": {"page_label": "7", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a25ff3b1f38e3905baedd14d72e93038daca9261981d3a6281d3df0409e6e618", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Moreover, he does\nnot say that an officer is always unjustified in searching a suspect to discover weapons. Rather, he says it is unreasonable for the\npoliceman to take that step until such time as the situation evolves to a point where there is probable cause to make an arrest.\nWhen that point has been reached, petitioner would concede the officer's right to conduct a search of the suspect for weapons,\nfruits or instrumentalities of the crime, or \u2018mere\u2019 evidence, incident to the arrest.\n There are two weaknesses in this line of reasoning however. First, it fails to take account of traditional limitations upon the\nscope of searches, and thus recognizes no distinction in purpose, character, and extent between a search incident to an arrest and\na limited search for weapons. The former, although justified in part by the acknowledged necessity to protect the arresting officer\nfrom assault with a concealed weapon, Preston v. United States, 376 U.S. 364, 367, 84 S.Ct. 881, 883, 11 L.Ed.2d 777 (1964),\nis also justified on other grounds, ibid., and can therefore involve a relatively extensive exploration of the person. A search for\nweapons in the absence of probable cause to *26 arrest, however, must, like any other search, be strictly circumscribed by\nthe exigencies which justify its initiation. Warden v. Hayden, 387 U.S. 294, 310, 87 S.Ct. 1642, 1652, 18 L.Ed.2d 782 (1967)\n(Mr. Justice Fortas, concurring). Thus it must be limited to that which is necessary for the discovery of weapons which might\nbe used to harm the officer or others nearby, and may realistically be characterized as something less than a \u2018full\u2019 search, even\nthough it remains a serious intrusion.", "mimetype": "text/plain", "start_char_idx": 3918, "end_char_idx": 5603, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8dcdfa34-0e0b-43a2-9ef8-d96e2d71c76b": {"__data__": {"id_": "8dcdfa34-0e0b-43a2-9ef8-d96e2d71c76b", "embedding": null, "metadata": {"page_label": "8", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "91282546-0a72-489f-929d-ef4b3e54c8e5", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a92f647a7ef05964ff3f7fada463975130022603d2e906501bba7a5ec7d2775b", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "2853e472-4f83-47d0-ab61-1ca309b85fdb", "node_type": "1", "metadata": {}, "hash": "cf7c4c392754394a88896e81807fe7577957b686b245dee5df905c7827f54e5d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 8\n A second, and related, objection to petitioner's argument is that it assumes that the law of arrest has already worked out\nthe balance between the particular interests involved here\u2014the neutralization of danger to the policeman in the investigative\ncircumstance and the sanctity of the individual. But this is not so. An arrest is a wholly different kind of intrusion upon individual\nfreedom from a limited search for weapons, and the interests each is designed to serve are likewise quite different. An arrest\nis the initial stage of a criminal prosecution. It is intended to vindicate society's interest in having its laws obeyed, and it is\ninevitably accompanied by future interference with the individual's freedom of movement, whether or not trial or conviction\nultimately follows.22 The protective search for weapons, on the other hand, constitutes a brief, though far from inconsiderable,\nintrusion upon the sanctity of the person. It does not follow that because an officer may lawfully arrest a person only when\nhe is apprised of facts sufficient to warrant a belief that the person has committed or is committing a crime, the officer is\nequally unjustified, absent that kind of evidence, in making any intrusions short of an arrest. Moreover, a perfectly reasonable\napprehension of danger may arise long before the officer is possessed of **1883 adequate information to justify taking a\nperson into custody for *27 the purpose of prosecuting him for a crime. Petitioner's reliance on cases which have worked\nout standards of reasonableness with regard to \u2018seizures' constituting arrests and searches incident thereto is thus misplaced. It\nassumes that the interests sought to be vindicated and the invasions of personal security may be equated in the two cases, and\nthereby ignores a vital aspect of the analysis of the reasonableness of particular types of conduct under the Fourth Amendment.\nSee Camara v. Municipal Court, supra.\n Our evaluation of the proper balance that has to be struck in this type of case leads us to conclude that there must be a narrowly\ndrawn authority to permit a reasonable search for weapons for the protection of the police officer, where he has reason to believe\nthat he is dealing with an armed and dangerous individual, regardless of whether he has probable cause to arrest the individual\nfor a crime. The officer need not be absolutely certain that the individual is armed; the issue is whether a reasonably prudent\nman in the circumstances would be warranted in the belief that his safety or that of others was in danger. Cf. Beck v. State of\nOhio, 379 U.S. 89, 91, 85 S.Ct. 223, 226, 13 L.Ed.2d 142 (1964); Brinegar v. United States, 338 U.S. 160, 174\u2014176, 69 S.Ct.\n1302, 1311, 93 L.Ed. 1879 (1949); Stacey v. Emery, 97 U.S. 642, 645, 24 L.Ed. 1035 (1878). 23 And in determining whether\nthe officer acted reasonably in such circumstances, due weight must be given, not to his inchoate and unparticularized suspicion\nor \u2018hunch,\u2019 but to the specific reasonable inferences which he is entitled to draw from the facts in light of his experience. Cf.\nBrinegar v. United States, supra.\nIV .\n We must now examine the conduct of Officer McFadden in this case to determine whether his search and seizure of petitioner\nwere reasonable, both at their inception *28 and as conducted. He had observed Terry, together with Chilton and another man,\nacting in a manner he took to be preface to a \u2018stick-up.\u2019 We think on the facts and circumstances Officer McFadden detailed\nbefore the trial judge a reasonably prudent man would have been warranted in believing petitioner was armed and thus presented\na threat to the officer's safety while he was investigating his suspicious behavior. The actions of Terry and Chilton were consistent\nwith McFadden's hypothesis that these men were contemplating a daylight robbery\u2014which, it is reasonable to assume, would\nbe likely to involve the use of weapons\u2014and nothing in their conduct from the time he first noticed them until the time he\nconfronted them and identified himself as a police officer gave him sufficient reason to negate that hypothesis.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4277, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2853e472-4f83-47d0-ab61-1ca309b85fdb": {"__data__": {"id_": "2853e472-4f83-47d0-ab61-1ca309b85fdb", "embedding": null, "metadata": {"page_label": "8", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "91282546-0a72-489f-929d-ef4b3e54c8e5", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a92f647a7ef05964ff3f7fada463975130022603d2e906501bba7a5ec7d2775b", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "8dcdfa34-0e0b-43a2-9ef8-d96e2d71c76b", "node_type": "1", "metadata": {"page_label": "8", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "80658ec93eb1d47223193170ca7f1b84999a3d6f6f87aac001538512caf00be1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "We must now examine the conduct of Officer McFadden in this case to determine whether his search and seizure of petitioner\nwere reasonable, both at their inception *28 and as conducted. He had observed Terry, together with Chilton and another man,\nacting in a manner he took to be preface to a \u2018stick-up.\u2019 We think on the facts and circumstances Officer McFadden detailed\nbefore the trial judge a reasonably prudent man would have been warranted in believing petitioner was armed and thus presented\na threat to the officer's safety while he was investigating his suspicious behavior. The actions of Terry and Chilton were consistent\nwith McFadden's hypothesis that these men were contemplating a daylight robbery\u2014which, it is reasonable to assume, would\nbe likely to involve the use of weapons\u2014and nothing in their conduct from the time he first noticed them until the time he\nconfronted them and identified himself as a police officer gave him sufficient reason to negate that hypothesis. Although the\ntrio had departed the original scene, there was nothing to indicate abandonment of an intent to commit a robbery at some point.\nThus, when Officer McFadden approached the three men gathered before the display window at Zucker's store he had observed\nenough to make it quite reasonable to fear that they were armed; and nothing in their response to his hailing them, identifying\nhimself as a police officer, and asking their names served to dispel that reasonable belief. We cannot say his decision at that\npoint to seize Terry and pat his clothing for weapons was the product of a volatile or inventive imagination, or was undertaken\nsimply as an act of harassment; the record evidences the tempered act of a policeman who in the course of an investigation had\nto make a quick decision as to how to protect himself and others from possible danger, and took limited steps to do so.", "mimetype": "text/plain", "start_char_idx": 3287, "end_char_idx": 5171, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2ebc6a39-2e9e-48e1-8959-b337fe52a2e1": {"__data__": {"id_": "2ebc6a39-2e9e-48e1-8959-b337fe52a2e1", "embedding": null, "metadata": {"page_label": "9", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7e30af77-048b-47dc-8fd4-4b116faef929", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6c6d1c2370d471120aa6a8f4388612a9b0814fef07243b9566e5cbc42f6e6bd0", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "ca89f4fb-fdab-4e55-9ef2-ae0095e2f9ec", "node_type": "1", "metadata": {}, "hash": "05755aaf46b100527d62b8ee6cb5e2783ffc35186dbe1caec48dd939bd5018b4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 9\n The manner in which the seizure and search were conducted is, of course, as vital a part of the inquiry as whether they were\nwarranted at all. The Fourth Amendment proceeds as much by limitations upon the *29 scope of governmental **1884 action\nas by imposing preconditions upon its initiation. Compare Katz v. United States, 389 U.S. 347, 354\u2014356, 88 S.Ct. 507, 514, 19\nL.Ed.2d 576 (1967). The entire deterrent purpose of the rule excluding evidence seized in violation of the Fourth Amendment\nrests on the assumption that \u2018limitations upon the fruit to be gathered tend to limit the quest itself.\u2019 United States v. Poller,\n43 F.2d 911, 914, 74 A.L.R. 1382 (C.A.2d Cir. 1930); see, e.g., Linkletter v. Walker, 381 U.S. 618, 629\u2014635, 85 S.Ct. 1731,\n1741, 14 L.Ed.2d 601 (1965); Mapp v. Ohio, 367 U.S. 643, 81 S.Ct. 1684, 6 L.Ed.2d 1081 (1961); Elkins v. United States, 364\nU.S. 206, 216\u2014221, 80 S.Ct. 1437, 1446, 4 L.Ed.2d 1669 (1960) . Thus, evidence may not be introduced if it was discovered\nby means of a seizure and search which were not reasonably related in scope to the justification for their initiation Warden v.\nHayden, 387 U.S. 294, 310, 87 S.Ct. 1642, 1652, 18 L.Ed.2d 782 (1967) (Mr. Justice Fortas, concurring).\n We need not develop at length in this case, however, the limitations which the Fourth Amendment places upon a protective\nseizure and search for weapons. These limitations will have to be developed in the concrete factual circumstances of individual\ncases. See Sibron v. New York, 392 U.S. 40, 88 S.Ct. 1889, 1912, 20 L.Ed.2d 917 decided today. Suffice it to note that such a\nsearch, unlike a search without a warrant incident to a lawful arrest, is not justified by any need to prevent the disappearance or\ndestruction of evidence of crime. See Preston v. United States, 376 U.S. 364, 367, 84 S.Ct. 1642, 1652, 18 L.Ed.2d 782 (1964).\nThe sole justification of the search in the present situation is the protection of the police officer and others nearby, and it must\ntherefore be confined in scope to an intrusion reasonably designed to discover guns, knives, clubs, or other hidden instruments\nfor the assault of the police officer.\n The scope of the search in this case presents no serious problem in light of these standards. Officer McFadden patted down\nthe outer clothing of petitioner and his two companions. He did not place his hands in their pockets or under the outer surface\nof their garments until he had *30 felt weapons, and then he merely reached for and removed the guns. He never did invade\nKatz' person beyond the outer surfaces of his clothes, since he discovered nothing in his patdown which might have been a\nweapon. Officer McFadden confined his search strictly to what was minimally necessary to learn whether the men were armed\nand to disarm them once he discovered the weapons. He did not conduct a general exploratory search for whatever evidence\nof criminal activity he might find.\nV.\n We conclude that the revolver seized from Terry was properly admitted in evidence against him. At the time he seized petitioner\nand searched him for weapons, Officer McFadden had reasonable grounds to believe that petitioner was armed and dangerous,\nand it was necessary for the protection of himself and others to take swift measures to discover the true facts and neutralize the\nthreat of harm if it materialized. The policeman carefully restricted his search to what was appropriate to the discovery of the\nparticular items which he sought.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3637, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca89f4fb-fdab-4e55-9ef2-ae0095e2f9ec": {"__data__": {"id_": "ca89f4fb-fdab-4e55-9ef2-ae0095e2f9ec", "embedding": null, "metadata": {"page_label": "9", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "7e30af77-048b-47dc-8fd4-4b116faef929", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "6c6d1c2370d471120aa6a8f4388612a9b0814fef07243b9566e5cbc42f6e6bd0", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "2ebc6a39-2e9e-48e1-8959-b337fe52a2e1", "node_type": "1", "metadata": {"page_label": "9", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "cfb69723caea59541d43c9c19b1444eed81450b8ba5435bf2a5c0fcdedeeac89", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "He never did invade\nKatz' person beyond the outer surfaces of his clothes, since he discovered nothing in his patdown which might have been a\nweapon. Officer McFadden confined his search strictly to what was minimally necessary to learn whether the men were armed\nand to disarm them once he discovered the weapons. He did not conduct a general exploratory search for whatever evidence\nof criminal activity he might find.\nV.\n We conclude that the revolver seized from Terry was properly admitted in evidence against him. At the time he seized petitioner\nand searched him for weapons, Officer McFadden had reasonable grounds to believe that petitioner was armed and dangerous,\nand it was necessary for the protection of himself and others to take swift measures to discover the true facts and neutralize the\nthreat of harm if it materialized. The policeman carefully restricted his search to what was appropriate to the discovery of the\nparticular items which he sought. Each case of this sort will, of course, have to be decided on its own facts. We merely hold\ntoday that where a police officer observes unusual conduct which leads him reasonably to conclude in light of his experience that\ncriminal activity may be afoot and that the persons with whom he is dealing may be armed and presently dangerous, where in the\ncourse of investigating this behavior he identifies himself as a policeman and makes reasonable inquiries, and where nothing in\nthe initial stages of the encounter serves to dispel his reasonable fear for his own or others' safety, he is entitled for the protection\nof himself and **1885 others in the area to conduct a carefully limited search of the outer clothing of such persons in an\nattempt to discover weapons which might be used to assault him. *31 Such a search is a reasonable search under the Fourth\nAmendment, and any weapons seized may properly be introduced in evidence against the person from whom they were taken.\nAffirmed.\nMr. Justice BLACK concurs in the judgment and the opinion except where the opinion quotes from and relies upon this Court's\nopinion in Katz v. United States and the concurring opinion in Warden v. Hayden.", "mimetype": "text/plain", "start_char_idx": 2669, "end_char_idx": 4834, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6fefe35-e676-424b-94a5-f9ed90fa6796": {"__data__": {"id_": "a6fefe35-e676-424b-94a5-f9ed90fa6796", "embedding": null, "metadata": {"page_label": "10", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "65ff6d4c-ae78-4d60-85f2-a8eab0f0e59d", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2168f64a16142d878f77c880099313f915b1eb5b3d5774a79b68df9eefb621d4", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "0b4f0b27-d1bb-4e38-a9f7-64612f9633ed", "node_type": "1", "metadata": {}, "hash": "7fa61a1f4fbb37cd4b46e2481a05f971f77fcdceae54a7a4df5481e0131495fd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 10\nMr. Justice HARLAN, concurring.\nWhile I unreservedly agree with the Court's ultimate holding in this case, I am constrained to fill in a few gaps, as I see them,\nin its opinion. I do this because what is said by this Court today will serve as initial guidelines for law enforcement authorities\nand courts throughout the land as this important new field of law develops.\nA police officer's right to make an on-the-street \u2018stop\u2019 and an accompanying \u2018frisk\u2019 for weapons is of course bounded by the\nprotections afforded by the Fourth and Fourteenth Amendments. The Court holds, and I agree, that while the right does not\ndepend upon possession by the officer of a valid warrant, nor upon the existence of probable cause, such activities must be\nreasonable under the circumstances as the officer credibly relates them in court. Since the question in this and most cases is\nwhether evidence produced by a frisk is admissible, the problem is to determine what makes a frisk reasonable.\nIf the State of Ohio were to provide that police officers could, on articulable suspicion less than probable cause, forcibly frisk and\ndisarm persons thought to be carrying concealed weapons, I would have little doubt that action taken pursuant to such authority\ncould be constitutionally reasonable. Concealed weapons create an immediate *32 and severe danger to the public, and though\nthat danger might not warrant routine general weapons checks, it could well warrant action on less than a \u2018probability.\u2019 I mention\nthis line of analysis because I think it vital to point out that it cannot be applied in this case. On the record before us Ohio has\nnot clothed its policemen with routine authority to frisk and disarm on suspicion; in the absence of state authority, policemen\nhave no more right to \u2018pat down\u2019 the outer clothing of passers-by, or of persons to whom they address casual questions, than\ndoes any other citizen. Consequently, the Ohio courts did not rest the constitutionality of this frisk upon any general authority\nin Officer McFadden to take reasonable steps to protect the citizenry, including himself, from dangerous weapons.\nThe state courts held, instead, that when an officer is lawfully confronting a possibly hostile person in the line of duty he has a\nright, springing only from the necessity of the situation and not from any broader right to disarm, to frisk for his own protection.\nThis holding, with which I agree and with which I think the Court agrees, offers the only satisfactory basis I can think of for\naffirming this conviction. The holding has, however, two logical corollaries that I do not think the Court has fully expressed.\nIn the first place, if the frisk is justified in order to protect the officer during an encounter with a citizen, the officer must first\nhave constitutional grounds to insist on an encounter, to make a forcible stop. Any person, including a policeman, is at liberty\nto avoid a person he considers dangerous. If and when a policeman has a right instead to disarm such a person for his own\nprotection, he must first have a right not to avoid him but to be in his presence. That right must be more than the liberty (again,\npossessed by every citizen) to address questions to other persons, for ordinarily the person *33 addressed has an **1886\nequal right to ignore his interrogator and walk away; he certainly need not submit to a frisk for the questioner's protection. I\nwould make it perfectly clear that the right to frisk in this case depends upon the reasonableness of a forcible stop to investigate\na suspected crime.\nWhere such a stop is reasonable, however, the right to frisk must be immediate and automatic if the reason for the stop is,\nas here, an articulable suspicion of a crime of violence. Just as a full search incident to a lawful arrest requires no additional\njustification, a limited frisk incident to a lawful stop must often be rapid and routine. There is no reason why an officer, rightfully\nbut forcibly confronting a person suspected of a serious crime, should have to ask one question and take the risk that the answer\nmight be a bullet.\nThe facts of this case are illustrative of a proper stop and an incident frisk.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4341, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0b4f0b27-d1bb-4e38-a9f7-64612f9633ed": {"__data__": {"id_": "0b4f0b27-d1bb-4e38-a9f7-64612f9633ed", "embedding": null, "metadata": {"page_label": "10", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "65ff6d4c-ae78-4d60-85f2-a8eab0f0e59d", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "2168f64a16142d878f77c880099313f915b1eb5b3d5774a79b68df9eefb621d4", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "a6fefe35-e676-424b-94a5-f9ed90fa6796", "node_type": "1", "metadata": {"page_label": "10", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ee53e3f76c45c5f463b82a00fac6d5d118dec36c4b93d950741f3d7cff75ae03", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "I\nwould make it perfectly clear that the right to frisk in this case depends upon the reasonableness of a forcible stop to investigate\na suspected crime.\nWhere such a stop is reasonable, however, the right to frisk must be immediate and automatic if the reason for the stop is,\nas here, an articulable suspicion of a crime of violence. Just as a full search incident to a lawful arrest requires no additional\njustification, a limited frisk incident to a lawful stop must often be rapid and routine. There is no reason why an officer, rightfully\nbut forcibly confronting a person suspected of a serious crime, should have to ask one question and take the risk that the answer\nmight be a bullet.\nThe facts of this case are illustrative of a proper stop and an incident frisk. Officer McFadden had no probable cause to arrest\nTerry for anything, but he had observed circumstances that would reasonably lead an experienced, prudent policeman to suspect\nthat Terry was about to engage in burglary or robbery. His justifiable suspicion afforded a proper constitutional basis for\naccosting Terry, restraining his liberty of movement briefly, and addressing questions to him, and Officer McFadden did so.\nWhen he did, he had no reason whatever to suppose that Terry might be armed, apart from the fact that he suspected him\nof planning a violent crime. McFadden asked Terry his name, to which Terry \u2018mumbled something.\u2019 Whereupon McFadden,\nwithout asking Terry to speak louder and without giving him any chance to explain his presence or his actions, forcibly frisked\nhim.", "mimetype": "text/plain", "start_char_idx": 3568, "end_char_idx": 5132, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6581fa2a-6f22-4d14-807d-1dc3c9d57e71": {"__data__": {"id_": "6581fa2a-6f22-4d14-807d-1dc3c9d57e71", "embedding": null, "metadata": {"page_label": "11", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6666ba29-e20d-4d51-b14f-73047570a688", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "58bdb429db4114fd871695b9b04b7567fd91114aff9041ac72bbedfb7d306c21", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "93560818-1063-4e5b-8b0e-f667556824e2", "node_type": "1", "metadata": {}, "hash": "088f9d4faec450564dfca1846f9b37ec3cff9d484bd691eaf67c3a9a6d4e195d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 11\nI would affirm this conviction for what I believe to be the same reasons the Court relies on. I would, however, make explicit what\nI think is implicit in affirmance on *34 the present facts. Officer McFadden's right to interrupt Terry's freedom of movement\nand invade his privacy arose only because circumstances warranted forcing an encounter with Terry in an effort to prevent or\ninvestigate a crime. Once that forced encounter was justified, however, the officer's right to take suitable measures for his own\nsafety followed automatically.\nUpon the foregoing premises, I join the opinion of the Court.\nMr. Justice WHITE, concurring.\nI join the opinion of the Court, reserving judgment, however, on some of the Court's general remarks about the scope and\npurpose of the exclusionary rule which the Court has fashioned in the process of enforcing the Fourth Amendment.\nAlso, although the Court puts the matter aside in the context of this case, I think an additional word is in order concerning\nthe matter of interrogation during an investigative stop. There is nothing in the Constitution which prevents a policeman from\naddressing questions to anyone on the streets. Absent special circumstances, the person approached may not be detained or\nfrisked but may refuse to cooperate and go on his way. However, given the proper circumstances, such as those in this case,\nit seems to me the person may be briefly detained against his will while pertinent questions are directed to him. Of course,\nthe person stopped is not obliged to answer, answers may not be compelled, and refusal to answer furnishes no basis for an\narrest, although it may alert the officer to the need for continued observation. In my view, it is temporary detention, warranted\nby the circumstances, which chiefly justifies the protective frisk for weapons. Perhaps the frisk itself, where proper, will have\nbeneficial results whether questions are asked or not. If weapons are found, an arrest will follow. *35 If none are found, the\nfrisk may nevertheless serve preventive ends because of its unmistakable message that suspicion has been aroused. But if the\ninvestigative stop is sustainable at all, constitutional **1887 rights are not necessarily violated if pertinent questions are asked\nand the person is restrained briefly in the process.\nMr. Justice DOUGLAS, dissenting.\nI agree that petitioner was \u2018seized\u2019 within the meaning of the Fourth Amendment. I also agree that frisking petitioner and his\ncompanions for guns was a \u2018search.\u2019 But it is a mystery how that \u2018search\u2019 and that \u2018seizure\u2019 can be constitutional by Fourth\nAmendment standards, unless there was \u2018probable cause\u2019 1 to believe that (1) a crime had been committed or (2) a crime was\nin the process of being committed or (3) a crime was about to be committed.\nThe opinion of the Court disclaims the existence of \u2018probable cause.\u2019 If loitering were in issue and that *36 was the offense\ncharged, there would be \u2018probable cause\u2019 shown. But the crime here is carrying concealed weapons;2 and there is no basis for\nconcluding that the officer had \u2018probable cause\u2019 for believing that that crime was being committed. Had a warrant been sought,\na magistrate would, therefore, have been unauthorized to issue one, for he can act only if there is a showing of \u2018probable cause.\u2019\nWe hold today that the police have greater authority to make a \u2018seizure\u2019 and conduct a \u2018search\u2019 than a judge has to authorize\nsuch action. We have said precisely the opposite over and over again.3\n*37 In other words, police officers up to today have been permitted to effect arrests **1888 or searches without warrants\nonly when the facts within their personal knowledge would satisfy the constitutional standard of probable cause. At the time of\ntheir \u2018seizure\u2019 without a warrant they must possess facts concerning the person arrested that would have satisfied a magistrate\nthat \u2018probable cause\u2019 was indeed present. The term \u2018probable cause\u2019 rings a bell of certainty that is not sounded by phrases such\nas \u2018reasonable suspicion.\u2019 Moreover, the meaning of \u2018probable cause\u2019 is deeply imbedded in our constitutional history. As we\nstated in Henry v. United States, 361 U.S. 98, 100\u2014102, 80 S.Ct.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 4360, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "93560818-1063-4e5b-8b0e-f667556824e2": {"__data__": {"id_": "93560818-1063-4e5b-8b0e-f667556824e2", "embedding": null, "metadata": {"page_label": "11", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6666ba29-e20d-4d51-b14f-73047570a688", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "58bdb429db4114fd871695b9b04b7567fd91114aff9041ac72bbedfb7d306c21", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "6581fa2a-6f22-4d14-807d-1dc3c9d57e71", "node_type": "1", "metadata": {"page_label": "11", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "4f222a3893afae1bce3dd1596f43458ae6a197b450d927f7834bdb6e4871433b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "We have said precisely the opposite over and over again.3\n*37 In other words, police officers up to today have been permitted to effect arrests **1888 or searches without warrants\nonly when the facts within their personal knowledge would satisfy the constitutional standard of probable cause. At the time of\ntheir \u2018seizure\u2019 without a warrant they must possess facts concerning the person arrested that would have satisfied a magistrate\nthat \u2018probable cause\u2019 was indeed present. The term \u2018probable cause\u2019 rings a bell of certainty that is not sounded by phrases such\nas \u2018reasonable suspicion.\u2019 Moreover, the meaning of \u2018probable cause\u2019 is deeply imbedded in our constitutional history. As we\nstated in Henry v. United States, 361 U.S. 98, 100\u2014102, 80 S.Ct. 168, 170:\n\u2018The requirement of probable cause has roots that are deep in our history. The general warrant, in which the name of the person\nto be arrested was left blank, and the writs of assistance, against which James Otis inveighed, both perpetuated the oppressive", "mimetype": "text/plain", "start_char_idx": 3603, "end_char_idx": 4626, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1df335ee-2e38-4cc2-b24c-fd5e85e40239": {"__data__": {"id_": "1df335ee-2e38-4cc2-b24c-fd5e85e40239", "embedding": null, "metadata": {"page_label": "12", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fbda4f36-9d86-4062-aab4-abe740974342", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1eb4df0f8e03eb95e70b9aad3fa51ccc8b8c965c8e7510383ef34eac3f81af42", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 12\npractice of allowing the police to arrest and search on suspicion. Police control took the place of judicial control, since no\nshowing of \u2018probable cause\u2019 before a magistrate was required.\n\u2018That philosophy (rebelling against these practices) later was reflected in the Fourth Amendment. And as the early American\ndecisions both before and immediately after its adoption show, common rumor or report, suspicion, or even \u2018strong reason to\nsuspect\u2019 was not adequate to support a warrant *38 for arrest. And that principle has survived to this day. * * *\n\u2018* * * It is important, we think, that this requirement (of probable cause) be strictly enforced, for the standard set by the\nConstitution protects both the officer and the citizen. If the officer acts with probable cause, he is protected even though it turns\nout that the citizen is innocent. * * * And while a search without a warrant is, within limits, permissible if incident to a lawful\narrest, if an arrest without a warrant is to support an incidental search, it must be made with probable cause. * * * This immunity\nof officers cannot fairly be enlarged without jeopardizing the privacy or security of the citizen.\u2019\nThe infringement on personal liberty of any \u2018seizure\u2019 of a person can only be \u2018reasonable\u2019 under the Fourth Amendment if we\nrequire the police to possess \u2018probable cause\u2019 before they seize him. Only that line draws a meaningful distinction between\nan officer's mere inkling and the presence of facts within the officer's personal knowledge which would convince a reasonable\nman that the person seized has committed, is committing, or is about to commit a particular crime. \u2018In dealing with probable\ncause, * * * as the very name implies, we deal with probabilities. These are not technical; they are the factual and practical\nconsiderations of everyday life on which reasonable and prudent men, not legal technicians, act.\u2019 Brinegar v. United States,\n338 U.S. 160, 175, 69 S.Ct. 1302, 1310.\nTo give the police greater power than a magistrate is to take a long step down the totalitarian path. Perhaps such a step is\ndesirable to cope with modern forms of lawlessness. But if it is taken, it should be the deliberate choice of the people through\na constitutional amendment. *39 Until the Fourth Amendment, **1889 which is closely allied with the Fifth,4 is rewritten,\nthe person and the effects of the individual are beyond the reach of all government agencies until there are reasonable grounds\nto believe (probable cause) that a criminal venture has been launched or is about to be launched.\nThere have been powerful hydraulic pressures throughout our history that bear heavily on the Court to water down constitutional\nguarantees and give the police the upper hand. That hydraulic pressure has probably never been greater than it is today.\nYet if the individual is no longer to be sovereign, if the police can pick him up whenever they do not like the cut of his jib,\nif they can \u2018seize\u2019 and \u2018search\u2019 him in their discretion, we enter a new regime. The decision to enter it should be made only\nafter a full debate by the people of this country.\nAll Citations\n392 U.S. 1, 88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\nFootnotes\n1 Ohio Rev.Code s 2923.01 (1953) provides in part that \u2018(n)o person shall carry a pistol, bowie knife, dirk, or other\ndangerous weapon concealed on or about his person.\u2019 An exception is made for properly authorized law enforcement\nofficers.\n2 Terry and Chilton were arrested, indicted, tried and convicted together. They were represented by the same attorney,\nand they made a joint motion to suppress the guns. After the motion was denied, evidence was taken in the case against", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3836, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eb5329f3-90b8-4b67-9b0d-8def02abefa5": {"__data__": {"id_": "eb5329f3-90b8-4b67-9b0d-8def02abefa5", "embedding": null, "metadata": {"page_label": "13", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c37d8547-0ab5-469e-866c-6ad8057e0898", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b163a8c1489e2b602b21301f12f87e1c010e2d431138079edb5e8520e3d2da8b", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "28235376-907d-4b85-b81d-7ba0e02ac834", "node_type": "1", "metadata": {}, "hash": "23c82cfae96c26a96c90a64db398a78ddf2187255865173afb62866dbaabf41d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 13\nChilton. This evidence consisted of the testimony of the arresting officer and of Chilton. It was then stipulated that this\ntestimony would be applied to the case against Terry, and no further evidence was introduced in that case. The trial\njudge considered the two cases together, rendered the decisions at the same time and sentenced the two men at the same\ntime. They prosecuted their state court appeals together through the same attorney, and they petitioned this Court for\ncertiorari together. Following the grant of the writ upon this joint petition, Chilton died. Thus, only Terry's conviction\nis here for review.\n3 Both the trial court and the Ohio Court of Appeals in this case relied upon such a distinction. State v. Terry, 5 Ohio\nApp.2d 122, 125\u2014130, 214 N.E.2d 114, 117\u2014120 (1966). See also, e.g., People v. Rivera, 14 N.Y .2d 441, 252 N.Y .S.2d\n458, 201 N.E.2d 32 (1964), cert. denied, 379 U.S. 978, 85 S.Ct. 679, 13 L.Ed.2d 568 (1965); Aspen, Arrest and Arrest\nAlternatives: Recent Trends, 1966 U.Ill..l.F. 241, 249\u2014254; Warner, The Uniform Arrest Act, 28 Va.L.Rev. 315 (1942);\nNote, Stop and Frisk in California, 18 Hastings L.J. 623, 629\u2014632 (1967).\n4 People v. Rivera, supra, n. 3, at 447, 252 N.Y .S.2d, at 464, 201 N.E.2d, at 36.\n5 The theory is well laid out in the Rivera opinion:\n\u2018(T)he evidence needed to make the inquiry is not of the same degree of conclusiveness as that required for an arrest.\nThe stopping of the individual to inquire is not an arrest and the ground upon which the police may make the inquiry\nmay be less incriminating than the ground for an arrest for a crime known to have been committed. * * *\n\u2018And as the right to stop and inquire is to be justified for a cause less conclusive then that which would sustain an arrest,\nso the right to frisk may be justified as an incident to inquiry upon grounds of elemental safety and precaution which\nmight not initially sustain a search. Ultimately the validity of the frisk narrows down to whether there is or is not a right\nby the police to touch the person questioned. The sense of exterior touch here involved is not very far different from the\nsense of sight or hearing\u2014senses upon which police customarily act.\u2019 People v. Rivera, 14 N.Y .2d 441, 445, 447, 252\nN.Y .S.2d 458, 461, 463, 201 N.E.2d 32, 34, 35 (1964), cert. denied, 379 U.S. 978, 85 S.Ct. 679, 13 L.Ed.2d 568 (1965).\n6 See, e.g., Foote, The Fourth Amendment: Obstacle or Necessity in the Law of Arrest?, 51 J.Crim.L.C. & P.S. 402 (1960).\n7 See n. 11, infra.\n8 Brief for Respondent 2.\n9 See L. Tiffany, D. McIntyre & D. Rotenberg, Detection of Crime: Stopping and Questioning, Search and Seizure,\nEncouragement and Entrapment 18\u201456 (1967). This sort of police conduct may, for example, be designed simply to\nhelp an intoxicated person find his way home, with no intention of arresting him unless he becomes obstreperous. Or\nthe police may be seeking to mediate a domestic quarrel which threatens to erupt into violence. They may accost a\nwoman in an area known for prostitution as part of a harassment campaign designed to drive prostitutes away without\nthe considerable difficulty involved in prosecuting them. Or they may be conducting a dragnet search of all teenagers\nin a particular section of the city for weapons because they have heard rumors of an impending gang fight.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3485, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "28235376-907d-4b85-b81d-7ba0e02ac834": {"__data__": {"id_": "28235376-907d-4b85-b81d-7ba0e02ac834", "embedding": null, "metadata": {"page_label": "13", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c37d8547-0ab5-469e-866c-6ad8057e0898", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "b163a8c1489e2b602b21301f12f87e1c010e2d431138079edb5e8520e3d2da8b", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "eb5329f3-90b8-4b67-9b0d-8def02abefa5", "node_type": "1", "metadata": {"page_label": "13", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "dfbd39bd4d3b454392c41c1c85e827c39e919aac3a241ec003a5ca0eb78f408a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "402 (1960).\n7 See n. 11, infra.\n8 Brief for Respondent 2.\n9 See L. Tiffany, D. McIntyre & D. Rotenberg, Detection of Crime: Stopping and Questioning, Search and Seizure,\nEncouragement and Entrapment 18\u201456 (1967). This sort of police conduct may, for example, be designed simply to\nhelp an intoxicated person find his way home, with no intention of arresting him unless he becomes obstreperous. Or\nthe police may be seeking to mediate a domestic quarrel which threatens to erupt into violence. They may accost a\nwoman in an area known for prostitution as part of a harassment campaign designed to drive prostitutes away without\nthe considerable difficulty involved in prosecuting them. Or they may be conducting a dragnet search of all teenagers\nin a particular section of the city for weapons because they have heard rumors of an impending gang fight.\n10 See Tiffany, McIntyre & Rotenberg, supra, n. 9, at 100\u2014101; Comment, 47 Nw.U.L.Rev. 493, 497\u2014499 (1952).\n11 The President's Commission on Law Enforcement and Administration of Justice found that \u2018(i)n many communities,\nfield interrogations are a major source of friction between the police and minority groups.\u2019 President's Commission\non Law Enforcement and Administration of Justice, Task Force Report: The Police 183 (1967). It was reported that\nthe friction caused by \u2018(m)isuse of field interrogations' increases \u2018as more police departments adopt \u2018aggressive patrol\u2019\nin which officers are encouraged routinely to stop and question persons on the street who are unknown to them,\nwho are suspicious, or whose purpose for being abroad is not readily evident.' Id., at 184. While the frequency with\nwhich \u2018frisking\u2019 forms a part of field interrogation practice varies tremendously with the locale, the objective of the\ninterrogation, and the particular officer, see Tiffany, McIntyre & Rotenberg, supra, n. 9, at 47\u201448, it cannot help but", "mimetype": "text/plain", "start_char_idx": 2634, "end_char_idx": 4526, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cfbdf1b5-84b2-45b7-8da1-9d0efc632dec": {"__data__": {"id_": "cfbdf1b5-84b2-45b7-8da1-9d0efc632dec", "embedding": null, "metadata": {"page_label": "14", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6fb240f5-7892-4b55-9df8-456b9801ff7e", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "df602bc74c927860a9daf3001f4fd3285cea2d3b026c2707cb144ea701bda06c", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "fb676fd8-57a5-4775-9061-b2079a236b4b", "node_type": "1", "metadata": {}, "hash": "581cdbaab58191be1ed5e65ab7518d5004f191513fb64d478ea29232d8ad54db", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 14\nbe a severely exacerbating factor in police-community tensions. This is particularly true in situations where the \u2018stop\nand frisk\u2019 of youths or minority group members is \u2018motivated by the officers' perceived need to maintain the power\nimage of the beat officer, an aim sometimes accomplished by humiliating anyone who attempts to undermine police\ncontrol of the streets.\u2019 Ibid.\n12 In this case, for example, the Ohio Court of Appeals stated that \u2018we must be careful to distinguish that the \u2018frisk\u2019\nauthorized herein includes only a \u2018frisk\u2019 for a dangerous weapon. It by no means authorizes a search for contraband,\nevidentiary material, or anything else in the absence of reasonable grounds to arrest. Such a search is controlled by\nthe requirements of the Fourth Amendment, and probable cause is essential.' State v. Terry, 5 Ohio App.2d 122, 130,\n214 N.E.2d 114, 120 (1966). See also, e.g., Ellis v. United States, 105 U.S.App.D.C. 86, 88, 264 F.2d 372, 374 (1959);\nComment, 65 Col.L.Rev. 848, 860 and n. 81 (1965).\n13 Consider the following apt description:\n\u2018(T)he officer must feel with sensitive fingers every portion of the prisoner's body. A thorough search must be made of\nthe prisoner's arms and armpits, waistline and back, the groin and area about the testicles, and entire surface of the legs\ndown to the feet.\u2019 Priar & Martin, Searching and Disarming Criminals, 45 J.Crim.L.C. & P.S. 481 (1954).\n14 See n. 11, supra, and accompanying text.\nWe have noted that the abusive practices which play a major, though by no means exclusive, role in creating this\nfriction are not susceptible of control by means of the exclusionary rule, and cannot properly dictate our decision with\nrespect to the powers of the police in genuine investigative and preventive situations. However, the degree of community\nresentment aroused by particular practices is clearly revelant to an assessment of the quality of the intrusion upon\nreasonable expectations of personal security caused by those practices.\n15 These dangers are illustrated in part by the course of adjudication in the Court of Appeals of New York. Although its\nfirst decision in this area, People v. Rivera, 14 N.Y .2d 441, 252 N.Y .S.2d 458, 201 N.E.2d 32 (1964), cert. denied, 379\nU.S. 978, 85 S.Ct. 679, 13 L.Ed.2d 568 (1965) , rested squarely on the notion that a \u2018frisk\u2019 was not a \u2018search,\u2019 see nn.\n3\u20145, supra, it was compelled to recognize in People v. Taggart, 20 N.Y .2d 335, 342, 283 N.Y .S.2d 1, 8, 229 N.E.2d\n581, 586, (1967), that what it had actually authorized in Rivera, and subsequent decisions, see, e.g., People v. Pugach,\n15 N.Y .2d 65, 255 N.Y .S.2d 833, 204 N.E.2d 176 (1964), cert. denied, 380 U.S. 936, 85 S.Ct. 946, 13 L.Ed.2d 823\n(1965), was a \u2018search\u2019 upon less than probable cause. However, in acknowledging that no valid distinction could be\nmaintained on the basis of its cases, the Court of Appeals continued to distinguish between the two in theory. It still\ndefined \u2018search\u2019 as it had in Rivera\u2014as an essentially unlimited examination of the person for any and all seizable items\n\u2014and merely noted that the cases had upheld police intrusions which went far beyond the original limited conception\nof a \u2018frisk.\u2019 Thus, principally because it failed to consider limitations upon the scope of searches in individual cases as\na potential mode of regulation, the Court of Appeals in three short years arrived at the position that the Constitution\nmust, in the name of necessity, be held to permit unrestrained rummaging about a person and his effects upon mere\nsuspicion.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3703, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fb676fd8-57a5-4775-9061-b2079a236b4b": {"__data__": {"id_": "fb676fd8-57a5-4775-9061-b2079a236b4b", "embedding": null, "metadata": {"page_label": "14", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6fb240f5-7892-4b55-9df8-456b9801ff7e", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "df602bc74c927860a9daf3001f4fd3285cea2d3b026c2707cb144ea701bda06c", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "cfbdf1b5-84b2-45b7-8da1-9d0efc632dec", "node_type": "1", "metadata": {"page_label": "14", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "1b39972405f3b0277e5349c72087fe311fd40ad38eafc7fe62383e30757be6f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "936, 85 S.Ct. 946, 13 L.Ed.2d 823\n(1965), was a \u2018search\u2019 upon less than probable cause. However, in acknowledging that no valid distinction could be\nmaintained on the basis of its cases, the Court of Appeals continued to distinguish between the two in theory. It still\ndefined \u2018search\u2019 as it had in Rivera\u2014as an essentially unlimited examination of the person for any and all seizable items\n\u2014and merely noted that the cases had upheld police intrusions which went far beyond the original limited conception\nof a \u2018frisk.\u2019 Thus, principally because it failed to consider limitations upon the scope of searches in individual cases as\na potential mode of regulation, the Court of Appeals in three short years arrived at the position that the Constitution\nmust, in the name of necessity, be held to permit unrestrained rummaging about a person and his effects upon mere\nsuspicion. It did apparently limit its holding to \u2018cases involving serious personal injury or grave irreparable property\ndamage,\u2019 thus excluding those involving \u2018the enforcement of sumptuary laws, such as gambling, and laws of limited\npublic consequence, such as narcotics violations, prostitution, larcenies of the ordinary kind, and the like.\u2019 People v.\nTaggart, supra, at 340, 283 N.Y .S.2d at 6, 229 N.E.2d at 584.\nIn our view the sounder course is to recognize that the Fourth Amendment governs all intrusions by agents of the public\nupon personal security, and to make the scope of the particular intrusion, in light of all the exigencies of the case, a\ncentral element in the analysis of reasonableness. Cf. Brinegar v. United States, 338 U.S. 160, 183, 69 S.Ct. 1302, 1314,\n93 L.Ed. 1879 (1949) (Mr. Justice Jackson, dissenting). Compare Camara v. Muncipal Court, 387 U.S. 523, 537, 87 S.Ct.\n1727, 1735, 18 L.Ed.2d 930 (1967). This seems preferable to an approach which attributes too much significance to an\noverly technical definition of \u2018search,\u2019 and which turns in part upon a judge-made hierarchy of legislative enactments\nin the criminal sphere. Focusing the inquiry squarely on the dangers and demands of the particular situation also seems", "mimetype": "text/plain", "start_char_idx": 2828, "end_char_idx": 4948, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e0f64ecc-2c14-47a0-8418-957d7b99d112": {"__data__": {"id_": "e0f64ecc-2c14-47a0-8418-957d7b99d112", "embedding": null, "metadata": {"page_label": "15", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ba1e4248-a20c-49bf-a576-c8c147c4732c", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ad36e0f0480e904f82ea20ec938381a4e17fbb5af63358dfc6abee408b6c976f", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "eac149cc-44ae-400f-8f4b-9a95e55c82d3", "node_type": "1", "metadata": {}, "hash": "958a7d6e409a22920222ff0a06ff198c4017039087eb8bde3087782bc6fa2eba", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 15\nmore likely to produce rules which are intelligible to the police and the public alike than requiring the officer in the heat\nof an unfolding encounter on the street to make a judgment as to which laws are \u2018of limited public consequence.\u2019\n16 We thus decide nothing today concerning the constitutional propriety of an investigative \u2018seizure\u2019 upon less than probable\ncause for purposes of \u2018detention\u2019 and/or interrogation. Obviously, not all personal intercourse between policemen and\ncitizens involves \u2018seizures' of persons. Only when the officer, by means of physical force or show of authority, has in\nsome way restrained the liberty of a citizen may we conclude that a \u2018seizure\u2019 has occurred. We cannot tell with any\ncertainty upon this record whether any such \u2018seizure\u2019 took place here prior to Officer McFadden's initiation of physical\ncontact for purposes of searching Terry for weapons, and we thus may assume that up to that point no intrusion upon\nconstitutionally protected rights had occurred.\n17 See generally Leagre, The Fourth Amendment and the Law of Arrest, 54 J. Crim.L.C. & P.S. 393, 396\u2014403 (1963).\n18 This demand for specificity in the information upon which police action is predicated is the central teaching of this\nCourt's Fourth Amendment jurisprudence. See Beck v. State of Ohio, 379 U.S. 89, 96\u201497, 85 S.Ct. 223, 229, 13 L.Ed.2d\n142 (1964); Ker v. State of California, 374 U.S. 23, 34\u201437, 83 S.Ct. 1623, 1632, 10 L.Ed.2d 726 (1963); Wong Sun v.\nUnited States, 371 U.S. 471, 479\u2014484, 83 S.Ct. 407, 416, 9 L.Ed.2d 441 (1963); Rios v. United States, 364 U.S. 253,\n261\u2014262, 80 S.Ct. 1431, 1437, 4 L.Ed.2d 1688 (1960); Henry v. United States, 361 U.S. 98, 100\u2014102, 80 S.Ct. 168,\n171, 4 L.Ed.2d 134 (1959); Draper v. United States, 358 U.S. 307, 312\u2014314, 79 S.Ct. 329, 333, 3 L.Ed.2d 327 (1959);\nBrinegar v. United States, 338 U.S. 160, 175\u2014178, 69 S.Ct. 1302, 1312, 93 L.Ed. 1879 (1949); Johnson v. United States,\n333 U.S. 10, 15\u201417, 68 S.Ct. 367, 371, 92 L.Ed. 436 (1948); United States v. Di Re, 332 U.S. 581, 593\u2014595, 68 S.Ct.\n222, 229, 92 L.Ed. 210 (1948); Husty v. United States, 282 U.S. 694, 700\u2014701, 51 S.Ct. 240, 242, 75 L.Ed. 629 (1931);\nDunbra v. United States, 268 U.S. 435, 441, 45 S.Ct. 546, 549, 69 L.Ed. 1032 (1925); Carroll v. United States, 267 U.S.\n132, 159\u2014162, 45 S.Ct. 280, 288, 69 L.Ed. 543 (1925); Stacey v. Emery, 97 U.S. 642, 645, 24 L.Ed. 1035 (1878).\n19 See, e.g., Katz v. United States, 389 U.S. 347, 354\u2014357, 88 S.Ct. 507, 514, 19 L.Ed.2d 576 (1967) ; Berger v. State\nof New York, 388 U.S. 41, 54\u201460, 87 S.Ct. 1873, 1884, 18 L.Ed.2d 1040 (1967) ; Johnson v. United States, 333 U.S.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 2782, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eac149cc-44ae-400f-8f4b-9a95e55c82d3": {"__data__": {"id_": "eac149cc-44ae-400f-8f4b-9a95e55c82d3", "embedding": null, "metadata": {"page_label": "15", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ba1e4248-a20c-49bf-a576-c8c147c4732c", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "ad36e0f0480e904f82ea20ec938381a4e17fbb5af63358dfc6abee408b6c976f", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "e0f64ecc-2c14-47a0-8418-957d7b99d112", "node_type": "1", "metadata": {"page_label": "15", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "07ae176a6dba4d4cdac2110ab720413c05d281157a8e165a1f6ea1d5a55cbfda", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "546, 549, 69 L.Ed. 1032 (1925); Carroll v. United States, 267 U.S.\n132, 159\u2014162, 45 S.Ct. 280, 288, 69 L.Ed. 543 (1925); Stacey v. Emery, 97 U.S. 642, 645, 24 L.Ed. 1035 (1878).\n19 See, e.g., Katz v. United States, 389 U.S. 347, 354\u2014357, 88 S.Ct. 507, 514, 19 L.Ed.2d 576 (1967) ; Berger v. State\nof New York, 388 U.S. 41, 54\u201460, 87 S.Ct. 1873, 1884, 18 L.Ed.2d 1040 (1967) ; Johnson v. United States, 333 U.S.\n10, 13\u201415, 68 S.Ct. 367, 369, 92 L.Ed. 436 (1948); cf. Wong Sun v. United States, 371 U.S. 471, 479\u2014480, 83 S.Ct.\n407, 413, 9 L.Ed.2d 441 (1963) . See also Aguilar v. State of Texas, 378 U.S. 108, 110\u2014115, 84 S.Ct. 1509, 1514, 12\nL.Ed.2d 723 (1964).\n20 See also cases cited in n. 18, supra.\n21 Fifty-seven law enforcement officers were killed in the line of duty in this country in 1966, bringing the total to 335\nfor the seven-year period beginning with 1960. Also in 1966, there were 23,851 assaults on police officers, 9,113 of\nwhich resulted in injuries to the policeman. Fifty-five of the 57 officers killed in 1966 died from gunshot wounds, 41 of\nthem inflicted by handguns easily secreted about the person. The remaining two murders were perpetrated by knives.\nSee Federal Bureau of Investigation, Uniform Crime Reports for the United States\u20141966, at 45\u201448, 152 and Table 51.\nThe easy availability of firearms to potential criminals in this country is well known and has provoked much debate.\nSee, e.g., President's Commission on Law Enforcement and Administration of Justice, The Challenge of Crime in a Free\nSociety 239-243 (1967). Whatever the merits of gun-control proposals, this fact is relevant to an assessment of the need\nfor some form of self-protective search power.\n22 See generally W. LaFave, Arrest\u2014The Decision to Take a Suspect into Custody 1\u201413 (1965).\n23 See also cases cited in n. 18, supra.\n1 The meaning of \u2018probable cause\u2019 has been developed in cases where an officer has reasonable grounds to believe that\na crime has been or is being committed. See, e.g., The Thompson, 3 Wall. 155, 18 L.Ed. 55; Stacey v. Emery, 97 U.S.\n642, 24 L.Ed. 1035; Director General v. Kastenbaum, 263 U.S. 25, 44 S.Ct. 52, 68 L.Ed. 146; Carroll v. United States,\n267 U.S. 132, 45 S.Ct. 280, 69 L.Ed.2d 543; United States v. Di Re, 332 U.S. 581, 68 S.Ct. 222, 92 L.Ed. 210; Brinegar", "mimetype": "text/plain", "start_char_idx": 2372, "end_char_idx": 4671, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9462e99f-c40a-454c-9614-b4e4b78afe01": {"__data__": {"id_": "9462e99f-c40a-454c-9614-b4e4b78afe01", "embedding": null, "metadata": {"page_label": "16", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4ac8f14d-284c-4f4c-8116-623e35e3f7d7", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f30909720ada213f4d4cc059dca869b1df8712fe19ae1d42f100e8502f03e733", "class_name": "RelatedNodeInfo"}, "3": {"node_id": "3c55ed81-1068-43a6-9cf2-b6ca6af99898", "node_type": "1", "metadata": {}, "hash": "4c15650ba0963c6e8f26d6d5bd50cfa99b09d69ea181c931c13a83e5eafa3d5e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Terry v. Ohio, 392 U.S. 1 (1968)\n88 S.Ct. 1868, 20 L.Ed.2d 889, 44 O.O.2d 383\n \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works. 16\nv. United States, 338 U.S. 160, 69 S.Ct. 1302, 93 L.Ed. 1879; Draper v. United States, 358 U.S. 307, 79 S.Ct. 329, 3\nL.Ed.2d 327; Henry v. United States, 361 U.S. 98, 80 S.Ct. 168, 4 L.Ed.2d 134. In such cases, of course, the officer\nmay make an \u2018arrest\u2019 which results in charging the individual with commission of a crime. But while arresting persons\nwho have already committed crimes is an important task of law enforcement, an equally if not more important function\nis crime prevention and deterrence of would-be criminals. \u2018(T)here is no war between the Constitution and common\nsense,\u2019 Mapp v. Ohio, 367 U.S. 643, 657, 81 S.Ct. 1684, 1693. Police officers need not wait until they see a person\nactually commit a crime before they are able to \u2018seize\u2019 that person. Respect for our constitutional system and personal\nliberty demands in return, however, that such a \u2018seizure\u2019 be made only upon \u2018probable cause.\u2019\n2 Ohio Rev.Code s 2923.01.\n3 This Court has always used the language of \u2018probable cause\u2019 in determining the constitutionality of an arrest without a\nwarrant. See, e.g., Carroll v. United States, 267 U.S. 132, 156, 161\u2014162, 45 S.Ct. 280, 288, 69 L.Ed. 543; McDonald v.\nUnited States, 335 U.S. 451, 455\u2014456, 69 S.Ct. 191, 194, 93 L.Ed. 153; Henry v. United States, 361 U.S. 98, 80 S.Ct.\n168, 4 L.Ed.2d 134; Wong Sun v. United States, 371 U.S. 471, 479\u2014484, 83 S.Ct. 407, 416, 9 L.Ed.2d 441. To give\npower to the police to seize a person on some grounds different from or less than \u2018probable cause\u2019 would be handing\nthem more authority than could be exercised by a magistrate in issuing a warrant to seize a person. As we stated in Wong\nSun v. United States, 371 U.S. 471, 83 S.Ct. 407, with respect to requirements for arrests without warrants: \u2018Whether\nor not the requirements of reliability and particularity of the information on which an officer may act are more stringent\nwhere an arrest warrant is absent, they surely cannot be less stringent than where an arrest warrant is obtained.\u2019 Id., at\n479, 83 S.Ct. at 413. And we said in Brinegar v. United States, 338 U.S. 160, 176, 69 S.Ct. 1302, 1311, 93 L.Ed. 1879.\n\u2018These long-prevailing standards (for probable cause) seek to safeguard citizens from rash and unreasonable\ninterferences with privacy and from unfounded charges of crime. They also seek to give fair leeway for enforcing the\nlaw in the community's protection. Because many situations which confront officers in the course of executing their\nduties are more or less ambiguous, room must be allowed for some mistakes on their part. But the mistakes must be those\nof reasonable men, acting on facts leading sensibly to their conclusions of probability. The rule of probable cause is a\npractical, non-technical conception affording the best compromise that has been found for accommodating these often\nopposing interests. Requiring more would unduly hamper law enforcement. To allow less would be to leave law-abiding\ncitizens at the mercy of the officers' whim or caprice.\u2019 And see Johnson v. United States, 333 U.S. 10, 14\u201415, 68 S.Ct.\n367, 369, 92 L.Ed. 436; Wrightson v. United States, 95 U.S.App.D.C. 390, 393\u2014394, 222 F.2d 556, 559\u2014560 (1955).", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 3330, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3c55ed81-1068-43a6-9cf2-b6ca6af99898": {"__data__": {"id_": "3c55ed81-1068-43a6-9cf2-b6ca6af99898", "embedding": null, "metadata": {"page_label": "16", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4ac8f14d-284c-4f4c-8116-623e35e3f7d7", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "f30909720ada213f4d4cc059dca869b1df8712fe19ae1d42f100e8502f03e733", "class_name": "RelatedNodeInfo"}, "2": {"node_id": "9462e99f-c40a-454c-9614-b4e4b78afe01", "node_type": "1", "metadata": {"page_label": "16", "file_name": "Terry v. Ohio.pdf", "file_path": "data/Terry v. Ohio.pdf", "file_type": "application/pdf", "file_size": 418614, "creation_date": "2025-10-29", "last_modified_date": "2025-10-29"}, "hash": "a4fa4e1223bde2ac9df4f552913d39761856030e133ec485b0480851cf3bc8d6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "But the mistakes must be those\nof reasonable men, acting on facts leading sensibly to their conclusions of probability. The rule of probable cause is a\npractical, non-technical conception affording the best compromise that has been found for accommodating these often\nopposing interests. Requiring more would unduly hamper law enforcement. To allow less would be to leave law-abiding\ncitizens at the mercy of the officers' whim or caprice.\u2019 And see Johnson v. United States, 333 U.S. 10, 14\u201415, 68 S.Ct.\n367, 369, 92 L.Ed. 436; Wrightson v. United States, 95 U.S.App.D.C. 390, 393\u2014394, 222 F.2d 556, 559\u2014560 (1955).\n4 See Boyd v. United States, 116 U.S. 616, 633, 6 S.Ct. 524, 534, 29 L.Ed. 746.\n\u2018For the \u2018unreasonable searches and seizures' condemned in the fourth amendment are almost always made for the\npurpose of compelling a man to give evidence against himself, which in criminal cases is condemned in the fifth\namendment; and compelling a man \u2018in a criminal case to be a witness against himself,\u2019 which is condemned in the fifth\namendment, throws light on the question as to what is an \u2018unreasonable search and seizure\u2019 within the meaning of the\nfourth amendment.'\nEnd of Document \u00a9 2023 Thomson Reuters. No claim to original U.S. Government Works.", "mimetype": "text/plain", "start_char_idx": 2715, "end_char_idx": 3971, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "fc05915c-a5fd-4871-9177-12e5b9d7b0c4": {"__data__": {"id_": "fc05915c-a5fd-4871-9177-12e5b9d7b0c4", "embedding": null, "metadata": {"page_label": "1", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d619d37b-3ff8-4576-b98d-34b8fad836ed", "node_type": "4", "metadata": {"page_label": "1", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "5567b94e2ca4d8deaac36d530a281f34ecc0505c1c061024dcfa02f712943c79", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Finite Automata 03\nThumrongsak Kosiyatrakul\ntkosiyat@cs.pitt.edu\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 128, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "53bd0c2d-7eff-4804-b9b1-616fef25d0ce": {"__data__": {"id_": "53bd0c2d-7eff-4804-b9b1-616fef25d0ce", "embedding": null, "metadata": {"page_label": "2", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "908b1f16-9bb4-411a-8b35-bbb8f930f879", "node_type": "4", "metadata": {"page_label": "2", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "c59b5567687d024bb53186bd0b92cfc7bfcd5f939506288c4f79b021d0a953f9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Nondeterministic Finite Automaton\nq2 q3 q4q1\n0, 1 0 , 1\n1 1 0 , \u03b5\nLet \u03a3 = {0,1}\nDi\ufb00erent between Deterministic Finite Automaton (DFA) and\nNondeterministic Finite Automaton (NFA):\nDFA always has exactly one exiting transition arrow for each\nsymbol in the alphabet\nNFA may have none, one, or many exiting arrows for each\nsymbol\nDFA have no arrow with the label \u03b5\nNFA may have Zero, one, or many arrows exiting from each\nstate with the label \u03b5.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 505, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6becf26b-b6f7-4bfb-8c61-c08500562432": {"__data__": {"id_": "6becf26b-b6f7-4bfb-8c61-c08500562432", "embedding": null, "metadata": {"page_label": "3", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "546fc9dc-0fde-40e0-9537-e6e5c31186b9", "node_type": "4", "metadata": {"page_label": "3", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "a5d042c9c03d427fc2d6a8e5e6c3c30c562cf12ade675cef537a125516b89981", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute an NFA\nq2 q3 q4q1\n0, 1 0 , 1\n1 1 0 , \u03b5\nIf you encounter a state with multiple way to proceed for a\nregular input:\nThe machine splits into multiple copies of itself\nThe machines follow all the possibilities in parallel.\nEach copy of the machine takes one of the possible ways.\nIf you encounter a state with an \u03b5symbol as an exiting arrow:\nWithout reading any input, the machine splits into multiple\ncopies.\nEach follows each of the exiting \u03b5-labeled arrows, and\nOne stays at the current state.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 564, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c17a83f5-8b5f-43db-94c5-099f8aaf63ed": {"__data__": {"id_": "c17a83f5-8b5f-43db-94c5-099f8aaf63ed", "embedding": null, "metadata": {"page_label": "4", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "92b5cc25-c214-4dba-840d-9bfa04bee385", "node_type": "4", "metadata": {"page_label": "4", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "6b45b1ebb5c30f11023da8ad7cdfcbefebcaf2522d7ee659d185f5738e1e7ec1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute an NFA (Computational Tree)\nComputation of the machine on input 010110\nSymbol read Start\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5\nq1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 193, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2593845d-7c2f-48ad-9f45-ad0d4fcb277d": {"__data__": {"id_": "2593845d-7c2f-48ad-9f45-ad0d4fcb277d", "embedding": null, "metadata": {"page_label": "5", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "723fe5f1-6e82-4424-aabd-ab97dcce7259", "node_type": "4", "metadata": {"page_label": "5", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "77c2c5bbe9adbbf3277b4eab207e8b353b82beb60c062bbcde579967c883cde9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute an NFA (Computational Tree)\nComputation of the machine on input 010110\n0\nSymbol read Start\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5\nq1\nq1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 198, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c18ca6fc-7443-44c1-b2c9-13aef0a690aa": {"__data__": {"id_": "c18ca6fc-7443-44c1-b2c9-13aef0a690aa", "embedding": null, "metadata": {"page_label": "6", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a13c7993-86be-4186-b21a-97deee7ee609", "node_type": "4", "metadata": {"page_label": "6", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f893b6315a914b894be47c401ed4f0facbd42aa8445f413edfbd020787785eb4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute an NFA (Computational Tree)\nComputation of the machine on input 010110\n1\n0\nSymbol read Start\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5\nq1\nq1\nq1\nq3q2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 208, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e30de15-dc86-493a-81b7-340599d7b088": {"__data__": {"id_": "2e30de15-dc86-493a-81b7-340599d7b088", "embedding": null, "metadata": {"page_label": "7", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4f5483df-1bc0-4338-8cde-3de8dc159f9b", "node_type": "4", "metadata": {"page_label": "7", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d96cb23fb58ca57d2d894c8f7acb32cc807293f77d6bd6d7cc166230fdb79915", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute an NFA (Computational Tree)\nComputation of the machine on input 010110\n0\n1\n0\nSymbol read Start\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5q1\nq1\nq1\nq1\nq3\nq3\nq2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 216, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9e9c63ef-59e2-4684-9f43-48ab4746dc48": {"__data__": {"id_": "9e9c63ef-59e2-4684-9f43-48ab4746dc48", "embedding": null, "metadata": {"page_label": "8", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "141dfcd5-8933-4feb-b622-355b63da0810", "node_type": "4", "metadata": {"page_label": "8", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3bb4aa7467359b44cc0fe45fa0d9c6bc98aa9f41add2b35cb0b3e187ab1daeff", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute an NFA (Computational Tree)\nComputation of the machine on input 010110\n1\n0\n1\n0\nSymbol read Start\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5\nq4q3q2q1\nq1\nq1\nq1\nq1\nq3\nq3\nq2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 228, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3b24befc-0707-4219-8426-e30cda005683": {"__data__": {"id_": "3b24befc-0707-4219-8426-e30cda005683", "embedding": null, "metadata": {"page_label": "9", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e85ca7b8-fe4a-440d-96f5-ca5af399a6b1", "node_type": "4", "metadata": {"page_label": "9", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "a5d3a5501872d3d03ed30aadca8f7706134058f3eff662de4c18d19cfa6c8b0a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute an NFA (Computational Tree)\nComputation of the machine on input 010110\n1\n1\n0\n1\n0\nSymbol read Start\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5\nq4\nq4\nq4\nq3q2q1\nq3q2q1\nq1\nq1\nq1\nq1\nq3\nq3\nq2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 244, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "21b4e300-d2a7-47fc-8233-f7cd96b1dfcf": {"__data__": {"id_": "21b4e300-d2a7-47fc-8233-f7cd96b1dfcf", "embedding": null, "metadata": {"page_label": "10", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ad170605-dec1-4c83-9d0c-c751e58b9158", "node_type": "4", "metadata": {"page_label": "10", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "5b90663a040a2be9986189b6f8d26eb55754324263b0c4907960528377d54b0c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Compute an NFA (Computational Tree)\nComputation of the machine on input 010110\n0\n1\n1\n0\n1\n0\nSymbol read Start\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5\nq4q4\nq4\nq4\nq4\nq3q2q1\nq3q2q1\nq3q1\nq1\nq1\nq1\nq1\nq3\nq3\nq2\nIf there is at least one copy in an accept state,the machine accept the input string.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2826eb87-207c-4a1d-8e61-786452fb6d21": {"__data__": {"id_": "2826eb87-207c-4a1d-8e61-786452fb6d21", "embedding": null, "metadata": {"page_label": "11", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "73a1ee6a-2dcc-4cfb-af8b-17ee100418d7", "node_type": "4", "metadata": {"page_label": "11", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "d80fe680b08de9d08b65f84bd6fd373aec6f3a87567c93138f4f9e718bbc9584", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet A be the language consisting of all strings over {0,1}\ncontaining a 1 in the third position from the end (e.g., 000100 is in\nA but 0011 is not in A).\nDesign a DFA for this problem is quite complicate\nDesign an NFA is easier\n0, 1\n1 0, 1 0, 1\nq1 q2 q3 q4\nThe transition from q1 to q2 is our guess that this is the 1 in\nthe third position from the end.\nIf our guess is wrong:\nThe input string is shorter, it will end at reject state.\nThe input string is longer, the machine will die but other one\nremains alive.\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 584, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9c29754c-cd01-48d0-a3c7-d9ec63bd8c77": {"__data__": {"id_": "9c29754c-cd01-48d0-a3c7-d9ec63bd8c77", "embedding": null, "metadata": {"page_label": "12", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a1962fc8-78b9-4736-a8a4-f59c49e7f757", "node_type": "4", "metadata": {"page_label": "12", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3b8c533490ee6f00bdbb4c48747674933cf9e523619c15a64232e6b3db9c300e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nAn equivalent DFA machine\n0\n1\n1\n0\n0\n1\n0\n1 0\n1\n0\n1\n0\n1\n0\n1\nq000 q100 q010 q110\nq001 q101 q011 q111\nName states according to the last three symbols\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 217, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "90fd8e6a-2111-4c13-84a6-09d299c748a6": {"__data__": {"id_": "90fd8e6a-2111-4c13-84a6-09d299c748a6", "embedding": null, "metadata": {"page_label": "13", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "9a7722aa-c8fa-4ae7-9550-68227431ec06", "node_type": "4", "metadata": {"page_label": "13", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "38dcf9b91097509e9949f9848f13249d320962c1ae77df6ca293cd662f58f03f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nSuppose the alphabet \u03a3 is {0}. Design a machine that recognizes\nthe language A where A is an empty string or all strings over \u03a3\nthat their length is a multiple of 2 or 3.\n0\n0\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 246, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b43ba541-3621-42c7-96cd-d5e881690a32": {"__data__": {"id_": "b43ba541-3621-42c7-96cd-d5e881690a32", "embedding": null, "metadata": {"page_label": "14", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2232f507-dcf6-4017-a5aa-9863696276cc", "node_type": "4", "metadata": {"page_label": "14", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9c6130b7146bbd5692a7d52a327fbcc6e0b71dd3bf6b49896f12fc2be588b86a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nSuppose the alphabet \u03a3 is {0}. Design a machine that recognizes\nthe language A where A is an empty string or all strings over \u03a3\nthat their length is a multiple of 2 or 3.\n0\n0\n0\n00\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 251, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "3127be99-956b-43f7-bb0e-34e3def44d98": {"__data__": {"id_": "3127be99-956b-43f7-bb0e-34e3def44d98", "embedding": null, "metadata": {"page_label": "15", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c23249d5-c658-4b77-9d21-d3d7c8db9f33", "node_type": "4", "metadata": {"page_label": "15", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "e32fcde02ea893edba0845f45355d758978dcb348c6ba939cd2cc8922f53dbc1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nSuppose the alphabet \u03a3 is {0}. Design a machine that recognizes\nthe language A where A is an empty string or all strings over \u03a3\nthat their length is a multiple of 2 or 3.\n0\n0\n0\n00\n\u03b5\n\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 255, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "455ccdf2-99da-4422-8501-1de120940f6f": {"__data__": {"id_": "455ccdf2-99da-4422-8501-1de120940f6f", "embedding": null, "metadata": {"page_label": "16", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "aea0c9d6-50dc-4122-8873-e0243fa71fae", "node_type": "4", "metadata": {"page_label": "16", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "bcc65342690d77b5436f4eedc02342a0503c4fe7027dd0b46fc83eea0bb83e4f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Formal De\ufb01nition of A Nondeterministic Finite Automaton\nA nondeterministic \ufb01nite automaton is a 5-tuple\n(Q,\u03a3,\u03b4,q 0,F)\n1 Q is a \ufb01nite set of states\n2 \u03a3 is a \ufb01nite alphabet\n3 \u03b4: Q\u00d7\u03a3\u03b5 \u2192P(Q) is the transition function,\n\u03a3\u03b5 = \u03a3 \u222a {\u03b5} and\nP(Q) is the powerset of Q (set of set of states).\n4 q0 \u2208Q is the start state\n5 F \u2286Q is the set of accept states.\nNotes\nIn an NFA, one input symbol can change the state of the\nmachine to multiple states.\nSplit to multiple copies with di\ufb00erent current states\nExample: \u03b4(q0,1) = {q0,q1}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 579, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a2c6f61c-cc8b-4484-8141-5714a36593c1": {"__data__": {"id_": "a2c6f61c-cc8b-4484-8141-5714a36593c1", "embedding": null, "metadata": {"page_label": "17", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a5ffe358-ca03-43c0-acd0-df2a4a15b5f1", "node_type": "4", "metadata": {"page_label": "17", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "546706f3fe0d0b9847d64a657a1c5c78a0fbb84bd8d65f77fb08762cfc709857", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5\nQ= {q1,q2,q3,q4}\n\u03a3 = {0,1}and \u03a3\u03b5 = {0,1,\u03b5}\n\u03b4 is given as\n\u03b4 0 1 \u03b5\nq1 {q1} {q1,q2} \u2205\nq2 {q3} \u2205 { q3}\nq3 \u2205 { q4} \u2205\nq4 {q4} { q4} \u2205\nWe treat \u03b5 as a regular input symbol\nIf there is no \u03b5 transitions, we can ignore the \u03b5 column\nq1 is the start state\nF = {q4}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 354, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "50ed9f08-abe0-4731-ac2e-fb433043e111": {"__data__": {"id_": "50ed9f08-abe0-4731-ac2e-fb433043e111", "embedding": null, "metadata": {"page_label": "18", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "aa7a174a-06ed-4b20-9406-8102c1d2a3d0", "node_type": "4", "metadata": {"page_label": "18", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "7bdb10df13c176fbe02166c87a1c19f82374d5cd7cd1848f8f14aa59d5a4bec5", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "NFA and DFA\nNFA is a slightly di\ufb00erent computation model compared to\nDFA\nNFA can split into multiple copies\nNFA may have \u03b5 transitions\nIs there a language that can be recognized by an NFA but\ncannot be recognized by any DFAs?\nIn theory of computation, we try to see whether we can\ncapture the behavior of an NFA using a DFA\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 387, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e603f6cf-8f7f-492c-9825-9d4bb136de94": {"__data__": {"id_": "e603f6cf-8f7f-492c-9825-9d4bb136de94", "embedding": null, "metadata": {"page_label": "19", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e3ba9682-4ab4-4bcb-a285-245b86c4b0f6", "node_type": "4", "metadata": {"page_label": "19", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4f5f6b227eec01138919a7bec71c2e8af66a4fba741ca1ff384a781afe843663", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Simulating and NFA with a DFA\nSimulate 010110\nStart\n1\n0\n1\n1\n0\n0\n{q1}\u222a{q3}\u222a\u2205\u222a{q4}\u222a{q4}\n{q1,q2,q3}\u222a{q4}\n{q1,q2,q3}\n{q1}\n{q1}\n{q1}\u222a{q3}\u222a\u2205\n={q1,q2,q3}\n={q1}\n={q1}\n={q1,q2,q3,q4}\n={q1,q3,q4}\n{q1,q2,q3}\u222a\u2205\u222a{q4}\u222a{q4}={q1,q2,q3,q4}\n={q1,q3}\nq4q4\nq4\nq4\nq4\nq3q2q1\nq3q2q1\nq3q1\nq1\nq1\nq1\nq1\nq3\nq3\nq2\nq1\nq2\nq3\nq4\n\u03b4\n{q1}{q3}\u2205{q4}\n{q1,q2}\u2205{q4}{q4}\n0 1\n\u2205\n\u2205\u2205\n{q3}\n\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 410, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e222bad8-4fca-446b-9348-d451c7b3cc64": {"__data__": {"id_": "e222bad8-4fca-446b-9348-d451c7b3cc64", "embedding": null, "metadata": {"page_label": "20", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "17044cf1-3cba-4e64-924b-8c4f17dcdbbc", "node_type": "4", "metadata": {"page_label": "20", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "5f6664ee4d4dd47052d5ac87e4b2e8c9061f149338c56633d79e6195b48b50e2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Equivalence of NFAs and DFAs\nEvery nondeterministic \ufb01nite automaton has an equivalent\ndeterministic \ufb01nite automaton.\nLet N = (Q,\u03a3,\u03b4,q0,F) be the NFA recognizing some\nlanguage A\nWe are going to construct a DFA M = (Q\u2032,\u03a3,\u03b4\u2032,q\u2032\n0,F\u2032)\nrecognizing A\nLet\u2019s consider the case where N has no \u03b5 transitions.\n1 Q\u2032= P(Q)\n2 \u03b4\u2032(R,a) =\n\u22c3\nr\u2208R\n\u03b4(r,a)\n3 q\u2032\n0 = {q0}\n4 F\u2032= {R\u2208Q\u2032|R contains an accept state of N}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 457, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "16f1082e-d988-43a1-8466-1dafc5d68c29": {"__data__": {"id_": "16f1082e-d988-43a1-8466-1dafc5d68c29", "embedding": null, "metadata": {"page_label": "21", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bd510fca-76da-4c61-99b6-6a6b73363bf2", "node_type": "4", "metadata": {"page_label": "21", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1ed5d3871d97e07002681f2f669c8e13855802540e2b1c50ff6f2ed7bca50d38", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet \u03a3 be {0,1}. The following NFA N recognizes the\nlanguage A where A is a set of strings that end with a 1.\n0, 1\n1\nq0 q1\nN = (Q,\u03a3,\u03b4,q0,F)\n1 Q= {q0,q1},\n2 \u03a3 = {0,1}\n3 \u03b4 is given as\n0 1\nq0 {q0} {q0,q1}\nq1 \u2205 \u2205\n4 q0 is the start state\n5 F = {q1}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 314, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d69d90b2-c0b6-4c2f-9728-41acdc10cb4c": {"__data__": {"id_": "d69d90b2-c0b6-4c2f-9728-41acdc10cb4c", "embedding": null, "metadata": {"page_label": "22", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d21c8b43-0495-4978-a29f-a19a668c96fe", "node_type": "4", "metadata": {"page_label": "22", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "91ca615994d155e5166f68ae0039f246967f04a81bf320ad9a035d3cfd4c1972", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nConstruct a DFA M = (Q\u2032,\u03a3,\u03b4\u2032,q\u2032\n0,F\u2032)\nQ\u2032= P(Q) = P({q0,q1})\nQ\u2032= {\u2205,{q0},{q1},{q0,q1}}\nWe will construct \u03b4\u2032later\nq\u2032\n0 = {q0}where q0 is the start state of the NFA\nF\u2032= {R\u2208Q\u2032|R contains an accept state of N}\nF\u2032= {{q1},{q0,q1}}\nwhere F = {q1}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 310, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "da957fb6-6240-4544-909f-3b0d5bd3f416": {"__data__": {"id_": "da957fb6-6240-4544-909f-3b0d5bd3f416", "embedding": null, "metadata": {"page_label": "23", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "68883579-d952-4bb6-940f-c560a7c79061", "node_type": "4", "metadata": {"page_label": "23", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "bc20e9da393f46c03469f5eea22c3311ab841593aae559bc49129b4082b11fca", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet\u2019s focus on transition functions\nThe transition function \u03b4 of the NFA is as follows:\n0 1\nq0 {q0} {q0,q1}\nq1 \u2205 \u2205\nRecall that the set of state of the equivalent DFA is the power\nset of set of state of the NFA\n\u03b4\u2032 0 1\n\u2205 \u2205 \u2205\n{q0} {q0} {q0,q1}\n{q1} \u2205 \u2205\n{q0,q1} {q0} {q0,q1}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 342, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c3fccf1c-f0da-49af-9565-f331772875d6": {"__data__": {"id_": "c3fccf1c-f0da-49af-9565-f331772875d6", "embedding": null, "metadata": {"page_label": "24", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "82a5de47-9dc8-4815-9e62-c350c7174de3", "node_type": "4", "metadata": {"page_label": "24", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "28c7e07135dd9138a001de7def92252c93f3fd1bbd70c96ff95137d28b139001", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nMachine M = (Q\u2032,\u03a3,\u03b4\u2032,q\u2032\n0,F\u2032) equivalent to N can be\nde\ufb01ned as follows:\nQ\u2032= P(Q) = {\u2205,{q0},{q1},{q0,q1}},\n\u03b4\u2032(R,a) =\n\u22c3\nr\u2208R\n\u03b4(r,a)\n\u03b4\u2032(\u2205,0) =\n\u22c3\nr\u2208\u2205\n\u03b4(r,0) = \u2205\n\u03b4\u2032(\u2205,1) =\n\u22c3\nr\u2208\u2205\n\u03b4(r,1) = \u2205\n\u03b4\u2032({q0},0) =\n\u22c3\nr\u2208{q0}\n\u03b4(r,0) = \u03b4(q0,0) = {q0}\n\u03b4\u2032({q0},1) =\n\u22c3\nr\u2208{q0}\n\u03b4(r,1) = \u03b4(q0,1) = {q0,q1}\n\u03b4\u2032({q1},0) =\n\u22c3\nr\u2208{q1}\n\u03b4(r,0) = \u03b4(q1,0) = \u2205\n\u03b4\u2032({q1},1) =\n\u22c3\nr\u2208{q1}\n\u03b4(r,1) = \u03b4(q1,1) = \u2205\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 435, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9a75357b-2166-47a1-bbe4-9a66b634d79c": {"__data__": {"id_": "9a75357b-2166-47a1-bbe4-9a66b634d79c", "embedding": null, "metadata": {"page_label": "25", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c4cdcfc1-5755-4ac5-afd3-351c31973a90", "node_type": "4", "metadata": {"page_label": "25", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2ba299b018943238efb79ce42d7134e88cc99b4a6bd7c3759968ae367fb0f794", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nMachine M (Continue)\n\u03b4\u2032(Continue)\n\u03b4\u2032({q0,q1},0) =\n\u22c3\nr\u2208{q0,q1}\n\u03b4(r,0) = \u03b4(q0,0) \u222a \u03b4(q1,0) =\n{q0} \u222a \u2205= {q0}\n\u03b4\u2032({q0,q1},1) =\n\u22c3\nr\u2208{q0,q1}\n\u03b4(r,0) = \u03b4(q0,1) \u222a \u03b4(q1,1) =\n{q0,q1} \u222a \u2205= {q0,q1}\nThus \u03b4\u2032is given by\n\u03b4\u2032 0 1\n\u2205 \u2205 \u2205\n{q0} {q0} {q0,q1}\n{q1} \u2205 \u2205\n{q0,q1} {q0} {q0,q1}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 335, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d4874a4c-103f-4408-8369-0c5c2ae2ae53": {"__data__": {"id_": "d4874a4c-103f-4408-8369-0c5c2ae2ae53", "embedding": null, "metadata": {"page_label": "26", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "79246a62-5b50-4804-a2a0-783f8f7adf07", "node_type": "4", "metadata": {"page_label": "26", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "54ebc073980dc07d8793d9a0565cb7f6c863782a60c542b020d5c34b58f39563", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nThe state diagram of the machine M = (Q\u2032,\u03a3,\u03b4\u2032,q\u2032\n0,F\u2032)\nequivalent to N (L(M) = L(N)) is shown below:\n0\n1\n0\n1\n0\n1\n0\n1\n{q0}\n{q1} \u2205\n{q0, q1}\nWithout bottom part, it is the same as one of our previous\nexample\nIt is okay for a DFA to have unreachable states\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 324, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dc4f425e-34a5-4e97-bea7-a87379f84dc3": {"__data__": {"id_": "dc4f425e-34a5-4e97-bea7-a87379f84dc3", "embedding": null, "metadata": {"page_label": "27", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1f3099c8-70b3-4538-ba1e-1cc9fbedfdbe", "node_type": "4", "metadata": {"page_label": "27", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "2e43687e1c990f0e21475217efe8cfbe65c9710f8d32ffdb6ad51f1e44616d6f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "NFA to DFA with \u03b5 Symbol\nLet E(R) be the collection of states that can be reached from\nmembers of R by going only along \u03b5 arrows, including the\nmembers of R themselves.\nE(R) = {q|q can be reached from R by travel along\n0 or more \u03b5 arrows}\nNote that a state q can be reached from its own state q by\ntravel along no \u03b5 arrow (R\u2286E(R))\nExample:\nq2 q3 q4q1\n0,1 0 ,1\n1 1 0 , \u03b5\nE({q1}) = {q1}\nE({q2}) = {q2,q3}\nE({q1,q2}) = {q1,q2,q3}\nE({q1,q3}) = {q1,q3}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 511, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b3d63e96-2d58-4751-a339-09fa28c4e63e": {"__data__": {"id_": "b3d63e96-2d58-4751-a339-09fa28c4e63e", "embedding": null, "metadata": {"page_label": "28", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d92d0d5a-c372-4dec-85cf-f91964c59b48", "node_type": "4", "metadata": {"page_label": "28", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "41c68b85553921bea7218226523919e540a0a485143618fdb6dae857d3d9d8b0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "NFA to DFA with \u03b5 Symbol\nLet NFA N = (Q,\u03a3,\u03b4,q0,F) with \u03b5 transitions that\nrecognizes a language A\nWe can construct a DFA M = (Q\u2032,\u03a3,\u03b4\u2032,q\u2032\n0,F\u2032) as\n1 Q\u2032= P(Q)\n2 \u03b4\u2032is given by\n\u03b4\u2032(R,a) =\n\u22c3\nr\u2208R\nE(\u03b4(r,a))\n3 q\u2032\n0 = E({q0})\nIf q0 has no exiting arrow for \u03b5, q\u2032\n0 = {q0}\n4 F\u2032= {R\u2208Q\u2032|R contains an accept state of N}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 370, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1187add3-24ee-44d9-979d-75e9cf7e1c21": {"__data__": {"id_": "1187add3-24ee-44d9-979d-75e9cf7e1c21", "embedding": null, "metadata": {"page_label": "29", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8365841a-87fb-4f54-9bff-25f4934e2e0b", "node_type": "4", "metadata": {"page_label": "29", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "bc5ebf6e1767bc16d561257f022ec039d27092de089a7e2171885893cf246d76", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nConsider the following NFA machine:\n1\n2 3\nab\na, b\na\n\u03b5\nN = (Q,\u03a3,\u03b4,q0,F)\nQ= {1,2,3}\n\u03a3 = {a,b}\n\u03b4 is given by\na b \u03b5\n1 \u2205 { 2} {3}\n2 {2,3} {3} \u2205\n3 {1} \u2205 \u2205\nq0 = 1\nF = {1}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 235, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "bd8e2c4c-8ea7-401a-a725-5631809a01b4": {"__data__": {"id_": "bd8e2c4c-8ea7-401a-a725-5631809a01b4", "embedding": null, "metadata": {"page_label": "30", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c35feddc-cc0c-46a6-9640-fa04d01d06a6", "node_type": "4", "metadata": {"page_label": "30", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "93861e9354750a389353e15df385e5e687a14d5c832dfcf9e9bdcb5970e4eb62", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nMachine M = (Q\u2032,\u03a3,\u03b4\u2032,q\u2032\n0,F\u2032) equivalent to N:\nQ\u2032= P(Q) = P({1,2,3})\nQ\u2032= {\u2205,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}}\nStart state is E({1}) = {1,3}\nF\u2032is a set of set of states that contain accept states of N\n(F = {1}).\nF\u2032= {{1},{1,2},{1,3},{1,2,3}}\n\u03b4\u2032(R,a) =\n\u22c3\nr\u2208R\nE(\u03b4(r,a))\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 343, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "af022fe9-0ebc-45e7-9460-f148a41939ed": {"__data__": {"id_": "af022fe9-0ebc-45e7-9460-f148a41939ed", "embedding": null, "metadata": {"page_label": "31", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8dd08ac1-1070-4322-aaf3-51b9b13eb02f", "node_type": "4", "metadata": {"page_label": "31", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1b19fc30954864c2a200aa5ad51a192845838239cc9a439768789c22d3ff2f53", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nLet\u2019s focus on transition functions\nThe transition function \u03b4 of the NFA is as follows:\n\u03b4 a b \u03b5\n1 \u2205 { 2} {3}\n2 {2,3} {3} \u2205\n3 {1} \u2205 \u2205\nRecall that the set of state of the equivalent DFA is the power\nset of set of state of the NFA\n\u03b4\u2032 a b\n\u2205 \u2205 \u2205\n{1} \u2205 {2}\n{2} {2,3} {3}\n{3} {1,3} \u2205\n{1,2} {2,3} {2,3}\n{1,3} {1,3} {2}\n{2,3} {1,2,3} {3}\n{1,2,3} {1,2,3} {2,3}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 422, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ebb7d8ba-57cf-4ec8-a0b9-52fa481f2947": {"__data__": {"id_": "ebb7d8ba-57cf-4ec8-a0b9-52fa481f2947", "embedding": null, "metadata": {"page_label": "32", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b358d1b1-fa5f-436e-ab1d-3857285aaeb2", "node_type": "4", "metadata": {"page_label": "32", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4e4c41a002eae004c0d85ef1bd6bd1cd14fcc5389a7e4d79da36b661d62923c4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Machine M\u2019s \u03b4\u2032\n\u03b4\u2032(\u2205,a) =\n\u22c3\nr\u2208\u2205\nE(\u03b4(r,a))\n= \u2205\n\u03b4\u2032(\u2205,b) =\n\u22c3\nr\u2208\u2205\nE(\u03b4(r,b))\n= \u2205\n\u03b4\u2032({1},a) =\n\u22c3\nr\u2208{1}\nE(\u03b4(r,a))\n= E(\u03b4(1,a))\n= E(\u2205)\n= \u2205\n\u03b4\u2032({1},b) =\n\u22c3\nr\u2208{1}\nE(\u03b4(r,b))\n= E(\u03b4(1,b))\n= E({2})\n= {2}\n\u03b4\u2032({2},a) =\n\u22c3\nr\u2208{2}\nE(\u03b4(r,a))\n= E(\u03b4(2,a))\n= E({2,3})\n= {2,3}\n\u03b4\u2032({2},b) =\n\u22c3\nr\u2208{2}\nE(\u03b4(r,b))\n= E(\u03b4(2,b))\n= E({3})\n= {3}\n\u03b4\u2032({3},a) =\n\u22c3\nr\u2208{3}\nE(\u03b4(r,a))\n= E(\u03b4(3,a))\n= E({1})\n= {1,3}\n\u03b4\u2032({3},b) =\n\u22c3\nr\u2208{3}\nE(\u03b4(r,b))\n= E(\u03b4(3,b))\n= E(\u2205)\n= \u2205\n\u03b4\u2032({1,2},a) =\n\u22c3\nr\u2208{1,2}\nE(\u03b4(r,a))\n= E(\u03b4(1,a)) \u222a E(\u03b4(2,a))\n= \u2205 \u222a {2,3}\n= {2,3}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 556, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5cca41cc-aa22-448d-9201-a3c2b08895d8": {"__data__": {"id_": "5cca41cc-aa22-448d-9201-a3c2b08895d8", "embedding": null, "metadata": {"page_label": "33", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2473ae9e-88cb-4582-a2b2-b403365babcb", "node_type": "4", "metadata": {"page_label": "33", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ee6bb99ec078fb6846c3588c280d9692c6524ad9d2c2daed07627feb07e8ba0a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Machine M\u2019s \u03b4\u2032\n\u03b4\u2032({1,2},b) =\n\u22c3\nr\u2208{1,2}\nE(\u03b4(r,b))\n= E(\u03b4(1,b)) \u222a E(\u03b4(2,b))\n= {2} \u222a {3}\n= {2,3}\n\u03b4\u2032({1,3},a) =\n\u22c3\nr\u2208{1,3}\nE(\u03b4(r,a))\n= E(\u03b4(1,a)) \u222a E(\u03b4(3,a))\n= \u2205 \u222a {1,3}\n= {1,3}\n\u03b4\u2032({1,3},b) =\n\u22c3\nr\u2208{1,3}\nE(\u03b4(r,b))\n= E(\u03b4(1,b)) \u222a E(\u03b4(3,b))\n= {2} \u222a \u2205\n= {2}\n\u03b4\u2032({2,3},a) =\n\u22c3\nr\u2208{2,3}\nE(\u03b4(r,a))\n= E(\u03b4(2,a)) \u222a E(\u03b4(3,a))\n= {2,3} \u222a {1,3}\n= {1,2,3}\n\u03b4\u2032({2,3},b) =\n\u22c3\nr\u2208{2,3}\nE(\u03b4(r,b))\n= E(\u03b4(2,b)) \u222a E(\u03b4(3,b))\n= {3} \u222a \u2205\n= {3}\n\u03b4\u2032({1,2,3},a) =\n\u22c3\nr\u2208{1,2,3}\nE(\u03b4(r,a))\n= E(\u03b4(1,a) \u222a E(\u03b4(2,a))\u222a\nE(\u03b4(3,a))\n= \u2205 \u222a {2,3} \u222a {1,3}\n= {1,2,3}\n\u03b4\u2032({1,2,3},b) =\n\u22c3\nr\u2208{1,2,3}\nE(\u03b4(r,b))\n= E(\u03b4(1,b) \u222a E(\u03b4(2,b))\u222a\nE(\u03b4(3,b))\n= {2} \u222a {3} \u222a \u2205\n= {2,3}\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 664, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ee0f90ed-af7d-424a-a754-862d39a2a532": {"__data__": {"id_": "ee0f90ed-af7d-424a-a754-862d39a2a532", "embedding": null, "metadata": {"page_label": "34", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "edd30ff5-5008-4912-ab2b-a969b3763803", "node_type": "4", "metadata": {"page_label": "34", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "8a2535bd83d167bb66cc80c48f1627ff7317d6831ea101850636eac5b914f1cf", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Example\nRecall the transition function of M\na b\n\u2205 \u2205 \u2205\n{1} \u2205 { 2}\n{2} {2,3} { 3}\n{3} {1,3} \u2205\n{1,2} {2,3} { 2,3}\n{1,3} {1,3} { 2}\n{2,3} {1,2,3} { 3}\n{1,2,3} {1,2,3} {2,3}\nThe state diagram of M\n{1}\n{1,3}\n{1,2}\n{1,2,3}\n\u03c6\n{3}\n{2}\n{2,3}\na, b\na\nb\nb\na\nb\nb\na\na\nb\na, b\na\nb\na\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 329, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2deb9f57-8b71-46db-96a0-8028214b2f42": {"__data__": {"id_": "2deb9f57-8b71-46db-96a0-8028214b2f42", "embedding": null, "metadata": {"page_label": "35", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "a064c6d7-b35d-4099-9187-688d7277681d", "node_type": "4", "metadata": {"page_label": "35", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "f58442f127d98aa64aa360faf425291abb284109616678972825064f7080a72d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Union Operation\nN 1\n2N\nN\n\u03b5\n\u03b5\nN1 recognizes a regular language A\nN2 recognizes a regular language B\nN recognizes A\u222aB (A\u222aB is regular)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 210, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "1e74dd6f-2ace-49b8-a9bc-01272b514a2c": {"__data__": {"id_": "1e74dd6f-2ace-49b8-a9bc-01272b514a2c", "embedding": null, "metadata": {"page_label": "36", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c75a77bc-7097-4783-8364-d1fa0f983260", "node_type": "4", "metadata": {"page_label": "36", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4a38b6383a5fa409c6b3f133c20f5c4023f1f25f9bd8f463d862869a416ba79b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Union Operation\nLet N1 = (Q1,\u03a3,\u03b41,q1,F1) recognizes A1.\nLet N2 = (Q2,\u03a3,\u03b42,q2,F2) recognizes A2.\nTo construct N = (Q,\u03a3,\u03b4,q0,F) to recognizes A1 \u222aA2:\n1 Q= {q0}\u222aQ1 \u222aQ2\n2 The state q0 is the start state of N\n3 The set of accept state F = F1 \u222aF2\n4 \u03b4 is given by\n\u03b4(q,a) =\n\uf8f1\n\uf8f4\uf8f4\uf8f4\uf8f2\n\uf8f4\uf8f4\uf8f4\uf8f3\n\u03b41(q,a) q\u2208Q1\n\u03b42(q,a) q\u2208Q2\n{q1,q2} q= q0 and a= \u03b5\n\u2205 q= q0 and a\u0338= \u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 422, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c535587b-27c1-447a-86c1-c69a443e422a": {"__data__": {"id_": "c535587b-27c1-447a-86c1-c69a443e422a", "embedding": null, "metadata": {"page_label": "37", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "454d7335-ea9a-4977-b716-d1f46b56cab1", "node_type": "4", "metadata": {"page_label": "37", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "84e3e11c1b4ce5f651cef7d0ade2163ba8ab99aabf57aefb2c2605b8bd079f7e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Union Operation\nGiven state diagrams of \ufb01nite-state machines N1 and N2\nTo draw a state diagram of a new machine N where\nL(N) = L(N1) \u222aL(N2):\n1 Draw the state diagram of N1 on the top half\n2 Draw the state diagram of N2 on the bottom half\n3 Add a new start state\n4 Add \u03b5 transitions from the new start state to the start states\nof N1 and N2, respectively\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 431, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "45287d43-7877-4d0a-bdc6-f6c46fb1af21": {"__data__": {"id_": "45287d43-7877-4d0a-bdc6-f6c46fb1af21", "embedding": null, "metadata": {"page_label": "38", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6dfcbd71-532c-40be-8e24-7ec825b428bf", "node_type": "4", "metadata": {"page_label": "38", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "8578f964ad49fc85b8bfdf95399d51251fa3e14ccfe46f5673bbb2d82688a0e0", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Union Operation\nDraw N1 on the top half\nN1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 120, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "318f174b-2b2d-4557-b711-67875c913166": {"__data__": {"id_": "318f174b-2b2d-4557-b711-67875c913166", "embedding": null, "metadata": {"page_label": "39", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "138b8875-b4a8-473b-8109-2f072a1975af", "node_type": "4", "metadata": {"page_label": "39", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "bb4e2084b47cbdd3792fce335e746e49d5b9a36ff361f701c7d85bf0f73d5430", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Union Operation\nDraw N2 on the bottom half\nN1\nN2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 126, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "869cb580-35c9-4c95-bf38-be22f21c7afb": {"__data__": {"id_": "869cb580-35c9-4c95-bf38-be22f21c7afb", "embedding": null, "metadata": {"page_label": "40", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0187e278-65a4-4f29-aea9-aa74a58577a1", "node_type": "4", "metadata": {"page_label": "40", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "8d167e923750991545045c0a855d342f0d93650e49ef16b7bb36be4af6a9a3a3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Union Operation\nAdd new start state\nN1\nN2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 119, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "775b2667-f71a-4c26-8dc5-8591932367c5": {"__data__": {"id_": "775b2667-f71a-4c26-8dc5-8591932367c5", "embedding": null, "metadata": {"page_label": "41", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3b3daa7e-235e-4eb6-9e6a-a29121708ac3", "node_type": "4", "metadata": {"page_label": "41", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "98fa100e574c227b1c860636641181f55e9eb1f19b90bd45822f4dc5006b06a9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Union Operation\nAdd \u03b5 transitions\nN\n\u03b5\n\u03b5\nN1\nN2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 123, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "630ecad1-4ded-45de-adfd-aa3dfeaaae56": {"__data__": {"id_": "630ecad1-4ded-45de-adfd-aa3dfeaaae56", "embedding": null, "metadata": {"page_label": "42", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "e65c58fc-469a-463c-b3b6-bdc6c9abe42c", "node_type": "4", "metadata": {"page_label": "42", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "4b26b54c28f7f773510f52ef4458785d47adae18c5034b79a963dacd265e9b23", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Concatenation Operation\nLet N1 recognizes A and N2 recognizes B\nGiven a string w, how do we know whether w\u2208AB?\nRecall the de\ufb01nition of AB (A concatenated by B)\nAB = {xy|x\u2208A and y\u2208B}\nFor w to be in AB, w must be divided into two strings x and\ny where w= xy such that x\u2208A and y\u2208B\nIf x\u2208A, x\u2208L(N1)\nSince x\u2208 L(N1), by simulating N1 on input x, the simulation\nwill end in an accept state of N1 (N1 accepts x)\nBut if x\u0338\u2208A, simulation will end in a non-accept state of N1\nIf y\u2208B, y\u2208L(N2)\nSince y\u2208 L(N2), by simulating N2 on input y, the simulation\nwill end in an accept state of N2 (N2 accepts y)\nBut if y\u0338\u2208B, simulation will end in a non-accept state of N2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 727, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "cd15589c-d5eb-42e2-891e-d967d2b066e6": {"__data__": {"id_": "cd15589c-d5eb-42e2-891e-d967d2b066e6", "embedding": null, "metadata": {"page_label": "43", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ef642fea-03cd-43c0-9e74-8e1c919f6dea", "node_type": "4", "metadata": {"page_label": "43", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "69548b9a55a611ca6b3f0e9851b7a57b1d2ab1cd4ab631a5b3759dc83cbaf88d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Concatenation Operation\nN 1 2N\nN\n\u03b5\n\u03b5\n\u03b5\nN1 recognizes a regular language A\nN2 recognizes a regular language B\nN recognizes AB (AB is regular)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 218, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7afd809-5666-4e72-ad9e-2dc3150d23b0": {"__data__": {"id_": "e7afd809-5666-4e72-ad9e-2dc3150d23b0", "embedding": null, "metadata": {"page_label": "44", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ae721862-0ebf-4fe6-bd3e-b38e96e1887e", "node_type": "4", "metadata": {"page_label": "44", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "5cb4458d35f64b91211cc8df4b4417bb26da94b52e3a12a0d1a4bc2100a138f1", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Concatenation Operation\nLet N1 = (Q1,\u03a3,\u03b41,q1,F1) recognizes A1.\nLet N2 = (Q2,\u03a3,\u03b42,q2,F2) recognizes A2.\nTo construct N = (Q,\u03a3,\u03b4,q0,F) to recognizes A1 \u25e6A2:\n1 Q= Q1 \u222aQ2\n2 The state q1 is the start state of N\n3 The set of accept state F = F2\n4 \u03b4 is given by\n\u03b4(q,a) =\n\uf8f1\n\uf8f4\uf8f4\uf8f4\uf8f2\n\uf8f4\uf8f4\uf8f4\uf8f3\n\u03b41(q,a) q\u2208Q1 and q\u0338\u2208F1\n\u03b42(q,a) q\u2208Q2 and a\u0338= \u03b5\n\u03b41(q,a) \u222a{q2} q\u2208F1 and a= \u03b5\n\u03b42(q,a) q\u2208Q2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 441, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a80664c6-ebfe-4b14-84a0-8eb66d5c8c45": {"__data__": {"id_": "a80664c6-ebfe-4b14-84a0-8eb66d5c8c45", "embedding": null, "metadata": {"page_label": "45", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "055bbde9-af1a-4447-8b3e-f9a23337e3e8", "node_type": "4", "metadata": {"page_label": "45", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "1d961fcf738487802527e59ce96a5c9825e4eb919866bdc253c464cde9c8c175", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Concatenation Operation\nGiven state diagrams of \ufb01nite-state machines N1 and N2\nTo draw a state diagram of a new machine N where\nL(N) = L(N1) \u25e6L(N2):\n1 Draw the state diagram of N1 on the left side\n2 Draw the state diagram of N2 on the right side\n3 For every accept state of N1, add the \u03b5 transition to the start\nstate of N2\n4 Change all accept states of N1 to non-accept states\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 455, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b43e4661-1f31-4327-9df2-92a3474d77fd": {"__data__": {"id_": "b43e4661-1f31-4327-9df2-92a3474d77fd", "embedding": null, "metadata": {"page_label": "46", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "fd9e85d0-0638-4016-85bc-781aaf299e61", "node_type": "4", "metadata": {"page_label": "46", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "06fff8ce29878bedcebe680797d602b9994167f1615c0abf758f080148ba7f45", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Concatenation Operation\nDraw the state diagram of N1 on the left side\nN1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 150, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "be50ef6d-bd78-4ac5-bb78-6d1704d73646": {"__data__": {"id_": "be50ef6d-bd78-4ac5-bb78-6d1704d73646", "embedding": null, "metadata": {"page_label": "47", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "34ffd4ea-e4b3-45ad-b9fd-0375d4965494", "node_type": "4", "metadata": {"page_label": "47", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "39924e1583423b80230923117287d43c4eff839701dad907243355fbf0cdcae4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Concatenation Operation\nDraw the state diagram of N2 on the right side\nN1 N2\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 154, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6b50034d-57da-409a-8636-3110ff079d0b": {"__data__": {"id_": "6b50034d-57da-409a-8636-3110ff079d0b", "embedding": null, "metadata": {"page_label": "48", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3c5dd1e1-59e7-4356-b077-4168a9cbf063", "node_type": "4", "metadata": {"page_label": "48", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3493ca4d8636a7b3fd72921d629c5803838fc02ad9f59a12e7ad1e0f8c923f7a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Concatenation Operation\n\u03b5 from accept states of N1 to start state of N2\n\u03b5\n\u03b5\n\u03b5\nN2N1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 160, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "eb60e00a-5baa-4c84-98e9-165200151741": {"__data__": {"id_": "eb60e00a-5baa-4c84-98e9-165200151741", "embedding": null, "metadata": {"page_label": "49", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "10cd83a7-0e3f-4c97-9df2-95ba80cc75aa", "node_type": "4", "metadata": {"page_label": "49", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "10c9b5aee276fbfe145a82a87b9e9a6dccde96276d06323ecd5cd27881c0a2ef", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Concatenation Operation\nAccept states of N1 to non-accept states\nN\n\u03b5\n\u03b5\n\u03b5\nN2N1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 155, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2e8495b1-6dcc-4db5-b24b-bef3b48a5e1c": {"__data__": {"id_": "2e8495b1-6dcc-4db5-b24b-bef3b48a5e1c", "embedding": null, "metadata": {"page_label": "50", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b9c79cf9-fdc0-48e5-8ffc-4c3f9573cfe4", "node_type": "4", "metadata": {"page_label": "50", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "3737a11749b1109c9ed9fbc9e93dedd14b06de27d1e3a7a9a9c10d662e730d27", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Star Operation\nStar operator is similar to concatenation except that it can be\nconcatenated any number of times:\nA\u2217= {x1x2x3 ...x k |k\u22650 and xi \u2208A}\nand\n\u03b5\u2208A\u2217 for any language A\nN 1\nN\n\u03b5\n\u03b5\u03b5\nN1 recognizes a regular language A\nN recognizes A\u2217(A\u2217is regular)\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 329, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "55436eb4-d968-4007-8536-0f4ec072ac0d": {"__data__": {"id_": "55436eb4-d968-4007-8536-0f4ec072ac0d", "embedding": null, "metadata": {"page_label": "51", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "791c882b-7d60-435e-9516-19ef92408ac3", "node_type": "4", "metadata": {"page_label": "51", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "a4658dc385dfc9cf4d0e32ff253ec03bc567899989e5df06155a90d4e1f78fcb", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Star Operation\nLet N1 = (Q1,\u03a3,\u03b41,q1,F1) recognizes A1.\nTo construct N = (Q,\u03a3,\u03b4,q0,F) to recognizes A\u2217\n1:\n1 Q= {q0}\u222aQ1\n2 The state q0 is the start state of N\n3 The set of accept state F = {q0}\u222aF1\n4 \u03b4 is given by\n\u03b4(q,a) =\n\uf8f1\n\uf8f4\uf8f4\uf8f4\uf8f4\uf8f4\uf8f4\uf8f2\n\uf8f4\uf8f4\uf8f4\uf8f4\uf8f4\uf8f4\uf8f3\n\u03b41(q,a) q\u2208Q1 and q\u0338\u2208F1\n\u03b41(q,a) q\u2208F1 and a\u0338= \u03b5\n\u03b41(q,a) \u222a{q1} q\u2208F1 and a= \u03b5\n{q1} q= q0 and a= \u03b5\n\u2205 q= q0 and a\u0338\u2208\u03b5\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 426, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "22b3c4ad-cec5-4550-8815-ac37aedea246": {"__data__": {"id_": "22b3c4ad-cec5-4550-8815-ac37aedea246", "embedding": null, "metadata": {"page_label": "52", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2cd817a6-4b76-4efd-b0ea-4f239c31929c", "node_type": "4", "metadata": {"page_label": "52", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "006becf2326cc6eff3f7664a6a3eeabaca8e1172887beb31eb1c3588c833ea7a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Star Operation\nGiven state diagrams of \ufb01nite-state machines N1\nTo draw a state diagram of a new machine N where\nL(N) = L(N1)\u2217:\n1 Draw the state diagram of N1\n2 Add a new start state and make it an accept state\n3 Add \u03b5 transition from the new start state to the start state of\nN1\n4 For each original accept state of N1, add \u03b5 transition to the\noriginal start state of N1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 447, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "be4671b1-3357-4846-8843-d8ebebfc1ad7": {"__data__": {"id_": "be4671b1-3357-4846-8843-d8ebebfc1ad7", "embedding": null, "metadata": {"page_label": "53", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "38e22a6b-20d5-4dff-92ef-487ce4aa504f", "node_type": "4", "metadata": {"page_label": "53", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "9c14ac1e34072c57c700c2a4bef4f133b6406552b162fd0227bfca391f5fb87b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Star Operation\nDraw the state diagram of N1\nN1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 124, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5f1f276f-be06-4632-8f23-e769d8ebf3ba": {"__data__": {"id_": "5f1f276f-be06-4632-8f23-e769d8ebf3ba", "embedding": null, "metadata": {"page_label": "54", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "70f38bac-f675-49e6-abfe-959aeef2d9df", "node_type": "4", "metadata": {"page_label": "54", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "c4d822e793798e230a28c300d4b692e2aa3ec2e52c05babde91b216babf66848", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Star Operation\nAdd a new start state and make it an accept state\nN1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 145, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8891ef0a-513b-4187-8a46-92b6bb9da132": {"__data__": {"id_": "8891ef0a-513b-4187-8a46-92b6bb9da132", "embedding": null, "metadata": {"page_label": "55", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "165f5c1a-6c30-4164-91ea-2363ffc670ed", "node_type": "4", "metadata": {"page_label": "55", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ea19b329d406521405fb00e79f0af9b902c1e355f97861a096d4a55d166c7775", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Star Operation\nAdd \u03b5 from thew new start state to the original start state of\nN1\n\u03b5\nN1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 163, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0dd73715-e49b-4c4f-8966-b02921a820ba": {"__data__": {"id_": "0dd73715-e49b-4c4f-8966-b02921a820ba", "embedding": null, "metadata": {"page_label": "56", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f5512f29-6383-4f09-96a1-483f4f4c8984", "node_type": "4", "metadata": {"page_label": "56", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "ae553d96cb1a7bf103e986e49fb03426c3b40c7f862b788de2d463faf283153b", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Closure Under Star Operation\nFor each original accept state of N1, add \u03b5 transition to the\noriginal start state of N1\nN\n\u03b5\n\u03b5\u03b5\nN1\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 191, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "147447f6-993c-40a8-8ecd-0db4ab4aff20": {"__data__": {"id_": "147447f6-993c-40a8-8ecd-0db4ab4aff20", "embedding": null, "metadata": {"page_label": "57", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "1f67bce7-25c5-4fd3-8afc-855a96fb397c", "node_type": "4", "metadata": {"page_label": "57", "file_name": "finite_automata_03_handout.pdf", "file_path": "data/finite_automata_03_handout.pdf", "file_type": "application/pdf", "file_size": 441160, "creation_date": "2025-09-24", "last_modified_date": "2025-09-24"}, "hash": "c5045cd34167d54afb54e59dee793b857e5fc66b7f383aade50e355914bc9696", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "Conclusions\nA Nondeterministic Finite Automata (NFA) has an equivalent\nDeterministic Finite Automata (DFA)\nThe algorithm how to convert from an NFA N to an\nequivalent DFA D where L(N) = L(D) has been discussed\nThe set of all regular languages is closed under union,\nconcatenation, and star operations:\nIf A and B are regular languages, A\u222aB is a regular language\nIf A and B are regular languages, AB (A\u25e6B) is a regular\nlanguage\nIf A is a regular language, A\u2217is a regular language\nThe proof process also gives us an algorithm how to construct\nDFAs\nThumrongsak Kosiyatrakultkosiyat@cs.pitt.edu Finite Automata 03", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 609, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b7689ed0-6158-4268-a602-8665510d12f2": {"__data__": {"id_": "b7689ed0-6158-4268-a602-8665510d12f2", "embedding": null, "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c3984c7e-fe57-4a4d-a681-a3c0c0330e9a", "node_type": "4", "metadata": {"page_label": "1", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c1619fcc719fb3f8b0860d86447658a2c35d46566c5d152e8c3127e7d029c518", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL06 Requirements Elicitation I\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 166, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "76e9969f-8136-401a-9ef5-af2f21264143": {"__data__": {"id_": "76e9969f-8136-401a-9ef5-af2f21264143", "embedding": null, "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2ee6db9b-8731-41f0-9cd3-dd5124a9a6c8", "node_type": "4", "metadata": {"page_label": "2", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "d95e4bb91d2f0609e1e88dc474b494c88836886d060e8867f935a121bf87deee", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCopyright\n\u2022 These slides are intended for use by students in CS 1530 at the University of Pittsburgh only and \nno one else. They are o\ufb00ered free of charge and must not be sold or shared in any manner. \nDistribution to individuals other than registered students is strictly prohibited, as is their publication \non the internet.\n\u2022 All materials presented in this course are protected by copyright and have been duplicated solely for the \neducational purposes of the university in accordance with the granted license. Selling, modifying, \nreproducing, or sharing any portion of this material with others is prohibited. If you receive these materials in \nelectronic format, you are permitted to print them solely for personal study and research purposes.\n\u2022 Please be aware that failure to adhere to these guidelines could result in legal action for copyright \ninfringement and/or disciplinary measures imposed by the university. Your compliance is greatly appreciated. \n\u2022 Material from these notes is obtained from various sources, including, but not limited to, the \nfollowing:\n\u2022 Bruegge, & Dutoit. Object\u2013oriented software engineering. using UML, patterns, and Java. Pearson, 2009.\n\u2022 Gamma, Erich, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Pearson, 1994.\n\u2022 Sommerville, Ian. \"Software Engineering\" Pearson. 2011.\n\u2022 http://scrum.org/ \n2CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1488, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "c0b97ba8-391d-4f3c-9118-97894c63a1e8": {"__data__": {"id_": "c0b97ba8-391d-4f3c-9118-97894c63a1e8", "embedding": null, "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b5ee88d0-aa46-45b2-9343-3401459a6a11", "node_type": "4", "metadata": {"page_label": "3", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7fb50f46da391b89095e82a1abe65f795d0675cd141ca75cc36846d1ac13f6dd", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nLearning goals\n\u2022 You have a better understanding of user, enduser, and customer\n\u2022 You can extract functional requirements from a problem statement\n3CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 279, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ba0709be-e72e-4f4b-822f-173a6544b468": {"__data__": {"id_": "ba0709be-e72e-4f4b-822f-173a6544b468", "embedding": null, "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d066b393-bcf6-4afc-a495-bd7bdd2a60f4", "node_type": "4", "metadata": {"page_label": "4", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9556fbde3dfa028963e211cf3a35ab53da7762803c8a48563889393915a0333a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Intro to requirements engineering\n\u2022 Functional requirements \n4CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 173, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9c926f93-9c8d-4619-8bdd-9a72fad56ba2": {"__data__": {"id_": "9c926f93-9c8d-4619-8bdd-9a72fad56ba2", "embedding": null, "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "402aa389-93ed-4859-b728-cca0b06c2e23", "node_type": "4", "metadata": {"page_label": "5", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b16a99d86e40e2756f3d8b341bb56ce17b90d1444a4a2987584fddf799c932af", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nCompany X develops an ordering platform for Restaurant Chain Y . \nRestaurant managers use an admin dashboard to update menus & track orders. \nCustomers place orders through the app and get their food delivered.\n[Example] Who is the user, enduser, and customer?\n5CS 1530 - L06 Requirements Elicitation: Functional requirements\nCompany A builds a software product for Company B. \u2028\nKim purchases the software product from Company B. \nCompany M creates an online banking backend for Bank N. \nBank tellers and support sta\ufb00 use the system to manage accounts. \nBank customers use the mobile app or website to transfer money \nand check balances.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 667, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e2e7a163-cddc-44ec-baef-4b9129405fcd": {"__data__": {"id_": "e2e7a163-cddc-44ec-baef-4b9129405fcd", "embedding": null, "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "c695dd04-7924-43c2-8629-cef0bc2b5b6c", "node_type": "4", "metadata": {"page_label": "6", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "261dabca0e780dd87987100710474baf10042d51316d0b9020aa9fff127f1040", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nUser vs enduser\n\u2022 User is anyone who interacts with the system\n\u2022 Includes maintainers or supporters of a system\n\u2022 Can be an external system\n\u2022 [Example] system operations / administrators, technical personnel\n\u2022 Enduser is the person who is intended to use the software for its primary \nfunction\n\u2022 Does not need advanced technical knowledge of the system\n\u2022 [Example] person who downloads an app from the App Store/Google Play Store\n6CS 1530 - L06 Requirements Elicitation: Functional requirements\nThe users of a software system should be de\ufb01ned \u2028\nat the start of a project!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 601, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6cc5ec7b-25ea-4b83-8d96-d8a33ea22717": {"__data__": {"id_": "6cc5ec7b-25ea-4b83-8d96-d8a33ea22717", "embedding": null, "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "2a0e3e61-08e5-4c7f-864e-133a8c837076", "node_type": "4", "metadata": {"page_label": "7", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "df8fe1d476649e604b37863dbe7f9b7a4b85d655911874e8568def67cd43fe48", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSDLC\nActors & Activities\n7CS 1530 - L06 Requirements Elicitation: Functional requirements\nCustomer\nProjectManager\nDeveloper\nEnduser\nDe\ufb01ne \nproblem\nDevelop \nsystem\nOperate \nSystem\nDevelop software \nsystem\n<>\n<>\n<>\nAdministratorSystem", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 292, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "58973a7b-4e16-43f6-87b4-06d225ff99f1": {"__data__": {"id_": "58973a7b-4e16-43f6-87b4-06d225ff99f1", "embedding": null, "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3341bd3a-269a-45c0-b4e2-25c63536366f", "node_type": "4", "metadata": {"page_label": "8", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "75d86b48c228557b6e78485ef3154a629f5ae406a2a28a8969ef4dc880e3c61d", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem de\ufb01nition\n\u2022 Typically documented as an informal problem statement\n\u2022 Describes the purpose of the system\n\u2022 Not necessarily something that is wrong\n\u2022 Could describe the gap between an existing and desired state\n\u2022 Could be an idea\n\u2022 The problem is not the solution!\n8CS 1530 - L06 Requirements Elicitation: Functional requirements\nEssential for building \nany system!\nhttps://blog.prototypr.io/the-problem-with-problems-and-a-better-way-to-frame-them-visually-b3bb71f30baf", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 506, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a6745567-4f47-4526-81ad-1320e35b927d": {"__data__": {"id_": "a6745567-4f47-4526-81ad-1320e35b927d", "embedding": null, "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "af29ff82-0557-4dd8-873d-019d3176b8b4", "node_type": "4", "metadata": {"page_label": "9", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1c1c133e415c160de6d2c5463f6eab36799ce80624412dea21aef26863132d23", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhy is it important to separate the problem from the (concrete) \nsolution?\n\u2022 Clarity and understanding \u2014 Avoid premature solution \n\u2022 Ensure well-informed solutions\n\u2022 Flexibility \u2014 Encourage creativity and innovation\n\u2022 Explore various solutions\n\u2022 Communication \u2014 Foster better collaboration\n\u2022 Enable a common understanding of the problem\n9CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 431, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ea418d6b-1722-48b8-a063-aacb2ccb0fbb": {"__data__": {"id_": "ea418d6b-1722-48b8-a063-aacb2ccb0fbb", "embedding": null, "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "849b24af-1f5d-4e6f-9d14-d2088d8f64c3", "node_type": "4", "metadata": {"page_label": "10", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c9d12541ffc358de10a0174a14447c24a90e45f0051da2582f29e0ce271ec3ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nApplication vs Solution Domain\n10CS 1530 - L06 Requirements Elicitation: Functional requirements\nApplication Domain\nRequirements \nAnalysis\nRequirements \nElicitation\n\"What is the \nproblem?\"\nApplication Domain\nDeployment / \nDelivery\nMaintenance\n\"How is the \nsystem used\u2028\n / maintained?\"\nSolution Domain\nSystem Design\nObject Design\nImplementation\nTesting & Validation\n\"What is the \nsolution?\"", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 419, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ed4db473-8604-4cb2-a146-db94721096e1": {"__data__": {"id_": "ed4db473-8604-4cb2-a146-db94721096e1", "embedding": null, "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8cea9426-2ea4-4553-bb70-ae788f4e6438", "node_type": "4", "metadata": {"page_label": "11", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c2c25ac934f96aa6c7bd849c7b2e6892d64699e09b159dae2815226c0649fcc9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Application vs Solution Domain\n11CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints\nPhase Example\nProblem De\ufb01nition Students complain they can\u2019t \ufb01nd parking spots near class on time\nRequirements Elicitation Interview students: Need real-time lot status, navigation to nearest open spot\nRequirements Analysis Create a use-case diagram for \u2018Find Spot\u2019 \u2028\n& model state machine for lot occupancy\nSolution Domain \u2013 \nDesign Decide: mobile app + backend API with sensor data\nImplementation Build app using Flutter, connect to database\nTesting/Validation Check that parking spot data updates every 10 seconds\nDeployment/\nMaintenance Release to App Store, monitor usage, \ufb01x bugs", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 760, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ca5afbec-8a80-46ee-aad9-215281b903bf": {"__data__": {"id_": "ca5afbec-8a80-46ee-aad9-215281b903bf", "embedding": null, "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "debf1345-c768-4667-9aa5-41d6df9777b0", "node_type": "4", "metadata": {"page_label": "12", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "ca24de2ca5eefd36562dae2bb88bb3b003545e6dc7c5ded0332ad88eab57e1c8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDi\ufb00erent domains require di\ufb00erent approaches\nGreen\ufb01eld Engineering\n\u2022 Developing a system from scratch; no prior system exists \n\u2022 Requirements: Extracted from stakeholders and (end)user input\n\u2022 Initiation: New market needs\n\u2022 Starting Point: Clear problem statement based on user needs\n12CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 379, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "44fc8dfa-dc1e-43f2-bd55-933633b81971": {"__data__": {"id_": "44fc8dfa-dc1e-43f2-bd55-933633b81971", "embedding": null, "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "3572ae19-ba2a-4522-a92b-001073f80a8e", "node_type": "4", "metadata": {"page_label": "13", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "abebb8e0a8e16fd40af7b23e3b1a13b6446bbf8ed6484f528afc93a9adb89ad4", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDi\ufb00erent domains require di\ufb00erent approaches\nRe-engineering \u2014 redesign or re-implementation of an existing system\n\u2022 Requirements: Driven by new technology\n\u2022 Initiation: Responds to technological advancements\n\u2022 Starting point: Problem statement rooted in technological evolution\n13CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 373, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5ad7a0ec-f1e4-445d-9b54-e34803834caf": {"__data__": {"id_": "5ad7a0ec-f1e4-445d-9b54-e34803834caf", "embedding": null, "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "57eeb6ae-3b7b-4387-afae-28978598034d", "node_type": "4", "metadata": {"page_label": "14", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "e1b0825da437a18e6656c12703c2476c3b0e3e86547e99b73fb0851626676f18", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDi\ufb00erent domains require di\ufb00erent approaches\nInterface Engineering \u2014 adapting an existing system to a new environment\n\u2022 Requirements: Prompted by technology or new market needs\n\u2022 Initiation: Responds to technology shifts or emerging market demands\n\u2022 Starting Point: Problem statement re\ufb02ecting technological or market changes\n14CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 421, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "34d3b7f3-c50e-42da-b667-e7ae8797ba8e": {"__data__": {"id_": "34d3b7f3-c50e-42da-b667-e7ae8797ba8e", "embedding": null, "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "845c37f0-1c96-4e7b-83fc-a508c5975806", "node_type": "4", "metadata": {"page_label": "15", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b6104ddfb241e11299f089cffebcd280f7acf745f3b7c98db3b0e03dd656e12a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nToday\u2019s roadmap\n\u2022 Intro to requirements engineering\n\u2022 Functional requirements \n15CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 174, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "dce86f0d-2a97-4212-9d19-624885eb718e": {"__data__": {"id_": "dce86f0d-2a97-4212-9d19-624885eb718e", "embedding": null, "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6f430967-d488-4621-95cd-3ec388606d51", "node_type": "4", "metadata": {"page_label": "16", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "7288f34a36d4732743a385f34c19f713e2f969200b544c0d39f1398080face9e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSystem Requirements \n\u2022 Describe the functions to satisfy the stakeholder needs and requirements\n\u2022 Basis for designing a software system\n\u2022 Describe how the user requirements should be provided by the system\n\u2022 Expressed in textual statements\n\u2022 Types of requirements:\n\u2022 Functional (Focus is on the functionality)\n\u2022 Quality / Non-functional (Focus is on quality attributes)\n\u2022 Constraints (Focus is on limitations)\n16CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 505, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0f6c88af-4262-4786-9ddc-908868397517": {"__data__": {"id_": "0f6c88af-4262-4786-9ddc-908868397517", "embedding": null, "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "082b5a6a-0e33-40d8-9d1f-48efc246067a", "node_type": "4", "metadata": {"page_label": "17", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "8d129f213493b7574c6b5cfbc8cc1711e792ac439402c927e6051da4ae02fa05", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nFunctional Requirements \n\u2022 Describe the essential functionality of the system\n\u2022 De\ufb01ne one requirement per function (feature)\n\u2022 They should be phrased in a general manner\n17CS 1530 - L06 Requirements Elicitation: Functional requirements\nFR# Short title Description:\nShould be \nnumbered based \non their \n\ud83d\udd1c priority\n[Example]\u2028\n \"FR7 View Map: The user can view a map that displays their current location and any historic \nlandmarks around them, within a 5 mile radius.\"\nPhrased in \nimperative mood \n(verb + noun)\nThe description should not include \nimplementation details", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 600, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ed02a7df-85ee-4f48-9683-2ae0f9f4a030": {"__data__": {"id_": "ed02a7df-85ee-4f48-9683-2ae0f9f4a030", "embedding": null, "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "d09c9d25-f318-4967-ae59-5d111f594797", "node_type": "4", "metadata": {"page_label": "18", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "00e982e799519155f2bdc9ca9799e5bfda48f4ec6150a418b9605ac12b145457", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example]\u2028\n\u274c \"FR1 Select location: The user can select a button to zoom in Google Maps and look at a \nred and green-colored heat map of popular areas.\"\nFunctional Requirements \n\u2022 Describe the essential functionality of the system\n\u2022 De\ufb01ne one requirement per function (feature)\n\u2022 They should be phrased in a general manner\n18CS 1530 - L06 Requirements Elicitation: Functional requirements\nFR# Short title Description:\nShould be \nnumbered based \non their \n\ud83d\udd1c priority\nPhrased in \nimperative mood \n(verb + noun)\nThe description should not include \nimplementation details", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 596, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b5390953-4352-455d-b32b-bb85bea1e9df": {"__data__": {"id_": "b5390953-4352-455d-b32b-bb85bea1e9df", "embedding": null, "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "dcad46f6-b0e8-438f-b805-e42ea47fad96", "node_type": "4", "metadata": {"page_label": "19", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "b5b7c862ff5641a5ff5ae61f025c3f991ade48b114676bf1619c5a809f066f6e", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat is functionality?\n\u2022 Describes speci\ufb01c tasks the system performs to achieve an intended goal\u2028\ne.g., processing data, user interactions, or system operations\n\u2022 Focuses on how the system responds to inputs and deliver outputs\n\u2022 De\ufb01nes features and services the user can invoke / system provides\u2028\ne.g., login, view a report, create a report, \u2026\n19CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints\nFunctionality does not describe \nqualities, e.g., response time, \nplatform type, etc!\n\u2022 Functionality: \"The user can upload \ufb01les.\"\n\u2022 Quality attributes\n\u2022 \"The system can upload \ufb01les with minimal delay of max. 15 seconds, even with the maximum \nsupported \ufb01le size.\"\n\u2022 \"The system can store uploaded \ufb01les with a size of up to 2GB.\"\n\u2022 \"The system supports \ufb01les of the types .pdf, .jpg, and .txt\"\n[Example]", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 881, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "d7f3792c-e598-4a91-b809-e199816ec83a": {"__data__": {"id_": "d7f3792c-e598-4a91-b809-e199816ec83a", "embedding": null, "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "6088de04-f16b-4222-bebd-35302ace5246", "node_type": "4", "metadata": {"page_label": "20", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "76228ba8f5586b5fa582ffa1227fcd74a4303625c2b0a718bb14a0130bbe0ac6", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nWhat is functionality? (cont.)\n\u2022 Single purpose: Each functional requirement should represent one logical \nunit of work (one operation or one step from the actor\u2019s/user\u2019s perspective)\n\u2022 Low complexity: Complex requirements should be split into separate \nrequirements (or grouped as sub-requirements)\n\u2022 Uni\ufb01ed testing & maintenance: Each functional requirement should be \ntreated as one unit during testing and maintenance\n\u2022 An atomic requirement is a requirement that cannot be further broken down \ninto individual tasks \n20CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints\nSplitting complex requirements into smaller, \nmanageable requirements helps in system \ndesign to better identify reusable parts", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 783, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "401519fd-b985-4547-9063-7174d24b6844": {"__data__": {"id_": "401519fd-b985-4547-9063-7174d24b6844", "embedding": null, "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4a8c3924-156b-4e2d-ab21-3e303e9f46d7", "node_type": "4", "metadata": {"page_label": "21", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "25596d10b641c48c0307f5d77aee518295195506b88e26e7632d352b7b47bb85", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] De\ufb01ning requirements\nFR3 Login: Students can login to the system using their email address and \npassword.\nFR4 Control room temperature automatically: The system automatically \ncontrols the temperature for each room.\n21CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints\nUser\u2019s perspective: Single operation/single purpose\u2028\nSequential dependency & low complexity\u2028\nTesting & maintenance will most likely be treated as a single unit\nUser\u2019s perspective: Single operation/single purpose\u2028\nSequential dependency & low complexity\u2028\nTesting & maintenance will most likely be treated as a single unit", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 679, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2866b90f-bc65-4a2f-a11a-a5914f8f9fe5": {"__data__": {"id_": "2866b90f-bc65-4a2f-a11a-a5914f8f9fe5", "embedding": null, "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "289c2ef1-b25a-43b9-afed-8a5294e3e4b6", "node_type": "4", "metadata": {"page_label": "22", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "06fe15a307694daeb507159cdbda11564d0e8ac4e394b41a5b020f03a74ca657", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] De\ufb01ning requirements\nFR4 Access account statements: The customer can access account \nstatements. \nFR4.1 View Monthly Statements: The customer can view their past \ntransactions in their account statement, updated monthly. \nFR4.2 Download Statements: The customer can download their statements \nas a PDF \ufb01le. \nFR4.3 Receive statements via email: The customer can choose to receive \ntheir account statement automatically via email automatically each month.\n22CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints\nSub-steps indicate a logical categorization\nUser\u2019s perspective: viewing and downloading an account statement are two distinct actions\u2028\nEach has its own functionality and does not depend on each other\u2028\nTesting & maintenance will most likely be treated separately", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 859, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "0c5e44aa-c0c5-4531-afba-dc83567edcf4": {"__data__": {"id_": "0c5e44aa-c0c5-4531-afba-dc83567edcf4", "embedding": null, "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "80d9d0ed-12ab-4d47-a7d5-6bef7b6ecc9b", "node_type": "4", "metadata": {"page_label": "23", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "efbcfcf679275016e526ce57407ad34bdcae27c2ee585bb84f97646d4653107c", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nDeriving requirements: FURPS+ Model\n\u2022 FURPS+ is a model used to categorize features and attributes\n\u2022 Functional Requirements\n\u2022 Non-functional Requirements\n\u2022 Usability\n\u2022 Reliability\n\u2022 Performance\n\u2022 Supportability\n\u2022 \u2026\n\u2022 Constraints (pseudo-requirements)\n23CS 1530 - L06 Requirements Elicitation: Functional requirements 23\nE.g., robustness, maintainability, \u2026\nE.g., standards, physical limitations, \nsoftware limitations, dependencies, \u2026\nWhat functionalities/features should the system provide?", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 522, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a3352c8d-dae6-41b4-8a45-8e3a81a29d7f": {"__data__": {"id_": "a3352c8d-dae6-41b4-8a45-8e3a81a29d7f", "embedding": null, "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "b1aff601-c45b-4391-82d4-ff4e37b0d481", "node_type": "4", "metadata": {"page_label": "24", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "8a8de0f593d6cba8f9166481fc086353c63ab62672b875dd3b4edf4dec32d2c7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nAbbott\u2019s textual analysis (technique) \n\u2022 Methodology used to identify and specify objects in a software system based \non natural language\n\u2022 Review the natural language requirements / problem statement:\n1. Identify nouns \u2192 actors / objects (or entities)\n2. Group and categorize the nouns \u2192 de\ufb01ne the objects\u2019 tasks/services\n3. Determine the relationships between the identi\ufb01ed objects\n1. Adjectives \u2192 describe characteristics/attributes of objects\n2. Verbs \u2192 correspond to methods or operations that objects perform\n3. Relationships \u2192 describes how objects interact\n24CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints\nIntroduced by Russell J. Abbott (1983) as a way to systematically extract objects, \nattributes, and behavior from an (informal) textual description of a system", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 858, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "002bd2a1-8e8d-4c75-bda4-78eb57049346": {"__data__": {"id_": "002bd2a1-8e8d-4c75-bda4-78eb57049346", "embedding": null, "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8e433381-e30f-466e-9510-10bf7a7c4ae1", "node_type": "4", "metadata": {"page_label": "25", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c380fc15a87a009d1730c0054c4b70e74f56417c55bf54f3b4880c6bd7c196ea", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nActor vs entity\n\u2022 Actor is anyone who interacts with the system from outside its boundaries\n\u2022 [Example]\u2028\nCustomer who browses and purchases items\u2028\nPayment Processing System (external system)\n\u2022 Entity is a core object or concept within the boundaries of the system\n\u2022 [Example]\u2028\nOrder, Product, Customer within an e-commerce system\u2028\ne.g., system tracks Products (e.g., name, price, inventory count)\n25CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 492, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "9e23c077-db35-4fd7-a875-5dbf941e7521": {"__data__": {"id_": "9e23c077-db35-4fd7-a875-5dbf941e7521", "embedding": null, "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bfb6d8ae-2fff-4c44-84c3-525d6b2e8f08", "node_type": "4", "metadata": {"page_label": "26", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "de4dd0bbb330d26c28d7101468bd542193f18397437104d2e023ac878113fb23", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Abbott\u2019s technique\nHomeowners want a system to control the temperature in di\ufb00erent rooms of a \nhouse. The system should:\n\u2022 Keep track of the temperature in each room\n\u2022 Adjust heating or cooling to keep the rooms comfortable\n\u2022 Set di\ufb00erent temperatures for each room\n\u2022 Be controlled through a mobile app\n\u2022 Send an alert if a room's temperature goes too far from the set point\n26CS 1530 - L06 Requirements Elicitation: Functional requirements\n*simpli\ufb01ed", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 491, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "b4407c4c-72ae-4e82-91c5-4faa365a548e": {"__data__": {"id_": "b4407c4c-72ae-4e82-91c5-4faa365a548e", "embedding": null, "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "5d772de0-2e48-413d-be80-79872aa1e894", "node_type": "4", "metadata": {"page_label": "27", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "302c23583976998d2eb9ff03155d6312208bb31b686426c01e819b6a3b402584", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Abbott\u2019s technique \u2014 Identifying Actors\nRelevant Actors:\n\u2022 (End)user = Homeowner or Occupant\n\u2022 Home (or Heating and cooling system)\n\u2022 System (to be built)\n27CS 1530 - L06 Requirements Elicitation: Functional requirements\nHomeowners want a system to control the temperature in di\ufb00erent rooms of a \nhouse. The system should:\n\u2022 Keep track of the temperature in each room\n\u2022 Adjust heating or cooling to keep the rooms comfortable\n\u2022 Set di\ufb00erent temperatures for each room\n\u2022 Be controlled through a mobile app\n\u2022 Send an alert if a room's temperature goes too far from the set point\nAn actor is an entity that interacts with a system\n*simpli\ufb01ed\nAt this stage, the system to be built can be seen as an actor, as \nthe system boundaries still need to be de\ufb01ned.", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 792, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "2ec27a66-0574-4f58-9fd6-d9ac490b723d": {"__data__": {"id_": "2ec27a66-0574-4f58-9fd6-d9ac490b723d", "embedding": null, "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "53eef160-4db3-4a7a-a080-a5d081c8a53c", "node_type": "4", "metadata": {"page_label": "28", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "473a464c67f78a77c9ec8bb9cea79df4a6d68206a7fffadf2b8fb080a45ce914", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Abbott\u2019s technique \u2014 Identifying Actors\nHomeowners want a system to control the temperature in di\ufb00erent rooms of a \nhouse. The system should:\n\u2022 Keep track of the temperature in each room\n\u2022 Adjust heating or cooling to keep the rooms comfortable\n\u2022 Set di\ufb00erent temperatures for each room\n\u2022 Be controlled through a mobile app\n\u2022 Send an alert if a room's temperature goes too far from the set point\n28CS 1530 - L06 Requirements Elicitation: Functional requirements\n*simpli\ufb01ed", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 512, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "8366257f-8a91-44a2-8f2a-3903081b254d": {"__data__": {"id_": "8366257f-8a91-44a2-8f2a-3903081b254d", "embedding": null, "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "ee0e1cac-460b-436d-bc12-f5b33afbae1c", "node_type": "4", "metadata": {"page_label": "29", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9bf0b046f07a1786c3c78bc68e38b092964b9810523f9832397073747f6a05c3", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Abbott\u2019s technique \u2014 Identifying Actors\nActors/Entities:\n\u2022 HomeOwner: View and set temperatures, receive alerts\n\u2022 HeatingCoolingSystem: Change the temperature in the rooms\n\u2022 TemperatureSensor: Detect the temperature in each room\n29CS 1530 - L06 Requirements Elicitation: Functional requirements\nHomeowners want a system to control the temperature in di\ufb00erent rooms of a \nhouse. The system should:\n\u2022 Keep track of the temperature in each room\n\u2022 Adjust heating or cooling to keep the rooms comfortable\n\u2022 Set di\ufb00erent temperatures for each room\n\u2022 Be controlled through a mobile app\n\u2022 Send an alert if a room's temperature goes too far from the set point", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 690, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6680f73a-7084-46af-a01c-3246db7bde3e": {"__data__": {"id_": "6680f73a-7084-46af-a01c-3246db7bde3e", "embedding": null, "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "0031bdef-6173-4c2e-bae6-b53c75aa2206", "node_type": "4", "metadata": {"page_label": "30", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "9dff2af40895004eb395601e7905cb1a3b2c90a7168edd4942f93825e375ade2", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Abbott\u2019s technique \u2014 Identifying Actors\n30CS 1530 - L06 Requirements Elicitation: Functional requirements\nHomeOwner\nRoom\nHomeControl\ncontrols\nread \ntemperature\nmonitor\nTemperatureSensor", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 225, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "6c4cf921-ec59-4587-983e-ffd583965cdb": {"__data__": {"id_": "6c4cf921-ec59-4587-983e-ffd583965cdb", "embedding": null, "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "f5e41dab-a87f-4eff-bdb3-6e55463e0bc1", "node_type": "4", "metadata": {"page_label": "31", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "a3ee97c8b0760677f12197be794b4aa09a4604d8ee9d2a9cbb5f62648189cf44", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Abbott\u2019s technique\nFR1 View room temperature: The user can view the current temperature of each room. \nFR2 Monitor room temperature: The system monitors the temperature of each room.\nFR2.1 Sense temperature: The temperature sensor senses the room\u2019s current temperature.\nFR2.2 Read temperature: The system reads the temperature sensor\u2019s temperature readings once \u2028\n a minute.\nFR3 Control room temperature manually: The user can control the temperature for each room.\nFR4 Control room temperature automatically: The system automatically controls the \ntemperature for each room.\nFR5 Send temperature alerts: The system sends alerts to the user if the temperature in a \nroom deviates from the set preference by more than 4\u00b0F .\nFR6 Set room temperature preferences: The user can set a desired temperature for each \nroom.\n31CS 1530 - L06 Requirements Elicitation: Functional requirements\nThe enduser or user of the system is de\ufb01ned as the home owner or occupant.\n*simpli\ufb01ed", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1048, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5d7d7ac1-0274-4480-9208-2cce9929d57f": {"__data__": {"id_": "5d7d7ac1-0274-4480-9208-2cce9929d57f", "embedding": null, "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "4bd673ac-83c5-4433-a994-a20384e925db", "node_type": "4", "metadata": {"page_label": "32", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "133ad85260bcaeb55a21701771911eaf122dc818c016e9412df14c88c5d0cff8", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n[Example] Abbott\u2019s technique - alternative\nFR1 View room temperature: The user can view the current temperature of each room. \nFR2 Monitor room temperature: HomeControl monitors the temperature in each room.\nFR2.1 Sense temperature: The temperature sensor senses the room\u2019s current temperature.\nFR2.2 Read temperature: HomeControl reads the temperature sensor\u2019s temperature readings once \u2028\n a minute.\nFR3 Control room temperature manually: The user can control the temperature for each room \nand set it to a speci\ufb01ed temperature value. \nFR4 Control room temperature automatically: HomeControl automatically controls the \ntemperature for each room and set it to a speci\ufb01ed temperature value using a learning-based \nschedule (\u2192 FR8).\nFR5 Send temperature alerts: HomeControl sends alerts to the user if the temperature in a \nroom deviates from the set preference by more than 4\u00b0F .\nFR6 Set room temperature preferences: The user can set a desired temperature for each room.\n32CS 1530 - L06 Requirements Elicitation: Functional requirements\nThe enduser or user of the system is de\ufb01ned as the home owner or occupant.\u2028\nThe software system to be developed is hereafter referred to as HomeControl.\n*simpli\ufb01ed", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1279, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "e7151fcd-7a33-4e3b-89a8-ec1a54c10f23": {"__data__": {"id_": "e7151fcd-7a33-4e3b-89a8-ec1a54c10f23", "embedding": null, "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "eff56f13-4e45-4d67-b1ec-50e48eefd5a2", "node_type": "4", "metadata": {"page_label": "33", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "f50373ab67b07c06bd5d644fae44a2518a19fea75001db9ad4843e566e2929a7", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nSystem vs external system\n\u2022 Software system is a system/component that is being developed\n\u2022 Has speci\ufb01ed boundaries\n\u2022 External system is a system/component outside of the boundary of the \nsoftware system being developed that interacts with it\n\u2022 E.g., API, database, sensor, hardware, third-party system\n33CS 1530 - L06 Requirements Elicitation: Functional requirements\nBoundaries de\ufb01ne what is inside the \nsystem (internal components) and what \ninteracts with it from the outside \n(external actors, systems/components)", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 548, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "a50ea658-c80e-4a49-aaf4-b9f2dc12fdfe": {"__data__": {"id_": "a50ea658-c80e-4a49-aaf4-b9f2dc12fdfe", "embedding": null, "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "249eebf2-056f-4eb2-8958-e97b1ae316e1", "node_type": "4", "metadata": {"page_label": "34", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "6bdce2d6c6e3849a67afe0fff30c170e88e58627b4c2bc683e7b0979efca5503", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem Statement\n34CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 113, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5dc03a9c-7891-4c82-8f80-a9ed76bdf824": {"__data__": {"id_": "5dc03a9c-7891-4c82-8f80-a9ed76bdf824", "embedding": null, "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "8f5a9d33-2104-4304-8a9c-2a543f06316f", "node_type": "4", "metadata": {"page_label": "35", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "490eed23e95f460b347a51fe287f793297e6ed54f082bee18bd334b3730c654f", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem Statement\nBackground \nPittsburgh is facing an increasing number of potholes and sinkholes that pose a \nthreat to public safety and infrastructure. These sudden ground collapses can \ncause considerable damage to roads, disrupt supply lines, and endanger \nhuman lives. Current methods of monitoring and responding to sinkholes are \nreactive and ine\ufb03cient. There is an urgent need for a proactive, technology-\nbased solution to detect, track, and predict sinkholes. This solution would \nenable municipal authorities to respond quickly to potential hazards, deploy \nresources more e\ufb03ciently, and take preventative measures to mitigate the \nimpact of sinkholes on the community and infrastructure.\n35CS 1530 - L06 Requirements Elicitation: Functional requirements", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 796, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "175caa80-83ae-443a-b2e9-c24a92d4a3f8": {"__data__": {"id_": "175caa80-83ae-443a-b2e9-c24a92d4a3f8", "embedding": null, "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "85b24a1d-69d6-4cc2-9dc9-07942e75635e", "node_type": "4", "metadata": {"page_label": "36", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "42198517a43e267239a40cec2d3419fe45137c84681d5d92c3263c7a4de06ba9", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nProblem Statement\nThe City of Pittsburgh requires the development of a Sinkhole Monitoring System \n(SiMCity) to address the issue of sinkholes within the city. The \ufb01rst version of \nSiMCity should enable residents and city o\ufb03cials to report sinkhole occurrences \nand track their locations. \nThe system should be easy to use, accessible through web and mobile platforms, \nand track sinkholes in real-time. \nResidents should be able to view sinkholes on a map, helping them to avoid such \nareas. It should also allow residents to report new sinkholes by sending in their \nlocation and photographic evidence for veri\ufb01cation, or call for help. City o\ufb03cials \ncan remove sinkholes from the map after they have been re-\ufb01lled and repaired.\nSiMCity aims to increase public safety, facilitate rapid response to sinkholes, and \nimprove the city\u2019s ability to manage and mitigate the impact of these geohazards.\n36CS 1530 - L06 Requirements Elicitation: Functional requirements\nLet\u2019s develop this system!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 1020, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "4e57fefe-2385-4fb7-8ab9-15c8342bd303": {"__data__": {"id_": "4e57fefe-2385-4fb7-8ab9-15c8342bd303", "embedding": null, "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "89401a55-9efe-4aed-a9d7-2dc4d641c742", "node_type": "4", "metadata": {"page_label": "37", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "1bab8f5f5e879a2fd52f4ef8a4039b33e9ed677291564367cd88c46b54c7833a", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\nI06 \u2014 De \ufb01ne functional requirements\n37CS 1530 - L06 Requirements Elicitation: Functional requirements\n \n\u23f3\n \ud83e\uddd1\ud83d\udcbb\n\ud83e\uddd1\ud83d\udcbb Pairs15 min\nI06 - Functional \nRequirements\n2 points\nBased on the problem statement, de\ufb01ne functional requirements for \nthe SiMCity system\ncontinued in L07!", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 300, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "5458f767-713a-473b-99e6-43fd549f7275": {"__data__": {"id_": "5458f767-713a-473b-99e6-43fd549f7275", "embedding": null, "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "139cc217-6db4-41f6-9c4b-a39a37b7b869", "node_type": "4", "metadata": {"page_label": "38", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "c399f9c469b75b201f354e865b78359ba2e99119a7d041edf61d36ef80513154", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "\u00a9 2025 Nadine von Frankenberg\n 38CS 1530 - L06 Requirements Elicitation II: Functional and nonfunctional requirements, and constraints\nTake-Away: Overview of requirements elicitation\n\u2022 User-Centric Approach: Prioritize understanding the needs and perspectives of end-users and \nstakeholders\n\u2022 E\ufb00ective Communication: Establish clear and open channels of communication to gather accurate \nrequirements\n\u2022 Iterative Process: Requirements elicitation is an ongoing, iterative process, adapting to evolving \nproject needs\n\u2022 Documentation: Thoroughly document gathered requirements to ensure clarity and alignment \nthroughout the project lifecycle", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 641, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}, "ec91d6de-3bea-4c42-99ff-ebe5375ba932": {"__data__": {"id_": "ec91d6de-3bea-4c42-99ff-ebe5375ba932", "embedding": null, "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "excluded_embed_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "excluded_llm_metadata_keys": ["file_name", "file_type", "file_size", "creation_date", "last_modified_date", "last_accessed_date"], "relationships": {"1": {"node_id": "bfc4c9c5-a0a8-4603-b344-b4d4863c2e0e", "node_type": "4", "metadata": {"page_label": "39", "file_name": "Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_path": "data/Fall25 1530 - L06 Requirements Elicitation _.pdf", "file_type": "application/pdf", "file_size": 7997926, "creation_date": "2025-10-25", "last_modified_date": "2025-10-25"}, "hash": "07fdf2fa27eb639c3fd0cf40e66f16aeea3be48f7cea1a4958d2b13d4fe7e818", "class_name": "RelatedNodeInfo"}}, "metadata_template": "{key}: {value}", "metadata_separator": "\n", "text": "CS 1530 Software Engineering\nNadine von Frankenberg\nL06 Requirements Elicitation I\nUniversity of Pittsburgh\nSchool of Computing and Information\nsci.pitt.edu\nFall 2025", "mimetype": "text/plain", "start_char_idx": 0, "end_char_idx": 166, "metadata_seperator": "\n", "text_template": "{metadata_str}\n\n{content}", "class_name": "TextNode"}, "__type__": "1"}}}