2025 Python Year in Review
Episode Deep Dive
Guests Introduction and Background
This year-in-review episode features an exceptional panel of Python luminaries representing diverse perspectives across education, industry, and core Python development:
Gregory Kapfhammer is an Associate Professor of Computer and Information Science who conducts research in software engineering and software testing. He has built numerous Python tools, with current research focusing on flaky test cases in Python projects. Gregory also hosts the Software Engineering Radio podcast sponsored by the IEEE Computer Society, where he has interviewed many members of the Python community.
Thomas Wouters is a longtime Python core developer who worked at Google for 17 years before joining Meta. He has served multiple terms on the PSF Board and the Python Steering Council. In 2025, Thomas received the PSF Distinguished Service Award recognizing his extensive contributions to Python.
Jodie Burchell is a Data Scientist and Developer Advocate at JetBrains, working on PyCharm. She has been a data scientist for around 10 years after transitioning from a career as a clinical psychologist. Jodie has been working with NLP and LLMs since before they became mainstream, including early Google language models from 2019.
Brett Cannon has been at Microsoft for 10 years and is currently working on AI R&D for Python developers. He also maintains WASI support for Python and does internal consulting. Despite being a core developer for 22 years, Brett jokes that he is the "shortest-running" core developer on this panel. He previously managed the Python experience in VS Code.
Reuven Lerner is a freelance Python and Pandas trainer who celebrated 30 years of freelancing in 2024. He teaches Python and Pandas both at companies and through his online platform, writes newsletters, publishes books, and speaks at conferences.
Barry Warsaw has been a Python core developer since 1994, making him the longest-tenured developer on the panel. He worked with Guido van Rossum at CNRI in Python's early days, handling mailing lists, version control, and websites. Barry created the PEP (Python Enhancement Proposal) process 25 years ago. He is currently at NVIDIA doing Python work split between internal projects and external open-source community contributions, and serves on the Steering Council.
What to Know If You're New to Python
If you are newer to Python and want to get the most out of this episode analysis, here are some foundational concepts that will help:
- The GIL (Global Interpreter Lock) is a mechanism in CPython that allows only one thread to execute Python bytecode at a time. This episode discusses its upcoming removal, which is a major architectural change.
- Type hints are optional annotations that specify what types of values variables and functions should use. Tools called "type checkers" analyze these hints to catch bugs before runtime.
- Virtual environments are isolated Python installations that keep project dependencies separate. Modern tools like uv automate their creation and management.
- The PSF (Python Software Foundation) is the nonprofit organization that manages Python's development, PyPI, PyCon, and community grants.
Key Points and Takeaways
1. Free-Threaded Python: The GIL's Days Are Numbered
The most transformative development in Python for 2025 is the advancement of free-threaded Python, which removes the Global Interpreter Lock (GIL). Thomas Wouters, who championed this effort, confirmed that free threading has moved from experimental to officially supported status in Python 3.14. The performance overhead is remarkably small - basically the same speed on macOS (due to ARM hardware and Clang optimizations) and only a few percent slower on Linux with recent GCC versions.
The main challenge now is community adoption: getting third-party packages to update their extension modules for the new APIs. Barry Warsaw called this "one of the most transformative developments for Python, certainly since Python 3." Early experiments show promising results, with highly parallel workloads seeing 10x or greater speedups. The PyTorch data loader, for example, has seen massive improvements by leveraging multiple threads.
- Links and Tools:
- peps.python.org/pep-0703 - PEP 703: Making the Global Interpreter Lock Optional
- peps.python.org/pep-0779 - PEP 779: Free Threading Supported Status
- docs.python.org/3.14/whatsnew/3.14.html - Python 3.14 What's New
2. AI and LLMs: The Bubble Shows Cracks, But the Tools Remain Valuable
Jodie Burchell provided a grounded perspective on AI in 2025, noting that GPT-5's release in August marked a turning point where mainstream observers began questioning the AI bubble. The "scaling laws" that promised exponential improvements turned out not to be laws at all, and OpenAI's internal struggles to deliver on AGI promises became public. Investment in AI spending now exceeds consumer spending in the US, which Jodie called "a really scary prospect."
Despite the bubble concerns, the panel universally agreed that LLMs are incredibly useful tools that are here to stay. Gregory Kapfhammer shared that automated refactoring, test generation, and code coverage improvement - goals he thought would never be achieved in his lifetime - are now routine with tools like Claude Code. The consensus: even if models never improve beyond current capabilities, they represent a massive leap beyond previous development tools. Barry Warsaw noted he no longer searches for documentation - he just asks the AI to set things up.
- Links and Tools:
- claude.ai - Anthropic's Claude AI assistant
- openai.com - OpenAI
- docs.pydantic.dev/latest/concepts/pydantic_ai - Pydantic AI agent framework
3. Python Tooling Revolution: uv and the Rise of "Run" Commands
Brett Cannon highlighted a fundamental shift in how Python developers work: tools like uv, Hatch, and PDM now treat Python itself as an implementation detail. Instead of the traditional workflow of installing Python, creating a virtual environment, and managing dependencies, developers can now simply run a command like uv run and everything is handled automatically.
This represents a "renewed focus on user experience" according to Barry Warsaw. The distance between having an idea and having working code has dramatically narrowed. Combined with PEP 723 (inline script metadata), you can now put uv in the shebang line of a Python script and share it without any setup instructions - the script carries its own dependency information. Gregory Kapfhammer shared that he now starts undergraduate students with uv on the first day of class, eliminating the week-long setup struggles that used to plague even strong students.
- Links and Tools:
- docs.astral.sh/uv - uv package manager
- hatch.pypa.io - Hatch project manager
- pdm-project.org - PDM package manager
- peps.python.org/pep-0723 - PEP 723: Inline Script Metadata
4. Type Checkers and LSPs: The Year of Rust-Based Tooling
Gregory Kapfhammer declared 2025 "the year of type checking and language server protocols," highlighting the emergence of three new Rust-based type checkers: Pyrefly from Meta, ty from Astral, and Zubon from David Halter (creator of Jedi). These tools have transformed what previously took tens or hundreds of seconds into sub-second operations.
The speed improvements fundamentally change how developers interact with type checking - it becomes a real-time feedback loop rather than a batch process. However, Gregory noted a challenge: different type checkers can disagree on whether code has errors, even on the same codebase. His research team built a tool that automatically generates Python programs causing type checkers to disagree with each other. The PyLands team at Microsoft is working with the Pyrefly team to define a Type Server Protocol (TSP) that would let type checkers feed information to higher-level LSPs.
- Links and Tools:
- github.com/facebook/pyrefly - Pyrefly type checker from Meta
- github.com/astral-sh/ty - ty type checker from Astral
- github.com/davidhalter/zubon - Zubon type checker
- mypy-lang.org - mypy static type checker
- github.com/microsoft/pyright - Pyright/Pylance type checker
5. PSF Funding Crisis: A Tragedy of the Commons
Reuven Lerner raised concerns about Python's funding sustainability. The PSF had to pause its grants program and turned down an NSF government grant due to attached DEI restrictions that conflicted with PSF values. Most Python users have no idea the language needs funding - they just know they can download it for free.
Thomas Wouters pointed out that major AI companies, despite relying entirely on PyPI and Python infrastructure, have done "basically no sponsorship of the PSF." The amounts needed are surprisingly small - less than what a medium company spends on expensed meal tips annually, or less than a Silicon Valley developer's salary. All panelists' employers (Microsoft, Meta, NVIDIA, JetBrains) are PSF sponsors, but many companies using Python are not. Reuven noted that NumFocus has about twice the PSF's budget, suggesting it is possible to get corporate sponsorship for Python-related projects.
- Links and Tools:
- python.org/psf - Python Software Foundation
- python.org/psf/sponsorship - PSF Sponsorship Information
- numfocus.org - NumFocus
6. Lazy Imports Coming to Python (PEP 810)
Thomas Wouters mentioned lazy imports as his "second favorite child" topic - a PEP that was accepted in 2025 and will significantly improve Python startup time and import performance. This feature defers the actual importing of modules until they are first used, rather than loading everything at startup.
The lazy imports PEP (810) had broad community support despite some very vocal opposition. Pablo Galindo, a Steering Council member, led the effort and bore the brunt of criticism despite the technical merits being clear. This feature will be especially impactful for applications with many imports that may not all be needed for every code path.
- Links and Tools:
- peps.python.org/pep-0810 - PEP 810: Lazy Imports
7. The PEP Process Needs Evolution
Barry Warsaw, who created the PEP process 25 years ago, acknowledged that authoring PEPs has become "incredibly difficult and emotionally draining." The community has grown exponentially, but discussions on discuss.python.org can become toxic. PEP authors regularly receive vitriol in their personal inboxes for proposing technical changes.
The Steering Council itself exists because Guido van Rossum received such abuse over PEP 572 (the walrus operator) that he stepped down as BDFL. Thomas shared that Pablo Galindo received "ridiculous accusations" in his mailbox simply for proposing lazy imports. Core developers sometimes skip the PEP process entirely to avoid this gauntlet, which is also problematic because important changes don't get properly documented or discussed. Barry believes Python needs to rethink how it evolves the language while not losing the voice of users.
- Links and Tools:
- discuss.python.org - Python community discussion forum
- peps.python.org - Python Enhancement Proposals
- peps.python.org/pep-0572 - PEP 572: Assignment Expressions (Walrus Operator)
8. Concurrency Options Are Expanding (But Abstractions Will Help)
With free threading joining asyncio, multiprocessing, and subinterpreters, Python now has multiple concurrency approaches. Reuven asked how developers should choose between them. Thomas explained that most end users should not need to make these low-level choices - higher-level abstractions should handle it. Brett suggested using concurrent.futures as a unified interface where you start with threads (fastest), fall back to subinterpreters if needed, then to process pools.
Michael Kennedy expressed hope that Python's concurrency could eventually solidify around async/await with decorators indicating the execution mode, hiding the complexity from developers. The key insight is that different problems benefit from different approaches, and libraries like PyTorch are already combining techniques (using threads for data loading within an async framework) to achieve massive speedups.
- Links and Tools:
- docs.python.org/3/library/concurrent.futures.html - concurrent.futures module
- docs.python.org/3/library/asyncio.html - asyncio module
9. Regional Python Conferences Thrive
Gregory Kapfhammer gave a shout-out to regional Python conferences, specifically highlighting PyOhio as a free conference that anyone can attend with no registration fee, hosted at universities like Ohio State and Cleveland State. These local events provide accessible entry points to the Python community.
Reuven shared a contrasting experience attending a non-Python conference where all speakers were from advertisers and sponsors, and people were not interested in sharing. He called Python conferences "really special" for the combination of career benefits and genuine community connection. The community aspect remains one of Python's greatest strengths.
- Links and Tools:
- pyohio.org - PyOhio Conference
- pycon.org - PyCon US
- europython.eu - EuroPython
10. AI as a Productivity Multiplier (Not a Replacement)
A Stanford study (the "10K Developer Study") examining real codebases found nuanced results about AI coding assistants. Yes, there are productivity boosts, but AI produces more code that tends to be worse than human-written code and introduces more bugs. When accounting for refactoring and debugging time, developers are still more productive overall.
AI works better for greenfield projects, smaller codebases, simpler problems, and more popular languages (more training data). Jodie emphasized that like an IDE, AI is a tool - not a replacement. Barry's favorite use is bypassing documentation: instead of searching docs, he asks the AI to set things up. Gregory noted that AI agents work much better when given fast feedback tools like type checkers and linters.
- Links and Tools:
- cursor.com - Cursor AI IDE
- github.com/features/copilot - GitHub Copilot
11. Community Sustainability and New Contributors
Thomas emphasized the importance of new people joining Python - as triagers, drive-by commenters, or eventually core developers. Python is what the community makes it, with no company dictating direction. Barry encouraged anyone interested in becoming a core developer to find a mentor, and anyone wanting to be involved with the PSF to reach out.
Thomas pointed out he is a high school dropout who never went to college, while Brett has a PhD - neither credential is required to contribute meaningfully to Python. The call to action: run for the Steering Council (they need more candidates), sponsor the PSF if your company uses Python, and engage with the community in whatever way fits your skills and interests.
- Links and Tools:
- python.org/dev/core-mentorship - Python Core Mentorship
- github.com/python/cpython - CPython repository
Interesting Quotes and Stories
"Python in 2025 is a delightfully refreshing place. The GIL's days are numbered, packaging is getting sharper tools, and the type checkers are multiplying like gremlins snacking after midnight." -- Michael Kennedy
"I can remember thinking to myself how cool would it be if I had a system that could automatically refactor and then add test cases and increase the code coverage and make sure all my checkers and linters pass... I remember thinking five to seven years ago I would never realize that goal in my entire lifetime. And now when I use Anthropic's models through Claude Code, it's incredible how much you can achieve so quickly." -- Gregory Kapfhammer
"I'm glad I'll never have to write bash from scratch ever again." -- Brett Cannon on AI assistance
"I never even search for the docs. I never even try to read the docs anymore. I just say, hey, I need to set up this website. And I just tell me what to do or just do it. And it's an immense time saver." -- Barry Warsaw
"The GIL never gave you thread safety. The GIL gave CPython's internals thread safety. It never really affected Python code." -- Thomas Wouters
"Free threading is absolutely the future of Python, and I think it's going to unlock incredible potential and performance." -- Barry Warsaw
"It's ridiculous how small those sponsorships are and yet how grateful we were that they came in because every single one has such a big impact." -- Thomas Wouters on PSF funding
"What the PSF would be happy with is less than a medium company spends on the tips of expensed meals every year." -- Thomas Wouters, quoting Ned Batchelder
"I don't want to call on people in the community to do it because they're probably the same people who are also donating their time for Python. It's just squeezing people who give so much of themselves to this community even more." -- Jodie Burchell on funding burnout
"Python is the community or the community is Python. There's no company that is telling anybody what Python should be. Python is what we make it." -- Barry Warsaw
"I'm a high school dropout and I never went to college or anything. And look at me." -- Thomas Wouters on qualifications needed for Python contribution
Key Definitions and Terms
GIL (Global Interpreter Lock): A mutex in CPython that allows only one thread to execute Python bytecode at a time. Its removal in free-threaded Python enables true parallel execution of Python code across multiple CPU cores.
Free-Threaded Python: A build of Python without the GIL, allowing multiple threads to execute Python bytecode simultaneously. Officially supported in Python 3.14.
PEP (Python Enhancement Proposal): The formal process for proposing major changes to Python. Created by Barry Warsaw 25 years ago, PEPs document design decisions and the rationale behind language features.
LSP (Language Server Protocol): A protocol for communication between code editors and language-specific tools that provide features like autocomplete, go-to-definition, and error checking.
Type Checker: A tool that analyzes Python code with type hints to catch type-related errors before runtime. Examples include mypy, Pyrefly, ty, and Pyright.
Lazy Imports: A feature (PEP 810) where module imports are deferred until the imported names are actually used, improving startup time for applications with many imports.
PyPI (Python Package Index): The official repository for Python packages, run by the PSF and used by millions of developers daily.
Steering Council: A five-person elected body that provides leadership for Python's development, created after Guido van Rossum stepped down as BDFL in 2018.
PEP 723: Inline script metadata that allows Python scripts to declare their dependencies and Python version requirements directly in the file, enabling tools like uv to automatically set up the correct environment.
Subinterpreters: Isolated Python interpreters running in separate threads within the same process, providing parallelism with stronger isolation than threads but less overhead than multiprocessing.
Learning Resources
For those looking to deepen their understanding of topics covered in this episode, here are relevant courses from Talk Python Training:
Rock Solid Python with Python Typing: Learn the ins-and-outs of Python typing, explore frameworks using types like Pydantic and FastAPI, and get guidance for using types effectively in your applications.
Async Techniques and Examples in Python: Master the entire spectrum of Python's parallel APIs including async/await, asyncio, threads, multiprocessing, and coordination techniques.
LLM Building Blocks for Python: Learn to integrate large language models into Python applications with structured outputs, chat workflows, and production-ready async pipelines.
Getting Started with pytest: Master pytest's five superpowers - simple test functions, fixtures, parametrization, markers, and plugins.
Python for Absolute Beginners: Start from the very beginning with CS 101 concepts before building increasingly complex Python applications.
Modern Python Projects: Learn project structure, dependency management, testing, documentation, CI/CD, and deployment for real-world Python applications.
Overall Takeaway
Python in 2025 stands at an inflection point where decades of foundational work are paying off in transformative ways. The removal of the GIL promises to unlock true parallelism, modern tooling like uv is abstracting away complexity that once frustrated beginners, and Rust-based type checkers are making static analysis feel instantaneous. Yet beneath these technical victories lies a community wrestling with sustainability - funding challenges, contributor burnout, and the difficulty of evolving a language used by millions through a 25-year-old proposal process.
What shines through this conversation is that Python's greatest asset has always been its people. From Barry Warsaw, who has been contributing since 1994 and created the very PEP process he now seeks to reform, to Jodie Burchell, a relative newcomer who marveled at how welcoming the community has been, the panel represents a continuum of experience united by shared values. The call to action is clear: sponsor the PSF if your company uses Python, contribute in whatever way fits your skills, attend regional conferences, and remember that Python is not a product controlled by any corporation - it is what we collectively make it. The future is being built right now by people who simply showed up and got involved.
Links from the show
PEP 810: Explicit lazy imports: peps.python.org
PEP 779: Free-threaded Python is officially supported: peps.python.org
PEP 723: Inline script metadata: peps.python.org
PyCharm: www.jetbrains.com
JetBrains: www.jetbrains.com
Visual Studio Code: code.visualstudio.com
pandas: pandas.pydata.org
PydanticAI: ai.pydantic.dev
OpenAI API docs: platform.openai.com
uv: docs.astral.sh
Hatch: github.com
PDM: pdm-project.org
Poetry: python-poetry.org
Project Jupyter: jupyter.org
JupyterLite: jupyterlite.readthedocs.io
PEP 690: Lazy Imports: peps.python.org
PyTorch: pytorch.org
Python concurrent.futures: docs.python.org
Python Package Index (PyPI): pypi.org
EuroPython: tickets.europython.eu
TensorFlow: www.tensorflow.org
Keras: keras.io
PyCon US: us.pycon.org
NumFOCUS: numfocus.org
Python discussion forum (discuss.python.org): discuss.python.org
Language Server Protocol: microsoft.github.io
mypy: mypy-lang.org
Pyright: github.com
Pylance: marketplace.visualstudio.com
Pyrefly: github.com
ty: github.com
Zuban: docs.zubanls.com
Jedi: jedi.readthedocs.io
GitHub: github.com
PyOhio: www.pyohio.org
Watch this episode on YouTube: youtube.com
Episode #532 deep-dive: talkpython.fm/532
Episode transcripts: talkpython.fm
Theme Song: Developer Rap
🥁 Served in a Flask 🎸: talkpython.fm/flasksong
---== Don't be a stranger ==---
YouTube: youtube.com/@talkpython
Bluesky: @talkpython.fm
Mastodon: @talkpython@fosstodon.org
X.com: @talkpython
Michael on Bluesky: @mkennedy.codes
Michael on Mastodon: @mkennedy@fosstodon.org
Michael on X.com: @mkennedy
Episode Transcript
Collapse transcript
00:00
00:04
00:07
00:11
00:15
00:19
00:24
00:28
00:50
00:55
00:57
01:01
01:03
01:06
01:09
01:12
01:16
01:17
01:20
01:25
01:29
01:33
01:39
01:43
01:46
01:50
01:59
02:01
02:05
02:12
02:14
02:20
02:27
02:31
02:38
02:42
02:46
02:51
02:57
03:02
03:08
03:14
03:18
03:23
03:29
03:34
03:40
03:45
03:51
03:58
04:02
04:09
04:14
04:19
04:24
04:29
04:34
04:39
04:45
04:50
04:53
04:55
05:00
05:03
05:09
05:14
05:16
05:19
05:22
05:24
05:26
05:27
05:29
05:33
05:35
05:39
05:43
05:44
05:46
05:48
05:51
05:54
05:57
05:57
05:59
06:01
06:03
06:04
06:04
06:06
06:09
06:10
06:11
06:13
06:17
06:19
06:20
06:23
06:24
06:28
06:32
06:35
06:38
06:41
06:42
06:47
06:51
06:52
06:53
06:56
06:58
07:00
07:02
07:05
07:07
07:08
07:13
07:20
07:27
07:32
07:35
07:39
07:42
07:47
07:52
07:58
08:05
08:08
08:10
08:14
08:15
08:16
08:20
08:27
08:33
08:40
08:45
08:50
08:56
09:03
09:09
09:15
09:19
09:23
09:29
09:34
09:40
09:41
09:47
09:48
09:52
09:58
10:03
10:08
10:15
10:22
10:27
10:33
10:38
10:43
10:48
10:54
11:01
11:08
11:14
11:19
11:24
11:28
11:34
11:38
11:46
11:51
11:55
11:56
11:59
12:00
12:01
12:02
12:03
12:07
12:13
12:18
12:19
12:21
12:25
12:32
12:36
12:40
12:47
12:53
13:03
13:09
13:15
13:20
13:25
13:30
13:41
13:45
13:54
13:55
14:02
14:06
14:10
14:16
14:20
14:25
14:30
14:36
14:41
14:45
14:51
14:58
15:03
15:09
15:16
15:20
15:23
15:26
15:30
15:34
15:40
15:44
15:47
15:51
15:56
16:00
16:05
16:11
16:16
16:22
16:25
16:29
16:33
16:38
16:44
16:47
16:51
16:57
16:59
17:01
17:05
17:10
17:13
17:17
17:20
17:21
17:24
17:29
17:34
17:36
17:39
17:42
17:48
17:53
17:59
18:05
18:10
18:16
18:21
18:27
18:32
18:36
18:41
18:46
18:50
18:54
19:00
19:06
19:08
19:09
19:11
19:12
19:13
19:18
19:22
19:24
19:26
19:28
19:33
19:35
19:39
19:43
19:50
19:55
20:01
20:03
20:11
20:19
20:24
20:32
20:37
20:38
20:42
20:43
20:49
20:53
20:55
20:59
21:03
21:06
21:10
21:15
21:20
21:23
21:25
21:37
21:43
21:46
21:50
21:54
21:55
22:06
22:08
22:12
22:13
22:15
22:22
22:28
22:32
22:33
22:35
22:41
22:43
22:47
22:52
22:57
23:00
23:02
23:03
23:07
23:10
23:16
23:16
23:21
23:22
23:27
23:30
23:35
23:37
23:44
23:48
23:56
24:01
24:06
24:10
24:13
24:16
24:19
24:21
24:25
24:26
24:31
24:37
24:43
24:48
24:51
24:55
24:59
25:02
25:06
25:09
25:15
25:19
25:20
25:24
25:27
25:34
25:36
25:41
25:43
25:45
25:49
25:52
25:56
26:00
26:02
26:03
26:08
26:13
26:17
26:19
26:22
26:26
26:30
26:31
26:33
26:40
26:49
26:52
26:57
27:01
27:08
27:12
27:14
27:18
27:20
27:22
27:23
27:24
27:25
27:32
27:35
27:39
27:46
27:49
28:00
28:09
28:11
28:13
28:18
28:22
28:24
28:25
28:26
28:28
28:34
28:37
28:39
28:40
28:45
28:49
28:50
28:57
29:02
29:05
29:06
29:07
29:08
29:10
29:10
29:14
29:20
29:26
29:30
29:36
29:42
29:47
29:52
29:58
30:05
30:12
30:18
30:23
30:29
30:33
30:39
30:43
30:48
30:52
30:55
30:59
31:02
31:04
31:05
31:08
31:15
31:15
31:15
31:19
31:21
31:27
31:28
31:29
31:34
31:38
31:43
31:49
31:54
32:00
32:04
32:10
32:14
32:19
32:25
32:32
32:38
32:39
32:44
32:45
32:50
32:57
33:00
33:02
33:09
33:16
33:18
33:23
33:28
33:31
33:36
33:40
33:41
33:41
33:47
33:53
33:58
34:04
34:09
34:15
34:19
34:27
34:31
34:36
34:42
34:50
34:56
35:01
35:07
35:12
35:17
35:21
35:26
35:31
35:36
35:41
35:45
35:48
35:52
35:58
36:03
36:05
36:09
36:12
36:14
36:16
36:20
36:24
36:26
36:29
36:32
36:34
36:37
36:43
36:46
36:48
36:52
36:53
36:58
37:00
37:00
37:03
37:06
37:07
37:12
37:13
37:18
37:20
37:22
37:28
37:34
37:39
37:44
37:49
37:54
38:00
38:04
38:10
38:16
38:23
38:29
38:35
38:40
38:48
38:54
38:57
39:02
39:07
39:09
39:14
39:18
39:22
39:23
39:24
39:27
39:31
39:36
39:37
39:41
39:46
39:53
39:56
40:02
40:09
40:15
40:21
40:27
40:30
40:36
40:36
40:37
40:49
40:56
40:58
41:00
41:08
41:10
41:16
41:23
41:30
41:36
41:38
41:42
41:47
41:50
41:51
41:52
41:56
42:04
42:14
42:19
42:24
42:31
42:37
42:40
42:46
42:52
42:57
43:01
43:06
43:06
43:09
43:14
43:15
43:22
43:27
43:33
43:36
43:42
43:46
43:49
43:55
43:58
44:02
44:05
44:10
44:15
44:19
44:24
44:29
44:33
44:35
44:39
44:42
44:44
44:45
44:46
44:51
44:53
44:57
44:58
45:02
45:03
45:05
45:08
45:11
45:12
45:15
45:19
45:21
45:23
45:25
45:29
45:33
45:36
45:42
45:46
45:48
45:51
45:52
45:59
46:01
46:05
46:10
46:15
46:21
46:27
46:32
46:38
46:43
46:48
46:52
46:56
47:00
47:17
47:27
47:32
47:35
47:42
47:46
47:50
47:53
47:57
48:01
48:04
48:06
48:11
48:15
48:21
48:23
48:29
48:29
48:35
48:38
48:45
48:48
48:52
48:55
49:00
49:00
49:01
49:05
49:12
49:18
49:25
49:31
49:38
49:45
49:52
49:57
50:03
50:09
50:15
50:21
50:27
50:32
50:39
50:45
50:51
50:55
50:59
51:05
51:10
51:16
51:19
51:25
51:29
51:35
51:38
51:43
51:48
51:51
51:56
52:01
52:07
52:13
52:18
52:25
52:31
52:36
52:40
52:45
52:50
52:55
52:56
52:58
53:00
53:03
53:05
53:08
53:12
53:15
53:19
53:22
53:25
53:29
53:33
53:37
53:43
53:47
53:53
54:00
54:05
54:10
54:18
54:22
54:23
54:25
54:26
54:27
54:28
54:32
54:36
54:39
54:45
54:50
54:56
55:04
55:11
55:18
55:21
55:25
55:29
55:33
55:38
55:40
55:43
55:47
55:54
56:01
56:09
56:14
56:24
56:31
56:33
56:43
56:47
56:48
56:49
56:55
56:57
56:58
57:02
57:07
57:07
57:12
57:15
57:18
57:21
57:26
57:28
57:35
57:37
57:43
57:47
57:51
57:56
58:02
58:03
58:08
58:10
58:12
58:14
58:20
58:24
58:29
58:32
58:37
58:40
58:49
58:54
59:00
59:06
59:12
59:13
59:15
59:24
59:31
59:42
59:48
59:55
59:59
01:00:01
01:00:04
01:00:06
01:00:11
01:00:12
01:00:15
01:00:21
01:00:27
01:00:29
01:00:37
01:00:44
01:00:46
01:00:55
01:01:01
01:01:03
01:01:06
01:01:11
01:01:20
01:01:26
01:01:35
01:01:38
01:01:40
01:01:50
01:01:54
01:01:57
01:02:04
01:02:14
01:02:20
01:02:24
01:02:28
01:02:34
01:02:36
01:02:38
01:02:41
01:02:48
01:02:51
01:02:58
01:03:01
01:03:07
01:03:17
01:03:24
01:03:31
01:03:34
01:03:38
01:03:43
01:03:49
01:03:51
01:03:56
01:03:58
01:04:01
01:04:06
01:04:09
01:04:11
01:04:13
01:04:14
01:04:14
01:04:18
01:04:21
01:04:25
01:04:30
01:04:33
01:04:34
01:04:36
01:04:39
01:04:42
01:04:46
01:04:48
01:04:51
01:05:05
01:05:12
01:05:16
01:05:21
01:05:25
01:05:27
01:05:28
01:05:32
01:05:35
01:05:35
01:05:37
01:05:43
01:05:48
01:05:51
01:05:52
01:05:52
01:05:53
01:05:53
01:05:56
01:06:00
01:06:04
01:06:07
01:06:14
01:06:15
01:06:26
01:06:40
01:06:44
01:06:49
01:06:54
01:06:57
01:06:59
01:07:00
01:07:06
01:07:09
01:07:24
01:07:39
01:07:45
01:07:50
01:07:53
01:07:57
01:08:03
01:08:08
01:08:12
01:08:14
01:08:18
01:08:21
01:08:24
01:08:26
01:08:30
01:08:31
01:08:43
01:08:48
01:09:00
01:09:03
01:09:03
01:09:09
01:09:10
01:09:11
01:09:13
01:09:23
01:09:23
01:09:29
01:09:31
01:09:37
01:09:42
01:09:46
01:09:52
01:09:53
01:09:57
01:10:04
01:10:09
01:10:14
01:10:27
01:10:32
01:10:34
01:10:36
01:10:39
01:10:40
01:10:42
01:10:47
01:10:48
01:10:53
01:10:53
01:10:57
01:10:58
01:10:59
01:11:00
01:11:04
01:11:05
01:11:10
01:11:12
01:11:17
01:11:22
01:11:26
01:11:29
01:11:30
01:11:33
01:11:34
01:11:35
01:11:35
01:11:40
01:11:44
01:11:45
01:11:49
01:11:54
01:12:01
01:12:06
01:12:08
01:12:09
01:12:10
01:12:16
01:12:22
01:12:27
01:12:33
01:12:39
01:12:44
01:12:52
01:12:54
01:12:58
01:13:04
01:13:11
01:13:18
01:13:24
01:13:30
01:13:37
01:13:41
01:13:45
01:13:49
01:13:55
01:13:58
01:13:59
01:14:05
01:14:11
01:14:12
01:14:15
01:14:20
01:14:22
01:14:26
01:14:26
01:14:32
01:14:36
01:14:40
01:14:45
01:14:49
01:14:55
01:14:57
01:15:00
01:15:05
01:15:08
01:15:16
01:15:17
01:15:19
01:15:20
01:15:25
01:15:29
01:15:33
01:15:38
01:15:40
01:15:47
01:15:51
01:15:54
01:15:58
01:15:59
01:16:01
01:16:06
01:16:16
01:16:22
01:16:29
01:16:34
01:16:35
01:16:39
01:16:42
01:16:43
01:16:47
01:16:49
01:16:52
01:16:53
01:16:54
01:16:57
01:17:00
01:17:01
01:17:02
01:17:04
01:17:08
01:17:13
01:17:18
01:17:20
01:17:25
01:17:30
01:17:37
01:17:40
01:17:42
01:17:46
01:17:47
01:17:49
01:17:51
01:17:54
01:17:56
01:17:58
01:17:59
01:18:01
01:18:27


