SPDXVersion: SPDX-2.1 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT DocumentName: project DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-8232bb14-6222-45df-bd62-a0afdd7c0eae Creator: Person: Anonymous () Creator: Organization: Anonymous () Creator: Tool: reuse-6.1.0 Created: 2026-03-30T17:14:07Z CreatorComment: This document was created automatically using available reuse information consistent with REUSE. Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7cae9d43a2c57f31c16395b7bc469d6d Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7ed4336c28af8b6b2819b85409b921a7 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ca35af8eae6e32b107bf02a22b281224 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-303473b19b51f975940a7004103effb6 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2f968f84e3fa29652a27b21cfaddd93d Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8f661251fe2bd7874bd9cf0f1c300e71 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-41cbba1d67b1d98071c193b5c285fff8 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3b4a765830de6b9647dddc01b2fcd20c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b594eefb3e3aac78d70176120a99c1bc Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-054ac652dd40d7d63fff5a704bd00b8c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7ded4b69706e457d3d24c032df7ac545 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8c2757c8b4663760dcd18c1adcedb0d5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f68ab46c6bd51c6e86b0447c0bbb9cdd Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-aea8cb9e7621f4844514cf9e2c2bc3a2 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5a80defbe733a7f48d24de3d2238e035 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-364a6c432b3ea17db34935825ed55357 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3e71062622dd3aec2f1e03012831998b Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8f5fba447c93c25b1ec8055af6d9868c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-59dfd8f7142d48779d0e724dd3f92357 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4c819f306eb9b43c1759813bfe83e5db Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-84f921feab5ebf2e5ad87dcb3b1aaaab Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-069aa6da79f89b382b16e29ae8572b6f Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-194a870a6d3e8bd8dc0ac3f7442f3357 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3f3ab03989668a72b4dbe1fb1ed5e87f Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-94ccf851a8cb968b21034606c4f24151 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d9cdace2ae4c36713b75f3b626e2557e Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-28179093f4136db9d8f17e8e3b6e04fe Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a7b6e821e5a716502b1259594829cc01 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b458abf35c50814252a0738e901b9a7a Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-aa22173a3a736e248cca6c242ef0b75b Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0efd977b7431db70298b723e684fefd2 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-efb45a47971542b43c2a4d61962acef1 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-61557b8a2acf2c00060099b824ff3c69 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b76ab7708869941e11b48312d422072b Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2ce36332140d3e414f25ba8c54d8daf8 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0efa1fe9dc8c953aa7fcf4a0d6a12bca Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8216ab07e1c469e2f2c939016cdff1dd Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ecf2179f549a1a98aeaecf6f18d169fd Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fa3354f95cef8590e5b24d3f366de0cb Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1784a93309684b8b9c4859813ec9dfa1 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5970553fb2fd15a28834d4e2644242df Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f3ebeefe7d1e38cfc5fac0320e7ac721 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-88e2612f9537c35425623d9cbaf93311 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b5389295c5703e309547eba7fe5df923 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3cb07b2320ad1c0e64cf6f6b8970e35c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f178661251fc8cf845ae8e536d479479 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b0f1cceced22a2871eea700af8c36338 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-86850be4e958bb5ade2fdfa6c20d36ee Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a9dac128334df5500fe7f90cd5e38ac7 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b72546c1cb37b4c3aea5d6ec12ec25ef Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4affa720084836123e0bceaf9449e47e Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e25dd4bfcec4c71dd437d496836a599a Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cffed0612c19d81e2db805a832aa7228 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-95fd4699795c83e8635a6418ef00b15d Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-550ccc2c2c98d76377010276aaaba4b3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7934619dafcc2205ae0ac9acc6dd2591 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4cada232fe088b99720478d5279ff560 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b7269ad7b5a6159adc9ccb0705eb84d3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6104500d14bd174c4be87c0abe569603 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e7568bea6ea299c75b7a94af07924645 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c151d23d3842a47f79c26b8a9b064bf3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4da1775666b755dd6eae59c10d804958 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-84599d9b65d0b2ddd86741aeee18bec6 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-bed1a052a527be4a7e251260dff3ecc1 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5c7b06cf4de9daf14cd937d7ad44c52f Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-48990cdf88c823b6b7167635cb130103 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8ffe76f52edafe585e25bb5114dce9c5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-af48bd30e0a9f54bdc2699d8752db435 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c4d8113397ce2e0ed6cc497013f6e9bb Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8c393b4df682fd0136782b0aea36f765 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c9a821797a161499ae018f44596a6afe Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cdb59781dee70563e74283835b85c792 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8fae548f392a0b6a2f4e97f1a4e897a0 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2638c65d312c64088f89891f164f2cc1 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-78f40bb826cdb5dbf9e095cbfc0bcb23 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5d64f7a182700d9e774df174802b1233 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-35bbc0e5e442e779d4064324f434b269 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7254450ffc6996b52bb491520eab6643 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-49ff8814b56107aa4d88216c1e564594 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f941c775cf2af2e384a9e6be4499d03b Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3f6a624ad5e07b28af5817e530ce68e7 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ac929acc226d9d19c9bd873440e830aa Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-51d4b842e9e697138958208893032562 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-78e71c908069b90f6b6578e9e88f21fa Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-42919b9149bccdcc27e1b74ac2a42c3b Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-46d7717019e106518583e978f8339322 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2fc01d4e7109b05ecd37a0c1f303bdc2 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-29775e8fa04b6a3f833311de728ebf06 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3c798163222d469e7037aa9f6c6a18b9 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-0038bd7b020c96dd31aaa85b87ab9c61 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fb3e1ed53134b9617e559a7f66376554 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e8521033c9ba23be00cf58df5393bc53 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1db43aae9359aaede2c63ec3a7ae43a5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-22bafdac38b3026fb7a9bf61f436cee3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-732dfb7eff5375d6ff573b05e5db0e75 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d0b25efd04a5a5e5eae365ed937d5797 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-5df5621845b4cf6844eec80d56b03618 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-57118e3960b1bd85103225b1457a8747 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7e908eb68f1b43bb1e02b97ebd2d3db3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c4afce8cb6ae47eca1e7b14727a4fbb4 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-96a300e020105bb39aebf90d1377e72c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-99741661d3b7e1588cde1a90299e0ab2 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9604af548689695d4d546d991eda5907 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-01a3bf1488b76f13ccc040e6ccbb3fa6 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-465731a9dd4a49375623580d4100a840 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-70c00e7f6ddec9a2991e23e091e61017 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6e5a4054e5eb35a95c8bf33c1cff820c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1cfb9d5f44e527d77bf5f70a42b23ef3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-96b88e809f1e50995ceaf7638d771760 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6359ac8f9fa29b01743dabde49f16331 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f72629c847f9437f3ae8d86c39884f30 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6f4f4b1029c10d6979cf003a03486dd6 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b1e0477fa2310848b4591ef95660b379 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d0b02ba821a81a639408f2622bdeb410 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-22e620021d3b75607a3ffb67ac7a7ed9 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e4655714cfe60c1d1af6a5e0620e8448 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d6807f60c71765f10fcd51e2e644e650 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1d98b98a9f0b015f0727069418dd183c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c61148e37252a8d9cb9e86a0929145dc Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d49f49a6ba57cbbdf0890315041313c9 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d5c9a389ea196bcfd1ce1727554aa493 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a794907accdef09e94d30e3604e60d3a Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a84da9afbccfa3081606064b0dbb8f35 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-72d6025b777ce2d2764c8a86d2bc7417 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-da30ffd595ae298c8f6a989b1adf613b Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c6009b0878b752d9bb8381810f2a0b15 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fc2d3f9a31b3757fb4fe8fa3ab004948 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a1fed8320d4f77170a0cd66b18b3d78e Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-508c0a0bd3e078806d119d56a0170ff7 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-eac26fa898213dd6b838962f76b4dd82 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b2c683a63e4f120a8a3d0f68cb60a1ce Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1bd82ea574f70b2388aca5c3c3c9e9c2 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-68a768eb43d3988c51aa4c0810af4894 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3fe2103a1af8c8da0437cfd08ba52103 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1d66bc291b99d144119f0c92d9b2e4ee Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a5906b1517d3ca15566460831d623444 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fbb2b318332de905e4cd541df0a80480 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-20dbd192e84ca2cf17304a84b6d9800e Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1075c8cf7f85bef579a0edc9739dd813 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-309b329adbb141833cf4db0fbf7219e7 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d19973f7174ed0f8265354217e2979fe Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c2192619f6058e17a4fda96e0034654b Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-87a6e3542c9942c80a4fc6ca7be16963 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-b2a6872225eb295e55df41405b652292 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3ca6a8445359d8443639ff060952cae8 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1c58c51b054a5d498ec7eba6165677a1 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c90195e4afabdc6c90c7022f5cb645b5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-32c14b87af68b2c540ee1a7574b31afb Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c9666f3e36235aab9fbae9d522918015 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-dd206b5c9dc979242abe946cf55c54d3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-984424ed3d3aeccf8aaeec50fbf00a65 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-820ac3534e273e0549a7dc6a41854961 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-27d5c14575cf31fd3d7d1560c967fb6f Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1aeba43d651c1dc3110bc9cf16b0a664 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-30765439e2987ebd09ed3ebfc9621fe4 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-774510ad2adf998241e9196fe931085d Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6b77bd1a9796531208fb7bc3062da7fc Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-07a2e24a4fd8c82d2e83606a12341437 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d878d2cfc36fca0a93a8d069bff9477c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cf845400695152f0e6247e07db119dfc Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4a78448d8d942371174bfd0b589a2003 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f2085d5b23ab3521a90899496f0c1ea0 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3186eac76fb9083f4e1ef53810691fb4 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fff57693849de420b78a348871e5c7de Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-bb8796cb7c8aa5653e78293c5e465548 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f42c8fe1165f2c398f538ace4d1f7453 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3e593c7c1568b35ab99338ed006c1050 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a0d4e356c2e7cc288bb09db393a3718a Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-97dc999f28edf5714e3509be2b1fb6c5 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-24732d517745c4ed8007a30d534bf50f Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-c74d3ac5161b2d7e8a245c35bf47e1ce Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-7370f410646e4306a24154343f9041d8 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-fc8911a52a9e7a3e3f44fd5fd6e15ec8 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-f3d61405be20140c539d04fad6df57be Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9d7cec466863ba503da5769dfaaf1fa1 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-8954268336c1e860f3b0a0509169c187 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-e08106502e27091424d6a14d2fd3e9c3 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-98ef8ae47cb12cd6130a9375afd0a0b0 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-ef4e140d4163647de68e36fb02161dd9 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-4cfd1574682a8829959a70b5480f43bf Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-75513552b4180abb8e019bc4568219b7 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9e9ae5f3f63531aad85ed83d6e3c6024 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a356ca460a3f1930f87dfff578a91c4f Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-aeba76e5b88c64c2445a513edeaab0f6 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-97bc9ceb76c8e09fb20b0eb94213fa02 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-6a27c28bcb905bac2ef767f6f882e46a Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3eac03c802811ff5a1e142040ff64e43 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2adf8a59cbb4b26d5c9b81ea5cede913 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-1601fcbe3740da2d92cc75e7909876d9 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d4a85e7370c99c29f3061bbf3426714f Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-08798510e6370878fd48042979d4e915 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-bb1f778290980cad3f86c2acf4f8462c Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d0ce72f1f16e66f03d20dbfb32ea7b61 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-cefb2bb3c359538148d6d9f2b72e1346 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-3b1b5e513a44ce5aa14613ef621aebf9 Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d2aa98de5454663fb8b60feaebbb29c2 FileName: ./.dockerignore SPDXID: SPDXRef-7cae9d43a2c57f31c16395b7bc469d6d FileChecksum: SHA1: 044b7e945a0e98286041aebcfd3a762531706b3b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.env.example SPDXID: SPDXRef-7ed4336c28af8b6b2819b85409b921a7 FileChecksum: SHA1: c81380dfc8d602f575f96c3db68bb75303faf4c6 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.github/CONTRIBUTING.md SPDXID: SPDXRef-ca35af8eae6e32b107bf02a22b281224 FileChecksum: SHA1: 1c37c657e18359fdd2069889ca53cf07286ce227 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar SPDX-FileCopyrightText: 2026 Andrey Kotlyar SPDX-FileCopyrightText: FileName: ./.github/ISSUE_TEMPLATE/bug_report.yml SPDXID: SPDXRef-303473b19b51f975940a7004103effb6 FileChecksum: SHA1: 27e09218f6bd5753fd04ea13873f1182243ca051 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./.github/ISSUE_TEMPLATE/feature_request.yml SPDXID: SPDXRef-2f968f84e3fa29652a27b21cfaddd93d FileChecksum: SHA1: 7967b2fe5940e311e73c141b9ceb84992ccc47a6 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./.github/PULL_REQUEST_TEMPLATE/common_pull_request.md SPDXID: SPDXRef-8f661251fe2bd7874bd9cf0f1c300e71 FileChecksum: SHA1: 51e3717576fe7c6210d4969aea96b70426689d9d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.github/dependabot.yml SPDXID: SPDXRef-41cbba1d67b1d98071c193b5c285fff8 FileChecksum: SHA1: 30a77007cc97fa1a3a2d88c3a40319ad30284a86 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.github/labeler.yml SPDXID: SPDXRef-3b4a765830de6b9647dddc01b2fcd20c FileChecksum: SHA1: edcbdda6cbfb5fa1383bc6d37154c67602ae1ec5 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.github/release.yml SPDXID: SPDXRef-b594eefb3e3aac78d70176120a99c1bc FileChecksum: SHA1: caf6b676b25a4fbb65415b90bcc101f33a29255e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.github/workflows/ci.yml SPDXID: SPDXRef-054ac652dd40d7d63fff5a704bd00b8c FileChecksum: SHA1: 782fdcccc03b9d316921558034c83609ba4018e3 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./.github/workflows/deploy.yml SPDXID: SPDXRef-7ded4b69706e457d3d24c032df7ac545 FileChecksum: SHA1: dd10270a3cb8677e295499e4f451666f71ce88b4 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.github/workflows/labeler.yml SPDXID: SPDXRef-8c2757c8b4663760dcd18c1adcedb0d5 FileChecksum: SHA1: 937a28c23e3b68ec879b5b484276e3c50cce3b13 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.github/workflows/labels.yml SPDXID: SPDXRef-f68ab46c6bd51c6e86b0447c0bbb9cdd FileChecksum: SHA1: a66e6bf1b074e18bdd6191973f0ff3e1d9ee4414 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.github/workflows/release.yml SPDXID: SPDXRef-aea8cb9e7621f4844514cf9e2c2bc3a2 FileChecksum: SHA1: 63db80f699117cd5a13c2301e1e2f834f318fa23 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./.gitignore SPDXID: SPDXRef-5a80defbe733a7f48d24de3d2238e035 FileChecksum: SHA1: f1c1ad5ad6daa01b18f88fcabe2217b29aba59db LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./.pre-commit-config.yaml SPDXID: SPDXRef-364a6c432b3ea17db34935825ed55357 FileChecksum: SHA1: cd367a5b212a32424cc6742004969bc3a8bd697e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./.trivyignore SPDXID: SPDXRef-3e71062622dd3aec2f1e03012831998b FileChecksum: SHA1: cb70dda2ca179bffaa31f6676fc6b645cf93ac54 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./Dockerfile SPDXID: SPDXRef-8f5fba447c93c25b1ec8055af6d9868c FileChecksum: SHA1: 27bb7ac7a85dd25e00a893a1ddf10ce05c4af96e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./Makefile SPDXID: SPDXRef-59dfd8f7142d48779d0e724dd3f92357 FileChecksum: SHA1: 4e76b849b5da9f5b2998bdca2b5ddc126b4c7c4b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./README.md SPDXID: SPDXRef-4c819f306eb9b43c1759813bfe83e5db FileChecksum: SHA1: 5bfdb94c7a6ba87504b7163c0c1c9a69565785ad LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./apps/__init__.py SPDXID: SPDXRef-84f921feab5ebf2e5ad87dcb3b1aaaab FileChecksum: SHA1: 3a6dbdaca4d3d32831e40c68aa43d10e6fae1445 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/__init__.py SPDXID: SPDXRef-069aa6da79f89b382b16e29ae8572b6f FileChecksum: SHA1: 013fb97860d2abf2142af7d5a1dcccb8b2176adf LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/admin.py SPDXID: SPDXRef-194a870a6d3e8bd8dc0ac3f7442f3357 FileChecksum: SHA1: 47185cc0a1c2922b0cff94d884ddc34749ed5473 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/apps.py SPDXID: SPDXRef-3f3ab03989668a72b4dbe1fb1ed5e87f FileChecksum: SHA1: 00b2170462a52ab092f83517055677030e34aae7 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/managers/__init__.py SPDXID: SPDXRef-94ccf851a8cb968b21034606c4f24151 FileChecksum: SHA1: b835a1e3cfca7f29c778a7bc8dbb93947ce24ce8 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/managers/user_manager.py SPDXID: SPDXRef-d9cdace2ae4c36713b75f3b626e2557e FileChecksum: SHA1: ab4444da0bdd2b2acf012b40a37b5a0f8c9b7dc5 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/migrations/0001_initial.py SPDXID: SPDXRef-28179093f4136db9d8f17e8e3b6e04fe FileChecksum: SHA1: 8363ebcdac763fc026e5f012e0949ccb3ad00992 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/models/__init__.py SPDXID: SPDXRef-a7b6e821e5a716502b1259594829cc01 FileChecksum: SHA1: 721d7596195dcc769821dd17a62b03ab027d0d9e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/models/user.py SPDXID: SPDXRef-b458abf35c50814252a0738e901b9a7a FileChecksum: SHA1: 4e13a703b6c35ec6f0e1e91476b40700c28aee62 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/tests.py SPDXID: SPDXRef-aa22173a3a736e248cca6c242ef0b75b FileChecksum: SHA1: 27bed8831aae0542d2524ebeda8e0a7a1f2b1bc5 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/tests/__init__.py SPDXID: SPDXRef-0efd977b7431db70298b723e684fefd2 FileChecksum: SHA1: 9fd8c793ebba080bd00a2e3b9b761fda0fe3427c LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/tests/factories/__init__.py SPDXID: SPDXRef-efb45a47971542b43c2a4d61962acef1 FileChecksum: SHA1: b21b7b02bdec8cf5a9495da24386cf99a2eaa1b6 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/tests/factories/user.py SPDXID: SPDXRef-61557b8a2acf2c00060099b824ff3c69 FileChecksum: SHA1: 567abe72c0cb8ee92d84cf5454364762706e5c67 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/tests/test_admin.py SPDXID: SPDXRef-b76ab7708869941e11b48312d422072b FileChecksum: SHA1: a80fbccef924a35caeff6b51fd39d5dd7c58847e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/tests/test_user.py SPDXID: SPDXRef-2ce36332140d3e414f25ba8c54d8daf8 FileChecksum: SHA1: 03d57bb27dd2e57a703b9273be7715bb1615d070 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/tests/test_user_manager.py SPDXID: SPDXRef-0efa1fe9dc8c953aa7fcf4a0d6a12bca FileChecksum: SHA1: e18959999d1397ad8b3eefe3c91e008b5dd72a42 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/accounts/views.py SPDXID: SPDXRef-8216ab07e1c469e2f2c939016cdff1dd FileChecksum: SHA1: 53fa20bcba88128d6fcabb92ab2ffddeb97934cb LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/announcements/__init__.py SPDXID: SPDXRef-ecf2179f549a1a98aeaecf6f18d169fd FileChecksum: SHA1: 4c3880f0a29c1f4b764fa628b675b01ddb2e7b8f LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/admin.py SPDXID: SPDXRef-fa3354f95cef8590e5b24d3f366de0cb FileChecksum: SHA1: b2fa952ca8220892571fb5c348c18b7f6462b385 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/api/__init__.py SPDXID: SPDXRef-1784a93309684b8b9c4859813ec9dfa1 FileChecksum: SHA1: 232589186060101094ca3933d726756e9cf97f0e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/api/v1/__init__.py SPDXID: SPDXRef-5970553fb2fd15a28834d4e2644242df FileChecksum: SHA1: 1b3d94bf738158705372a1cd392295ee7baeb999 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/api/v1/serializers/__init__.py SPDXID: SPDXRef-f3ebeefe7d1e38cfc5fac0320e7ac721 FileChecksum: SHA1: 0ec2dc2e8b953203d88c2eeab43aebdd7b270a0b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/api/v1/serializers/announcement_detail_serializer.py SPDXID: SPDXRef-88e2612f9537c35425623d9cbaf93311 FileChecksum: SHA1: cc3421fea91e4bbf74af792f19efdb0208b27a8e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/api/v1/serializers/announcements_list_serializer.py SPDXID: SPDXRef-b5389295c5703e309547eba7fe5df923 FileChecksum: SHA1: 51db9c5b156c22baa3323dd343aa4b0e6110b397 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/api/v1/urls.py SPDXID: SPDXRef-3cb07b2320ad1c0e64cf6f6b8970e35c FileChecksum: SHA1: cc3655e0906619c02bcc59de5dd1b84552643b5f LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/api/v1/views.py SPDXID: SPDXRef-f178661251fc8cf845ae8e536d479479 FileChecksum: SHA1: d8ac318a4b4efc16355d6d246900db6da76a88f1 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/apps.py SPDXID: SPDXRef-b0f1cceced22a2871eea700af8c36338 FileChecksum: SHA1: 2818b8a6a527581f125dbd9bc2ea5e8b6e9ebb3b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/migrations/0001_initial.py SPDXID: SPDXRef-86850be4e958bb5ade2fdfa6c20d36ee FileChecksum: SHA1: bca110244e8efe6036c02353752515b7ec60e3c4 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/migrations/0002_remove_announcement_is_published_and_more.py SPDXID: SPDXRef-a9dac128334df5500fe7f90cd5e38ac7 FileChecksum: SHA1: 84c1b2dc37d87c2dc31372679f0192df30de189b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/models.py SPDXID: SPDXRef-b72546c1cb37b4c3aea5d6ec12ec25ef FileChecksum: SHA1: 42a516c7d427b62aa82c70cd4f729134226cc236 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/selectors.py SPDXID: SPDXRef-4affa720084836123e0bceaf9449e47e FileChecksum: SHA1: 1041e480ffbdfdf67bc26ebaa96ce1703d658d81 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/tests/__init__.py SPDXID: SPDXRef-e25dd4bfcec4c71dd437d496836a599a FileChecksum: SHA1: f5e4ce9f634a02cf3a91b49123f6ceba1f3bc0aa LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/tests/conftest.py SPDXID: SPDXRef-cffed0612c19d81e2db805a832aa7228 FileChecksum: SHA1: 56e54a6f8876770948a8a7f54924630a532b49fd LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/tests/factories.py SPDXID: SPDXRef-95fd4699795c83e8635a6418ef00b15d FileChecksum: SHA1: 3a1c41a02e4227f339d0b08690c497b97ddd0fd0 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/tests/test_models.py SPDXID: SPDXRef-550ccc2c2c98d76377010276aaaba4b3 FileChecksum: SHA1: 25522e9d422593bd142a016e75c4f31bb1349124 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/tests/test_selectors.py SPDXID: SPDXRef-7934619dafcc2205ae0ac9acc6dd2591 FileChecksum: SHA1: 285e59058f61f58e3600ea590e22c01e4b3068ee LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/announcements/tests/test_views.py SPDXID: SPDXRef-4cada232fe088b99720478d5279ff560 FileChecksum: SHA1: 4b3cfdfeb989b98dc164aa68d92b08a40303f060 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/__init__.py SPDXID: SPDXRef-b7269ad7b5a6159adc9ccb0705eb84d3 FileChecksum: SHA1: 7bf77c90fad4b4daffba73b5d34dbe27bd489580 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/admin.py SPDXID: SPDXRef-6104500d14bd174c4be87c0abe569603 FileChecksum: SHA1: b7bf367200f19d87ed416da245b664077421effe LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/api/__init__.py SPDXID: SPDXRef-e7568bea6ea299c75b7a94af07924645 FileChecksum: SHA1: c34ed2eedb80ad16bb109a0a6d55cfb2691f644f LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/api/v1/__init__.py SPDXID: SPDXRef-c151d23d3842a47f79c26b8a9b064bf3 FileChecksum: SHA1: f1b77f6702051f29c9e2559b5338965a621f46b6 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/api/v1/serializers/__init__.py SPDXID: SPDXRef-4da1775666b755dd6eae59c10d804958 FileChecksum: SHA1: e4cca9ab59291184f12c5d24d2b70b71a86a826e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/api/v1/serializers/chord_detail_serializer.py SPDXID: SPDXRef-84599d9b65d0b2ddd86741aeee18bec6 FileChecksum: SHA1: a68edca0b6e94658c8a6bad651b1941c0b9021be LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/api/v1/serializers/chord_position_serializer.py SPDXID: SPDXRef-bed1a052a527be4a7e251260dff3ecc1 FileChecksum: SHA1: e94874625855a02cc9bbf3e6c763e0697dbe2fb1 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/api/v1/serializers/chords_list_serializer.py SPDXID: SPDXRef-5c7b06cf4de9daf14cd937d7ad44c52f FileChecksum: SHA1: 4e16afa63b11332dcd93f7c76145b9b355be427e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/api/v1/urls.py SPDXID: SPDXRef-48990cdf88c823b6b7167635cb130103 FileChecksum: SHA1: ee457568a13b94ca450de2b384bc4ca336bca3a1 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/api/v1/views.py SPDXID: SPDXRef-8ffe76f52edafe585e25bb5114dce9c5 FileChecksum: SHA1: 42e2d2c0aa27e6a2d90b3979f76371b1d725c74e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/apps.py SPDXID: SPDXRef-af48bd30e0a9f54bdc2699d8752db435 FileChecksum: SHA1: 3d2ea94e995ffe401d2f143f904d2a48cfdcabd1 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/constants.py SPDXID: SPDXRef-c4d8113397ce2e0ed6cc497013f6e9bb FileChecksum: SHA1: c42aa7d8f7582ccafa74cb96a5beeb6953b6ada0 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/migrations/0001_initial.py SPDXID: SPDXRef-8c393b4df682fd0136782b0aea36f765 FileChecksum: SHA1: 2aa0f320b3dc4fbda5d5de49b282725929dee63d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/migrations/0002_alter_chordposition_finger_alter_chordposition_fret.py SPDXID: SPDXRef-c9a821797a161499ae018f44596a6afe FileChecksum: SHA1: feb08036c93abad46aa287139819c40cc4796bfb LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/chords/models.py SPDXID: SPDXRef-cdb59781dee70563e74283835b85c792 FileChecksum: SHA1: 8f85bc4110035f5d1affd273285232ff06bb1b5e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/selectors.py SPDXID: SPDXRef-8fae548f392a0b6a2f4e97f1a4e897a0 FileChecksum: SHA1: 80d86dba2a0ecbc8520c163185e843a024d7cba3 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/services.py SPDXID: SPDXRef-2638c65d312c64088f89891f164f2cc1 FileChecksum: SHA1: fcc6cb9dc922b18e8961728c4859b5f12387cbfe LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/tests/__init__.py SPDXID: SPDXRef-78f40bb826cdb5dbf9e095cbfc0bcb23 FileChecksum: SHA1: 72a30cd161c7a5ea1ec54416aad08d23bee54be5 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/tests/conftest.py SPDXID: SPDXRef-5d64f7a182700d9e774df174802b1233 FileChecksum: SHA1: 9c1872e0bca5a202567b9ebdf29b6cc0329b6cff LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/tests/factories.py SPDXID: SPDXRef-35bbc0e5e442e779d4064324f434b269 FileChecksum: SHA1: 2c7465ce9c1e3ff06addb0d49e7389cecde0a095 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/tests/integration/test_chords_crud.py SPDXID: SPDXRef-7254450ffc6996b52bb491520eab6643 FileChecksum: SHA1: 5ef99f90b13df4cbeca97a60fef4571d3cfe24ab LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./apps/chords/tests/test_admin.py SPDXID: SPDXRef-49ff8814b56107aa4d88216c1e564594 FileChecksum: SHA1: 926da0e99b52b0c1458dee82cb613075baa2763a LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/tests/test_constants.py SPDXID: SPDXRef-f941c775cf2af2e384a9e6be4499d03b FileChecksum: SHA1: 9256ef958ed70c0609c5170b6f9b99f0c34f4567 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/tests/test_models.py SPDXID: SPDXRef-3f6a624ad5e07b28af5817e530ce68e7 FileChecksum: SHA1: b5654c75ffad9e914793b5f6c6ae7d7216aade60 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/tests/test_selectors.py SPDXID: SPDXRef-ac929acc226d9d19c9bd873440e830aa FileChecksum: SHA1: 26dd8d7febd2db479008b041d0d23649ab5c7a3d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/chords/tests/test_serializers.py SPDXID: SPDXRef-51d4b842e9e697138958208893032562 FileChecksum: SHA1: 5dc91ee279146d321f3ce563ab2b8094dcd15964 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./apps/chords/tests/test_services.py SPDXID: SPDXRef-78e71c908069b90f6b6578e9e88f21fa FileChecksum: SHA1: 93822ae6875e50f811ae5ff1b19da24d9eb0f3ce LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/courses/__init__.py SPDXID: SPDXRef-42919b9149bccdcc27e1b74ac2a42c3b FileChecksum: SHA1: 4b5d6cc97cf1cf2688c61e4bcce696fd1b684844 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/admin.py SPDXID: SPDXRef-46d7717019e106518583e978f8339322 FileChecksum: SHA1: 01611326b5c9842e6016ca9a39c745219af1419c LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/api/__init__.py SPDXID: SPDXRef-2fc01d4e7109b05ecd37a0c1f303bdc2 FileChecksum: SHA1: 148b44412b014c1ec6abe226294a7699977a9319 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/api/v1/serializers/course_detail_serializer.py SPDXID: SPDXRef-29775e8fa04b6a3f833311de728ebf06 FileChecksum: SHA1: 1c01d2895c58def822c0a1d50fcc3ac270682c99 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/api/v1/serializers/courses_list_serializer.py SPDXID: SPDXRef-3c798163222d469e7037aa9f6c6a18b9 FileChecksum: SHA1: 8452dea634841a9083123f07ef1610976ee4e266 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/api/v1/urls.py SPDXID: SPDXRef-0038bd7b020c96dd31aaa85b87ab9c61 FileChecksum: SHA1: 50f8556873404b67ea4b2b4ebe742a36a4db8d0f LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/api/v1/views.py SPDXID: SPDXRef-fb3e1ed53134b9617e559a7f66376554 FileChecksum: SHA1: 3ecc7c97063db7b787dffe3def6e65dbc39d528d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/apps.py SPDXID: SPDXRef-e8521033c9ba23be00cf58df5393bc53 FileChecksum: SHA1: 070973293fb3a29f0bcb798b0ab876090bdcc40a LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/migrations/0001_initial.py SPDXID: SPDXRef-1db43aae9359aaede2c63ec3a7ae43a5 FileChecksum: SHA1: a06fbb2567367ecd93134bbb4f3ae2311d3bb45b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/migrations/0002_alter_course_is_published.py SPDXID: SPDXRef-22bafdac38b3026fb7a9bf61f436cee3 FileChecksum: SHA1: 7b2684380e40784407b4eeeb0a3ed7b8dabd68eb LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/models.py SPDXID: SPDXRef-732dfb7eff5375d6ff573b05e5db0e75 FileChecksum: SHA1: 5ce7dcd133fd2faac818ad96df3be68d7ef693f4 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/selectors.py SPDXID: SPDXRef-d0b25efd04a5a5e5eae365ed937d5797 FileChecksum: SHA1: 3075670b40c104b491aa627e8007dd4cf36c0d42 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/tests/__init__.py SPDXID: SPDXRef-5df5621845b4cf6844eec80d56b03618 FileChecksum: SHA1: a8c20801cd56ca1f0395a72350d9ecf3256bbb75 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/tests/conftest.py SPDXID: SPDXRef-57118e3960b1bd85103225b1457a8747 FileChecksum: SHA1: a47985356e50cfd08b2fce6f819510c8c9e82e1b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/tests/factories.py SPDXID: SPDXRef-7e908eb68f1b43bb1e02b97ebd2d3db3 FileChecksum: SHA1: 46b5031670411c45408a7ae39dc64e1f5edea2bf LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/tests/test_models.py SPDXID: SPDXRef-c4afce8cb6ae47eca1e7b14727a4fbb4 FileChecksum: SHA1: 53b0199709916d1bcce7c3ef339201e4a53864ef LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/tests/test_selectors.py SPDXID: SPDXRef-96a300e020105bb39aebf90d1377e72c FileChecksum: SHA1: ba067b4361e7289c9cf954d152771fd065d0260b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/tests/test_serializers.py SPDXID: SPDXRef-99741661d3b7e1588cde1a90299e0ab2 FileChecksum: SHA1: 30acc775be7dd30f8c7a861a90d0282172fd67f0 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/courses/tests/test_views.py SPDXID: SPDXRef-9604af548689695d4d546d991eda5907 FileChecksum: SHA1: e331c29d7752f5f1477a7c5bfaf59b7c9d9a1360 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/__init__.py SPDXID: SPDXRef-01a3bf1488b76f13ccc040e6ccbb3fa6 FileChecksum: SHA1: 60fa2295cb45069cc9cd1e65d2e1ece544f40b3e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/admin.py SPDXID: SPDXRef-465731a9dd4a49375623580d4100a840 FileChecksum: SHA1: 20314019fef17ae6898597d11bc9de83cfcf0d5f LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/api/__init__.py SPDXID: SPDXRef-70c00e7f6ddec9a2991e23e091e61017 FileChecksum: SHA1: 6352a5923574c3677a828c66f20027a672a5374a LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/api/v1/serializers/lesson_detail_serializer.py SPDXID: SPDXRef-6e5a4054e5eb35a95c8bf33c1cff820c FileChecksum: SHA1: 5d06f10ac78e9873a8bbcbe02239584952f74315 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/api/v1/serializers/lessons_list_serializer.py SPDXID: SPDXRef-1cfb9d5f44e527d77bf5f70a42b23ef3 FileChecksum: SHA1: bad429d3e6743100a47ba0031f331a9364564a36 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/api/v1/urls.py SPDXID: SPDXRef-96b88e809f1e50995ceaf7638d771760 FileChecksum: SHA1: 894471c0cd50242ef3eb40f8caedc01ee9f051df LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/api/v1/views.py SPDXID: SPDXRef-6359ac8f9fa29b01743dabde49f16331 FileChecksum: SHA1: 4aa933f5a63d340d3d949b85d56579debe9b3f88 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/apps.py SPDXID: SPDXRef-f72629c847f9437f3ae8d86c39884f30 FileChecksum: SHA1: 2212e93434587a9cbac1c1df6929447b0a968fe5 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/migrations/0001_initial.py SPDXID: SPDXRef-6f4f4b1029c10d6979cf003a03486dd6 FileChecksum: SHA1: 2e97a740a155d6904436ddfbfe91846a33e7cd21 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/models.py SPDXID: SPDXRef-b1e0477fa2310848b4591ef95660b379 FileChecksum: SHA1: 709adef38465718fa325bae19e03f56336b40f69 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/selectors.py SPDXID: SPDXRef-d0b02ba821a81a639408f2622bdeb410 FileChecksum: SHA1: 6b856ebe836a0aa619f2efec06387d82f8750092 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/tests/__init__.py SPDXID: SPDXRef-22e620021d3b75607a3ffb67ac7a7ed9 FileChecksum: SHA1: 156cb65aa7a7551ff4f5a229d9aa346e23cbcffc LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/tests/conftest.py SPDXID: SPDXRef-e4655714cfe60c1d1af6a5e0620e8448 FileChecksum: SHA1: f429549e23de6524751fc00883379f36f8a43def LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/tests/factories.py SPDXID: SPDXRef-d6807f60c71765f10fcd51e2e644e650 FileChecksum: SHA1: cca685674d623e2f6d5d53eb8f80412fcfcd5012 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/tests/test_models.py SPDXID: SPDXRef-1d98b98a9f0b015f0727069418dd183c FileChecksum: SHA1: 169df9306cf1f411b8de1bcca437671b0ee19654 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/tests/test_selectors.py SPDXID: SPDXRef-c61148e37252a8d9cb9e86a0929145dc FileChecksum: SHA1: 0f1faae6868a5bb25c57b809358be8f889caed47 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/tests/test_serializers.py SPDXID: SPDXRef-d49f49a6ba57cbbdf0890315041313c9 FileChecksum: SHA1: 7e2370738f74cc30e5bc8609d6419d5cb28c13d7 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/lessons/tests/test_views.py SPDXID: SPDXRef-d5c9a389ea196bcfd1ce1727554aa493 FileChecksum: SHA1: c44e36fd512b44e79fba089957b9a5f6ea137cf2 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/__init__.py SPDXID: SPDXRef-a794907accdef09e94d30e3604e60d3a FileChecksum: SHA1: d9fbeab566a64b1bd1acca3d1e56d79a043b232d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/apps.py SPDXID: SPDXRef-a84da9afbccfa3081606064b0dbb8f35 FileChecksum: SHA1: 82926284f787c14c3c6e0ed2fb7246ba300f778e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/constants.py SPDXID: SPDXRef-72d6025b777ce2d2764c8a86d2bc7417 FileChecksum: SHA1: dcff7bcd831417f9ff41a9398d742ac663b03c40 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/metrics.py SPDXID: SPDXRef-da30ffd595ae298c8f6a989b1adf613b FileChecksum: SHA1: c6f6ca145d09c9e4710f178822da286b61194f28 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/middleware.py SPDXID: SPDXRef-c6009b0878b752d9bb8381810f2a0b15 FileChecksum: SHA1: d63ed8fa65e896253201e083b67e2af504acf3bf LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/registry.py SPDXID: SPDXRef-fc2d3f9a31b3757fb4fe8fa3ab004948 FileChecksum: SHA1: d7f83c69b2af7820ca1aaf4cf514160df1db5f00 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/tests/__init__.py SPDXID: SPDXRef-a1fed8320d4f77170a0cd66b18b3d78e FileChecksum: SHA1: 31b6ed8e88fb0438d90573432e5448bfffdab335 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/tests/conftest.py SPDXID: SPDXRef-508c0a0bd3e078806d119d56a0170ff7 FileChecksum: SHA1: 97974e23d9605a06313021576a515d8b6f073b9c LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/tests/integration/__init__.py SPDXID: SPDXRef-eac26fa898213dd6b838962f76b4dd82 FileChecksum: SHA1: 16a12eff1235d55dce725db1f8a54b2304fa0f57 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/tests/integration/test_metrics_integration.py SPDXID: SPDXRef-b2c683a63e4f120a8a3d0f68cb60a1ce FileChecksum: SHA1: dd0d6ae1761869596ad39bb1c17fe31295f6168b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/tests/test_metrics.py SPDXID: SPDXRef-1bd82ea574f70b2388aca5c3c3c9e9c2 FileChecksum: SHA1: 6ce7c24ef951b8074c22836bb17acbef637a0871 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/tests/test_middleware.py SPDXID: SPDXRef-68a768eb43d3988c51aa4c0810af4894 FileChecksum: SHA1: f71ed52547799c465aa7935bec994e55c798b53d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/tests/test_registry.py SPDXID: SPDXRef-3fe2103a1af8c8da0437cfd08ba52103 FileChecksum: SHA1: db9c3161893773192e2d81c9e005640eaba8dfce LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./apps/metrics/tests/test_views.py SPDXID: SPDXRef-1d66bc291b99d144119f0c92d9b2e4ee FileChecksum: SHA1: 9aef1a2a46edb8bb179fc73f774c8389c337fbfc LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/urls.py SPDXID: SPDXRef-a5906b1517d3ca15566460831d623444 FileChecksum: SHA1: 2258869ff29ccd064646a913042590276c309940 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/metrics/views.py SPDXID: SPDXRef-fbb2b318332de905e4cd541df0a80480 FileChecksum: SHA1: 05a4fdeab01cb678d53ad3191c184c3fa97fa009 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./apps/schemes/__init__.py SPDXID: SPDXRef-20dbd192e84ca2cf17304a84b6d9800e FileChecksum: SHA1: 99da4fcc6a2d4303e3503a285805661b8f5519cf LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/admin.py SPDXID: SPDXRef-1075c8cf7f85bef579a0edc9739dd813 FileChecksum: SHA1: c05e0929bc06b1d0855dd8e51c528e0f71460d83 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/api/__init__.py SPDXID: SPDXRef-309b329adbb141833cf4db0fbf7219e7 FileChecksum: SHA1: 7a209ab89632987c5745822636f280b6c3f660bf LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/api/serializers.py SPDXID: SPDXRef-d19973f7174ed0f8265354217e2979fe FileChecksum: SHA1: f80d1235dcaecbfba7e7628137a10af6b23e4fcb LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/api/views.py SPDXID: SPDXRef-c2192619f6058e17a4fda96e0034654b FileChecksum: SHA1: d360bdbef89771c3f16d67daa8a5dd2a9b6b8989 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/apps.py SPDXID: SPDXRef-87a6e3542c9942c80a4fc6ca7be16963 FileChecksum: SHA1: d57d38621535209dff13d86b5a60492c2a38a8db LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/migrations/0001_initial.py SPDXID: SPDXRef-b2a6872225eb295e55df41405b652292 FileChecksum: SHA1: d8637706bcb53a73c5ac38a96cfab298170cbacd LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/models.py SPDXID: SPDXRef-3ca6a8445359d8443639ff060952cae8 FileChecksum: SHA1: 5103ec929d2a8513ccdf52381785a1480893822a LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/tests/__init__.py SPDXID: SPDXRef-1c58c51b054a5d498ec7eba6165677a1 FileChecksum: SHA1: b749e83af26c3b715f4b38f315392b2bac89b822 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/tests/conftest.py SPDXID: SPDXRef-c90195e4afabdc6c90c7022f5cb645b5 FileChecksum: SHA1: 4b9bebe366f2737ddf2c596dc2083114d57e0336 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/tests/factories.py SPDXID: SPDXRef-32c14b87af68b2c540ee1a7574b31afb FileChecksum: SHA1: c6a8ae143977e3918b110d4a140182beed143200 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/tests/test_admin.py SPDXID: SPDXRef-c9666f3e36235aab9fbae9d522918015 FileChecksum: SHA1: e695527912901c8198268ae52bb5298c327588fa LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/tests/test_models.py SPDXID: SPDXRef-dd206b5c9dc979242abe946cf55c54d3 FileChecksum: SHA1: 445ee33e5a852f726fe949465d0a48f4ee4ccf5e LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/schemes/tests/test_serializers.py SPDXID: SPDXRef-984424ed3d3aeccf8aaeec50fbf00a65 FileChecksum: SHA1: e5a2fff9fc769f23b66368ec761e179145d0286d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/shared/__init__.py SPDXID: SPDXRef-820ac3534e273e0549a7dc6a41854961 FileChecksum: SHA1: 6b7aebfecd50aecbbcf8a2e259eb4d09ea04a714 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/shared/permissions.py SPDXID: SPDXRef-27d5c14575cf31fd3d7d1560c967fb6f FileChecksum: SHA1: 214a2b28639b66fa6d5660f572dd442571413c77 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/shared/tests/__init__.py SPDXID: SPDXRef-1aeba43d651c1dc3110bc9cf16b0a664 FileChecksum: SHA1: 5367f2004c81fe1b81516c3297b9bcff5d6929ba LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/shared/tests/test_permissions.py SPDXID: SPDXRef-30765439e2987ebd09ed3ebfc9621fe4 FileChecksum: SHA1: 8d658441f4f578ba5b1c14ef5ea93e701947dadd LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./apps/songs/__init__.py SPDXID: SPDXRef-774510ad2adf998241e9196fe931085d FileChecksum: SHA1: 2f422346649474cd6b2947007258799aa35f849f LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/admin.py SPDXID: SPDXRef-6b77bd1a9796531208fb7bc3062da7fc FileChecksum: SHA1: 867f98ed826b49d1c65acd878090621bbaf050d5 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/api/__init__.py SPDXID: SPDXRef-07a2e24a4fd8c82d2e83606a12341437 FileChecksum: SHA1: c0d0ed9b3624ce659bab28ed0d0ec7280197ab8a LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/api/v1/serializers/__init__.py SPDXID: SPDXRef-d878d2cfc36fca0a93a8d069bff9477c FileChecksum: SHA1: c9f0e5d2210519386cbc627837847df21767caeb LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/api/v1/serializers/song_detail_serializer.py SPDXID: SPDXRef-cf845400695152f0e6247e07db119dfc FileChecksum: SHA1: 9f522a544c85291998c453b364aee91a9271e6f7 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/api/v1/serializers/songs_list_serializer.py SPDXID: SPDXRef-4a78448d8d942371174bfd0b589a2003 FileChecksum: SHA1: 893df46a72990566a4c58517d2fa06ecacaabbdb LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/apps.py SPDXID: SPDXRef-f2085d5b23ab3521a90899496f0c1ea0 FileChecksum: SHA1: 2bad53ec9ee7d789a07ba31867a04c7623764eb0 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/migrations/0001_initial.py SPDXID: SPDXRef-3186eac76fb9083f4e1ef53810691fb4 FileChecksum: SHA1: 6b5ae29b36017c6e6e9a16b46d30e2a38645bab0 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/models.py SPDXID: SPDXRef-fff57693849de420b78a348871e5c7de FileChecksum: SHA1: 842e187cb5e8d5be8cf62f86693e3b3be7000d0b LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/tests/__init__.py SPDXID: SPDXRef-bb8796cb7c8aa5653e78293c5e465548 FileChecksum: SHA1: f184cb7bde032ead84578a1eacf5b3b3ba133193 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/tests/conftest.py SPDXID: SPDXRef-f42c8fe1165f2c398f538ace4d1f7453 FileChecksum: SHA1: a0c3e70b8ee514a14f3d29c2cdca7dd6331352ca LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/tests/factories.py SPDXID: SPDXRef-3e593c7c1568b35ab99338ed006c1050 FileChecksum: SHA1: 109ec20c6d3822278aa9e782ba35a2f28bf46181 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/tests/test_models.py SPDXID: SPDXRef-a0d4e356c2e7cc288bb09db393a3718a FileChecksum: SHA1: 2c165783c0dbd3391d87e5f2892f26ab6fa07592 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./apps/songs/tests/test_serializers.py SPDXID: SPDXRef-97dc999f28edf5714e3509be2b1fb6c5 FileChecksum: SHA1: f28165032083ff82ae28f8ba4d702e77f4d0acb2 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./codecov.yml SPDXID: SPDXRef-24732d517745c4ed8007a30d534bf50f FileChecksum: SHA1: cc23a96b054db52dc39b80d8d88688be785e3ed7 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./config/__init__.py SPDXID: SPDXRef-c74d3ac5161b2d7e8a245c35bf47e1ce FileChecksum: SHA1: 1288b815917e718e420e9348b816ac155a5511ec LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./config/asgi.py SPDXID: SPDXRef-7370f410646e4306a24154343f9041d8 FileChecksum: SHA1: 30de1ea8f6926543ad7ef534dd2171b42ce12f95 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./config/gunicorn.py SPDXID: SPDXRef-fc8911a52a9e7a3e3f44fd5fd6e15ec8 FileChecksum: SHA1: b95dde71df1b60dedcb87fc130d17b386fa4e706 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./config/settings/__init__.py SPDXID: SPDXRef-f3d61405be20140c539d04fad6df57be FileChecksum: SHA1: b25954c85ef3cd759c01feadf7e76e087e9c9060 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./config/settings/base.py SPDXID: SPDXRef-9d7cec466863ba503da5769dfaaf1fa1 FileChecksum: SHA1: 262683a10ab6479f892132a7d66a5aad6c3a2772 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./config/settings/filters.py SPDXID: SPDXRef-8954268336c1e860f3b0a0509169c187 FileChecksum: SHA1: db1efb05a5f8c473d7b01d8c36f6c2a8e6d77911 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./config/settings/logging.py SPDXID: SPDXRef-e08106502e27091424d6a14d2fd3e9c3 FileChecksum: SHA1: 267395e73965bd82ed392bc50483040052cbe630 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./config/urls.py SPDXID: SPDXRef-98ef8ae47cb12cd6130a9375afd0a0b0 FileChecksum: SHA1: 8442d4f14df24e953a6645187febb116f6d1daf7 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./config/wsgi.py SPDXID: SPDXRef-ef4e140d4163647de68e36fb02161dd9 FileChecksum: SHA1: 6f618e0ec0c540404d82ca31d5e538ba57dc758d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./conftest.py SPDXID: SPDXRef-4cfd1574682a8829959a70b5480f43bf FileChecksum: SHA1: b5b64b7475ef4a933db46bc2ef06e30d4552897c LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./docker-compose.yml SPDXID: SPDXRef-75513552b4180abb8e019bc4568219b7 FileChecksum: SHA1: a932028cab51bdf5f1787d77eb30fc1dde4fddff LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./docs/http/chords.http SPDXID: SPDXRef-9e9ae5f3f63531aad85ed83d6e3c6024 FileChecksum: SHA1: 40867dd954eae994e18851e206544c135a0252f2 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./docs/http/courses.http SPDXID: SPDXRef-a356ca460a3f1930f87dfff578a91c4f FileChecksum: SHA1: bc229eaf60e0576e3f6415dfc24a04cab474e4e8 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./docs/http/lessons.http SPDXID: SPDXRef-aeba76e5b88c64c2445a513edeaab0f6 FileChecksum: SHA1: 1e79921468f0c5e304dbaac20e121cadcbd18a64 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2026 Andrey Kotlyar FileName: ./manage.py SPDXID: SPDXRef-97bc9ceb76c8e09fb20b0eb94213fa02 FileChecksum: SHA1: fe2e6f6fd2dbb65cc1144d6e6ebb074171f6ab8d LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./pdm.lock SPDXID: SPDXRef-6a27c28bcb905bac2ef767f6f882e46a FileChecksum: SHA1: d2c6eb161dbdae6246b3fe1771137b4f9dfd5e5a LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: Andrey Kotlyar FileName: ./pyproject.toml SPDXID: SPDXRef-3eac03c802811ff5a1e142040ff64e43 FileChecksum: SHA1: 3e5633cef9d8678ef817885ac126c69710002bc4 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./scripts/__init__.py SPDXID: SPDXRef-2adf8a59cbb4b26d5c9b81ea5cede913 FileChecksum: SHA1: fa100f1e3fcd706fd0e0ff44bb9697000eda5538 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./scripts/lint.py SPDXID: SPDXRef-1601fcbe3740da2d92cc75e7909876d9 FileChecksum: SHA1: 379e403798ee5fa281508ad8cc1ff551f4b33c7c LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./tests/integration/scripts/test_lint_integration.py SPDXID: SPDXRef-d4a85e7370c99c29f3061bbf3426714f FileChecksum: SHA1: a0246dc9b1a11cb5bf058cc8284536f873b1c53a LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./tests/unit/config/test_filters.py SPDXID: SPDXRef-08798510e6370878fd48042979d4e915 FileChecksum: SHA1: 47314adfaa48163fbe6fe0a7b49a055a8fdc1e33 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./tests/unit/config/test_logging.py SPDXID: SPDXRef-bb1f778290980cad3f86c2acf4f8462c FileChecksum: SHA1: 10be1c7d4f55fcdfd17532184b9b9f817d269617 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./tests/unit/config/test_settings.py SPDXID: SPDXRef-d0ce72f1f16e66f03d20dbfb32ea7b61 FileChecksum: SHA1: 8b02501c8d82f29535f616420c5350e84de8d926 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025-2026 Andrey Kotlyar FileName: ./tests/unit/config/test_sgi.py SPDXID: SPDXRef-cefb2bb3c359538148d6d9f2b72e1346 FileChecksum: SHA1: a62bbffe3117a5a4abb51dc012f394a16106982c LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./tests/unit/config/test_urls.py SPDXID: SPDXRef-3b1b5e513a44ce5aa14613ef621aebf9 FileChecksum: SHA1: 7439e688eaa3b1def6836e59047dfbe92bfd3105 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar FileName: ./tests/unit/scripts/test_lint.py SPDXID: SPDXRef-d2aa98de5454663fb8b60feaebbb29c2 FileChecksum: SHA1: e108c297ace5503e8ebf0bd860441a4a83ec2363 LicenseConcluded: NOASSERTION LicenseInfoInFile: AGPL-3.0-or-later FileCopyrightText: SPDX-FileCopyrightText: 2025 Andrey Kotlyar