norboten/__init__.py,sha256=VnRpITrACrZIh1c0zdvkjvodpsk0Ll2NVYBYZWZgluM,68
norboten/attempts.py,sha256=ZwwX5fRkLmIywWkOwi4Wa3sLGX_cCS9s4VftqHNF2HM,1821
norboten/auth.py,sha256=avpsWyRhxNolK9bevmoQHZSDNyMzAR6ZSazeiT-BAOA,6374
norboten/cli.py,sha256=Y18bK6Raowvmp2-NiMztn8yU5_DqBOhvDCUitrdRccU,17887
norboten/containers.py,sha256=U2Ot7xlmHso4jtL6IeTNDTWFXL4Q3oPLyts4jKibFLg,9440
norboten/doctor.py,sha256=KQB-lz7CT5-XbVTQ2XE9Yft9vW0u7EhntdgjfZQ9UTs,5130
norboten/host.py,sha256=U7MCc4InENb8rMeL4-lq-UTBtF5pW3Q5dWvUGYc_MK8,3529
norboten/hostsetup.py,sha256=SYaAmhZAolix0pguHUQNm-7X9W6vNPIsvFCapF9l-K0,3627
norboten/journal.py,sha256=E1RkMV4IeC_Ee7VfrB_rZYJVO7vnQE2uN-gUNPhNLgM,11740
norboten/journal_pdf.py,sha256=P5ULPyU6AHi81OORnaPaDscC-ICa5THN4qgOt-ZjTBM,3773
norboten/models.py,sha256=TmlTOkMKxdFIVswJv2CK7IPiEo0SkFEbZTWA-AFXGAE,17911
norboten/oci.py,sha256=HPsmAPry7xz1XL7WpWxQ_1ffVx6etUVSje0Hrcq2ZgE,5099
norboten/paths.py,sha256=fALD5jW9hwgcEvv0ReZIotRRk81UzZpj6YLVi-nrom8,2918
norboten/progress.py,sha256=ybN5FvWIfsMoW32pF6BHXCuwbZ2re5_CpUouXOUDOKQ,938
norboten/rated.py,sha256=TBcOT83-4MctKCwao37SsKob4Hb-zFEa1RweyergCBc,4883
norboten/schema.py,sha256=lxbjYVzwFcGAOpU1vNI4ZGsqA6DEWmLF6nN5uVHOV8A,668
norboten/selfmanage.py,sha256=qwQMw1M5iI3EFM2T5-1Tjf2153PYrqCBOAhFTKDO8rk,8397
norboten/settings.py,sha256=bHkxvOqew71LM_CwUEKmS5X3wLbVf9UALpYbNqJM9PQ,792
norboten/topics.py,sha256=AQPD_fdGCufPmbQmowInRZgnaSCOdubP1f9xm0wvv6E,5327
norboten/images/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
norboten/images/store.py,sha256=7DiZo_OfzoUoSpLZ8ZVmByscI1L8_fztdvXucGs8JUc,7524
norboten/labs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
norboten/labs/lint.py,sha256=02FLayhMToPdlztAubVpS6G8gxmNwyKDc0Zr5LnGpwI,13957
norboten/labs/manifest.py,sha256=nVuGgKpI_U2cZnLOLcB6uiLBfQSdNr9WUSQ1hTtrWno,2994
norboten/labs/store.py,sha256=pn_WE1cYcSFo5kjfqUKDchKj7leT6D884yQa9MkMk4k,4588
norboten/lima/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
norboten/lima/console.py,sha256=LkBS9ph0KkcPZWXdGuzmiLm0eZN0BjIe62pyz_DzVa8,1633
norboten/lima/install.py,sha256=mN7M6mR_oOLSMAYaL4O-HO3SDLq-6QBJpy_shGBSi0w,3247
norboten/lima/instance.py,sha256=g7XJbZlFPHFkFiEmTCJBaVhAtKDILOF130gDMFrP3bs,12876
norboten/lima/qmp.py,sha256=N6_BBZ9xL3O7bAZfvECwjGkM8dLgC_-rVA9Zvm1TRf8,1303
norboten/lima/serial_shell.py,sha256=4ghssGROFN2d7e-6d3nko4dziW5Ou-CItaWrvhcTv9g,5569
norboten/lima/snapshot.py,sha256=RiTUCav6VMeBFutddbARZie1bG8kd6vIlBxobiD2Dt0,2008
norboten/lima/template.py,sha256=N5z-A7yxlEkRSgyOkaWCs9TC-8lIrdXq8HRK0Okfcwg,1861
norboten/play/__init__.py,sha256=D2UcKZPvS33pyza6uo6yXkQVVcnh9GgyI6PXGTdSfek,84
norboten/play/recorder.py,sha256=R2107ey0egbtgLqF8B7VKMHJH7Unc4ca9-fIKiY2Tsc,13144
norboten/play/session.py,sha256=5-FM2OadqFroWu_vY7Ip3YHCPovq_GDkJq3QAPPnUlI,7197
norboten/play/watch.py,sha256=nIILHZ7w-l9NErEb6wIoaDDo1AD_CyCIUG-wf061JmU,4233
norboten/questions/__init__.py,sha256=7iQF5yPrPT3qhxohEmYfCmwLwshJdAV0DNXTH9PxLf8,95
norboten/questions/drafts.py,sha256=W2XIG2Nmu1YGenjJUlez05pQJFeuzGukb1ToGh7AxBE,4885
norboten/questions/own.py,sha256=bwquFB7kjOxIHweqecZqWk9AilTjSa3xUc-ORlILF3U,3411
norboten/questions/pipeline.py,sha256=bQv7UrPjdMlbmBVmMUUcj2tuNilYWi0VwwnL4dlQae0,12656
norboten/questions/providers.py,sha256=JAdRCqTBWfAwXFXy4DiXYaxKx9hYTPB9BTYWtdHYLlo,14797
norboten/quiz/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
norboten/quiz/bank.py,sha256=79sQZvMwNYfmXpbCJqs9yWstaN3zQprtf_hw_8IBgjg,3099
norboten/quiz/remote.py,sha256=sevG1uhzZlN8SpmTrp_05O8za-s3qnRaOM-SNwWOh3o,5112
norboten/quiz/session.py,sha256=xVAT4gAbLqby9RJcEiEoEODlCoDCaIZcC5uG9Wqj2Bs,5679
norboten/quiz/verify.py,sha256=VxHjQI32RWWInSy6WSaau_AIbOyrVd_6vgbXA6gXVFc,2231
norboten/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
norboten/session/engine.py,sha256=reI-afGPyL6FsYafc1CoF6qA6k-RFYO5wlo5M08J92M,20899
norboten/session/gate.py,sha256=MqMj9jJJ3SeSANx0Tr-UZQCOnN8Kfon79sDyBhxj03s,6780
norboten/session/grading.py,sha256=OpaawlDKIWNqsahp5e7L4H8HLnMna0ClyoLvTzzV-vk,2348
norboten/session/guest.py,sha256=BlwnSBEgmEoYlFCaIt_gaPVRPHhlUZNPKl6vGDFeDEY,12404
norboten/session/live.py,sha256=MGZ2wKom11V7FoOPA_UgHcZk_kFa_WReLTA6Y5a_7DE,2664
norboten/session/state.py,sha256=BmBG76oNa801uCHslislNrLfBTwwtMY3X0PHVosWGMw,3868
norboten/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
norboten/tui/app.py,sha256=tsbe-e5DhaoRn4CifuBrBL2qRAO7--bp94_2gCAUeiM,10344
norboten/tui/app.tcss,sha256=sEVe38ziKPgqd9tjnLB_26mBCFJKUqy4cy8SGFbcZZk,6682
norboten/tui/data.py,sha256=tNTsHv8fcSwblGd_r0QXzDSjoOQqa64NLCkH5dIhKFY,8185
norboten/tui/lab.py,sha256=pPHqfz6eVjQZAQvYK9HOjWK1HCXvDIkAYJkhKGtjPlM,45741
norboten/tui/modals.py,sha256=fno19jD0sxFIyq9MKFCYtOmo3-sX9mNogoyeKXpR59g,18428
norboten/tui/quiz.py,sha256=gj60w1jzHMGnYt98xfe7jGFghH9I17v7NNfKOom1IUg,9851
norboten/tui/sections.py,sha256=p1kzkKzn4iEJ_tOGkhhJNlyRY55WNvIv2YoZb6wdKwc,55697
norboten/tui/setup.py,sha256=MtIvP6sQBIKJ-9X1iLpN-aNakgmYOeMHC-BZRhV3Jv0,10768
norboten/tui/theme.py,sha256=4-pYq69EmUA_pbHq7wyOI-biNGomSH7JU7vawVrr3e8,3095
norboten/tui/widgets.py,sha256=aimAfusViaCKCL_vleOAeAgXXwxm0tz2tZBNk4ICwgE,24909
norboten/tutor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
norboten/tutor/agent.py,sha256=qGwhocQ86RbrNAO9aKmYDCjtRiCbJN8wWC1uqhc8DIc,5142
norboten/tutor/client.py,sha256=NEdNAaME4yro4CWu9NT2k6knJH0NiuE2xKYp_OL5Gq0,1344
norboten/tutor/commands.py,sha256=mTluXt7q3OEmQfu36eTDzCG4f7OPAJZIfBUMfj8BRLA,1962
norboten/tutor/guards.py,sha256=Zj_DeIn5se10o4RoyGjbkiAoBIqGFOjTe1agrTRl2wU,3356
norboten/tutor/models.py,sha256=lmU52kpRt2EGSQS_MCQV1lMyYwXtSMZi7BRVQpe-Kcs,2587
norboten/tutor/review.py,sha256=sYcJ4_PgYFi0r-W0UO_m1pWsw82pQDvvrfWB48PoK3k,3292
norboten/data/print.css,sha256=5DJwkGQsxAX_8wtWSt-wBBRODXD2DvBDTBJgp3iDuik,4094
norboten/data/registry.yaml,sha256=E8IRzZBQM_gVPQlfyQ7BqOa2iWxfUIrCEGyp0_ulh18,6465
norboten/data/content/journals/ansible.md,sha256=dw1ud8ja-kLuY7EFSvY4A7VWqMYwPuS2c8jCFvwmwqw,24779
norboten/data/content/journals/claude-code.md,sha256=ZBSE-ZAACcSx1JjZD683iWQRH4i1V-LSlyU27yr-gG8,19490
norboten/data/content/journals/containers.md,sha256=hv0Fj709UPmG9ggiKMkRsDwEHZRTS3eBZSHR5WpOfW4,23764
norboten/data/content/journals/kernel-performance.md,sha256=_8P9R2rBBW4to1yvVU6K16uY45HHmTJqzbJU1ZNNWGQ,22599
norboten/data/content/journals/logging-journald.md,sha256=oyRbwA5tjMdKdzwFrXy1QQajkchBoGsUZdMhHsoc4LQ,19258
norboten/data/content/journals/mcp.md,sha256=kpRRAMe6quWENYgnnSqRsTFhFkft8q1G-HdTGDfm5OE,15612
norboten/data/content/journals/monitoring.md,sha256=H40MrZa0PDZf6DeEtm6zh7jkcRWFCQgIbfRFu8cSvWg,19883
norboten/data/content/journals/networking.md,sha256=ftviTI5y23YyudJh5rMo-irRVBbWeL_fjQoFnFtpW6s,19414
norboten/data/content/journals/ollama.md,sha256=fMUZz7MdxmCoPN9dqrKtUxKlAD8ECeyv8FfWxlfJv8U,18334
norboten/data/content/journals/terraform.md,sha256=bC6as7qyKtPgxmfFplw9-Yh2ub_L4K_7pPjlljJs8jk,22874
norboten/data/content/journals/notes/rated-labs.md,sha256=4ltqryXqP67QXyWOc64E6UeAVxCNDhXFKzXCAd9-XbI,10090
norboten/data/content/labs/_template/briefing.md,sha256=ZPY25aDA3--0ZI0jkCcA1tL7hVoU_y_Px5CAXt60gfY,327
norboten/data/content/labs/_template/hints.yaml,sha256=b3Q63i6mCMeronyKBCh6pzFkkfKFIoy2g3J8GBKPDhU,526
norboten/data/content/labs/_template/lab.yaml,sha256=3A7mhISjG4d_i20IC3XEDXwucSV6X1gS4-TlWhE3kHQ,509
norboten/data/content/labs/_template/break/01_example_fault.py,sha256=5iI8gHIglmSrvLfeNhW_-UNUuAKXAJhlvTEd2cbC__s,202
norboten/data/content/labs/_template/check/01_motd_world_readable.py,sha256=q3CFh163-OsRAsSEnTeo8zZ1DR4y2TYWK1eSlmvFVOk,487
norboten/data/content/labs/_template/solution/solution.sh,sha256=xRar3f_Ii2i_YDEkNpP3yyK8vnQ6wWNDylw3MZdhJjg,47
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/briefing.md,sha256=cd4BJ5wVjzlH6x6QxnN55iYW9IgUj4mHxkj68kYh2lM,1140
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/hints.yaml,sha256=vQS9B-MixnsRj9mvIIlqDHNiUcyLG603tfgn2udCM5c,2892
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/journal.md,sha256=f4z8vxS3BZvzzHhkpvu_3n5Eu5DyE6vVVdgzFniRSB0,24745
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/lab.yaml,sha256=BX3Ccwq0OFYHUTTuMWG_OKXSa1EKdysYAN713rWldq8,657
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/theory.yaml,sha256=uOqLhRVTa4tjahrppW38s3k2-L7Gu_CyNFJ6Y9XXYTE,3686
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/break/01_project.py,sha256=WlbfdkyF0l6I6qny0vzaVWDBaAC0z0WuG0e1ZAo0Yfk,684
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/check/01_app_on_the_inventory_port.py,sha256=gg1RBt2ImuJLoShZW37yerI-h5At0Z1BMeCz1C1iSKs,855
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/check/02_forwarding_configured_once.py,sha256=bYX56WrdTuGPpesMcx3_zIfwK99hV4zMpEbH7YZcB-4,974
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/check/03_check_mode_finds_nothing_to_do.py,sha256=US4ULoTg_tWFyMCZw85wD4ImT4bTapHpnaMACj1bO9c,1329
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/files/project/ansible.cfg,sha256=5VawbnUoZjYdZSLCJjurxTvpQyHXczSKs_Ko1JTdqGU,103
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/files/project/inventory.ini,sha256=xJKRShymWzTZkeyIA1RzbhIw8-oFHozJyLdaOSYI-Q8,41
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/files/project/site.yml,sha256=9Mzc0lB5S8iqMp8oXDHzf0lEwtZ7x19PwjfY3conOqo,1182
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/files/project/files/app.py,sha256=dZg3XL6aWaH6uFh70mJm4QADp-lV9Yn4dP71AUuJRbE,779
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/files/project/files/app.service,sha256=doSaYmZ31mIHuSg0Tt2vIETUdJx05z9SIlV8wQHwFJg,186
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/files/project/group_vars/app.yml,sha256=c3xrmm4bD1IdJHplmon07RNghcjHy67pi-qf6tUc0Fc,51
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/files/project/templates/app.conf.j2,sha256=mti9mg1TGSnZ-JCSMooa-IVoePbPB9Usktj-qUtXVsc,90
norboten/data/content/labs/ansible/ansible-01-playbook-changes-everything/solution/solution.sh,sha256=10XOcu_NfzPFJiOteHg6ByymIVdaIrBFqMm_Scrmb6k,1784
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/briefing.md,sha256=__-vk5VTVdUtqZFKzG7QHY68x5b9vVINIGd9vJ2_I4U,1154
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/hints.yaml,sha256=sFSuNBqcrLWqlUzgcsBggYsyZ-TS4C8HGq5fFckHGNk,3179
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/journal.md,sha256=eHYH1KaH0t9mBK5tga4oy19O0Jrn7InZPy8oUfTX7dI,22661
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/lab.yaml,sha256=VMtY0mu_huySqnh4RmqDLZhBr-gwv5QYohHXPjDSVNs,737
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/theory.yaml,sha256=Z3KgCHHyiALp5slZSX7Ozsk56pcTuJ1ai2RbAylWP1s,3738
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/break/01_deploy_project.py,sha256=Yq-fZnNw3r6fvlgVTU9EaYoOIrZDko5hLOudToDtFKI,2380
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/check/01_deploy_runs_unattended.py,sha256=uzxLkXX6p1UxWjhxhw50_nAzPcNOSjUZOX6G9xs4Pvg,1719
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/check/02_secrets_encrypted_at_rest.py,sha256=HXno5TUXg-XlYtTGrG3us0P160-7NyFXIvE5g6wTm08,914
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/check/03_vault_password_file_protected.py,sha256=NFcy_scG-v3DWrxxSNmmkLyyo81iNkV9XBcCmJrE6LM,2173
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/check/04_no_secret_in_the_log.py,sha256=0_uYh85bSut54iAq-IpV1AaxkOuEO_kf5h4FTYXDmHk,1101
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/files/deploy.service,sha256=5OasHfB1N99C8jQq5u9UUymspaMqW2RV7mnqYh7XcDI,306
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/files/project/ansible.cfg,sha256=eIVPVOBp6Kf3sWcSnJGgvpcnjh25vvbvoSHiWDYBoII,125
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/files/project/deploy.yml,sha256=G9grkhHRiPfVQAMSIIQLUflfBQ76t0Mua_Fr3HIErbU,428
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/files/project/inventory.ini,sha256=xJKRShymWzTZkeyIA1RzbhIw8-oFHozJyLdaOSYI-Q8,41
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/files/project/group_vars/app/vars.yml,sha256=Ls8zhO9xtqLxmhNzxQFxfXyWDwdokBPF-IkGkJslGZA,65
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/files/project/templates/db.conf.j2,sha256=iVxmTaXmrTi9W29S3kBTvc3i5RCnqr_8aYon-SeZFP8,140
norboten/data/content/labs/ansible/ansible-02-deploy-waits-for-a-password/solution/solution.sh,sha256=RSTxqB-JAUhTmOr2Uhjkfp26ZXYE93ghzyfH4HIOSrw,701
norboten/data/content/labs/automation/ai-01-model-server-unreachable/briefing.md,sha256=oWUeSBIUhucQZRKRD5iPsjkNAAQ-z7A8yBjtVFSJVZg,1078
norboten/data/content/labs/automation/ai-01-model-server-unreachable/hints.yaml,sha256=u1Jwjj0zif3dOqVmetzL2QmQFw-C_mNAvqT-PETOLsc,3445
norboten/data/content/labs/automation/ai-01-model-server-unreachable/journal.md,sha256=cKkVJxzqjDUoRdBRTXS8gmmOTtoxTs5wLlPeKj3qSLA,30446
norboten/data/content/labs/automation/ai-01-model-server-unreachable/lab.yaml,sha256=I7kMqYXNz0S493CxkONS0NXWbIKAjoKMoVxluIvHatw,775
norboten/data/content/labs/automation/ai-01-model-server-unreachable/theory.yaml,sha256=thy_CzTh5dk_zLVM1KW3ilFc4G_Z0QHOT9ubbLc8ZXU,3670
norboten/data/content/labs/automation/ai-01-model-server-unreachable/break/01_move_models.py,sha256=YWLPHLzxo32AyVIOw7p6qQfY5O7XufV8YNrioNQufhY,622
norboten/data/content/labs/automation/ai-01-model-server-unreachable/break/02_proxy.py,sha256=ZvG8gYxAt12k9889kG8tzDNHfkNhoSIO4J7-QzG_BA8,378
norboten/data/content/labs/automation/ai-01-model-server-unreachable/check/01_ollama_service_runs.py,sha256=VpFrPbp14rNhYCu30yTB8-6HleAqS6ktf4tHXc-e66U,609
norboten/data/content/labs/automation/ai-01-model-server-unreachable/check/02_models_readable_by_ollama.py,sha256=O-FUMAs_jyIB1fyz906auaYvjg-DIp4cponDbb7E9-w,1252
norboten/data/content/labs/automation/ai-01-model-server-unreachable/check/03_tags_through_the_proxy.py,sha256=vv148DK-wO2RoGVdoFZgDXD-EnhzB-SpXTeY6kWokoM,829
norboten/data/content/labs/automation/ai-01-model-server-unreachable/check/04_generate_through_the_proxy.py,sha256=jf0wx_F18J4T3WOlJZ0t9_AZO66LD6-9ruLgRGRXwKM,1084
norboten/data/content/labs/automation/ai-01-model-server-unreachable/check/05_proxy_ready_for_streaming.py,sha256=4hbWnTF-9xmOZdYcT6W27Mbm-Cd8_gZ45Ok-ULafcsg,1164
norboten/data/content/labs/automation/ai-01-model-server-unreachable/files/model-proxy.conf,sha256=ce2QN6siKEUWFZjlXK1M1w-Y8IMDFGppU6o2ULhhRLc,205
norboten/data/content/labs/automation/ai-01-model-server-unreachable/files/ollama.service,sha256=Mds4r0UM38eRCq9AV3zGfiHz9R6ENMKLHKs-9kZgfZI,350
norboten/data/content/labs/automation/ai-01-model-server-unreachable/solution/solution.sh,sha256=bPS5d3qz46XduiiGpJX_IoEamYBeCLx5Y1YndFHpnNw,424
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/briefing.md,sha256=SWEexCaiGgWCpBcTp0i3YkjorNnDdBZx7MqDGoByyHE,1555
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/hints.yaml,sha256=kXGTZIWARzFeEsIj5Gpp8YPEaMzGKtR158B9o1PI_9s,3280
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/journal.md,sha256=4IIqgOwmQsJ6zfqG5BnhAKNrsZtLeMdT7osZlniaA3Q,32687
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/lab.yaml,sha256=n6ytuTpctAanWONAaSUaDn1-6CnpPDV1Q3x8GCTMnOk,802
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/theory.yaml,sha256=wxBEatKo_rn1Y4DxRATDHlGYNDAlU8aZduehmmjGybY,3498
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/break/01_gateway.py,sha256=n-nCOuah-z4h5RPY-XZ4RlLv0I4HrLFy-6mGH1VK884,2225
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/check/01_key_not_in_the_unit.py,sha256=648wzZPnNeIDB6f90YYFqdh0X-QB-R97ZIGrStfJxAQ,688
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/check/02_key_file_private.py,sha256=dwr-9k6DUU8tcT1VWOfQCnFfUCVU1RZ_Qm6sMVABLfE,1115
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/check/03_gateway_requires_a_token.py,sha256=in-lZewML8pmRPI9fRY6NCw6UEBx2Noxx6ycnL259vU,1243
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/check/04_bursts_are_rate_limited.py,sha256=R51YuUGyx1_nWOCBLq2Lgds-x5YCbZga6N7z-Hlc0VM,1223
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/check/05_logs_have_no_secrets.py,sha256=E2mZGQJlQLA1r6_shMNMTa6fIofZZKR5WmRwHNMW0l4,1093
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/files/chat-gateway,sha256=JpQuDjpe6-anc0wGBISWVZf31f26RBXeVOkw25yp5x8,2364
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/files/chat-gateway.service,sha256=fSFxJQSavrxjDhiWqsKtaW3C8q-IvrYeb1S8jt5LUV8,326
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/files/chat-proxy.conf,sha256=RSfnUjtxy3i9RYD3_rcZAY4TZ1chRpYkyAUJlBourco,173
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/files/model-api,sha256=i7yfLv--HYSZGoRYYqVgFfWoKy8fbjsCMwBTUrw7phM,969
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/files/model-api.service,sha256=6FlboWsts36f18npeXPTBfidlmPinR2ldVzBEAKmgFY,143
norboten/data/content/labs/automation/ai-02-chatbot-leaks-key/solution/solution.sh,sha256=I3n0ZSHBbBSSm-bY2fUpcRhZ5RlMInY5fTg712Q0Azc,984
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/briefing.md,sha256=m2E7SJk8_1nah_PS500QrniYGp4COxoioFnI3ueF-hk,1639
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/hints.yaml,sha256=_gXqcQckn7yET-3uNQznZRiR7ShkZ1zMv1mpc7Gx3Ug,2857
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/journal.md,sha256=iKvPfLwxxUhK7qsG4l4ONdB9CcZKduQ7wqw_3LH5WvU,15446
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/lab.yaml,sha256=NuNx-W-EGvFyibnT-BR_OMD8-IbZ8MTvoDeVHfPy1VM,758
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/theory.yaml,sha256=k_KLyWdkq8HZ6K-Fikf5Dr5c-zyzo-u6MJ2y31Cu4Lk,4077
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/break/01_the_agent.py,sha256=Po42yHUGsclG_Q5Yd8Uq5PLQdd4k8mo_qLDVggvtV_o,1652
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/check/01_the_model_cannot_run_commands.py,sha256=s7OOZxfdvA_6609Y2SUuTdHTv0fD3x5nfeLRBw4A67E,2578
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/check/02_a_looping_model_is_stopped.py,sha256=x9B3-ZDtgol1RvP1M6bZov9lydhzkuMCc8p54T_CmZ4,2474
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/check/03_the_agent_is_unprivileged_and_confined.py,sha256=wPSA-F1rhp7SPnBusP8d2anNy-DfSsMnC-BLwJMfso4,1020
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/check/04_it_runs_on_a_timer_not_a_loop.py,sha256=lKu43AdiIQUziudw5O7O5u-TfxM2C0nnxB1d4MeggBo,1420
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/files/agent.env,sha256=TLO0C1-19ZcBe2l2tTFHEKHnRwCgI3iPeUqCkjXJ2hI,194
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/files/agent.py,sha256=ceZhXSAy29Q55hP56MIO7Fy3EdfEA5we8n0CXoZ8bYI,4998
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/files/fake_openai.py,sha256=1sxQAbsdhlTKYbYn-Nahbgv5aHU7I0SelUIcXPLaMUg,3666
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/files/inbox-agent.service,sha256=COHXVRmEMsVW2IJy8YDSHFmefBjlB_xZ3IUniXSCds4,240
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/files/norboten-model.service,sha256=4yN0-GqcI9BalB-BU3zITTPAzIKgd6Cn9rUqDpp30X8,269
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/files/script.json,sha256=Ym2BKSAvxMqTXi_1n_JnsGD1QPiWj7vAimvdyndJ0G8,300
norboten/data/content/labs/automation/ai-03-the-agent-that-never-stops/solution/solution.sh,sha256=U7vX4QcQm1RzqJ_SutDL4KoGkwhY8OjIFEcBBpQ1xCQ,1033
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/briefing.md,sha256=1JZF2mpc36EvpoRxyk8kECvo_fzDterO0lGZEhL-DSs,1087
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/hints.yaml,sha256=1SfFMbrSGho0YM_KYwn47ps5TMo8CZJgUQr5lhJqxlQ,2292
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/journal.md,sha256=uVRfzPv1gx52GH_9eiCUFX4Ya2Y6Aic_CGjrMykOC54,13440
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/lab.yaml,sha256=tPBN0Ytv5kvaOeEMdCa6pq_BwDP8S0hXkSp7LP0pZTg,738
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/theory.yaml,sha256=aCK69zxeqgD2r_g6cDZ-UQSvj0qfQGbQh_SNRQmrang,4046
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/break/01_open_it_up.py,sha256=4i7VHEtGq4KDWRajrZBj19aC9zgVHxCxRG1Y4HJnkmA,1076
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/check/01_ollama_listens_only_on_loopback.py,sha256=fKUVHp20lEYSE8reJ3uJ4InSHvlmviYj9DqeGqjjidI,936
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/check/02_the_proxy_asks_for_the_team_password.py,sha256=LcybjaJJNq8vT5uVzhfXDXNm4nybKa1TTQ5k3FAHW0E,1559
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/check/03_only_the_chat_page_may_call_from_a_browser.py,sha256=Vc_RgHPaG1DuYeluOyJDia1Q8Rh5272v7h-P2qe_kk8,1704
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/files/models.conf,sha256=FnVCv_mq-OBDd2Mp9v4B5oQ0YoyhpnDeHX8SWo3-Yzw,208
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/files/ollama.service,sha256=TJ5rCj9RgChdE87691aH6A_bCtMbDQwNKFGqp49DXvU,321
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/files/override.conf,sha256=QEmtYuNyDZivplOmmkXaS0LkrVIyc2K1Jttb8zep_uE,149
norboten/data/content/labs/automation/ollama-01-the-model-server-anyone-can-use/solution/solution.sh,sha256=WpSkK9teKUEMkMkJ0lRi2vBS_A5RHDwFSITu-REx5rQ,931
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/briefing.md,sha256=oFk6MkDC8gJkVg68esnvqmqMDw84ofPHQ_oXbmopFug,1484
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/hints.yaml,sha256=x1phl9t8TLfp3vDOUwJF9ostTf4pG6i5ADNoHiyK3ZA,2835
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/journal.md,sha256=UEPwms4__fn5B-i9vLURU-yuWzjqA8Ep6tuMr4-7eBQ,12451
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/lab.yaml,sha256=AU4W8b8Iae8XGbyRBmDRBo-skXDIY_Aar-VUoDWw5T4,784
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/theory.yaml,sha256=wsRUvt-nndEEH_UG4QSqumxm200GYGnFyQA7hiOxxHk,3958
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/break/01_the_support_bot.py,sha256=EGn5fygdVnejUu3CdkdNPr_DzW76zN1Lc_iscCyxQi4,2185
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/check/01_the_model_sees_all_its_rules.py,sha256=-ipWZ98cV23EbKcGHi1llklUCT2r_cLxGraSrR90NQk,2024
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/check/02_the_chat_app_keeps_the_whole_prompt.py,sha256=oQY3JTCHlIXP9eqs6BG1_hnEM9Zsm3JMd539OeGNndM,1407
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/check/03_answers_are_steady.py,sha256=VCNPqhIWqKqy6jW3YVRy5u7yk-s09Q9YM_Bd243-7FI,1194
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/check/04_the_modelfile_is_the_source.py,sha256=6Qd4RlRyBtNF9l5-Za32lUxuPCoiOdbXmY4stweQolc,2072
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/files/ask,sha256=_5Zf9bfrliYpIzr2jCzN5tM3tGLNWi1Bg-zRljSjhx4,1012
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/files/ollama.service,sha256=TJ5rCj9RgChdE87691aH6A_bCtMbDQwNKFGqp49DXvU,321
norboten/data/content/labs/automation/ollama-02-the-assistant-that-forgets-its-rules/solution/solution.sh,sha256=nj8da2JLs1HdEkpclC9GoprpRahu-E3OryDdYOEk0KI,504
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/briefing.md,sha256=3rYH-cQlXK720_ASuiX_xBtgS9KuXpgaxU4XPTs6VII,1147
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/hints.yaml,sha256=tBLwbmepFRPCshIXNDGl3m8i_RVMWMnTTPvg29BOSp0,2527
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/journal.md,sha256=kzrB0mH2WhGx7mv6mSkS4YhRA1BnrtJTFFM1L4Lp9UA,12630
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/lab.yaml,sha256=iijAayFTZ-2A60NoC5CSXjfzDrsNuCe70Mx9AwyRbPw,684
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/theory.yaml,sha256=BGFyyVIaPGiu1F9b0KJA0uOezp7lYffaWH2E1Dv3czQ,3972
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/break/01_the_tuning.py,sha256=VrF3VdNp_kxZ1Vj8Xluim_mozLzK53h9dIX80A0wnzk,696
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/check/01_a_question_gets_an_answer.py,sha256=RhOsEUJovIdnDyI84p_INkj2LpvSj_s507F-EsUE-Lw,2067
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/check/02_two_people_with_4096_tokens_each.py,sha256=dN8CjWXA_TtuCbH4fmLgZJRmkl2BSUJxgSaDMju8vL4,1343
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/check/03_a_memory_limit_with_room_to_work.py,sha256=ZdcXbaAjDO0XT1A4nSK2ERXsWuSXd3cABFJrFqjjDvw,1100
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/files/ollama.service,sha256=TJ5rCj9RgChdE87691aH6A_bCtMbDQwNKFGqp49DXvU,321
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/files/tuning.conf,sha256=T4i3UO1CwnWqdsx0Prf-RWDq_hHynXRPn9T-WDfoBVs,193
norboten/data/content/labs/automation/ollama-03-the-model-that-will-not-load/solution/solution.sh,sha256=l7UKZbYNFr08qo4y_D8uSdaO4frqJ0l1ZPvl8LR2gCM,635
norboten/data/content/labs/automation/py-01-works-on-my-machine/briefing.md,sha256=kxP04FWpgWLRhjJ-_K80fENNJ_-BhVTkPx3H2UdiO8E,888
norboten/data/content/labs/automation/py-01-works-on-my-machine/hints.yaml,sha256=nLD3V6HnIhNlDV0aCU4CZiCTP4XbG7xbBEwRvhgbXa4,2413
norboten/data/content/labs/automation/py-01-works-on-my-machine/journal.md,sha256=P-tJuLMimB7vHPdCIDsTyTYa-fus6G5mOEyXHj7ptUg,27291
norboten/data/content/labs/automation/py-01-works-on-my-machine/lab.yaml,sha256=K6qWit1Ue43xF9Ik_rs2jUIgPzz9e3g1bksxwebwAjs,691
norboten/data/content/labs/automation/py-01-works-on-my-machine/theory.yaml,sha256=tsJx-Qh9YiL6dZ1TsulFH00MXFQOdu_NQnupJHAgEtI,3288
norboten/data/content/labs/automation/py-01-works-on-my-machine/break/01_project.py,sha256=joITP8mw_uOd8os9afNe5D8Y7uuRicnvTrlPeZP4d-Q,1823
norboten/data/content/labs/automation/py-01-works-on-my-machine/check/01_timer_enabled.py,sha256=z4wHeiZQb7GoED7VOyM8Y4sMzt4TpMgdeb0ovAXeDu8,426
norboten/data/content/labs/automation/py-01-works-on-my-machine/check/02_job_succeeds_unattended.py,sha256=dYNNyjszeJHXtQlvMdKVnY6V24FyoHlX6E7OnXptU3U,1648
norboten/data/content/labs/automation/py-01-works-on-my-machine/check/03_runs_as_etl.py,sha256=4EyAjrc-CPGrgw0o7jd67q3fZu7_tc1r-P7goMO9-eQ,345
norboten/data/content/labs/automation/py-01-works-on-my-machine/check/04_token_protected.py,sha256=oSwSyThhce9FDqEWwSKi8N5VnJQJTlOaYI9WbTkSlg4,613
norboten/data/content/labs/automation/py-01-works-on-my-machine/files/etl-report.service,sha256=oFVjgTRU4vCHvXDFqEp-HzEav0d16NlWWAGNZEA2_3o,184
norboten/data/content/labs/automation/py-01-works-on-my-machine/files/etl-report.timer,sha256=5ZDJ682Wy-64-mjMJoaam15a5Ta5lZ6SbeSycEy6SOI,123
norboten/data/content/labs/automation/py-01-works-on-my-machine/files/metrics-api,sha256=cYJ3Dq4-u-mVTOKr5sGoBzBCBMF9tznatvjlXIYcZ-k,875
norboten/data/content/labs/automation/py-01-works-on-my-machine/files/metrics-api.service,sha256=2tNNwdCdvj7qJf3ryjQ0vK6XbHZd0fDQ-R16CYoNhRM,156
norboten/data/content/labs/automation/py-01-works-on-my-machine/files/report.py,sha256=eFKruWSFgCEl19Q4joBjWB98CXBIByFh0jIhjdYV-P8,801
norboten/data/content/labs/automation/py-01-works-on-my-machine/solution/solution.sh,sha256=TLGh_YED2uNlodfplLzUkpyHsLBQX16FlbJD9wixYnk,432
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/briefing.md,sha256=UgGzMyz_hEg0UngoYRJlDV0mru2RsLRg5pssG1Yj0P4,1310
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/hints.yaml,sha256=WGStgD4TBtZXSyYoK-jor1j8my5wDnc2yHDvG6uLdNk,2977
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/journal.md,sha256=5_7zazryTSOeIABtSlqPMBrio8_ZkGrX0-fFhckVP7c,24358
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/lab.yaml,sha256=GYUdK2kcnVJDTvxDkKom43-KfDlb-Nso1_iTu5HxgWY,736
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/theory.yaml,sha256=wZkBUU3BYKxp-BhSKk329usU1jEr2MC-wgfNwAPta8U,3611
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/break/01_deploy_script.py,sha256=SxH5VeO42lFjnJF5pibanBgOlZzEKtBDyzS5evq4TlI,994
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/check/01_good_release_goes_live.py,sha256=sdyGJ0mPAPgOqS2oGStcmlpqa8wm154Or1qlzDnbe2E,2008
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/check/02_bad_release_changes_nothing.py,sha256=2C3UIJiErJCFHS0NzfDkMhAmpTZCpUlzU0IsuF0FKXI,2218
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/check/03_no_argument_changes_nothing.py,sha256=aWJ1qCDRrAqzNWx20X_eoWkIbqYx9aq0vXNUsMtyL2w,1531
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/check/04_two_deploys_in_a_row.py,sha256=OJU_RpPKfw7ZvqqGDyOvz0D6_0-tomur_HlxmtRWfGA,2687
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/files/deploy-site,sha256=XiObot83As_HDKIUlUEBzEMAroqhjXEwBO4rkZNd5jg,329
norboten/data/content/labs/bash/bash-01-deploy-took-the-site-down/solution/solution.sh,sha256=PfizxMSiMSp_uO2y2EUznP6HZiWncaOW9edRv0LhG9U,939
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/briefing.md,sha256=oPdtFVtUFUi7bteu2QUREFtiFeXr8XwyAUzhIXUVcuc,1484
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/hints.yaml,sha256=VPxr49JzkltVLnJn05y_kJNyT3ds-aSDfZEMC-kUVOo,3250
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/journal.md,sha256=fz5MNuVatgxROqFKJzh3aahx88eiJIVtf5ZLXYBgxNA,21458
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/lab.yaml,sha256=MwSg_mDnyquYjhAF08iuC8RfK8KRpZdVduvssE4JPPI,768
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/theory.yaml,sha256=eTc9CUFBZUskcdlYUR2v_1kyLBygfll33OK9Wz6Cdlo,4027
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/break/01_prune_script.py,sha256=pfzNU8_Yhpo4knaQlq2euO-oat_BUVJQ_HNX7XV_KPM,1237
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/check/01_keeps_the_five_newest.py,sha256=LY2kOK-BUGU86ILolcxXlkzp_BetJsJqC6fHef4Clc4,1609
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/check/02_names_with_spaces.py,sha256=knf8e7-Xm1eO6TwFDvOr61gMAkk696vrYNX5cmW4rKQ,1270
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/check/03_missing_directory_deletes_nothing.py,sha256=E1iyBzFX-JaL2VR1XXZ0tYc4Vj4M9RBHQ7zrPdHBHAY,1182
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/check/04_runs_every_night.py,sha256=VnxFgAyJHVXyRbhpgpr8TyKR5iQQXn-dZ4io66HHiIo,1003
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/files/prune-releases,sha256=QfTh2rN3dIp5d8M5JEx2XDUgvuDKo0lsLUBQ75R5Hto,207
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/files/prune-releases.service,sha256=DVIW1pJ-SXD8DepPO8pt3GqPuvr7kiSH6apC4p_t7pQ,116
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/files/prune-releases.timer,sha256=NemGknm--fw64LORUt2U2FzU98I6Omc1d8pKEf7WTKc,148
norboten/data/content/labs/bash/bash-02-cleanup-deleted-the-wrong-releases/solution/solution.sh,sha256=vnoeEi0WhEI9AziG4E3Z5UVnnG6XnCH_jUSAZu1EZWg,1031
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/briefing.md,sha256=XXsMBvw5yeHJEMjKIij-YFhqZKElbRQlIGCRpgtR1-U,1219
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/hints.yaml,sha256=cNduo54eu7hDi5UPmOJ6xJYRlSwBZByi-vBqU0mXsAg,2880
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/journal.md,sha256=jxOpmXW1mxWkksGMzaDCa9XC3OHoZrruIZrM3Od2Mgs,11980
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/lab.yaml,sha256=NmZGt1cXfaQDKM6VUjWGXG4P03rcNlH2NJLfQDdoSik,710
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/theory.yaml,sha256=EVOmOyo7lde00OLgtdBR7GNRZ4nJfpVIRxbsNQcdxWc,3921
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/break/01_backup_job.py,sha256=N5Ulys0pKbEhW55r5FQAN--4v4ddztJChxbKd25azy4,1025
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/check/01_every_file_is_copied.py,sha256=ADqIcXVvWs7lkuTUS0JiG1ipD4w3-2MZdz9mVoBwbA4,2212
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/check/02_the_count_is_true.py,sha256=fWv-ghOETrltzKs1dJZcIec17dEc_4SxwJD_580pBOs,1521
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/check/03_a_failed_copy_is_reported.py,sha256=Tb2We77dd-syCGsoXdvzYI40eYK5KP5FJCKzwETEkus,1971
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/check/04_the_nightly_run_succeeds.py,sha256=U5s2wb3dfKidnemiZxOaMg6SmHFqzj48-g-a1uQdOAs,1828
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/files/backup-docs,sha256=KCJjSMWhjku0By_fz1LU0KynBcZZtm0TFq3AqkgD1II,392
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/files/backup-docs.service,sha256=xccgoywACRBwYsb-Zd2O4XdExGXLZIhnF_d9M6IdPfw,109
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/files/backup-docs.timer,sha256=gC17TAkmxR72LWhieTbMhI_Uy7lr5KAokhun2COVWKI,158
norboten/data/content/labs/bash/bash-03-backup-that-skips-files/solution/solution.sh,sha256=xAELoUTDFifwSLbaXT9Z9slC2L0YQjVgKHgRjUd8WfQ,900
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/briefing.md,sha256=7l7yG2AC4t82TC82v6DvjYRuqcz3JgpgsWAlYyDaCjw,1269
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/hints.yaml,sha256=bH1clcW-FKWHuHM3CwiMF5UbBqQ9SJ4UbVfaUThXjU4,3137
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/journal.md,sha256=3h5HrtymWZ2bF75CuYZdTp5yFXfQxUK2o5QWv_29EqQ,12060
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/lab.yaml,sha256=NeAEhK6FT_xW7AeXGOL6hKsFGTApI4_4Zw39wG6cIoY,751
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/theory.yaml,sha256=4d3nBLhWrjhU5RClla3CZ7WVmAzVVL-Ul1H1Oa-oqV8,3840
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/break/01_report_job.py,sha256=CHnMnOywmkaypbSW2P4dAsoK7YqGhKPRYJ-fbzx8YN4,1326
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/check/01_runs_with_an_empty_environment.py,sha256=sAAqHyclgp7vvl23YWvSTYOPUNvhnExGtMmzxFxlqrw,1384
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/check/02_runs_from_any_directory.py,sha256=aqodNr4AzBak277iH-K2Zkgcd-j7tHwXVO-AosSqtjw,1156
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/check/03_missing_config_fails_cleanly.py,sha256=-eykSzI8Z2wIauppyAur9hFTeGRfRev88JMMgRY46vw,1085
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/check/04_the_nightly_run_succeeds.py,sha256=kIf-m4GnS1mxuZid-jPZTpwbG4G0cz5-GSw0m_3k69o,1592
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/files/nightly-report,sha256=4Rk69IjoMiU_f5xgs2GmpzABgiS1i2l_-jrmmLTz8jU,324
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/files/nightly-report.service,sha256=YU8JEWynOT4ldx0zE0-DS6PjUor56qhWuNsLQcskipc,128
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/files/nightly-report.timer,sha256=QVowLG8tgbN338gik4uCA2LZapohB2AxjIlMgc2tQ-E,155
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/files/report-fmt,sha256=aN25NqpmwQmk77lHWJeFAX_efOV1EQXNfcc46Ccc0-A,116
norboten/data/content/labs/bash/bash-04-job-that-works-only-by-hand/solution/solution.sh,sha256=qiDKF1pbI8QJRKpR119wqqAGJn78i3O9dOMX4pEKJUE,876
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/briefing.md,sha256=fhfWBCjTmbYR5JBWAKH8vH3wBwYy0gV6v6-84qBbzkE,1461
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/hints.yaml,sha256=YaZ1qLUOYBAxrMc_XxrCZL85GtzXRxfEDrrxtXZt64w,2800
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/journal.md,sha256=dQhl42Ogv258q-1Ywoc0IZiCKqtNsgMHNyFbtVBj68o,13024
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/lab.yaml,sha256=DtX4a-V5mkN2AeMfUoUiOYW4iUFy62LyZSWE-D8fbws,861
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/theory.yaml,sha256=ZSrf-PfT5HZbUjdJtzL1rhnLyXJR1LwRJCBoQKTVnpE,4237
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/break/01_export_script.py,sha256=hOWF-XjJ2SprbNXhJEMi_EeTPAeY4TvUPkwE5f73boA,508
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/check/01_a_good_export_is_complete.py,sha256=CI3j8wa6J9mkfHvgzGSE4CzC7K7qzT-YHrzLWL7l2sI,1778
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/check/02_a_failed_export_leaves_nothing.py,sha256=cAPTkgQrbSJSKRgbjhYNNqcSnMdLkQbymwJC5u87nhk,1870
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/check/03_an_interrupted_export_leaves_nothing.py,sha256=kVcj68wR409QjM9GZO42DVBA4y6uQ8IIqKSayp00-ug,2979
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/check/04_two_exports_at_once.py,sha256=F6t87AsPVXlzC6e4vPwRGVZ2c1lV7cqwhBGQOPJl2Pc,2933
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/files/export-orders,sha256=x1QI1BDt14G6wfe_GmQe4E45X9HQjbRZo5aCNDO7MNk,364
norboten/data/content/labs/bash/bash-05-export-that-leaves-its-mess/solution/solution.sh,sha256=XOuH3HSZrFZRul8NL7PIBifULgGHfjfg3y2xMgZ2cI4,887
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/briefing.md,sha256=Q-j89ADfeRHfqA8XYHcJH61NBQxteVKRh-DeP0mv6Pw,1286
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/hints.yaml,sha256=JqxFrn2tl2AMDY3SUufdP5-ncs8IciA1gyP6MQjivWM,2811
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/journal.md,sha256=HlTPOn5Td36RD7ivIHFbbwpHgfNY-Ivzzo0r3QVkXtI,9879
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/lab.yaml,sha256=k0NhFq0AQU80y0HkCHWG9i2kUzmbrSr8TxZ0g7I9Qgc,861
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/theory.yaml,sha256=CuWrcUo0kLilwmQ80hX12nzQdGTltqeOtyZyiQRW56s,3855
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/break/01_report_script.py,sha256=ljJfgbYkcmY0prTHxwgSjlxVqtyDY6A8yn7aK_aS3zA,919
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/check/01_a_quiet_night_is_a_report.py,sha256=W694st6fNPm0_22fSaijtoLeST2YxouTfdZuzKHER5w,1112
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/check/02_counts_are_per_endpoint.py,sha256=9PAVLfFO7sw3cLzl6EN1ZZLVQbWec51k3KGFLowTzZw,1388
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/check/03_a_missing_log_is_an_error.py,sha256=pbysd988MggCYzOaCujELwpHbDf3eDlar9XepHDvoTc,777
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/check/04_the_nightly_run_succeeds.py,sha256=4bSmU9XkG1OlN-y5klAuUIyNfmRMMNrLa9ICnD9KIfo,1539
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/files/errors-report,sha256=UFQquzGubqCIxmmX2WyqzhKCIYGNahkSnSTyfVN2Peg,329
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/files/errors-report.service,sha256=lA12lrsI0_c2b3RRtp-JKvmGqhcX_JGOcmFy00djexI,135
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/files/errors-report.timer,sha256=dnwAJfSGRYs3Px35IsIx3FFmZ2wo_mLXjIRLnyqTjXE,159
norboten/data/content/labs/bash/bash-06-report-that-dies-on-a-quiet-night/solution/solution.sh,sha256=Z2ycmkvNdCeOMoflszbDxkE0Rq5NaUek_pNyprjvLDw,789
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/briefing.md,sha256=cKxb16rtdHMSylyDp8PDIlk4Ss7TpEWREOKFKtCf6rg,1362
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/hints.yaml,sha256=6zFWmBhEUL7kBCBoVIYeEoclte91nYdxRhxdD4-iggw,2998
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/journal.md,sha256=VOJO5rqunh4ppMEBG3ip4KCmMRroHb-4DU8utzorYcI,11977
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/lab.yaml,sha256=mfigM7bQ7iYBzvG9DKIXmck0KaS1SMhpKJSch_Xw_nc,732
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/theory.yaml,sha256=4dOTZlKSbyGoHhlMlGYpoybzynAF_zu9qfKxP3hp0HY,4056
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/break/01_render_config.py,sha256=fGww7TKPfDAUGb7SV7D1CfMNN0_DJQ_4WqhifldphFI,1058
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/check/01_any_password_survives.py,sha256=LXSA0mA_qsLEINX1xHJudRf7P2iXTTmPa2QRCzsOlh4,1335
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/check/02_the_config_stays_private.py,sha256=aHAoKjQpdRwiOs8O74heV92KbRhLAx1_23Qnp9QdtzA,1553
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/check/03_a_missing_value_fails.py,sha256=sn6_N-D1lRORyMwy_i-SVk4WET3FhBeqdtVrmqxBdR0,1350
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/check/04_the_service_logs_in.py,sha256=soZ4gnOdG8mdqGWRxiGxicgibZXjXbhOIeEk16wu-0E,641
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/files/app.conf.tmpl,sha256=5WR_IK6i2SH_7LEDM3xBMsmWrgcl0rcZywxrvnUCTAo,151
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/files/myapp-login,sha256=vmzurMobe2K0Bb4R6KegNO3Gd74hzrUbW8iPzPC23Rw,475
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/files/myapp.service,sha256=piuSG89ZpY_LW6HK6D34k9xYMd0cpIK96HajFJGYy1U,228
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/files/render-config,sha256=x4LodqH-vmf294IfCCHTpe2JcGmY9NSZY4-MRGI6vDg,357
norboten/data/content/labs/bash/bash-07-config-that-breaks-on-a-password/solution/solution.sh,sha256=ai0qA-F6IlG8C2nqY1hrRl0gu7YSYCYGDMkraDArLJA,956
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/briefing.md,sha256=jna1TCqyga14UMoc4FIgvJeqKA6zLmBxetk2UvPvP3I,1294
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/hints.yaml,sha256=4dUWCGambJMI5K1Ee9XOhneJWtITff7-RF4f1snFlv4,3800
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/journal.md,sha256=N7EEWKtGOIWqluxB0e0w9JR9I3teW3BtqypOfdIni-0,18657
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/lab.yaml,sha256=ujItnfE8vfTLMhm2rc015w6YF6VCcAgCyIZPJ-Dp2Lk,774
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/theory.yaml,sha256=7R6mkSHw-YiNJ8Jpqaht9vUVS5lj8w4rQbWNaJQ5tqc,4949
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/break/01_the_nightly_run.py,sha256=v-M6upqYZ_g2Lm0DepTXLfw-dhK8bcuFhLBk9a0pkUU,3171
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/check/01_the_drafts_are_back.py,sha256=O-99fHQwqzca0a_2dRkkHDgC8Z1zY_mKk7ZBldAqGo8,810
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/check/02_the_job_fixes_typos_and_deletes_nothing.py,sha256=_Z5nIpE6UtxjsmqVNkxIqrFEuhFJDw3FYdevz0Jb_og,3446
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/check/03_the_token_never_reaches_the_model.py,sha256=PoRtyoGH0IHoNjXcKfQyJf4ppLaRkEzE4BbLpmPAz4I,2275
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/check/04_permissions_are_not_bypassed.py,sha256=bzHI6F_CccdM1ATbR0QvE7owakHFh9LObu_tnT3h6fw,1476
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/files/model.json,sha256=gPxGBIxRyaQuWwUTD_YXiL96DpVSozarjIZSM9mPUa8,713
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/files/tidy-handbook,sha256=pdkK_eLY--vdHzcdP2NlXy-q7isyo4yU3luB-adFzBI,362
norboten/data/content/labs/claude/claude-01-the-bot-that-deleted-the-drafts/solution/solution.sh,sha256=UhsR0naGpVcdIX49hg1BcPURwTdNMZqTqFIMC1DnrjY,1011
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/briefing.md,sha256=JZqZfxtFWRnDMUHbLFl4MH-s6WhWV3x9WXHmdSoDL2o,1524
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/hints.yaml,sha256=iXrqY4CrMFn16W3vkbbZJatmNFkGg99u0jesfvx7Rd0,3246
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/journal.md,sha256=WfDcNqJtDuB4seSy2zawWrwHcOZSJPUnoR2ksvnjtng,17331
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/lab.yaml,sha256=WsCbYNUAxiay9HXKq1IFXGzrlG9jTrE_y4cdeHbn1Z4,773
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/theory.yaml,sha256=AKpKjiLSlyMM_XgBhWeZSkqHuWnI5E3Ql_kniALz6wI,4804
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/break/01_the_nightly_run.py,sha256=5wzU73MqssZ0KdTXMHJkch6hFxxzUOsCDolrBIC8mq0,3126
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/check/01_written_code_gets_tidied.py,sha256=zdUxBncATMSI4HYUH740IJJ8L24GnAqJQX7S7IqZbxg,1476
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/check/02_agents_cannot_push.py,sha256=OMS7ZQ7MgKzBe0ewpAES5VVN5PRt5_ENboOH-1lSGFs,1683
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/check/03_applied_migrations_are_protected.py,sha256=TDZYOcw4fpvKifR1BWKX-z49BRPpT_b6-yir9CHSqQw,2170
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/check/04_the_applied_migration_is_restored.py,sha256=0HbBmDRAAyxM4Wi6-aIdYpF2T7y67-OLahYaDT5Np58,1052
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/files/model.json,sha256=J9coRvoTPh2KM2wiZQiG9QXrZQthSlJNjPPFcxC7lKA,972
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/files/nightly-cleanup,sha256=IvmtDii_ZfMWoxg9FAS_NO5DJIMGW-xd_wacxVEIUb8,347
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/files/settings.json,sha256=Ru15k0-kJ54WGusbq5ol34F6iQFZvuNXsuqbKbvLWHY,545
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/files/hooks/no-push.sh,sha256=QmZrYJDm6Th2TPCVuMoz4OyiN1hYcSenm37d3_OieHU,343
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/files/hooks/protect-migrations.sh,sha256=hPm3xonRc3Zvpt31mE2lXUG3sHfkZOkt7_P6NlicZUU,384
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/files/hooks/tidy.sh,sha256=yMMU-DtdBvD_zBTsOBHVniVZxdYP8UnZD2Dx0M9JwgE,244
norboten/data/content/labs/claude/claude-02-the-hooks-that-never-fire/solution/solution.sh,sha256=AZA0EkAixHFoXW0gEAPaGUVAoRrPC22IJA_LHZt0hbk,1319
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/briefing.md,sha256=8HJU6gODRhV2FcqtDnjiOgQrW3jHmKaaiNGbcrAiF5w,1189
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/hints.yaml,sha256=i7mClbgwFXBx7cPnuGkGHs0R3qpVexpI0c_VLvJ7SuU,2248
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/journal.md,sha256=w8GpY-ss-6JGnD2wSa-1IeNDBrOjk_L9WkWD3dw8M2U,14298
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/lab.yaml,sha256=BkDJ2NJshpZvegG3-e9UjRZ3OuEKXbd3LAS3RsdG1Ps,646
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/theory.yaml,sha256=nk0Ojzx2qj-iDNs2i7Uu9eQpyfPevN0UjHRUgnJGf_Y,4351
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/break/01_the_payments_repository.py,sha256=amoyaLFvZ4ziBM3ySksOJg7jTp4wgCv9_EWwjlZOpFk,2179
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/check/01_the_review_runs_in_the_reviewer.py,sha256=jUTt6crLoledfSVGGPoCNoczcPLLEGWO4HH-XJ3Bb6Y,1555
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/check/02_the_reviewer_can_only_read.py,sha256=TzCNP_FaBYTfY_YGIY5_6VBD_9eVUfpn8bCABDWXv5E,1383
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/check/03_the_reviewer_runs_on_haiku.py,sha256=2-WupSH12uDiUpd5bdZ8eT4LyvsM8WyUGUAvzlZfnt0,1312
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/files/model.json,sha256=kTf4tmdujWUVb08_rQTVa-2iDJkW6NEzz6YtfvjTiGc,346
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/files/review-diff,sha256=UcQ9HsoW_FgpRpvQtP9m1ekgruIh59qFKmpXCgUE8iY,370
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/files/security-reviewer.md,sha256=TqeA89uH2JOX0BtV7L9qEP02sQBRLN5f_6d57q1zTYg,676
norboten/data/content/labs/claude/claude-03-the-reviewer-nobody-calls/solution/solution.sh,sha256=SCGZT3dq_yGAWMtxaGDdpyZB_zbvFl0qNxJsEgddGB0,451
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/briefing.md,sha256=eW6f3j0AovY26_ruMvbfcAFIjGytnytZ4Jc-xOs403Q,1334
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/hints.yaml,sha256=UgueG0fzQyu-nY0DmY-XN-hSV0CcZdqNrey1YDPitaE,3246
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/journal.md,sha256=2OfF0DKWbhHfB4yt66xwDtHELKG88VA5NWYRpV8tzkU,15202
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/lab.yaml,sha256=pgDdU03fkhoOkaGEFLuXtdEkQ2GXwOz9PG59AeYXMqU,734
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/theory.yaml,sha256=HabIypUA5Uq-IlDuIUCDCP44vtXvRbiiv0TmQ14Hj5I,4475
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/break/01_the_support_digest.py,sha256=iUel9M9k0RbhPpT-lIPtHO5cEzmDm1Ex-Y0sWryrh2I,2810
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/check/01_the_server_starts_for_the_job.py,sha256=IAzVopK-KFMBerd9f5NCiw8VB-5zlDHKo4I-fDoj_ug,810
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/check/02_the_job_may_call_the_tool.py,sha256=QvK94UMhRU8i4bKDFAd6yLM2AtwD7752rLGWA5tIjsc,982
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/check/03_the_tool_is_authorised.py,sha256=yc84uBarbX7f5l2CHvvv_v88HVzItWDwZlSBPInL-cc,920
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/check/04_no_token_in_the_repository.py,sha256=k6jhUDQQmoH9LTK2PiWawl0_ZJbT9ovFKn0KqdwqpCQ,1130
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/files/model.json,sha256=JLbfVakjZXNpu2z5D_DpvsRyI9QYYs3AMC7dOq7upVc,150
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/files/support-digest,sha256=YstXu39f9EP7sjQumKRbFQAmeroKq38C2JecC4ZiE9A,401
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/files/tickets_mcp.py,sha256=hVooQLlC4biH0hrEGaHHslSp2iVOzBOchbm4dq50xvA,2877
norboten/data/content/labs/claude/claude-04-the-mcp-server-that-never-connects/solution/solution.sh,sha256=5v1NrMAbRq0R3knG1KrfxjO4sPrAcdYhNjvwabwk0jk,837
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/briefing.md,sha256=y_QlBF2VQYu88G8vnwku_eonQOeYLBbQTnmJ5CRSmzU,1408
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/hints.yaml,sha256=lnIhwVt61lWBBG8IMTBoHUBops8ymxASBkMePJvH1e4,4095
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/journal.md,sha256=akDwjNUQa1L9K9EiQf-0nzhTNnlGNsdIqglYTYYXxtc,15162
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/lab.yaml,sha256=3uGGrZku4kfEOV5K0FALDqt5nerKz1n27tdNhQXzvGU,872
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/theory.yaml,sha256=ggxkiTrSXRNPPvCnCpHzcQGi_YNqfCNTbpdUFo_iepM,4522
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/break/01_the_site_repository.py,sha256=F2FXNzuA4p-aeKkc2YwYjf6Swo30gdfNZIN5yox2qlc,1221
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/check/01_only_new_issues_start_the_job.py,sha256=XUJdAK7F0Vl3MPZL4FRY9va6yc4Z73CuVR9BCmEopwY,1291
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/check/02_a_looping_model_is_stopped.py,sha256=_GsF8rzeLSyPNPoVgenmJTlesRY7TauyuF8iHKxXFRM,1928
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/check/03_haiku_with_no_tools.py,sha256=hExO6mPHwMUGeDAwKNqMnLf4Nzvfm0IpjVqbEN0oErg,1684
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/check/04_least_privilege_and_a_timeout.py,sha256=v-aoizTEKm9YQ_Pspu4zKk8csE15NVYgmjJTMKi4qjQ,1766
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/check/05_nothing_secret_or_untrusted_in_run_scripts.py,sha256=JxmZhZn9z46ESgMOzfWS4nTbqd0e6FDHHXwGwRhNDIk,1225
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/files/claude-triage.yml,sha256=HaEy0FKwS93-S3rh5wbqiJQERuaHRNSv-VVdc1hyBSs,814
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/files/model.json,sha256=ZMtkYU7O4TSP6rV5ou7Qm8dFo-J2Pck8kQxsL1dS8uc,130
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/files/sample-event.json,sha256=ZlRW_Dt3yuCX76lvhRTOm3OaTB9SLVAUx1r1CqKSdzk,214
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/files/triage.sh,sha256=5yKYOMe-euQ2IhYT5SlnLH5ori6AarI0iDSLdY4AkNw,483
norboten/data/content/labs/claude/claude-05-the-triage-job-that-spends/solution/solution.sh,sha256=CNfRn4Qt-fSfGe2GS1387jexRCikV9AcHRBssRSeJwc,1777
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/briefing.md,sha256=yFFr7g7p6NS_eA7uTw7hl6o7DayBe81Me34kyDYlbt0,1499
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/hints.yaml,sha256=AmsWe9uHCFuZ4vUrFIcvNTAWHvBsIUD6W5fRNXEHnEI,3123
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/journal.md,sha256=GuXXUSrYQxDt9t4Ztpa49xhTSCj-LoFnPEo7xmbVj0o,16238
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/lab.yaml,sha256=k6yOg3zLNEhpqnU5ymycvJja150cdCOrbvPtzAD2_-w,772
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/theory.yaml,sha256=2yK_OYSzwZuMaJ5B6RrkoFxrMepRI8ecZRD1TV1HlxM,4693
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/break/01_the_shared_machine.py,sha256=R42Ond5X7Tghj06bmoxTKVOM6iIvHztJvLFhMIY8amY,2386
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/check/01_the_machine_policy_holds_everywhere.py,sha256=H3bfZ8JDzHlapF30f39tzRXKDJ6nkp4y_wuj26vK5Sw,2438
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/check/02_the_team_model_is_used.py,sha256=GiMjXnSDH-JDK1NyxobUkrCuY-nLLT4_w-Dyf2n2kdQ,631
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/check/03_personal_settings_stay_out_of_git.py,sha256=mbJ9f2jbQq2dNyg7ke4UCLCkkMTonIbLMQZJtsBKVrc,1107
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/check/04_the_conventions_reach_the_model.py,sha256=9F67uRTsEGiYmKNBORDsa6VZCZYgZK7MDLuu9pP8Q34,900
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/files/model.json,sha256=OdGHxwUzcgIyWoIh8hiMs4Kz1XT5T3H361tTfAKdtNE,289
norboten/data/content/labs/claude/claude-06-the-settings-that-disagree/solution/solution.sh,sha256=4cwHYgWXS54SoD4LVEpbZ7ZSbSB9jxSfmgAYz-juUDY,920
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/briefing.md,sha256=0zPHCMctNDJ9yMt9f75O-vgEZX-94StUGeN0ShYhq_w,975
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/hints.yaml,sha256=RYxh1PARV8274Vcedi_7GCn_6qW8VIXRxSAdGb6AFIk,1644
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/journal.md,sha256=oVCa-QeU7wv_tvEU4YbAoQwuQ4bB-OuXzhAJoY5twrY,19441
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/lab.yaml,sha256=NVNPlsACTIB0l5pGJ-IKc5_R7mVMFBycYQ-15uekEwA,553
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/theory.yaml,sha256=HJBSsydISl7iFTORJ240TrkKSl2HadbGLqpHvWS51sM,3378
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/break/01_ephemeral_redis.py,sha256=mI1SfcQkDgYlLIXFrcK9HIA3LaWHJWuhyyYLIiv_L24,1088
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/check/01_jobs_survive.py,sha256=y6WTISV-njL-stFvFFC0QdWYKrPYUKaBHFLlBkdRcAs,1962
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/check/02_not_reachable_from_outside.py,sha256=OVmuJtWzCq9e546jksvckAoSE_xmCmLziqChyb2Lmic,1452
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/files/jobs-redis.service,sha256=vkb6C4908gePsMYWgNxPk1HIfF6dzqhpzlvdLgECphA,373
norboten/data/content/labs/docker/docker-01-queue-forgets-every-reboot/solution/solution.sh,sha256=pEqvtffdOdXF9u_26BzRy4X_fTy11_ITQcD14vWwfiA,674
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/briefing.md,sha256=9twiMri0-pTHneOQtoKZfhYPWbFL1mw8CVoohuWWwRE,960
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/hints.yaml,sha256=aKAhhvFm0NGCs_APQB2iyq31i025EzlsTWOn7SflIcw,2165
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/journal.md,sha256=oaHIwOwEnJv01Hxihvnaa6X2hgXTjQHuA1rNBUhjj1w,21150
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/lab.yaml,sha256=5mrj4AVq3cDxC8T61xPrAdYJ_2GerVnndtWqDoH0NBA,616
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/theory.yaml,sha256=n32OtNBvZG4P2u1zCOL1qFmLBuDbvcbkTgQNnD5GUWU,3388
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/break/01_compose_project.py,sha256=-Qkvn9vmZQ3lAc2i-f76iAdJa7mwGfiZLxyN3ANLHwU,441
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/check/01_api_through_the_front.py,sha256=gSMUz3sibaNolQNHRqV8xxcT2LH_D7x3bW0JZCYiZn0,1091
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/check/02_api_not_published.py,sha256=mjc7Zvz3-5NpPsXHNCT_cJoKL0XNMyRcNcnQ3eW50R8,1249
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/check/03_stack_back_after_boot.py,sha256=BupRY31sr06Sg27FcGuHdCSyWSPdg-_-xUpCG2XMzWk,2107
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/files/shop/compose.yaml,sha256=uUXOe9RrbUqr_bsPMvI2XUNeBIVH5oROgf0oZpi3lsE,453
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/files/shop/api/default.conf,sha256=YJ-TQPTzSmps4ywoXMKYtNA2ow3y1k0VLPo78RpjA-U,80
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/files/shop/api/status.json,sha256=GDS9vGDQxjDt1wcweEfLfHsHt-llRmHOA-E-fyKohkU,56
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/files/shop/web/default.conf,sha256=mpZ9ZiiZaJnuHnJgQ6JQ0EU8g_FW6uUZW5tAOLHezPA,156
norboten/data/content/labs/docker/docker-02-stack-cannot-find-its-api/solution/solution.sh,sha256=SxGhGiaVbaPCAmFp7SMTtx6wL93KqbCsI-FlIQULUZ8,712
norboten/data/content/labs/hello/briefing.md,sha256=XOcjHqMOifknZYzHWJ35q_XRAifugLvCtVLct2sG4HY,595
norboten/data/content/labs/hello/hints.yaml,sha256=APDaaNdgQUiyw55LXvmaAAD-T8rahtGM-OWpVxVfG-Q,1030
norboten/data/content/labs/hello/journal.md,sha256=AS9OeRgC2L14dV5yQBcp6XMwuj4JPiOa8o76hojDGgw,15147
norboten/data/content/labs/hello/lab.yaml,sha256=A4ZSw7bZKl6CNX5sCKyx8pisFxnV2HKYbnVNfxTQT5s,432
norboten/data/content/labs/hello/theory.yaml,sha256=gwTZNwESwmGnyWhCi-rTiypR4ZwSgH8azmhuKqQ5Ejg,2064
norboten/data/content/labs/hello/break/01_lock_message.py,sha256=RVITDqepwnHGYfh60kAv2GrJEip-GClPV6VCe7wT4_A,678
norboten/data/content/labs/hello/check/01_message_readable.py,sha256=8sQd9jWPCzcJ-rxy3tfKAyLk_kZUfTq5NbORCL-F1EA,473
norboten/data/content/labs/hello/check/02_reply_written.py,sha256=pHWSyKX-Pj1mQIFFQh26OLFAubol_V4sOELwEnDOGxw,450
norboten/data/content/labs/hello/solution/solution.sh,sha256=74iaZDnOz8kyd4C3QHSGao2CfzY8ZT1C9WplQtmwPRw,290
norboten/data/content/labs/linux/linux-01-disk-full/briefing.md,sha256=gBWh0isppHXiwUB05g6yd-BbcNTxkvIaEOn6hi-9z3g,733
norboten/data/content/labs/linux/linux-01-disk-full/hints.yaml,sha256=3brQLJMU64UHM36cfPITX6UsqUiRHxGoPaZzTQ6o-nE,2670
norboten/data/content/labs/linux/linux-01-disk-full/journal.md,sha256=2JxPgOGCp96C7trZFBqLJXDBIMlmAh9m8iiipl-_AMs,30714
norboten/data/content/labs/linux/linux-01-disk-full/lab.yaml,sha256=ytDjn8oOeNaPyWddx9vOD0obqB2-tMStJAK71USJBGc,892
norboten/data/content/labs/linux/linux-01-disk-full/theory.yaml,sha256=utvS0vq7ocRfA2SXxoFlLxFDxpzO52W1ErWUrakByOY,2226
norboten/data/content/labs/linux/linux-01-disk-full/break/01_log_filesystem.py,sha256=mNKHofo5AxMvKnGa-gfjFxSL33LlDuVO_Notla32TZc,663
norboten/data/content/labs/linux/linux-01-disk-full/break/02_ledger_service.py,sha256=VXww51YjzU9zzd9Bjq06bh9Je8WkEvpFXMEEF1ioJVU,724
norboten/data/content/labs/linux/linux-01-disk-full/break/03_fill_disk.py,sha256=xDosnJmycVIARJ95JHaisDf5yzJLusDT_Mr6HBVhjd8,903
norboten/data/content/labs/linux/linux-01-disk-full/check/01_log_disk_has_space.py,sha256=U062fs_GHoX6TqomGGpOIBDA-cyon6R-QPR-jNWJJJA,443
norboten/data/content/labs/linux/linux-01-disk-full/check/02_no_deleted_files_held_open.py,sha256=ibIj_IROCdAKZ_ydOySjbp6Is0LuyCv6uLU7bdPndoY,830
norboten/data/content/labs/linux/linux-01-disk-full/check/03_logrotate_covers_app.py,sha256=kBaSMpMFC8RhD10ueFt79A_jfnLJGCk31i4XTljwZVo,1542
norboten/data/content/labs/linux/linux-01-disk-full/check/04_ledger_still_running.py,sha256=4bGbLYFINuvBdgSbSaH6lQx6qnZNNMit4kui0WimI9Y,665
norboten/data/content/labs/linux/linux-01-disk-full/files/ledger,sha256=FSC8-SQmXfEW8YHl_f_1mCGT079jCtIBlMuf0DErYIc,502
norboten/data/content/labs/linux/linux-01-disk-full/files/ledger.openrc,sha256=W5MEnezRld9nGZtp8gMTyLUbtGSU6AeTmEUsSOIEbuk,196
norboten/data/content/labs/linux/linux-01-disk-full/files/ledger.service,sha256=kQRh7Dfto44-Jyk7BViEgAH08gLlHZ2h2eA_SpyUEjw,172
norboten/data/content/labs/linux/linux-01-disk-full/solution/solution.sh,sha256=He_w-s5dpxmOzjJSETDFlqhxs50SnNLTIgjYwl_1pys,377
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/briefing.md,sha256=nuFUzC9iI36x8rKKB9okR6r5JLv5DQ5H2wa21lFtOJs,839
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/hints.yaml,sha256=bPYfBRN08lcHX_9ZV4jUt4BqkQ91s9i_hO1AyPuQbbw,3119
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/journal.md,sha256=wHbhKRBMdhnYUwh9lE-d2KlrxnEY7gC9UFJt8p_jzjQ,30940
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/lab.yaml,sha256=hEHZ1cra1jUhFmMnGuCsxCiHrCGomNwrQXWjQNPyzzM,935
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/theory.yaml,sha256=n6m2dHV-ba4QnRBHRhmAmuEafeiSV5aXsVAnJc3mEwU,2777
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/break/01_notes_app.py,sha256=rhKPobraBB9Nof_BSy8IAVVFHSbgHfDV6hPsoFNvPU4,1212
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/break/02_legacy_holds_port.py,sha256=mlinY-M_p9zUtQxEmw1ekdJVfsKEE5JFt3a-dZkOMR0,565
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/break/03_apparmor_profile.py,sha256=5s9UzPmZUWrOxKBXg9I1llj7yG-S_6lQUa0Km2yMUbY,307
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/check/01_notes_active_and_enabled.py,sha256=w7GbrdUp9k55lfbBTSz50oQrS3XOkTTPhmRJCooqPik,426
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/check/02_notes_restarts_on_failure.py,sha256=k4_9a67DKJPs3b-92-zn0Y1-oNEnekZtLzLA2boAjh0,344
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/check/03_notes_serves_its_notes.py,sha256=WuNwv8pCH2Enn6_LAXj5iFWz2WqlfB-nL3nfb4nUgLw,799
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/check/04_data_access_confined.py,sha256=L7fJZQjfQm9GQYDrn95X0Y1fDhhzZduDFC0wnumAWus,761
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/check/05_profile_still_enforced.py,sha256=YfIDRUcbPegQsmelT8o864gr7XY9Fom4fAovWYrxjL8,580
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/files/notes-app,sha256=wlqjwZtr7iTKLXIqFuqKVYsU85QQW5mUKb0JO2RsVvc,1573
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/files/notes-legacy.service,sha256=_VZ44sVk6GaGny2Bm9o8nKBfVwuEhYtE84F1CTo6174,197
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/files/notes.service,sha256=rYflQsVXKVqLNGrAtPn7FVwd-cYI8Zskfsv6XaavMuY,158
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/files/usr.local.bin.notes-app,sha256=PuYSz0Rr56__ni_cn8MYZ9S4dqh8IXyZvt-mamggXpM,438
norboten/data/content/labs/linux/linux-02-service-wont-stay-up/solution/solution.sh,sha256=vL6t1MlnMHGRL9U7IHJxW6Dvmot-tLcH-GKCP0hy5Lo,651
norboten/data/content/labs/linux/linux-03-backup-script-lies/briefing.md,sha256=6nQ2kuxqyOLUhsRPrTN34KEKPxMod885x4ngSRvlGlA,1144
norboten/data/content/labs/linux/linux-03-backup-script-lies/hints.yaml,sha256=tupHrJZRswBdZOJzoC7JRbp2qucFQyPDvTwyD-NnwLA,2519
norboten/data/content/labs/linux/linux-03-backup-script-lies/journal.md,sha256=UV6F8FyhbSdTtmXBDgY1oXZdcnsw0S3hgbKz-g8sg1s,28005
norboten/data/content/labs/linux/linux-03-backup-script-lies/lab.yaml,sha256=9fkETMo8SCi1Ue1RQkhdWcWqXlKbm2I8cCM84S1yRCE,690
norboten/data/content/labs/linux/linux-03-backup-script-lies/theory.yaml,sha256=i5jqA8QGVwzoiayQT-OzrVl_h-mmL62Zfxcw4hynSQE,2110
norboten/data/content/labs/linux/linux-03-backup-script-lies/break/01_backup_script.py,sha256=L70HUsens6Vw7Zz6V1w3XQ6JQ8876aS_n7RZ-nRlYew,1173
norboten/data/content/labs/linux/linux-03-backup-script-lies/check/01_archives_names_with_spaces.py,sha256=KyMVNcJt-5qaSnFpy0aFlHPRXa3K3InQrdoAqL0jQCQ,1484
norboten/data/content/labs/linux/linux-03-backup-script-lies/check/02_fails_when_destination_unwritable.py,sha256=mCRGlrysBa6jMd0ovScpu1TmXZ9rQJsvtQiDLSfAwEQ,1221
norboten/data/content/labs/linux/linux-03-backup-script-lies/check/03_fails_when_source_missing.py,sha256=iqmghsK5_NbfZ6SD1p0H4t8afe6RIgqkxoaxa7SDGEw,1107
norboten/data/content/labs/linux/linux-03-backup-script-lies/check/04_cron_can_run_it.py,sha256=0B9TPQiSGhxHZPJ3LYl62a7076BNFZ9YS8f6RG5gzac,1746
norboten/data/content/labs/linux/linux-03-backup-script-lies/files/backup-data,sha256=4z7SdFHzpx6WkfM6EcCquvHLaAtPt8h3D3fOP2DJeQA,426
norboten/data/content/labs/linux/linux-03-backup-script-lies/solution/solution.sh,sha256=gcObQGAt1FwwWKIcroDVD2arA2hXHHE3k16RbxLJLK8,893
norboten/data/content/labs/linux/linux-04-write-the-report/briefing.md,sha256=V-rbuRJcbf2LH0mxNciYFkv1p76zOY6VHJGUZCVlFTI,1182
norboten/data/content/labs/linux/linux-04-write-the-report/hints.yaml,sha256=V-naxyv5VPT7MzLWVv37nhyYgDgQPH45lV_oAlXHKJs,3245
norboten/data/content/labs/linux/linux-04-write-the-report/journal.md,sha256=df6cU3VDs_kojrH1TYh6U6OVJob8A42IlI0NAIuG5W0,27747
norboten/data/content/labs/linux/linux-04-write-the-report/lab.yaml,sha256=6KcnveclG13M_nuMo3mmMgWALJyB778mMGKRChE1Q68,755
norboten/data/content/labs/linux/linux-04-write-the-report/theory.yaml,sha256=NvBtybQBsj-4haCU5bzpjfobP-KEUcu7B09la2lsbNM,1980
norboten/data/content/labs/linux/linux-04-write-the-report/break/01_sample_log.py,sha256=V_LpuIjhTRp1RgjZHDJPp4EaPFLUSIqJwy2m-xWf1WI,696
norboten/data/content/labs/linux/linux-04-write-the-report/check/01_top_five_by_default.py,sha256=Nzue4BN-llD3WORLxm1qoHDMvpfHeBrVDBLNpsH2x3U,1395
norboten/data/content/labs/linux/linux-04-write-the-report/check/02_count_option_and_ties.py,sha256=Hr27zDxH1L3jiJj7uTuXbIA75-dSin4FNjDqzGLtU7g,1391
norboten/data/content/labs/linux/linux-04-write-the-report/check/03_skips_comments_and_blanks.py,sha256=ZHU3Bhyg3aXuDqfpwd0mjsjVGgjY25xrjDyxSyPUL5I,954
norboten/data/content/labs/linux/linux-04-write-the-report/check/04_rejects_bad_counts.py,sha256=CkbWFK03bxZ7WPrr_1rmemFqPIzYwSVRmw7gn880NkI,869
norboten/data/content/labs/linux/linux-04-write-the-report/check/05_missing_file_and_empty_input.py,sha256=5KYfCzZQfjQNzRSCM2n4CUKfkp04CgOaPZz67HxleMM,1022
norboten/data/content/labs/linux/linux-04-write-the-report/check/06_pure_bash.py,sha256=Aj11ZdEd8xNOccRiwfKZ560ACq6-GhPPI_n3-mrEj_s,665
norboten/data/content/labs/linux/linux-04-write-the-report/solution/solution.sh,sha256=EydpgeYyAoOO1m2gaLE4kAs2WAJ6yj8eVwVM2jmJrRQ,840
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/briefing.md,sha256=CGBTLp4IEcNJHra1RZk7wAeXz7WW-f8NC3YN1QfvYPs,1150
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/hints.yaml,sha256=O6q_IQ5dtnrhoRd5xAOdRHylE7ZKABc-2cDWJew1q14,2990
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/journal.md,sha256=VqB0fCCv20n7AiBUarFEM9lpN8dkUWo8InPn819wHAI,17993
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/lab.yaml,sha256=slQ1m0rLs2XA6gk8J9W5L4Hw2gMApsryWK15lPJ9f64,802
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/theory.yaml,sha256=9MJWpdQA9KP34fyAxGWtHmgU2Bwnuq1m1joGk0DGO1o,3305
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/break/01_the_team_folder.py,sha256=fTkG8tKDPeVV7GpiWVNNmOgpAf-qz1mAgHi4vhbhoZc,1524
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/check/01_the_whole_team_is_in_the_group.py,sha256=q3FyGQGZ5IQ6sxnOcYTmbDoZi1ojJa9zkqGm8qyMOrw,603
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/check/02_the_team_can_edit_every_file.py,sha256=_NYK6ossmrHRer48vaL2SjgIDjeMTbIZyYq8hD-PKyM,1442
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/check/03_new_files_stay_shared.py,sha256=GmC-h-YXVtz1gBvvFKNzP844j_mCjgpjQTJnB1lJCS8,2223
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/check/04_outsiders_cannot_read.py,sha256=yRpmNFItvwPM5whgoxFy0AbrCHKFqS9h-d_oXWhO6M0,1242
norboten/data/content/labs/linux/linux-05-shared-folder-locks-people-out/solution/solution.sh,sha256=DxveqXAonegssWbHNS8SnK3DqT7EMHjv6eJXYZxkZdo,453
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/briefing.md,sha256=qdFRi4xFCb1qVMeMTXIE78wf-4kClxpVaPdwmcpGWwI,1281
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/hints.yaml,sha256=46UBLa9tXY7aawIEtnRan9IW9xB1mRFGbyyQKz77ueg,3345
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/journal.md,sha256=mFec-e4Z7-GlQgRfQHzmVW3QxZR9guwVlB58BwDZzcM,18503
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/lab.yaml,sha256=L3Xyx9HXSBnDKcsx6mPrykS7PJzHW2GPIVDX1ZTEx-M,803
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/theory.yaml,sha256=CDy_VEqat9eS89eBzoPmEzED9hMBaeX7rhXA5xWKfqg,3352
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/break/01_the_shop_log.py,sha256=GnCuYsIovNhemqzHt32B3QQabUSmLDEjGX3o0iZcv7I,1235
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/check/01_the_config_is_not_ignored.py,sha256=eUEKCuS4Gdy7bgDJFqre03pSTzNxaNjBW4miAPMjagQ,822
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/check/02_rotation_is_allowed_there.py,sha256=oqYWfKDLgWlRepUQsUuoV5oAM7cV2sIldmYPIqphSpg,2357
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/check/03_the_app_writes_after_rotation.py,sha256=Ia6V5nk-WHEpha1R2JEedzk2NPf5uMuB73_6Yk4cCtU,2460
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/check/04_a_week_of_compressed_history.py,sha256=YvQoB41QCiHsR6ZsgfeiYAauBxN-9In0i7whmhU_u5Y,2403
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/check/05_the_big_log_is_rotated.py,sha256=4h3DxWpp3R4KXV8ajwtxKpt_u0ULzR2SJNP1dlliXOQ,706
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/files/shop-log,sha256=e838XDKhEBkWcnFSw4BXD65Va1SFTIJb9TIxdrhexK8,224
norboten/data/content/labs/linux/linux-06-log-that-never-rotates/solution/solution.sh,sha256=07BmJvR2-AYJn1_uRPV4fx_eS9WC91YcKXEZrnelaY4,425
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/briefing.md,sha256=Lu1J4zdZF44Lqju88ZTc4cMLlsjsIm-IJqHEGzcVjVE,1218
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/hints.yaml,sha256=5R_EmkLtWj3RFF1KiESOke8-ip-tXYcZhRAh703iLDc,3151
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/journal.md,sha256=9C6Mndr2LbroOvZXvXuXofERohp2a7Nlw-sX90UH9xM,10314
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/lab.yaml,sha256=pS27L9ykWjvxQNCYODRRqEZLfgLtBJcScY2KXVKy7oU,688
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/theory.yaml,sha256=PhsRKrn_vQgWJJfcD1fTq18GCZxi66TApfC3LO8MW04,5067
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/break/01_the_notes_server.py,sha256=4zjov5byEUTP3w6DWNwYce_yrvGfknpI8Q9nlYr7ZLY,2585
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/check/01_the_notes_are_read_only.py,sha256=EBqy9CFgcQTOxMi4WPE5MP2fFj7A7LJKxPApjMI_WCg,1817
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/check/02_nothing_outside_the_notes.py,sha256=erdEqrJI6HUTDFApBHvh_XWWHKaipl20wJIzT8Xfxd8,1289
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/check/03_links_do_not_lead_out.py,sha256=FETZkjkG1_Jv4L7vaouXTKqp7ZD2YN-rHsFzjFokwaQ,1258
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/check/04_hidden_files_stay_hidden.py,sha256=U0PtpjydVXb08n0L50DE1clJc9naPRTL-4EYAbKMDiI,1301
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/files/ask-notes,sha256=Fp-UqkwFWIRYUjXvpdb0pEtVer7HwyknPbT--4TSF9s,366
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/files/files_mcp.py,sha256=8IoPYHz57KQ6uTzuvla-d0O06kcGVnxGzAnERKNyTKg,5565
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/files/model.json,sha256=l6qfOuR3jIauCzlxldywMsgCTAL0F6ZBsDtRx0kGJ_0,263
norboten/data/content/labs/mcp/mcp-01-the-file-server-that-shows-everything/solution/solution.sh,sha256=R2rvUB-ZDCmb6vqeGZ8RvWIYEyF2-Ls6ZkXsKsUGq1Y,285
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/briefing.md,sha256=jHF1srmL1sVBM_qaOpaamEADTtr_oyz2FfrrlT8cobw,1323
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/hints.yaml,sha256=ShRRSnCLmp5_ECAkxhRK1y0CdCJy0f08XZMJBd1J5C8,3006
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/journal.md,sha256=0WTtobGUSuKrt4untABmSQy9xoIyMEVeKfiU7XXG6RM,8781
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/lab.yaml,sha256=EOp9z8vNpSUzkgU8IDGumLSOoKqLgeb2BUduErxZ9fg,662
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/theory.yaml,sha256=24kG9P3WBirCzcCvo7ZREjr-LZTJ-YG7USGu4R6LcX4,4490
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/break/01_the_release_notes_job.py,sha256=dx1apFJJdkMkmtUXvLmJvsFDHZfmy4BnjGrsy0VIP_o,2372
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/check/01_only_the_docs_site.py,sha256=0-SUlvJFZX2rsim-pyGWYbWIMn_wx9LNnY1S-RhAVlg,1440
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/check/02_a_page_cannot_run_commands.py,sha256=9nsBXAfpEjbOuPIt1tieKIiw9OAOtaq-X9DMB8yBMVk,1821
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/check/03_hidden_text_is_removed.py,sha256=X0AH2UxZGaD-KWQ5Yk1KNR_dY8zu2fZJbJRq_jF08Vk,1278
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/check/04_results_are_marked_as_data.py,sha256=yFDhqtxstU_VOC7ug1ii-N3tpUlgZR-goTY7I5xagrs,839
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/files/model.json,sha256=_c3vjngVY73E03mf_WmLnX5IOVJyNaCjfx5TK0k6mLg,276
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/files/release-notes,sha256=NAaXdwoWcMbB6Sju2Jm-4428Lg2nArp8z_GQ76gpcL0,351
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/files/web_mcp.py,sha256=3PK6iYkHwZY79xycCWXDz38vRFefa8Y2qsROmpLyPzs,4696
norboten/data/content/labs/mcp/mcp-02-the-page-that-gave-orders/solution/solution.sh,sha256=8fFS5wBMD_GmC4ZDGzPqpWNASGqgnh6Kh8oDgppczFU,524
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/briefing.md,sha256=R-a3QWgxpnD0LC1xS-LIhMlry0oADCSC6g19_1fXFTI,1240
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/hints.yaml,sha256=RCzbHuvj04linFnFLcYuVBzzRG6BXmpslX3yq461r90,2263
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/journal.md,sha256=SWAeAitpOaVojvUhgM_yyejkTka80kK5BZmLuMV7Qyg,8715
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/lab.yaml,sha256=V4h2o9FmZcCjf2kdVcDTlZWyhDMOaJhnrrOdtaieapw,600
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/theory.yaml,sha256=izFGed-KU3sA7AO4I9kCKNMLHY95ovlsVXyEowqanHc,3784
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/break/01_the_inventory_server.py,sha256=NfalLI-Te4nh05xfZEOvZWsX27U_lARdOd2uqisXSmA,2748
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/check/01_a_token_for_another_service_is_refused.py,sha256=h02EvmagAxHaiGmeLydMqauCRkr0AitG088Pv4cxnbg,1640
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/check/02_an_expired_token_is_refused.py,sha256=SPS-aIVDZ7WinUeyU2mqZD8TubTtd4tuwHiLcwRVQTc,1493
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/check/03_the_job_uses_its_own_token.py,sha256=S2caxapftkw7re7kiy4Ibuc9OGRzwP3M4G-e2uTuGfY,1475
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/files/inventory-mcp,sha256=C7UGMGkJN7qZFCmCgq1_-e-qqUGD0NSaQ-XxH46Qmq4,965
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/files/inventory-report,sha256=75oYysiDj7etndhnGht9Wfnhz7_yY5tkgECn2aEqJ8w,427
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/files/inventory_mcp.py,sha256=zeEqu8F-lAibS4YFl3g8OeK2NrNrkbl2UX5x1cbE20A,5931
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/files/lab-idp,sha256=rLOvBoRTos3pVNM54v-R0X-0JMmJvFeppkDYjOj9jhg,2460
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/files/model.json,sha256=EhLfYfeGjDF3TYpQCc201zMBKul0aANtanO2-AgraN4,122
norboten/data/content/labs/mcp/mcp-03-the-token-for-someone-else/solution/solution.sh,sha256=nv7wZy5uTGuJDH-8BMFZA71xk9FXTF3VyMOlO9Ekds0,650
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/briefing.md,sha256=DWnE74_8J7AC2JIAN_dk_yDi1UkqHCnRLZqoVJzd7oQ,1033
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/hints.yaml,sha256=PwMGBeA9gLnShRxDBwSoJsZR9-0m-tHaldfNgEKPTlA,2192
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/journal.md,sha256=dbR94XP3huDsE8cG76nUhJ3azn0xnZjDysOpHKBSnz8,8376
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/lab.yaml,sha256=DlGzfVZ3TdcV1yUsw7lErlStk4Qua3NgNHBvMIe-VOQ,604
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/theory.yaml,sha256=1rnPPaUG14QEKeKQF9v6-C9HNYZUyMsYk2L6B0mYj7w,3423
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/break/01_the_metrics_server.py,sha256=WL4n3mDg2sFsoMZnnVwrdF3kGBGcuhFe8zgxKpAirZs,1394
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/check/01_the_server_connects.py,sha256=AvSwSaMy44Y5a9NilL1DVKTwC-BEjZXjR7xvvBmxE9E,858
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/check/02_stdout_carries_only_the_protocol.py,sha256=LQKpxYfDrIXdEdNUa0fRnCPjY2xEd32FNLCQub69Das,1214
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/check/03_the_log_is_still_written.py,sha256=87uI3EGNoAYZQ7nBhikoRQo9jmSGrYidArXPUGraa3k,892
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/files/health-check,sha256=7EAYdwNf-EokIqihHIbrUmbsE_8gkHTYstmaELpHAM4,345
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/files/metrics-mcp,sha256=Bxs5_5yWlitSymLHpvqBu5hzjRxcjOq-h0wOb25lKG0,179
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/files/metrics_mcp.py,sha256=2IjWg1JlxzksHO2LfjUb1hRGcSt3tExVXXhlmtk7k4w,3119
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/files/model.json,sha256=ZaVmVzcJnjBVTIQv5vQL1M6uFPPe0-KAuSZbr3ceqs4,111
norboten/data/content/labs/mcp/mcp-04-the-server-that-talks-too-much/solution/solution.sh,sha256=5qm92NeVbTZzEdRXYuOEQQwiEeMHA-XgzgWHUJmbj74,304
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/briefing.md,sha256=0AkcTay8Rq6kLl1fuVaAOGWFBe7Uu-u-jYYERcIhppE,1172
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/hints.yaml,sha256=8Bwbv290HJHfDVPEYsTZS0hPKvhn_xnXxR9Qtm0gKv0,2295
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/journal.md,sha256=bUSxt01ZfTyXEbrc_UmptagEaYDOc2F0FNC4meHrhWA,8918
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/lab.yaml,sha256=aTKLne5U_iB-xbeV-2ykWDwXQOdYb7w-V57DSL90ta8,620
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/theory.yaml,sha256=BGZjGiM2wxI78UVOMhFetjer-vuazFAN0uv7QKKHJdQ,2902
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/break/01_the_reports_proxy.py,sha256=MqoPJOFQnIEIU0usELkZBN5KfC08Mw9PJHGf4Fg84h4,1916
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/check/01_the_report_arrives.py,sha256=287big8zaIyCe0DsrSPB7qpiNoJrSWWhlbGNhTTlGug,866
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/check/02_progress_streams_through_the_proxy.py,sha256=azLreWSBZpLDAmRzMIrxtb_VUUh6yPf7HAnPbjH6Y2Q,2131
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/check/03_the_server_answers_only_the_proxy.py,sha256=XNDHwtIZLhNPcnmkZWTJ_FVZ4LSqPnUJbg5vv2H8VBI,985
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/files/model.json,sha256=EyFh7ke2plZLgxqWF_0qKHjMm2zt0tySoeJhL7BSSWg,127
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/files/proxy-restart,sha256=maqzTDdT3jleL7FN8ljW6oh4jNHG3ilrTZeSIxtZA9w,327
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/files/reports-mcp,sha256=bLgvcZiq8RlEWWgS8pUuReUoKN33S8Hoo6NW-ZSSraU,947
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/files/reports.conf,sha256=LiZr3IZW4WApa8Dewzz2Fi5tsq4CekfgWmPUckQAiqY,399
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/files/reports_mcp.py,sha256=fS2kgdLf0WSHQzUMtiNnKMrwY_BbgOc0dtHkdIjjkNw,4646
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/files/weekly-report,sha256=1gYvEjiw7HDP0grgYDwNTWLy3iUBAozcdXschTYgrXs,485
norboten/data/content/labs/mcp/mcp-05-the-stream-that-stops/solution/solution.sh,sha256=7NGD9Y-vOFR5znKydMk3_25dH5GzmohyP85BlBOAZjc,699
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/briefing.md,sha256=2QsfUDclaBdkI9tclyzroAtNFrgTtoxzIIMdj63lbys,1148
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/hints.yaml,sha256=DjUWmt0ShLVbbc51026eribxPFhP_oXdruo0LiC6uXI,2199
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/journal.md,sha256=bUyrTMFiGfzisD7sZPO5lpGvrG6LGq-U1LzTCR7vL1M,8794
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/lab.yaml,sha256=Qf7LpaitgBReoJF7AqObkXeiFwXQYsWq94fH79GrJ-Y,637
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/theory.yaml,sha256=KdaoTa1wK1IPrZhGpD_zZj7hqmSGOB6Cp8_vXbRErYo,2676
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/break/01_the_handbook_bot.py,sha256=ll6GiTTVg_3P8l7obzhcz07gjvXDTe8IXf0AbC0iZxU,3312
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/check/01_answers_come_from_the_current_edition.py,sha256=n-akR0nT9DkZtVg9ftuhpIrGuR6qjO6E36J77oXFOZY,786
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/check/02_one_docs_server_defined.py,sha256=DTZxFEi25MP07jSicG7WUSfqUH0Ny0wNKlYMX1WGdEU,936
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/check/03_the_key_is_not_in_the_repository.py,sha256=gk5dId27K4PguVzVXc7-W4nyG4R6POvItzqGfN-Bgts,958
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/files/ask-handbook,sha256=1RCfLhxzW0OuFuy8-XUBM-Cu6HP1wsMg6h9z-yWrHRw,416
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/files/docs_mcp.py,sha256=8trAKYESM8ohNinhMCbyA5HnT18LVn953tBWAvzESzc,3087
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/files/model.json,sha256=xlZyAy13XsoOmCwogdc9THdx2erQ7tQQZqolo0S3qgA,174
norboten/data/content/labs/mcp/mcp-06-the-answers-from-last-year/solution/solution.sh,sha256=P84PLIHr6ybdHYcRQWViIIvsEWxTEZQbR3tGCq1fpx4,753
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/briefing.md,sha256=m-Lp-5hVLcwCEm1nnerPDiZWxKkpREYcXOET856vGY8,1287
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/hints.yaml,sha256=QLi-IzaV4fXmvCDg50Ws9mY49BxFhuXYba8aNoGwdr8,3163
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/journal.md,sha256=4E8AUf2Acgj0kgoszvvZS_5H4eNRj9ZA1KXpTSehbxY,23970
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/lab.yaml,sha256=IIaOC8jAeDVVkadGHbkV61g61tc5EenbX-BPojM1wmw,759
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/theory.yaml,sha256=APZgMn4kfp_ViuQR8nq074p5ApKSq4zSYgSvii1vXGU,5070
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/break/01_sync_job.py,sha256=SD3MAx9rxUWAjrb_53OIoAedc6kD0PaJ9ZeuAWRNfic,997
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/check/01_api_error_is_a_failure.py,sha256=EC3SmHAwR1tIN5kZEvGtXL3KNz3q5fmc7vfgKA3Qg6w,1331
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/check/02_stalled_api_times_out.py,sha256=69dIOU90kOr8CmrjSrKsvRp37dZIjebqb6mbW9TyXD4,1504
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/check/03_good_run_replaces_the_file.py,sha256=-LfmZiGvFokNFpv6OUCFpVh8Z-OjnuoK2CE-KOVTeRc,2306
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/check/04_timer_run_succeeds.py,sha256=OrdLLC8M5vfbo9DdQOa0_sQy8a-mzvP3bE-IhcJDUO8,1714
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/files/records-api,sha256=rqmY6lMa4OQiH8a3bP-OV76MIaYC_xuW5nRtzEcUV-A,839
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/files/records-api.service,sha256=pX69SMz69U3GgLGZkpHR5bhO1S8qSOv5SzrBHDQcs6w,179
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/files/sync.py,sha256=ysbcrSE8Zf-5zhhObR0x_oeVyWIboq85rYobSiagoWc,642
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/files/sync.service,sha256=nUCzcW28DwkfCEEt-jd4Aym0dNyhk9vX0-6x2aKCASw,191
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/files/sync.timer,sha256=5wK1f1Xe3qIModFoJVRgekUxYUhE0NTu_zN_NppuzEQ,139
norboten/data/content/labs/python/python-01-sync-that-says-it-worked/solution/solution.sh,sha256=IWa3avFI5YdWeZcn8zhbJt94kB6JLEZB0IjX9kWzS3o,1629
norboten/data/content/labs/python/python-02-tool-only-root-can-run/briefing.md,sha256=B26E0EQlTuK54RAZaNxuR1VKB4bu-7b21BlQh6mHkLM,1290
norboten/data/content/labs/python/python-02-tool-only-root-can-run/hints.yaml,sha256=vRYiWs0IsZv__uEiK_QaUaz69RTBXao1dWCACEG9vT0,2526
norboten/data/content/labs/python/python-02-tool-only-root-can-run/journal.md,sha256=TRC9McrQCNjmA9l4VLYToaSYZOBx7yDLB--hymzpY_k,19945
norboten/data/content/labs/python/python-02-tool-only-root-can-run/lab.yaml,sha256=cvCdb2WIMwrJDBXmKIMzYgOSoNmnJW7sWFNkiVkd0WU,654
norboten/data/content/labs/python/python-02-tool-only-root-can-run/theory.yaml,sha256=0JRQ2SJ1G9naOaycg0srNsuEk-ZZomGPOmq1W3TzAGE,5354
norboten/data/content/labs/python/python-02-tool-only-root-can-run/break/01_editable_root_install.py,sha256=FH3_jpmP5NdUToz9IBE-jGI80mI_vu4Me7-pn_DwlvY,923
norboten/data/content/labs/python/python-02-tool-only-root-can-run/check/01_every_user_can_run_it.py,sha256=1g_DBL5Bjdiw5WueGOKnc6NK3DREWi36jUGDHVDDnWQ,705
norboten/data/content/labs/python/python-02-tool-only-root-can-run/check/02_checks_targets_as_a_user.py,sha256=AhIC7xuTthiqt7QxHUycfdtMlJc_1bha02frBavaZYk,785
norboten/data/content/labs/python/python-02-tool-only-root-can-run/check/03_installed_copy_stands_alone.py,sha256=zkc1K2KMr7CHaBu30gUPpiFLdsqkj9qJU6WayIUDskg,968
norboten/data/content/labs/python/python-02-tool-only-root-can-run/files/netprobe/pyproject.toml,sha256=n0bjvFDRIH28OrlNpYHNE_Na_1Lnm8YtWtbwnHtcb74,361
norboten/data/content/labs/python/python-02-tool-only-root-can-run/files/netprobe/src/netprobe/__init__.py,sha256=hZDnFsGGhFF64aV1daQML0fi-SFIdq513w3yGKck27w,77
norboten/data/content/labs/python/python-02-tool-only-root-can-run/files/netprobe/src/netprobe/cli.py,sha256=1Ny9LQnLDFAca7hZkBUldaXFMH_1jYY7mKDKSgLOYbQ,1117
norboten/data/content/labs/python/python-02-tool-only-root-can-run/solution/solution.sh,sha256=amI5m-LElBzYVOc3XDtXhd5zBx88GwExhOVCSwHQhNA,367
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/briefing.md,sha256=FnrYqcsmU4S-gOUDNXeUrC2GAqIfFragpJIzxfEFvgs,1322
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/hints.yaml,sha256=EXILFKsCplR6cRJvQzYlEJw_DN4fNGrJaMPqKbiDKF4,2860
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/journal.md,sha256=md1d9rsJ5KfFi5fyYQQC0w55T_doo0C_clgC4ehjNsM,12218
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/lab.yaml,sha256=YO9lIsaQWEAKpFrhhnpWO3x4y3cRl9Rvnj7V7lYajd4,745
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/theory.yaml,sha256=XCAccvYOanzy9lqrhMjmOE0hR14IyzFomozUew-vrHc,4086
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/break/01_members_export.py,sha256=SJ2dYrnYcV9rEmiZO8-TZkrV8-0FCqx_JIR-w78XN6w,1224
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/check/01_the_old_export_is_read.py,sha256=Cfl6C8zLDh2V-mx1FN-YKGTfL-lDAQej_edNY9Ok2sk,1572
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/check/02_every_name_survives.py,sha256=oTJAtTdKL5pgtlLAo9nPy_yL-jIbXFZoLV-pdnpwaYI,1691
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/check/03_the_output_is_utf8.py,sha256=wZuRemxICoy_PXtzkhva75w9kaX4ZUg7JSmw6hAq7Rs,1592
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/check/04_the_nightly_run_succeeds.py,sha256=NPCxtV8bRdEEo4K0rMp8Z-YNIcNbSHMRcVwJyrwBhgw,1811
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/files/members-report.service,sha256=yhHeRnpyX_PtU_A82ki0mQZn10ejwXx3fM8p9uVEjA0,137
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/files/members-report.timer,sha256=VjDXVq_5oqkm4XFVgMbOOQCO0JbRhD816bvBNxYmgiE,158
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/files/report.py,sha256=A-vw8hD_972YvhpBPW6BevSDSATSSxiEq5v3_5j-2To,995
norboten/data/content/labs/python/python-03-report-that-crashes-on-one-name/solution/solution.sh,sha256=74-49dBgUlwSabw5GBzPKLsxtQVaUfOB48A7TZZ46Qo,1774
norboten/data/content/labs/python/python-04-worker-that-goes-silent/briefing.md,sha256=M5Ff9nwRNpXu5HsMbYoe7p9uxgAoXeSxVBQXhCGAffk,1301
norboten/data/content/labs/python/python-04-worker-that-goes-silent/hints.yaml,sha256=Oa0SfTOcEV229zStzQiAdfbM8nAIodj4iesE9aPGZn8,2852
norboten/data/content/labs/python/python-04-worker-that-goes-silent/journal.md,sha256=MjFin8ayzEwlX6nocg4iSLn1797Xur7VC495ukLIWLM,12697
norboten/data/content/labs/python/python-04-worker-that-goes-silent/lab.yaml,sha256=S5EHf8l8CGQv3exjVPm3tgU0JL7nZI9tLAnYvg97UdQ,745
norboten/data/content/labs/python/python-04-worker-that-goes-silent/theory.yaml,sha256=VkSKmi-WmHALQ9fiktfXpfxsn2GTSC_dJ-y6CBKMM6w,4645
norboten/data/content/labs/python/python-04-worker-that-goes-silent/break/01_ingest_worker.py,sha256=GNrUcWbETIVRnxBNlReI_Ett6VUBGsxbUtx7fSCmB2w,767
norboten/data/content/labs/python/python-04-worker-that-goes-silent/check/01_progress_appears_while_it_runs.py,sha256=JbFO6-tQS10LaGktUGLdo6Ih9G2PA7Oa1v03vDjmOHI,1610
norboten/data/content/labs/python/python-04-worker-that-goes-silent/check/02_a_stop_leaves_no_half_row.py,sha256=G2FSCjfzD8gZxuB6ZTR7XUgB5DliCbekfusO4-U3qdw,1869
norboten/data/content/labs/python/python-04-worker-that-goes-silent/check/03_nothing_is_ingested_twice.py,sha256=xxzD-0plUaPUgx249-Ix3SYarrfVXOypVO2NUSHaMm4,2116
norboten/data/content/labs/python/python-04-worker-that-goes-silent/check/04_the_service_reports_progress.py,sha256=C6_5EcX8RG-lXHqJ-rPkXS_OIQ1wCd17pQu3gFxF21M,1178
norboten/data/content/labs/python/python-04-worker-that-goes-silent/files/ingest.service,sha256=SR0kOmaXSVhNhm0-pYX5Jkt2eNfEe-h3FTdijivfuSk,188
norboten/data/content/labs/python/python-04-worker-that-goes-silent/files/probe.py,sha256=MWvhbFD6i6ucLosbC7KNP2JAJyCFU2SPPb3S00NBQQA,1557
norboten/data/content/labs/python/python-04-worker-that-goes-silent/files/worker.py,sha256=KR2ln8d10BDHOROnTmAixRQpynBkypnLuejD6D87YHQ,1264
norboten/data/content/labs/python/python-04-worker-that-goes-silent/solution/solution.sh,sha256=RVwVPnPDrifAulAe93SU0Ll87dA9wdC5W_TDVb7E9uc,2248
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/briefing.md,sha256=Dq_OrPVfT-64MlpWRifd73FL82ISAw8TBPoTjWC-yKI,1275
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/hints.yaml,sha256=lYSGxGvhEOCoiq23VVDQqhA1a2cDorDJ7bBWOkOKYwU,2933
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/journal.md,sha256=3bfSVyflDommfy-Fbh2Cew-EmaD_LS45cigxIxtXBks,10881
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/lab.yaml,sha256=tG49Ox8BBJHINiJo8QcA8oyW6eRg2gaDx5YaN2yFygs,767
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/theory.yaml,sha256=GCGaMM6Pgn4ez6F1dMO0fOZjXenpLt_E4JH8PgBb_Qk,4463
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/break/01_digest_helper.py,sha256=UebvE0fPcHPvPu9oM8p5VBfYuGUeFqH6IeBhqEuorl4,1001
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/check/01_runs_from_its_own_directory.py,sha256=zVlploWVAsSUmgoBuhGCJl87aDr7Ym3s3s9LTbgcUFY,1753
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/check/02_runs_from_anywhere.py,sha256=5sC_xncttSEHX_cyaM3G-riek6MdsZ-g-fsnGe_Tt18,940
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/check/03_the_stdlib_is_not_shadowed.py,sha256=cgh2zTfsdJ2cLeDTrkS0Afc9jHdQqAsr_9wzQdmwpY0,1156
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/check/04_the_service_writes_its_digest.py,sha256=vVIvtPi54WOBNqR-Ttmn4-EONjc2nu1Yx5PeEx3XQyI,1406
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/files/calendar.py,sha256=0hPt8ZOnu8JIK8A-e-LPoG2oQOTkXBP61yHmG0S3038,255
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/files/digest.py,sha256=tK1Hp0wx5JQ_i2ooxGTqHU2XZl5bTTGXdsGI2Pc-2Y0,837
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/files/digest.service,sha256=70LoRyCc9chJnhnzNE6_trZ16-auMM9w8jQagYgkSqc,211
norboten/data/content/labs/python/python-05-module-that-shadows-the-stdlib/solution/solution.sh,sha256=JPOz3klbBkNkU_ntcDterA21k6vpgdJDhxuAPu10jBE,1214
norboten/data/content/labs/python/python-06-job-that-runs-twice/briefing.md,sha256=reEHDEqQjHE1BmkieKsQbQbQ8G7plrhT8WoAgOtBkW0,1291
norboten/data/content/labs/python/python-06-job-that-runs-twice/hints.yaml,sha256=EXVava67n148C8lS9rgDlU4lJzizTvqpqAApwaWjC6M,2753
norboten/data/content/labs/python/python-06-job-that-runs-twice/journal.md,sha256=wZA4xIFhzOI8Np8AR-3x4s5ujAk5gBvFfX1E9hQHw4M,11010
norboten/data/content/labs/python/python-06-job-that-runs-twice/lab.yaml,sha256=KVGJ6zwDQp-FvQwkQoVuFcpY-ZTqSq_ABM7pKWoatBA,928
norboten/data/content/labs/python/python-06-job-that-runs-twice/theory.yaml,sha256=65rdv8G3gI7Z0Vvzb3lJCPwTqqBfYSW0rQ58s8osZDk,6207
norboten/data/content/labs/python/python-06-job-that-runs-twice/break/01_pricing_rebuild.py,sha256=Pv9ubWbrNbei144Mn4F9uS0kC1ZeVC7z-ysfxOh9YpE,1004
norboten/data/content/labs/python/python-06-job-that-runs-twice/check/01_a_single_run_still_works.py,sha256=DNUbSChi3pyQLYnBfvW-nLz22J0NW-XCZsPh86RH_Zc,1156
norboten/data/content/labs/python/python-06-job-that-runs-twice/check/02_a_second_run_is_refused.py,sha256=V3Lftsa1pOVckC703Id3SRqXfwnWmh_LsDn0rZ-oLWc,1585
norboten/data/content/labs/python/python-06-job-that-runs-twice/check/03_the_output_is_never_half_written.py,sha256=-YOP_gNcNBTodjmi6lcQ6o8YrQ_OXXAPrUnd1HN571A,1799
norboten/data/content/labs/python/python-06-job-that-runs-twice/check/04_the_timer_runs_it_often.py,sha256=7mJpxjn2KocG_0mHkDVqeHzdI_E-xgHCa4ITAlFcNzQ,1795
norboten/data/content/labs/python/python-06-job-that-runs-twice/files/pricing-rebuild.service,sha256=XIGBoK8-vycKPPshqmmfHeaQw1hgmctJtUZzef6xI2U,124
norboten/data/content/labs/python/python-06-job-that-runs-twice/files/pricing-rebuild.timer,sha256=4qoed63hgnT1LooHANeVmFXVruCyoN9OyU2Q2CCfSRs,133
norboten/data/content/labs/python/python-06-job-that-runs-twice/files/probe.py,sha256=kT4OaFdCH9fd4BAXUwC14L-JDwJkcpNX5kvuztLi0JQ,1490
norboten/data/content/labs/python/python-06-job-that-runs-twice/files/rebuild.py,sha256=OBf66lZF2xThqsOGlZ9DdrkQIWSDTCqgGYmr2Mf4fvo,1020
norboten/data/content/labs/python/python-06-job-that-runs-twice/solution/solution.sh,sha256=5DOXJOgG1lskkqJU0s4rYOkmPx6EJvSqFB4ikw9-x6c,2126
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/briefing.md,sha256=LlsG7JBVQD7oBMVH9_my-PjLkoMtDInbggQIGdVzhQ0,1297
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/hints.yaml,sha256=3rb7hK2te5_cGXwY-U8alP3TStFuv23YnYrBBoVh8xc,2772
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/journal.md,sha256=TdOFdMG8cZQuxrRYpdS6F6K9QLsZuQ0dmww6qQfwbew,12603
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/lab.yaml,sha256=X-U5wzSRJPtOvDNDUVx4kSsUl4VqurxccRY18E605tY,849
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/theory.yaml,sha256=bmcf-pcXEuregpiQGcnJUv7iz0UPPlngLO-BrqX_IJI,4296
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/break/01_partner_client.py,sha256=JR58jGXq6L6c7k1RMkchHrSgMzKMzUAY5GjHT-jsjqA,1083
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/check/01_the_sync_still_works.py,sha256=VLPrM8WYETBCaCaerF8Xxh5SDTCN9zDuEiaO6kwE1WE,1598
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/check/02_the_journal_holds_no_token.py,sha256=89jkSwlYGzPihVswyhF5Ha7A4b28QUwA0sAT0l9CBNE,2188
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/check/03_the_token_file_is_private.py,sha256=kGOsOmVUUQb5aENMldPJEpYRhIF7PQHo3__wi1DkSiM,863
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/check/04_the_service_is_not_root.py,sha256=A0u8Sj4F9et6x0R6W5fsYqYm3QCtzAd9ekJYe5jdMCY,1229
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/files/partner-api,sha256=io17tbN3bNvLrtMSZZCWrmHavNiCjohYNibimJ3oEyM,1161
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/files/partner-api.service,sha256=-vheEGMEJQoh9Lb9OfDbxVLi8PiIjMCFcC1N4kQyQIs,178
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/files/partner-sync.service,sha256=KO0ZvktcdVvFLqqKg2iLU2OqmqIyyWT_pp-u76tv51E,182
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/files/sync.py,sha256=bCS5pzjV0OLkEZ1t8wdbYHwKm32e-k1B4GHFncnMwb0,1390
norboten/data/content/labs/python/python-07-client-that-leaks-its-token/solution/solution.sh,sha256=rSVX9kZ0hU5bUlwz5uskd7tvxcaeEq1cW9NKYsTij3k,2173
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/briefing.md,sha256=zAhBlJI1XOfk1I4aQ2J78xnMiUmK7Ux7tDMJAkR7Zug,1068
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/hints.yaml,sha256=C6N5LOeQ1bCljLY6si2zzkA62zS_a37qXinhgtaIGSw,3366
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/journal.md,sha256=hlUybRdWWXFvPO5qfzQL4l9DvyccO56R6BI1LFBzSIc,24095
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/lab.yaml,sha256=QkHKoX3NPw2jsQcgja_YS2eb3bmOhgeYtxDcZuZD50Y,781
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/theory.yaml,sha256=Rbovy4kDHZsPhvukKJmPhE3zArfNV_QFNHxc4z7HiWU,2762
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/break/01_accounts.py,sha256=e9mfuz9feISMo1fiSGda2bncbqEMIEB74SzDZjbJeTE,580
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/break/02_project_dir.py,sha256=JHB-B10c42s8P8c_yKfU6ZT_nAa-ez7Zxyy1rUayqD0,572
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/break/03_umask.py,sha256=ZczGjptDu4frIToMvNHF_AUi9plo6dduAPDEfMSo8Vs,459
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/break/04_sudo_rule.py,sha256=NZH42rPEzm3f01J4EGDfHmfX7XVuctJ9XnCucw2GD4M,277
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/check/01_contractor_in_devops.py,sha256=VTw52q1VWkGprgxLXlYX3UtN9qfvB_unB5lFJCRfP6g,581
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/check/02_project_dir_shared.py,sha256=oC4cRygwi_SBbBkk0GderVbSctoskYN-fkFapxFMFAA,859
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/check/03_new_files_get_team_group.py,sha256=9q1etxArJlMgvBPUfcyA_svUgtAFieZT3d64-P5Xkoo,742
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/check/04_umask_allows_team_edits.py,sha256=AltVak1b_dMQkKZXlrS_JI-BmoO_CPN9uJexfcuKntU,752
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/check/05_sudo_restart_nginx.py,sha256=oqAMYL9XYXShXXP-zCLKywADoQ6QuwTr8DrzVQe0ugg,353
norboten/data/content/labs/rhcsa/rhcsa-01-users-and-permissions/solution/solution.sh,sha256=pQVRXiQDnGLlUSWIOqFodrkf_oVU_HGjBwnJG-nzWCY,251
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/briefing.md,sha256=bncYJDE0y7inZVzL2WpiCslWjjJ3XOVztvbDEE090Jk,948
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/hints.yaml,sha256=oSTzN4v9xGwb42jwQFnBfus9k6hVgKJoUH2tgANXQjw,3195
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/journal.md,sha256=ntgMdz6qLuZoOCt7-csEcq_etX-9ABWdNYpQTFac3JE,31132
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/lab.yaml,sha256=mA3lV7ilA4fUWF7sjaW-NP5AFb9vSH60bUDozMSCY_M,767
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/theory.yaml,sha256=fQbZ9vqrJLLkbTl-fJAA0aFaWGH53v5Pgahof_LWg0o,2711
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/break/01_install_units.py,sha256=3l80PnUoOxzdPSBprtdwlCaHpRklR8TodLLteoKUCzM,779
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/break/02_mask_config_sync.py,sha256=aksQH6hZ5DDwiKbjVU4JYqR6KBbPuBKXeHkGkNqnsRU,132
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/break/03_broken_override.py,sha256=oXSy6qwTt7dzRXHN70HRK_s5ENByPCDKsNA5igTG8-4,310
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/break/04_default_target.py,sha256=fYtTIPFFOKUnZPqWoQOeZWqL2KtRktMTk7LNjP8hIZM,130
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/check/01_api_running_after_boot.py,sha256=KNr--Ghup9Mbbegy1ooRoixbpxnRUeZKJV-xT0y-vK4,867
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/check/02_default_target_multi_user.py,sha256=dGANyesUvI9UPOXtNEDM8PDE7UBKM8sj7K11aCZuPSE,249
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/check/03_no_masked_units.py,sha256=8Zvraa4Y5EvJR_XBt7RM_bijPsSYb0NZeRkSbDud4ps,540
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/check/04_config_sync_pulled_in.py,sha256=mfJfAmbNFcfJjmeNFOis_rRHWjD5r7SNj83tb9uZTyM,700
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/check/05_execstart_is_valid.py,sha256=Y-ZYUfj4MMvtlji54Me48E6Cwjbbs2J3hUYg40FTcyA,556
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/files/config-sync,sha256=aVpnFqes6f0-S_P88VaWQzDH1oH_4oHrELibk91EMNE,159
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/files/config-sync.service,sha256=sGB06pjlWG05Y90mUS-N9El5WOgi3LWMbD9iUY3RaT8,129
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/files/inventory-api,sha256=gcsbf9udMLoggeoh0Kzyo86BYonz1smUpwWGXXoPun4,746
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/files/inventory-api.service,sha256=m4-aZ7Ww5f3A0G5yVHPhSBGNWW5HUhmnRs5F5dQ5gaM,181
norboten/data/content/labs/rhcsa/rhcsa-02-systemd-and-boot/solution/solution.sh,sha256=PF8MjeXmqBWp3h-mnPUAQemYibS-0rVsNE9jECkj8cU,374
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/briefing.md,sha256=205KLf2VINFUKHTYkECMkDenXIVz_oKcXOgpkUfyROU,1085
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/hints.yaml,sha256=xsbFs856pz5_3Lf60o5SqD-gq24tI4XBAGk4N1wm4LE,3065
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/journal.md,sha256=JN39YQYxpAzfTVRi4hO8TycD_w60kXVCccRcUmXs8rM,27485
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/lab.yaml,sha256=6mOnssqhrTdrxHk0EIE_eS_QLcvnATXG8jV_6DD2TNg,1277
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/theory.yaml,sha256=-562P8w__VcsuLR3VY0QlDmIfad94ONwtZL07gytsLM,3065
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/break/01_volume.py,sha256=JTsaGbo1BP7wjEstLfQuj4OCZkUl0PUpJG5ay_1_E-Y,1757
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/break/02_spooler.py,sha256=_0KUpLuIA1X-wlnIkotdAxQD16iBcEFRGMSRZC9xw0s,560
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/break/03_swap_and_spare_disk.py,sha256=yp8l40e2c7bMZ1QOFzNsuMRqKus5vCHI28I1qu0a1Ns,647
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/break/04_bad_fstab.py,sha256=GtCbazBjcfXyxHGXf1LQPNh5Pfqyu4bKpy4UJoQfadU,333
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/check/01_boots_clean.py,sha256=IL-DZY2Y4XJbkAzJnbrKdLRJl1K_5aZHucfeg81lWCc,1596
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/check/02_app_volume_has_headroom.py,sha256=5b5dNU1LF01oBE_el9PcpYRtdl5rZDTRtkHb-BafzSg,1086
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/check/03_swap_active_after_reboot.py,sha256=tAik_aT3pQLhpX_qJyztuFjGh4bpnIXGOcL1byBg76I,671
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/check/04_fstab_uses_uuid.py,sha256=CPTrOxzWoDrZQnxAQdi9JtsFu3rz6bv34qG_3ddz65w,577
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/check/05_held_space_released.py,sha256=-1MlBPDQE01lmhyD-_zGYdSxM-HQfDHHkwPIUFhwVw8,756
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/files/app-spooler,sha256=YMrmvoIMBf5RzvyP33BdpDucYVJemqd66vdx5-JI0iE,1643
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/files/app-spooler.service,sha256=kxYeVKGYu8iEvG79ojfUycZ-8I9OT8NP6CYgAYR5P28,156
norboten/data/content/labs/rhcsa/rhcsa-03-storage-and-lvm/solution/solution.sh,sha256=53iDlrunF79aZFOuKn6-KnBv41Pzaqz3QsbtLZgZnjU,321
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/briefing.md,sha256=hTskfG0zp4a3pvEQlCZr0oTSiaBGfw89yU34qHSlgG8,1081
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/hints.yaml,sha256=Ac3zTTusJTvzdo_bJHBDCG10C1dKj3R8XqaeSNTBtpk,3600
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/journal.md,sha256=D7OdQlbzH5Gs4juyiOYHfg8dyoDUi9jueDOt1dD29uA,39425
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/lab.yaml,sha256=V8jfXaEoQB9rx9tmHDE_OIf6T4-7Ox-JHh4GIS4bgP0,1069
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/theory.yaml,sha256=pJmQOlTEoYJHANxsnTaJ_ljlQoOSZUB8C2257Gt1jok,2832
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/break/01_site.py,sha256=5gCy4lndOlLyCq8jiyoRnjiu4vSqxGpZRVlvRQZ61Mg,1303
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/break/02_boolean_and_firewall.py,sha256=BAWvJ6K10dQDk-jq2BAHnLfj7Sl79lg4BH2rt_0kJ2Y,313
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/break/03_runtime_only_network.py,sha256=7s55nf8P9KuoMb8du_YBA_owteJOqiCycKqPWZlo5gk,542
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/check/01_site_served_on_8090.py,sha256=2dAK3x1m5zDY-0SawkCfJC4Pmi26mGoM54JrhmBp7Mk,791
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/check/02_api_reached_through_nginx.py,sha256=vHcK629jWKdJ-TSMpXPovOXisgLRTB2BPtK_xI1PzxA,728
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/check/03_contexts_survive_relabel.py,sha256=Kor8vgADJxzXjDGYyG-vwgCadWiB_HhdUKUBrMZxpMs,767
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/check/04_firewall_open_persistently.py,sha256=XufV-iMhBW3dwHyHavRyvWSIJEg3qg-aMdWjN9kEfw0,856
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/check/05_network_config_persistent.py,sha256=GpNRW7F-7mBEz-Q0SK1RA68p9vhKGj7STc8MTlaZnKQ,964
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/check/06_selinux_enforcing.py,sha256=hdC884iu8CxO8eKerpoR9w0RQX0xkhOfMH4qLk6bUsc,524
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/files/status-api,sha256=p3D3zf8eKGYotkj7KAN6y2XEEF_8Pj0Jpnf77_cf-3E,529
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/files/status-api.service,sha256=Y0GPmlPTnQXtZG3DT4D6OHTcWB7YzQlWklwJ4qDuezY,163
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/files/status-site.conf,sha256=wpgX2aeCCCDn53HSEtx0LKHy4ftdK88wbKupS7w3A-k,178
norboten/data/content/labs/rhcsa/rhcsa-04-selinux-firewall-network/solution/solution.sh,sha256=8wlc5tOJPMMIOk2U76jXwDAykZ6lLJypgp6hv1Zux2g,469
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/briefing.md,sha256=YIJ5qrM59xc9795kNEF1A1Gk9VaQ1o6ORbH_BG0og1Q,2130
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/hints.yaml,sha256=BI6gsQP93DrecFy8C4moYoiE-2d4O58iMxKFj1VgPiI,8101
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/journal.md,sha256=e5wot-7NeGqyKRNdK13ZqPt30LLPlWUF8Rmz_i3g6NE,46809
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/lab.yaml,sha256=wk8xaC24WgHHp5kK7ifVLNWvpo5e2NJbD7scO79nLAs,2151
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/theory.yaml,sha256=XEKtrL3PR0WHvP5CajliWVxLoQiKVJhEzZmGGo-Bofk,2999
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/break/01_lock_out.py,sha256=qFinRG-Nd5jO4bOxvJ_Rq4lbj3hnXIxaI5C3nx9NWLA,636
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/break/02_data_fstab.py,sha256=ADVhuw2XqcGk-woOmZNlT3No07WgNYMB0O4GoR_pvGY,559
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/break/03_dead_repo.py,sha256=6j94RP91cDmI68X5OxxyedIwCzUzAQR18wBMH3sQaGk,475
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/break/04_timer_and_journal.py,sha256=XNDehNElKjumat9LtZ7XaqShAujnnq8VXxIf70q2cZA,755
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/01_root_password_set.py,sha256=lZ89h3d8MrmvGD9h82gFjSQb6IGuesqr4RFv2WS5muk,588
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/02_shadow_context_correct.py,sha256=ehQapoLX3WPiJW_DO4PtyYwk5IRYA67SfbW8376oh6E,459
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/03_boots_with_data_mounted.py,sha256=A7ieD2AbfYyFrOFZnssxWk2V0Ec4kuHSRpgZnKuzYHQ,1013
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/04_repo_uses_local_mirror.py,sha256=keuQHI2IrmkfJJmjGJA9ynJvvBJk9Ll85yKieSIYW1g,933
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/05_tree_installed.py,sha256=Fw88RQ3HE0e_1Bah-2LgB-52R9e2rbaniBuJJY9P_KY,200
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/06_sysreport_timer_every_15m.py,sha256=J115uUb2ByYeMW2MtAZzMm5WG1Q21g_GoE-B6DVJ1rU,781
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/07_auditors_group_and_members.py,sha256=8-8WTuymxBUKMzzJQnpbCw61gyZZS8bsCYKn7ME1KcU,783
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/08_maria_password_aging.py,sha256=_zobW6TDE-p3_Uptz9yl0m-JzsXX2ZG357YxtMsroos,519
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/09_sam_cannot_log_in.py,sha256=Y4Y5AWftFi5Evq8Ui_AC7Il-LVH1KInwhMc-Oyt3v7Q,405
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/10_sysreport_script.py,sha256=KiJpcKplLsdFeMHUbSsjH6uFpHdmNiDNRB-HG8imO4c,1875
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/11_chrony_uses_lab_server.py,sha256=X_7-OaYmItbslZuKuX3oYPChDu-BFpRFnjccbr4KpjY,605
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/12_journal_persistent.py,sha256=V-RDnTxaNOJNr_OMLPzEISrSWvJoOu3PAqOGOii-L9c,927
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/13_maria_ssh_key_login.py,sha256=UIWzQWF2nzFmOZvIxWiE2Ii_eitaV17s5-YFJufyLVM,452
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/14_audit_dir_shared.py,sha256=dHCZiRY0_271BAGiU9_GzIpmih7RTctVePeQWiG3nl4,785
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/check/15_you_are_an_admin_again.py,sha256=5NZjEUaOZuYEb89_48A10ZjOk2sr6gOb3BYmpLq-4mg,496
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/files/sysreport.service,sha256=N40bl5FVl2voP7Q6r9OLPMwYwrF-x7xwLfWc6pa2GTA,128
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/files/sysreport.timer,sha256=5s4NKd5KnPz5ze-uGGasi76elSzpFgF9iWd9nhhFovo,130
norboten/data/content/labs/rhcsa/rhcsa-05-exam-simulation/solution/solution.sh,sha256=ZGv7CkJhEKfYbY7bspPZVzZw2Uij45xbJKlRvGReRh8,2012
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/briefing.md,sha256=f0ReZfnKFJOS55OkeovnhEm2cO5NnmyL8B5isxFtsWY,1145
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/hints.yaml,sha256=h4-Bp5cnWXQmrPgR8qT46zx_2cmUp7FGzqzrlDcFFeM,2443
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/journal.md,sha256=EyR4Kl6H2vWsb-zc9W8P5kOly4VEDAkl7qfNVWK0de4,19099
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/lab.yaml,sha256=Z8rV9EEbgEWLUVbIi4QKOlVi7L2Ojq_0D0a3QWqXzRI,643
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/theory.yaml,sha256=6Wry4y15GDFLyHHdjo2Xh6V8LlCIpSBf1VPrfQb6TXE,3480
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/break/01_renamed_config.py,sha256=Mp2kVo7L0vkiL1vnaRyntIXtNWCjcLqyY-nqbxjZ1Xw,1446
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/check/01_plan_is_clean.py,sha256=pV-I6PLBw31NBNKzlA5XwBUennbBtfPsiEXN18cSkec,527
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/check/02_session_key_kept.py,sha256=ML3fzgwfrXftLs7LGpN7tIqWQFsEwX0hsI0xh4rKOSQ,1089
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/check/03_state_protected.py,sha256=SIAoN7jPNdgBcHtUK-ITD71edSbjtdjDuUQGDUyzoYw,660
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/files/main-before.tf,sha256=zR7RnS_sTuaSelRXhzsfTevIwmWQtTGFU-Bb6eZjScU,542
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/files/main.tf,sha256=NlRvhH-Skkf_AmO6NQBwe_3loOFbk-zKd9oKmKjO19s,562
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/files/site.conf.tftpl,sha256=EE_7Cd9r_DE8i6KdyIcVw6KaVn66gMpQ9tvUSbweRw8,131
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/files/versions.tf,sha256=jrsLu-9Yf427CaJoCHTj0A7uTvWvOjmOpOftqq4NAKQ,201
norboten/data/content/labs/terraform/terraform-01-rename-that-wants-to-destroy/solution/solution.sh,sha256=fMA8hwi-YrOARa45-MMglLCxjb-eWGBWcEPH1D6gj10,403
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/briefing.md,sha256=X3Ug7bRkGTJswdbG6YCdlaRmU1ZXKMxg_TjVEtXqRJY,1095
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/hints.yaml,sha256=1Aqr5t0rInlNtnkIdtPjtw7uti0uvTTrM9g0eBbXbW4,2394
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/journal.md,sha256=61nlZDKrnDk90LB77KmJLPkKCmLy-NtRCtwT-LUat0Y,20123
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/lab.yaml,sha256=8FQzrqiIst5qAbA5ES_ILhAt-U222QSotDhXehrmZss,592
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/theory.yaml,sha256=9OpYHiteLKqcPmnvIHsYvkOzjJh83QNMequ7ucwXyx0,3871
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/break/01_count_config.py,sha256=tspFS7B_-PrEPMltmyHE-F3vAZvHwFX7o1CRM22hW1s,1058
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/check/01_blog_retired.py,sha256=nUJv1a-tkvzjNTWa2UWBYG6OgaEKWONRoErDBUlveJA,883
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/check/02_shop_and_docs_untouched.py,sha256=BjQk3CPfQWP0v4aL9V12k-TSsYmpxEDPptwNjy161NE,946
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/check/03_keyed_by_name.py,sha256=5CAeDSr26xBFw2h1pepdpcX8S08ZozV-yyUL-KLH2ZI,1171
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/files/main-before.tf,sha256=BFNWWbbytDXnxg34pF6kjRHPUlR6OuXtQTMtUrXJlDU,523
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/files/versions.tf,sha256=jrsLu-9Yf427CaJoCHTj0A7uTvWvOjmOpOftqq4NAKQ,201
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/files/vhost.conf.tftpl,sha256=7TevXaYs7TGC4aAjLjjyAp7NEC_EMVsU-rd3ZVRtrmU,179
norboten/data/content/labs/terraform/terraform-02-site-removed-from-the-middle/solution/solution.sh,sha256=3JPO5Tq9Z6vc8IilVLbOw7SnKAD2e0X4eacYBkKxr1A,1179
norboten/data/content/quizzes/ansible.yaml,sha256=rLcVQmEqfZKCgp3Tk8NEIYNPhLd-qUmlXa6l4LAvTyg,33185
norboten/data/content/quizzes/bash.yaml,sha256=vmJlVxbJalzIPkV-2_B7VX8ITR157S3ilzYNi7iiaK8,31516
norboten/data/content/quizzes/claude-code.yaml,sha256=UzjQ7kClVC2aOFBPzrnSh4izphNxNNXfZmrZpjhV-qY,39448
norboten/data/content/quizzes/linux.yaml,sha256=lZt0LK4hKlF-kSGv121a0FoZTW3KXE1DenInqPkFcaA,32467
norboten/data/content/quizzes/mcp.yaml,sha256=O5KEuchQnrYyaz_C4BJES8GCPkhzfyEPxK_CrbsSR3Y,50679
norboten/data/content/quizzes/memory-cs.yaml,sha256=M0IlVdfFYlyiBcd6q9eirg374mjVl7YRIezz-OqtSjc,33686
norboten/data/content/quizzes/networking.yaml,sha256=j-UQwuFKP8seKvVxhlZ9RVCcfcU4Jgtv0mHI3VD56eY,31067
norboten/data/content/quizzes/ollama.yaml,sha256=jMzDHBBeugXt0XQ70ee4jY_7ZFMytaxcrJbhkyDh6KQ,33432
norboten/data/content/quizzes/python.yaml,sha256=9FRfwS9BquxGgtOT7sMMAfSO8L3IlMsXLvWWFLjSSAE,34332
norboten/data/content/quizzes/terraform.yaml,sha256=4tUk1sMG1FmTIYIyn49Bt678tJoKSFiPJb2j5wlDmgA,33040
norboten/data/content/site/streams/backup-script-lies.json,sha256=VvkB7kmjFeNUqGz1gVR6be_oohHdoAQdX9Nn1Zj1CFI,93761
norboten/data/content/site/streams/backup-script-lies.script,sha256=s2wB1gFdf8m3RBFekWPbZVpEFMgKr1L5DSJydAbRWnA,4096
norboten/data/content/site/streams/contractor-cannot-write.json,sha256=W9OdzInFcQ_jSNW7ATRRPUlh_Va8NDqOEfODdSMB_9w,91512
norboten/data/content/site/streams/contractor-cannot-write.script,sha256=xgW5w-sqIPNqCIS6agTGd0S1ikHCKGkZLFiDX-CMBvU,3730
norboten/data/content/site/streams/disk-stays-full.json,sha256=DAr9eK-oZA96kapHIoHBBgxAzSa6bweZOFZa-Zsa3oo,28322
norboten/data/content/site/streams/disk-stays-full.script,sha256=lrjb24SC7HD_Uzx0C9nfB0XI_lxNTGBs-rpqzkdKp8I,893
norboten/data/content/site/streams/first-lab.json,sha256=giWgipAzCYzr3RyAbVIDtW-XXiU914kTZUaEexUpmtI,11369
norboten/data/content/site/streams/first-lab.script,sha256=tiCHpUGo_Kt_wTtRROOnRZufeJYAb8CVzNO0bwjVwus,579
norboten/data/content/site/streams/notes-wont-stay-up.json,sha256=Djgadip0N-iKIxX3Vp5zw3-pvpCc1tnzWUJLsQuvQhQ,160003
norboten/data/content/site/streams/notes-wont-stay-up.script,sha256=AznMUKrKdCZnLq1eTs6GRXy2Te-tEIp2ZiAgmxlcMZY,3758
norboten/data/content/site/streams/site-nobody-can-reach.json,sha256=c4arQxTgY88J-RaJIKHmHo0l7AFrat2NtKmu12DgS9Y,103301
norboten/data/content/site/streams/site-nobody-can-reach.script,sha256=fB46mTOcC3IxkekofcVvNASKOrxZgYDPq4ukoZi9ZL4,3723
norboten/data/content/site/streams/vanishes-on-reboot.json,sha256=xzHjvDndYkXtyBxXpPGoIAKxmjDxWpbmq-ttixXt9Tk,26044
norboten/data/content/site/streams/vanishes-on-reboot.script,sha256=Fu7W5DZ_Vuk2p4zqI6lGuTPRqQJCs2PYg7Slub9xLu4,1198
norboten/data/content/images/base/ubuntu-26.04-claude/Dockerfile,sha256=qPZLpQ_pgqXARipcUWkgCBal7wOzYphTQygq3CcRZSs,3597
norboten/data/content/images/base/ubuntu-26.04-claude/claude-offline,sha256=wByoePt1L25YzQbb4QhIScS2IT_VFDWdafYwCtC67do,2457
norboten/data/content/images/base/ubuntu-26.04-claude/claude_lab.py,sha256=8jYMnJpzE4WRM9ZiUoakpQwoxhlugVnxpkmR1726xa4,5563
norboten/data/content/images/base/ubuntu-26.04-claude/fake_anthropic.py,sha256=QlGtbXsMNXfdMa_VmX5usg3UduLoFq37rtdRvN5g8gQ,7948
norboten/data/content/images/base/ubuntu-26.04-container/Dockerfile,sha256=wa5fTIx4Uj0ruQokctKa_BV580NORgTr5VeBVnZvdjU,2257
norboten-0.2.0.dist-info/METADATA,sha256=pQQ1gbO0hS_bnwnzaGGfFKX_Yk4JNm6Ih7OlY7ox5ik,647
norboten-0.2.0.dist-info/WHEEL,sha256=THafob7ofN-NsuMN7Mg4qZyHaQI7KkD-QlcQatYhXPo,87
norboten-0.2.0.dist-info/entry_points.txt,sha256=DP7JznsoKush8mUhF8Ybp9aMDL701LaORlgrA_BrlWQ,47
norboten-0.2.0.dist-info/RECORD,,
