Merge pull request #4194 from mplattner/docs-tutorials

Add interactive tutorials to the documentation
This commit is contained in:
Maximilian Hils 2020-09-07 18:30:15 +02:00 committed by GitHub
commit dbb86800e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 6526 additions and 168 deletions

View File

@ -14,6 +14,7 @@ Unreleased: mitmproxy next
* Updated raw exports to not remove headers (@wchasekelley)
* Fix file unlinking before external viewer finishes loading (@wchasekelley)
* Add --cert-passphrase command line argument (@mirosyn)
* Add interactive tutorials to the documentation (@mplattner)
* --- TODO: add new PRs above this line ---

View File

@ -8,7 +8,7 @@ set -o nounset
SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
pushd ${SCRIPTPATH}
for script in scripts/* ; do
for script in scripts/*.py ; do
output="${script##*/}"
output="src/generated/${output%.*}.html"
echo "Generating output for ${script} into ${output} ..."

View File

@ -0,0 +1,45 @@
# todo: use a more lightweight base, e.g., Alpine Linux
FROM ubuntu:18.04
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV TERM screen-256color
# install mitmproxy, asciinema, and dependencies
RUN apt-get update && apt-get install -y \
asciinema \
autoconf \
automake \
autotools-dev \
bison \
curl \
git \
libevent-dev \
libtool \
locales \
m4 \
make \
ncurses-dev \
pkg-config \
python3-pip \
python3 \
wget \
xterm \
&& locale-gen --purge "en_US.UTF-8" \
&& update-locale "LANG=en_US.UTF-8" \
&& pip3 install libtmux curl requests mitmproxy
# install latest tmux (to support popups)
RUN git clone https://github.com/tmux/tmux.git \
&& cd tmux \
&& sh autogen.sh \
&& ./configure && make && make install
WORKDIR /root/clidirector
COPY ./docker/tmux.conf ../.tmux.conf
COPY clidirector.py screenplays.py record.py ./
RUN echo 'PS1="[tutorial@mitmproxy] $ "' >> /root/.bashrc
ENTRYPOINT [ "./record.py" ]

View File

@ -0,0 +1,160 @@
import json
import libtmux
import random
import subprocess
import threading
import time
import typing
class InstructionSpec(typing.NamedTuple):
instruction: str
time_from: float
time_to: float
class CliDirector:
def __init__(self):
self.record_start = None
self.pause_between_keys = 0.2
self.instructions: typing.List[InstructionSpec] = []
def start(self, filename: str, width: int = 0, height: int = 0) -> libtmux.Session:
self.start_session(width, height)
self.start_recording(filename)
return self.tmux_session
def start_session(self, width: int = 0, height: int = 0) -> libtmux.Session:
self.tmux_server = libtmux.Server()
self.tmux_session = self.tmux_server.new_session(session_name="asciinema_recorder", kill_session=True)
self.tmux_pane = self.tmux_session.attached_window.attached_pane
self.tmux_version = self.tmux_pane.display_message("#{version}", True)
if width and height:
self.resize_window(width, height)
self.pause(3)
return self.tmux_session
def start_recording(self, filename: str) -> None:
self.asciinema_proc = subprocess.Popen([
"asciinema", "rec", "-y", "--overwrite", "-c", "tmux attach -t asciinema_recorder", filename])
self.pause(1.5)
self.record_start = time.time()
def resize_window(self, width: int, height: int) -> None:
subprocess.Popen(["resize", "-s", str(height), str(width)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
def end(self) -> None:
self.end_recording()
self.end_session()
def end_recording(self) -> None:
self.asciinema_proc.terminate()
self.asciinema_proc.wait(timeout=5)
self.record_start = None
self.instructions = []
def end_session(self) -> None:
self.tmux_session.kill_session()
def press_key(self, keys: str, count=1, pause: typing.Optional[float] = None, target = None) -> None:
if pause is None:
pause = self.pause_between_keys
if target is None:
target = self.tmux_pane
for i in range(count):
if keys == " ":
keys = "Space"
target.send_keys(cmd=keys, enter=False, suppress_history=False)
# inspired by https://github.com/dmotz/TuringType
real_pause = random.uniform(0, pause) + 0.4 * pause
if keys == "Space":
real_pause += 1.5 * pause
elif keys == ".":
real_pause += pause
elif random.random() > 0.75:
real_pause += pause
elif random.random() > 0.95:
real_pause += 2 * pause
self.pause(real_pause)
def type(self, keys: str, pause: typing.Optional[float] = None, target = None) -> None:
if pause is None:
pause = self.pause_between_keys
if target is None:
target = self.tmux_pane
target.select_pane()
for key in keys:
self.press_key(key, pause=pause, target=target)
def exec(self, keys: str, target = None) -> None:
if target is None:
target = self.tmux_pane
self.type(keys, target=target)
self.pause(1.25)
self.press_key("Enter", target=target)
self.pause(0.5)
def focus_pane(self, pane: libtmux.Pane, set_active_pane: bool = True) -> None:
pane.select_pane()
if set_active_pane:
self.tmux_pane = pane
def pause(self, seconds: float) -> None:
time.sleep(seconds)
def run_external(self, command: str) -> None:
subprocess.run(command, shell=True)
def message(self, msg: str, duration: typing.Optional[int] = None, add_instruction: bool = True, instruction_html: str = "") -> None:
if duration is None:
duration = len(msg) * 0.08 # seconds
self.tmux_session.set_option("display-time", int(duration * 1000)) # milliseconds
self.tmux_pane.display_message(" " + msg)
if add_instruction or instruction_html:
if not instruction_html:
instruction_html = msg
self.instruction(instruction=instruction_html, duration=duration)
self.pause(duration + 0.5)
def popup(self, content: str, duration: int = 4) -> None:
# todo: check if installed tmux version supports display-popup
# tmux's display-popup is blocking, so we close it in a separate thread
t = threading.Thread(target=self.close_popup, args=[duration])
t.start()
lines = content.splitlines()
self.tmux_pane.cmd("display-popup", "", *lines)
t.join()
def close_popup(self, duration: float = 0) -> None:
self.pause(duration)
self.tmux_pane.cmd("display-popup", "-C")
def instruction(self, instruction: str, duration: float = 3, time_from: typing.Optional[float] = None) -> None:
if time_from is None:
time_from = self.current_time
self.instructions.append(InstructionSpec(
instruction = str(len(self.instructions) + 1) + ". " + instruction,
time_from = round(time_from, 1),
time_to = round(time_from + duration, 1)
))
def save_instructions(self, output_path: str) -> None:
instr_as_dicts = []
for instr in self.instructions:
instr_as_dicts.append(instr._asdict())
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(instr_as_dicts, f, ensure_ascii=False, indent=4)
@property
def current_time(self) -> float:
now = time.time()
return round(now - self.record_start, 1)
@property
def current_pane(self) -> libtmux.Pane:
return self.tmux_pane

View File

@ -0,0 +1,21 @@
set -g default-terminal "screen-256color"
set-option -g status-position top
set -g status-style "bg=#000000,fg=#ffffff"
set -g message-style "bg=#3273dc,fg=#ffffff"
set -g status-justify left
set -g status-left ""
set -g status-right ""
setw -g window-status-current-format ""
# pane options
setw -g pane-base-index 1
setw -g pane-border-format " Terminal Window #P --------------------------------------------------------------------------------------------------------"
setw -g pane-border-status top
setw -g pane-border-lines simple
setw -g pane-border-style "fg=#cccccc"
setw -g pane-active-border-style "fg=#ffffff"

View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
docker build --pull --rm -t mitmproxy-clirecorder:latest .
docker run -i -t --rm \
-v "$(pwd)"/../../src/static/recordings:/root/clidirector/recordings \
mitmproxy-clirecorder:latest

View File

@ -0,0 +1,12 @@
#!/usr/bin/env python3
from clidirector import CliDirector
import screenplays
if __name__ == '__main__':
director = CliDirector()
screenplays.record_user_interface(director)
screenplays.record_intercept_requests(director)
screenplays.record_modify_requests(director)
screenplays.record_replay_requests(director)

View File

@ -0,0 +1,278 @@
#!/usr/bin/env python3
from clidirector import CliDirector
def record_user_interface(d: CliDirector):
tmux = d.start_session(width=120, height=36)
window = tmux.attached_window
d.start_recording("recordings/mitmproxy_user_interface.cast")
d.message("Welcome to the mitmproxy tutorial. In this lesson we cover the user interface.")
d.pause(1)
d.exec("mitmproxy")
d.pause(3)
d.message("This is the default view of mitmproxy.")
d.message("mitmproxy adds rows to the view as new requests come in.")
d.message("Lets generate some requests using `curl` in a separate terminal.")
pane_top = d.current_pane
pane_bottom = window.split_window(attach=True)
pane_bottom.resize_pane(height=12)
d.focus_pane(pane_bottom)
d.pause(2)
d.type("curl")
d.message("Use curls `--proxy` option to configure mitmproxy as a proxy.")
d.type(" --proxy http://127.0.0.1:8080")
d.message("We use the text-based weather service `wttr.in`.")
d.exec(" \"http://wttr.in/Dunedin?0\"")
d.pause(2)
d.press_key("Up")
d.press_key("Left", count=3)
d.press_key("BSpace", count=7)
d.exec("Innsbruck")
d.pause(2)
d.exec("exit", target=pane_bottom)
d.focus_pane(pane_top)
d.message("You see the requests to `wttr.in` in the list of flows.")
d.message("mitmproxy is controlled using keyboard shortcuts.")
d.message("Use your arrow keys `↑` and `↓` to change the focused flow (`>>`).")
d.press_key("Down", pause=0.5)
d.press_key("Up", pause=0.5)
d.press_key("Down", pause=0.5)
d.press_key("Up", pause=0.5)
d.message("The focused flow (`>>`) is used as a target for various commands.")
d.message("One such command shows the flow details, it is bound to `ENTER`.")
d.message("Press `ENTER` to view the details of the focused flow.")
d.press_key("Enter")
d.message("The flow details view has 3 panes: request, response, and detail.")
d.message("Use your arrow keys `←` and `→` to switch between panes.")
d.press_key("Right", count=2, pause=2.5)
d.press_key("Left", count=2, pause=1)
d.message("Press `q` to exit the current view.",)
d.type("q")
d.message("Press `?` to get a list of all available keyboard shortcuts.")
d.type("?")
d.pause(2)
d.press_key("Down", count=20, pause=0.25)
d.message("Tip: Remember the `?` shortcut. It works in every view.")
d.message("Press `q` to exit the current view.")
d.type("q")
d.message("Each shortcut is internally bound to a command.")
d.message("You can also execute commands directly (without using shortcuts).")
d.message("Press `:` to open the command prompt at the bottom.")
d.type(":")
d.message("Enter `console.view.flow @focus`.")
d.type("console.view.flow @focus")
d.message("The command `console.view.flow` opens the details view for a flow.")
d.message("The argument `@focus` defines the target flow.")
d.message("Press `ENTER` to execute the command.")
d.press_key("Enter")
d.message("Commands unleash the full power of mitmproxy, i.e., to configure interceptions.")
d.message("You now know basics of mitmproxys UI and how to control it.")
d.pause(1)
d.message("In the next lesson you will learn to intercept flows.")
d.save_instructions("recordings/mitmproxy_user_interface_instructions.json")
d.end()
def record_intercept_requests(d: CliDirector):
tmux = d.start_session(width=120, height=36)
window = tmux.attached_window
d.start_recording("recordings/mitmproxy_intercept_requests.cast")
d.message("Welcome to the mitmproxy tutorial. In this lesson we cover the interception of requests.")
d.pause(1)
d.exec("mitmproxy")
d.pause(3)
d.message("We first need to configure mitmproxy to intercept requests.")
d.message("Press `i` to prepopulate mitmproxys command prompt with `set intercept ''`.")
d.type("i")
d.pause(2)
d.message("We use the flow filter expression `~u <regex>` to only intercept specific URLs.")
d.message("Additionally, we use the filter `~q` to only intercept requests, but not responses.")
d.message("We combine both flow filters using `&`.")
d.message("Enter `~u /Dunedin & ~q` between the quotes of the `set intercept` command and press `ENTER`.")
d.exec("~u /Dunedin & ~q")
d.message("The bottom bar shows that the interception has been configured.")
d.message("Lets generate a request using `curl` in a separate terminal.")
pane_top = d.current_pane
pane_bottom = window.split_window(attach=True)
pane_bottom.resize_pane(height=12)
d.focus_pane(pane_bottom)
d.pause(2)
d.exec("curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"")
d.pause(2)
d.focus_pane(pane_top)
d.message("You see a new line in in the list of flows.")
d.message("The new flow is displayed in red to indicate that it has been intercepted.")
d.message("Put the focus (`>>`) on the intercepted flow. This is already the case in our example.")
d.message("Press `a` to resume this flow without making any changes.")
d.type("a")
d.pause(2)
d.focus_pane(pane_bottom)
d.message("Submit another request and focus its flow.")
d.press_key("Up")
d.press_key("Enter")
d.pause(2)
d.focus_pane(pane_top)
d.press_key("Down")
d.pause(1)
d.message("Press `X` to kill this flow, i.e., discard it without forwarding it to its final destination `wttr.in`.")
d.type("X")
d.pause(3)
d.message("In the next lesson you will learn to modify intercepted flows.")
d.save_instructions("recordings/mitmproxy_intercept_requests_instructions.json")
d.end()
def record_modify_requests(d: CliDirector):
tmux = d.start_session(width=120, height=36)
window = tmux.attached_window
d.start_recording("recordings/mitmproxy_modify_requests.cast")
d.message("Welcome to the mitmproxy tutorial. In this lesson we cover the modification of intercepted requests.")
d.pause(1)
d.exec("mitmproxy")
d.pause(3)
d.message("We configure and use the same interception rule as in the last tutorial.")
d.message("Press `i` to prepopulate mitmproxys command prompt, enter the flow filter `~u /Dunedin & ~q`, and press `ENTER`.")
d.type("i")
d.pause(2)
d.exec("~u /Dunedin & ~q")
d.message("Lets generate a request using `curl` in a separate terminal.")
pane_top = d.current_pane
pane_bottom = window.split_window(attach=True)
pane_bottom.resize_pane(height=12)
d.focus_pane(pane_bottom)
d.pause(2)
d.exec("curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"")
d.pause(2)
d.focus_pane(pane_top)
d.message("We now want to modify the intercepted request.")
d.message("Put the focus (`>>`) on the intercepted flow. This is already the case in our example.")
d.message("Press `ENTER` to open the details view for the intercepted flow.")
d.press_key("Enter")
d.message("Press `e` to edit the intercepted flow.")
d.type("e")
d.message("mitmproxy asks which part to modify.")
d.message("Select `path` by using your arrow keys and press `ENTER`.")
d.press_key("Down", count=3, pause=0.5)
d.pause(1)
d.press_key("Enter")
d.message("mitmproxy shows all path components line by line, in our example its just `Dunedin`.")
d.message("Press `ENTER` to modify the selected path component.")
d.press_key("Down", pause=2)
d.press_key("Enter")
d.message("Replace `Dunedin` with `Innsbruck`.")
d.press_key("BSpace", count=7, pause=0.5)
d.type("Innsbruck", pause=0.5)
d.message("Press `ESC` to confirm your change.")
d.press_key("Escape")
d.message("Press `q` to go back to the flow details view.")
d.type("q")
d.message("Press `a` to resume the intercepted flow.")
d.type("a")
d.pause(2)
d.message("You see that the request URL was modified and `wttr.in` replied with the weather report for `Innsbruck`.")
d.message("In the next lesson you will learn to replay flows.")
d.save_instructions("recordings/mitmproxy_modify_requests_instructions.json")
d.end()
def record_replay_requests(d: CliDirector):
tmux = d.start_session(width=120, height=36)
window = tmux.attached_window
d.start_recording("recordings/mitmproxy_replay_requests.cast")
d.message("Welcome to the mitmproxy tutorial. In this lesson we cover replaying requests.")
d.pause(1)
d.exec("mitmproxy")
d.pause(3)
d.message("Lets generate a request that we can replay. We use `curl` in a separate terminal.")
pane_top = d.current_pane
pane_bottom = window.split_window(attach=True)
pane_bottom.resize_pane(height=12)
d.focus_pane(pane_bottom)
d.pause(2)
d.exec("curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"")
d.pause(2)
d.focus_pane(pane_top)
d.message("We now want to replay the this request.")
d.message("Put the focus (`>>`) on the request that should be replayed. This is already the case in our example.")
d.message("Press `r` to replay the request.")
d.type("r")
d.message("Note that no new rows are added for replayed flows, but the existing row is updated.")
d.message("Every time you press `r`, mitmproxy sends this request to the server again and updates the flow.")
d.press_key("r", count=4, pause=1)
d.message("You can also modify a flow before replaying it.")
d.message("It works as shown in the previous lesson, by pressing `e`.")
d.message("Congratulations! You have completed all lessons of the mitmproxy tutorial.")
d.save_instructions("recordings/mitmproxy_replay_requests_instructions.json")
d.end()

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,45 @@
var timer;
function playEvent(e) {
var player = this;
timer = setInterval(function(){
updateInstructions(player);
}, 250);
}
function pauseEvent(e) {
if (timer){
clearInterval(timer);
}
}
function updateInstructions(player) {
var instructions = player.instructions;
var currTime = player.currentTime;
for(let i = 0; i < instructions.length; i++) {
if (instructions[i].getAttribute("data-from") < currTime
&& instructions[i].getAttribute("data-to") > currTime) {
instructions[i].classList.add("is-active");
}
else {
instructions[i].classList.remove("is-active");
}
}
}
document.addEventListener("DOMContentLoaded", function() {
var asciinemaPlayer = document.getElementById('asciinema-player');
asciinemaPlayer.instructions = asciinemaPlayer.parentElement.getElementsByClassName("panel-block");
asciinemaPlayer.addEventListener("play", playEvent);
asciinemaPlayer.addEventListener('pause', pauseEvent);
for(let i = 0; i < asciinemaPlayer.instructions.length; i++) {
var instruction = asciinemaPlayer.instructions[i];
instruction.addEventListener("click", function(e){
asciinemaPlayer.currentTime = this.getAttribute("data-from");
asciinemaPlayer.play();
e.preventDefault();
return false;
});
}
});

View File

@ -5,6 +5,9 @@ $primary: #C93312;
$warning-invert: #FFFFFF;
$family-sans-serif: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif, 'Font Awesome 5 Free', 'Font Awesome 5 Brands' !default;
$panel-heading-size: 1em;
$panel-heading-weight: 600;
/*!*
bulma.io v0.8.0 | MIT License | github.com/jgthms/bulma */
@import "./bulma/utilities/_all";
@ -92,3 +95,28 @@ h1, h2, h3, h4, h5, h6 {
figure.has-border img {
box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
}
.asciicast-wrapper {
margin: 2rem 0;
asciinema-player {
display: block;
margin-bottom: 1rem;
}
// reset bulma pre styles
pre.asciinema-terminal {
padding: 0;
overflow-x: hidden;
-webkit-overflow-scrolling: auto;
}
.panel-block {
justify-content: space-between;
}
.panel-block.is-active .tag {
background-color: $link;
color: $white;
}
}

View File

@ -8,20 +8,7 @@ menu:
# Introduction
The mitmproxy project's tools are a set of front-ends that expose common
underlying functionality.
**mitmproxy** is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets.
**mitmdump** is the command-line version of mitmproxy. Think tcpdump for HTTP.
**mitmweb** is a web-based interface for mitmproxy.
Documentation, tutorials and distribution packages can be found on the
[mitmproxy website](https://mitmproxy.org).
Development information and our source code can be found in our
[GitHub repository](https://github.com/mitmproxy/mitmproxy).
mitmproxy is a set of tools that provide an interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets.
## Features
@ -34,4 +21,114 @@ Development information and our source code can be found in our
- Transparent proxy mode on macOS and Linux
- Make scripted changes to HTTP traffic using Python
- SSL/TLS certificates for interception are generated on the fly
- And much, much more...
- And [much, much more...]({{< relref "overview-features">}})
## 3 Powerful Core Tools
The mitmproxy project's tools are a set of front-ends that expose common
underlying functionality. When we talk about "mitmproxy" we usually refer to any of the three tools - they
are just different front-ends to the same core proxy.
**mitmproxy** is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets.
**mitmweb** is a web-based interface for mitmproxy.
**mitmdump** is the command-line version of mitmproxy. Think tcpdump for HTTP.
Distribution packages can be found on the [mitmproxy website](https://mitmproxy.org).
Development information and our source code can be found in our
[GitHub repository](https://github.com/mitmproxy/mitmproxy).
### mitmproxy
{{< figure src="/screenshots/mitmproxy.png" >}}
**mitmproxy** is a console tool that allows interactive examination and
modification of HTTP traffic. It differs from mitmdump in that all flows are
kept in memory, which means that it's intended for taking and manipulating
small-ish samples. Use the `?` shortcut key to view, context-sensitive
documentation from any **mitmproxy** screen.
---
### mitmweb
{{< figure src="/screenshots/mitmweb.png" >}}
**mitmweb** is mitmproxy's web-based user interface that allows
interactive examination and modification of HTTP traffic. Like
mitmproxy, it differs from mitmdump in that all flows are kept in
memory, which means that it's intended for taking and manipulating
small-ish samples.
{{% note %}}
Mitmweb is currently in beta. We consider it stable for all features
currently exposed in the UI, but it still misses a lot of mitmproxy's
features.
{{% /note %}}
---
### mitmdump
**mitmdump** is the command-line companion to mitmproxy. It provides
tcpdump-like functionality to let you view, record, and programmatically
transform HTTP traffic. See the `--help` flag output for complete
documentation.
#### Example: Saving traffic
```bash
mitmdump -w outfile
```
Start up mitmdump in proxy mode, and write all traffic to **outfile**.
#### Filtering saved traffic
```bash
mitmdump -nr infile -w outfile "~m post"
```
Start mitmdump without binding to the proxy port (`-n`), read all flows
from infile, apply the specified filter expression (only match POSTs),
and write to outfile.
#### Client replay
```bash
mitmdump -nC outfile
```
Start mitmdump without binding to the proxy port (`-n`), then replay all
requests from outfile (`-C filename`). Flags combine in the obvious way,
so you can replay requests from one file, and write the resulting flows
to another:
```bash
mitmdump -nC srcfile -w dstfile
```
See the [client-side replay]({{< relref "overview-features#client-side-replay"
>}}) section for more information.
#### Running a script
```bash
mitmdump -s examples/simple/add_header.py
```
This runs the **add_header.py** example script, which simply adds a new
header to all responses.
#### Scripted data transformation
```bash
mitmdump -ns examples/simple/add_header.py -r srcfile -w dstfile
```
This command loads flows from **srcfile**, transforms it according to
the specified script, then writes it back to **dstfile**.

View File

@ -0,0 +1,22 @@
---
title: "Intercept Requests"
menu:
mitmproxytutorial:
weight: 2
has_asciinema: true
---
# Intercept Requests
A powerful feature of mitmproxy is the interception of requests.
An intercepted request is paused so that the user can modify (or discard) the request before sending it to the server.
mitmproxy's `set intercept` command configures interceptions.
The command is bound to shortcut `i` by default.
Intercepting *all* requests is usually not desired as it constantly interrupts your browsing.
Thus, mitmproxy expects a [flow filter expression]({{< relref "concepts-filters" >}}) as the first argument to `set intercept` to selectively intercept requests.
In the tutorial below we use the flow filter `~u <regex>` that filters flows by matching the regular expressing on the URL of the request.
{{% asciicast file="mitmproxy_intercept_requests" poster="0:3" instructions=true %}}
In the next lesson, you will learn to modify intercepted flows before sending them to the server.

View File

@ -0,0 +1,17 @@
---
title: "Modify Requests"
menu:
mitmproxytutorial:
weight: 3
has_asciinema: true
---
# Modify Requests
In the previous step we resumed intercepted requests without changes.
The full power of interceptions comes to play when we modify an intercepted request before forwarding it to its destination.
You can continue with the window and the already configured interception rule from the previous step.
{{% asciicast file="mitmproxy_modify_requests" poster="0:3" instructions=true %}}
In the next lesson, you will learn to replay previous flows.

View File

@ -0,0 +1,22 @@
---
title: "Replay Requests"
menu:
mitmproxytutorial:
weight: 4
has_asciinema: true
---
# Replay Requests
Another powerful feature of mitmproxy is replaying previous flows.
Two types of replays are supported:
* **Client-side Replay:** mitmproxy replays previous client requests, i.e., sends the same request to the server again.
* **Server-side Replay:** mitmproxy replays server responses for requests that match an earlier recorded request.
In this tutorial we focus on the more common use case of client-side replays.
See the docs for more info on [server-side replay]({{< relref "overview-features#server-side-replay" >}}).
{{% asciicast file="mitmproxy_replay_requests" poster="0:3" instructions=true %}}
You are almost done with this tutorial. In the last step you find more mitmproxy-related resources to discover.

View File

@ -0,0 +1,19 @@
---
title: "User Interface"
menu:
mitmproxytutorial:
weight: 1
has_asciinema: true
---
# User Interface
First of all, we need to become familiar with mitmproxy's user interface.
Open the terminal window in which you started mitmproxy.
You are in the default view of mitmproxy, which shows a list of flows.
You should see your browser's HTTP requests to load this tutorial.
mitmproxy adds rows to the view as new requests come in.
{{% asciicast file="mitmproxy_user_interface" poster="0:3" instructions=true %}}
In the next lesson, you will learn to intercept requests before sending them to the server.

View File

@ -0,0 +1,42 @@
---
title: "What's Next"
menu:
mitmproxytutorial:
weight: 5
---
# What's Next
Congratulations! You have successfully completed the mitmproxy tutorial. 🎉
We hope it was worthwhile and helped you getting up to speed with mitmproxy.
Is there anything you feel is missing? Or anything that is not clear? Please let us know in our <a href="https://github.com/mitmproxy/mitmproxy/issues/3142" target="_blank"> dedicated issue on GitHub</a>.
## Advanced usage
In this tutorial we have used mitmproxy to inspect requests initiated by curl.
You probably also want to inspect web traffic from your browser or some other tool.
To do so, you need to [configure mitmproxy as your client's proxy]({{< relref "overview-getting-started#configure-your-browser-or-device" >}}).
This tutorial is not meant as a replacement for our extensive docs.
mitmproxy has far more features than what we've shown you.
We recommend to read the documentation to get the full picture.
If you want to get in touch with the developers or other users, please use our [Slack channel](https://mitmproxy.slack.com).
If you want to contribute to mitmproxy or submit a bug report or other feedback, please do so on [GitHub](https://github.com/mitmproxy/).
### Customize Key bindings
Mitmproxy's key bindings can be customized to your needs in the
`~/.mitmproxy/keys.yaml` file. This file consists of a sequence of maps, with
the following keys:
* `key` (**mandatory**): The key to bind.
* `cmd` (**mandatory**): The command to execute when the key is pressed.
* `context`: A list of contexts in which the key should be bound. By default this is **global** (i.e. the key is bound everywhere). Valid contexts are `chooser`, `commands`, `dataviewer`, `eventlog`, `flowlist`, `flowview`, `global`, `grideditor`, `help`, `keybindings`, `options`.
* `help`: A help string for the binding which will be shown in the key binding browser.
#### Example
{{< example src="examples/keys.yaml" lang="yaml" >}}

View File

@ -1,12 +1,11 @@
---
title: "Features"
menu: "overview"
menu:
overview:
concepts:
weight: 4
---
# Mitmproxy Core Features
# Features
- [Anticache](#anticache)
@ -79,7 +78,7 @@ Pattern | Description
If *local-path* is a file, this file will always be served. File changes will be reflected immediately, there is no caching.
If *local-path* is a directory, *url-regex* is used to split the request URL in two parts and part on the right is appended to *local-path*, excluding the query string.
However, if *url-regex* contains a regex capturing group, this behavior changes and the first capturing group is appended instead (and query strings are not stripped).
However, if *url-regex* contains a regex capturing group, this behavior changes and the first capturing group is appended instead (and query strings are not stripped).
Special characters are mapped to `_`. If the file cannot be found, `/index.html` is appended and we try again. Directory traversal outside of the originally specified directory is not possible.
To illustrate this, consider the following example which maps all requests for `example.org/css*` to the local directory `~/static-css`.
@ -98,7 +97,7 @@ Served File: Preferred: <span style="color:#82b719">~/static-css</span><spa
Otherwise: 404 response without content
</pre>
If the file depends on the query string, we can use regex capturing groups. In this example, all `GET` requests for
If the file depends on the query string, we can use regex capturing groups. In this example, all `GET` requests for
`example.org/index.php?page=<page-name>` are mapped to `~/static-dir/<page-name>`:
<pre>

View File

@ -8,21 +8,22 @@ menu:
# Getting Started
You have already [installed]({{< relref "overview-installation">}}) mitmproxy on
We assume you have already [installed]({{< relref "overview-installation">}}) mitmproxy on
your machine.
# Launch the tool you need
You can start any of our three tools from the command line / terminal:
## Launch the tool you need
* [mitmproxy]({{< relref "tools-mitmproxy">}}) -> gives you an interactive TUI
* [mitmdump]({{< relref "tools-mitmdump">}}) -> gives you a plain and simple terminal output
* [mitmweb]({{< relref "tools-mitmweb">}}) -> gives you a browser-based GUI
You can start any of our three tools from the command line / terminal.
When we talk about "mitmproxy" we usually refer to any of the three tools - they
are just different front-ends to the same core proxy.
* **mitmproxy** gives you an interactive TUI
* **mitmweb** gives you a browser-based GUI
* **mitmdump** gives you a plain and simple terminal output
# Configure your browser or device
In case you use the console-based version of mitmproxy, we highly recommend you to take the [tutorial]({{< relref "mitmproxytutorial-userinterface" >}}) to get started.
## Configure your browser or device
For the basic setup as [regular proxy]({{< relref
"concepts-modes#regular-proxy">}}), you need to configure your browser or device
@ -39,11 +40,16 @@ Authority - which is also the next steps. Follow the instructions for your OS /
system and install the CA (and make sure to enable it, some system require
multiple steps!).
# Verifying everything works
## Verifying everything works
At this point your running mitmproxy instance should already show the first HTTP
flows from your client. You can test that all TLS-encrypted web traffic is
working as expected by browsing to https://mitmproxy.org - it should show up as
new flow and you can inspect it.
Done.
## Resources
* [**GitHub**](https://github.com/mitmproxy/): If you want to contribute to mitmproxy or submit a bug report or other feedback, please do so on GitHub.
* [**Slack**](https://mitmproxy.slack.com): If you want to get in touch with the developers or other users, please use our Slack channel.

View File

@ -46,16 +46,16 @@ After installation, you'll find shortcuts for mitmweb and mitmdump in the start
menu. Both executables are added to your PATH and can be invoked from the
command line.
# Advanced Installation
## Advanced Installation
## Development Setup
### Development Setup
If you would like to install mitmproxy directly from source code or the
GitHub master branch, please see the our
[README](https://github.com/mitmproxy/mitmproxy#installation)
on GitHub.
## Installation from the Python Package Index (PyPI)
### Installation from the Python Package Index (PyPI)
If your mitmproxy addons require the installation of additional Python packages,
you can install mitmproxy from [PyPI](https://pypi.org/project/mitmproxy/).
@ -72,12 +72,12 @@ While there are plenty of options around[^1], we recommend the installation usin
To install additional Python packages, run `pipx inject mitmproxy <your-package-name>`.
## Docker Images
### Docker Images
You can use the official mitmproxy images from
[DockerHub](https://hub.docker.com/r/mitmproxy/mitmproxy/).
## Security Considerations for Binary Packages
### Security Considerations for Binary Packages
Our pre-compiled binary packages and Docker images include a self-contained
Python 3 environment, a recent version of OpenSSL that support ALPN and HTTP/2,

View File

@ -1,70 +0,0 @@
---
title: "mitmdump"
menu: "tools"
menu:
tools:
weight: 2
---
## mitmdump
**mitmdump** is the command-line companion to mitmproxy. It provides
tcpdump-like functionality to let you view, record, and programmatically
transform HTTP traffic. See the `--help` flag output for complete
documentation.
### Example: Saving traffic
```bash
mitmdump -w outfile
```
Start up mitmdump in proxy mode, and write all traffic to **outfile**.
### Filtering saved traffic
```bash
mitmdump -nr infile -w outfile "~m post"
```
Start mitmdump without binding to the proxy port (`-n`), read all flows
from infile, apply the specified filter expression (only match POSTs),
and write to outfile.
### Client replay
```bash
mitmdump -nC outfile
```
Start mitmdump without binding to the proxy port (`-n`), then replay all
requests from outfile (`-C filename`). Flags combine in the obvious way,
so you can replay requests from one file, and write the resulting flows
to another:
```bash
mitmdump -nC srcfile -w dstfile
```
See the [client-side replay]({{< relref "overview-features#client-side-replay"
>}}) section for more information.
### Running a script
```bash
mitmdump -s examples/simple/add_header.py
```
This runs the **add_header.py** example script, which simply adds a new
header to all responses.
### Scripted data transformation
```bash
mitmdump -ns examples/simple/add_header.py -r srcfile -w dstfile
```
This command loads flows from **srcfile**, transforms it according to
the specified script, then writes it back to **dstfile**.

View File

@ -1,36 +0,0 @@
---
title: "mitmproxy"
menu: "tools"
menu:
tools:
weight: 1
---
## mitmproxy
{{< figure src="/screenshots/mitmproxy.png" >}}
**mitmproxy** is a console tool that allows interactive examination and
modification of HTTP traffic. It differs from mitmdump in that all flows are
kept in memory, which means that it's intended for taking and manipulating
small-ish samples. Use the `?` shortcut key to view, context-sensitive
documentation from any **mitmproxy** screen.
### Key binding configuration
Mitmproxy's key bindings can be customized through in the
`~/.mitmproxy/keys.yaml` file. This file consists of a sequence of maps, with
the following keys:
* `key` (**mandatory**): The key to bind.
* `cmd` (**mandatory**): The command to execute when the key is pressed.
* `context`: A list of contexts in which the key should be bound. By default this is **global** (i.e. the key is bound everywhere). Valid contexts are `chooser`, `commands`, `dataviewer`, `eventlog`, `flowlist`, `flowview`, `global`, `grideditor`, `help`, `keybindings`, `options`.
* `help`: A help string for the binding which will be shown in the key binding browser.
#### Example
{{< example src="examples/keys.yaml" lang="yaml" >}}

View File

@ -1,23 +0,0 @@
---
title: "mitmweb"
menu: "tools"
menu:
tools:
weight: 3
---
## mitmweb
{{< figure src="/screenshots/mitmweb.png" >}}
**mitmweb** is mitmproxy's web-based user interface that allows
interactive examination and modification of HTTP traffic. Like
mitmproxy, it differs from mitmdump in that all flows are kept in
memory, which means that it's intended for taking and manipulating
small-ish samples.
{{% note %}}
Mitmweb is currently in beta. We consider it stable for all features
currently exposed in the UI, but it still misses a lot of mitmproxy's
features.
{{% /note %}}

View File

@ -8,8 +8,8 @@
<p class="menu-label"> Overview </p>
{{ partial "sidemenu" (dict "ctx" . "menuname" "overview") }}
<p class="menu-label">Tools</p>
{{ partial "sidemenu" (dict "ctx" . "menuname" "tools") }}
<p class="menu-label">mitmproxy Tutorial</p>
{{ partial "sidemenu" (dict "ctx" . "menuname" "mitmproxytutorial") }}
<p class="menu-label">Core concepts</p>
{{ partial "sidemenu" (dict "ctx" . "menuname" "concepts") }}

View File

@ -0,0 +1,19 @@
{{ $file := .Get "file" }}
<div class="asciicast-wrapper">
<asciinema-player id="asciinema-player" src="/recordings/{{ $file }}.cast" font-size="13px" poster="npt:{{ .Get "poster" }}" preload></asciinema-player>
{{- if .Get "instructions" -}}
{{- $instructions_file := print "static/recordings/" $file "_instructions.json" -}}
{{ $data := getJSON $instructions_file }}
<article class="panel">
<p class="panel-heading">
Video Content
</p>
{{- range $instr := $data -}}
<a href="#" class="panel-block" data-from="{{ $instr.time_from }}" data-to="{{ $instr.time_to }}">
<span class="instruction-text">{{ $instr.instruction | markdownify }}</span>
<span class="tag is-light">{{ int $instr.time_from | dateFormat "04:05" }}</span>
</a>
{{- end -}}
</article>
{{- end -}}
</div>

View File

@ -0,0 +1,302 @@
{"version": 2, "width": 120, "height": 36, "timestamp": 1599237423, "env": {"SHELL": null, "TERM": "screen-256color"}}
[0.006365, "o", "\u001b[?1049h\u001b[?1h\u001b=\u001b[H\u001b[J\u001b[34h\u001b[?25h\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006l\u001b[?1005l\u001b[m\u000f\u001b[34l\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;36r\u001b[>c\u001b[>q\u001b[3;24H"]
[0.00742, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[0.008037, "o", "\u001b[m\u000f\u001b[34l\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;36r\u001b[3;24H"]
[0.008472, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[1.001138, "o", "\u001b[?7727h"]
[1.280448, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[1.284961, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Welcome to the mitmproxy tutorial. In this lesson we cover the interception of requests. \u001b[m\u000f\u001b[3;24H"]
[8.330039, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;24H\u001b[34h\u001b[?25h"]
[9.849596, "o", "m"]
[9.965026, "o", "i"]
[10.084387, "o", "t"]
[10.194762, "o", "m"]
[10.369843, "o", "p"]
[10.53002, "o", "r"]
[10.968379, "o", "o"]
[11.384198, "o", "x"]
[11.631229, "o", "y"]
[13.336993, "o", "\r\n"]
[14.085482, "o", "\u001b[?25l\u001bM\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[34h\u001b[?25h\u001b[4d\u001b[?1006h\u001b[?1002h"]
[14.086337, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[4;1H\u001bM\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[14.086568, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[14.086779, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[14.086833, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[?25l \u001b[33;1H "]
[14.08689, "o", " \u001b[34;1H \u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [*:8080]\u001b[36;1H\u001b[39m\u001b[49m \r \u001b[36;119H "]
[14.573436, "o", "\u001b[3;1H"]
[17.40922, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[17.409331, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[17.409714, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[17.409779, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[17.409841, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[17.414099, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H We first need to configure mitmproxy to intercept requests. \u001b[m\u000f\u001b[3;1H"]
[22.132444, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[22.132685, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[22.132925, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[22.133115, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[22.133254, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[22.642717, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[22.642831, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[22.643165, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[22.643243, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[22.643667, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[22.647312, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `i` to prepopulate mitmproxys command prompt with `set intercept ''`. \u001b[m\u000f\u001b[3;1H"]
[28.724197, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[28.724298, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[28.724578, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[28.724731, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[28.724827, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[29.249423, "o", "\u001b[36d: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \r: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[36;119H \u001b[18G\u001b[34h\u001b[?25h"]
[31.488101, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[31.488206, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[31.488476, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[31.488546, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[31.488597, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[36;18H"]
[31.492597, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H We use the flow filter expression `~u <regex>` to only intercept specific URLs. \u001b[m\u000f\u001b[36;18H"]
[37.812496, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[37.812606, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[37.812864, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[37.813134, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[37.813343, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[36;18H\u001b[34h\u001b[?25h"]
[38.323977, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[38.324082, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[38.324393, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[38.324569, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[38.324883, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[36;18H"]
[38.328422, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Additionally, we use the filter `~q` to only intercept requests, but not responses. \u001b[m\u000f\u001b[36;18H"]
[44.965931, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[44.966039, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[44.966294, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[44.966525, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[44.966742, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[36;18H\u001b[34h\u001b[?25h"]
[45.480431, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[45.480538, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[45.480704, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[45.480988, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[45.481104, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[36;18H"]
[45.484877, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H We combine both flow filters using `&`. \u001b[m\u000f\u001b[36;18H"]
[48.604345, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[48.604641, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[48.604827, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[48.605085, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[48.605447, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[36;18H\u001b[34h\u001b[?25h"]
[49.113588, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[49.113695, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[49.11392, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[49.11412, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[49.1143, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[36;18H"]
[49.11836, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Enter `~u /Dunedin & ~q` between the quotes of the `set intercept` command and press `ENTER`. \u001b[m\u000f\u001b[36;18H"]
[56.551954, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[56.552332, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[56.552544, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[56.552766, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[56.553023, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[36;18H\u001b[34h\u001b[?25h"]
[57.087445, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~'\u001b[39m \u001b[36;119H \u001b[19G\u001b[34h\u001b[?25h"]
[57.368659, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u'\u001b[39m \u001b[36;119H \u001b[20G\u001b[34h\u001b[?25h"]
[57.780644, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u '\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u '\u001b[39m \u001b[36;119H \u001b[21G\u001b[34h\u001b[?25h"]
[58.289044, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /'\u001b[39m \u001b[36;119H \u001b[22G\u001b[34h\u001b[?25h"]
[58.428668, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /D'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /D'\u001b[39m \u001b[36;119H \u001b[23G\u001b[34h\u001b[?25h"]
[58.577344, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Du'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Du'\u001b[39m \u001b[36;119H \u001b[24G\u001b[34h\u001b[?25h"]
[58.96646, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dun'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dun'\u001b[39m \u001b[36;119H \u001b[25G\u001b[34h\u001b[?25h"]
[59.227099, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dune'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dune'\u001b[39m \u001b[36;119H \u001b[26G\u001b[34h\u001b[?25h"]
[59.592772, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Duned'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Duned'\u001b[39m \u001b[36;119H \u001b[27G\u001b[34h\u001b[?25h"]
[59.754612, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedi'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedi'\u001b[39m \u001b[36;119H \u001b[28G\u001b[34h\u001b[?25h"]
[60.083731, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin'\u001b[39m \u001b[36;119H \u001b[29G\u001b[34h\u001b[?25h"]
[60.335878, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin '\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin '\u001b[39m \u001b[36;119H \u001b[30G\u001b[34h\u001b[?25h"]
[60.764051, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin &'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin &'\u001b[39m \u001b[36;119H \u001b[31G\u001b[34h\u001b[?25h"]
[61.212369, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & '\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & '\u001b[39m \u001b[36;119H \u001b[32G\u001b[34h\u001b[?25h"]
[61.656116, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & ~'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & ~'\u001b[39m \u001b[36;119H \u001b[33G\u001b[34h\u001b[?25h"]
[61.758444, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & ~q'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & ~q'\u001b[39m \u001b[36;119H \u001b[34G\u001b[34h\u001b[?25h"]
[63.389625, "o", "\u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[36;1H\u001b[39m\u001b[49m \u001b[?25l\r \u001b[36;119H "]
[63.700323, "o", "\u001b[3;1H"]
[64.102582, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[64.102932, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[64.103222, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[64.103447, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[64.103526, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[64.107468, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H The bottom bar shows that the interception has been configured. \u001b[m\u000f\u001b[3;1H"]
[69.141791, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[69.141897, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[69.14221, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[69.142399, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[69.14258, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[69.657828, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[69.658083, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[69.658144, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[69.658207, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[69.658275, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[69.662316, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Lets generate a request using `curl` in a separate terminal. \u001b[m\u000f\u001b[3;1H"]
[74.540308, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[74.540643, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[74.540916, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[74.54119, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[74.541434, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[75.061874, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[19;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[19;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[75.062186, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[75.062334, "o", " \u001b[17;1H \u001b[18;1H \u001b[20;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[20;1H\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1002l"]
[75.063478, "o", "\u001b[3d\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[75.063811, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[18;1H\u001b[39m\u001b[49m "]
[75.063917, "o", " \u001b[?25l\r \u001b[18;119H \u001b[20;1H\u001b[34h\u001b[?25h"]
[75.07318, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[75.073299, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[75.073557, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[17;1H⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[18;1H \u001b[19;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[2B\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;1H"]
[75.078491, "o", "[tutorial@mitmproxy] $ "]
[75.318982, "o", "\r\u001b[K[tutorial@mitmproxy] $ "]
[75.323205, "o", "\u001b[3;1H\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[75.323446, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H "]
[75.323721, "o", " \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[23;1H\u001b[39m\u001b[49m \u001b[?25l\r \u001b[23;119H \u001b[25;24H\u001b[34h\u001b[?25h"]
[75.563836, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;24H"]
[77.111134, "o", "c"]
[77.745672, "o", "u"]
[77.830094, "o", "r"]
[77.992986, "o", "l"]
[78.255834, "o", " "]
[78.725992, "o", "-"]
[79.2923, "o", "-"]
[79.385843, "o", "p"]
[79.487303, "o", "r"]
[80.03738, "o", "o"]
[80.421358, "o", "x"]
[80.554271, "o", "y"]
[80.985506, "o", " "]
[81.394401, "o", "h"]
[81.853914, "o", "t"]
[82.013479, "o", "t"]
[82.277563, "o", "p"]
[82.404958, "o", ":"]
[82.541932, "o", "/"]
[82.685718, "o", "/"]
[82.822589, "o", "1"]
[83.05053, "o", "2"]
[83.174172, "o", "7"]
[83.387908, "o", "."]
[83.792312, "o", "0"]
[84.133667, "o", "."]
[84.529013, "o", "0"]
[84.68651, "o", "."]
[85.033605, "o", "1"]
[85.22709, "o", ":"]
[85.510258, "o", "8"]
[85.847568, "o", "0"]
[86.199108, "o", "8"]
[86.32467, "o", "0"]
[86.684638, "o", " "]
[87.186447, "o", "\""]
[87.307339, "o", "h"]
[87.439547, "o", "t"]
[87.618981, "o", "t"]
[87.746708, "o", "p"]
[87.872238, "o", ":"]
[88.298986, "o", "/"]
[88.521767, "o", "/"]
[88.680279, "o", "w"]
[88.778131, "o", "t"]
[88.915292, "o", "t"]
[89.31891, "o", "r"]
[89.510725, "o", "."]
[89.955789, "o", "i"]
[90.094694, "o", "n"]
[90.269289, "o", "/"]
[90.886266, "o", "D"]
[91.109878, "o", "u"]
[91.289759, "o", "n"]
[91.534727, "o", "e"]
[91.704831, "o", "d"]
[91.923118, "o", "i"]
[92.452553, "o", "n"]
[92.806764, "o", "?"]
[93.060346, "o", "0"]
[93.267701, "o", "\""]
[94.688183, "o", "\r\n"]
[94.917057, "o", "\u001b[4d\u001b[38;5;245m>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[26;1H\u001b[m\u000f"]
[97.324081, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;1H\u001b[?25l\u001b[?1006h\u001b[?1002h"]
[97.324964, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[m\u000f\u001b[3;1H"]
[97.337338, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[97.337595, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[97.337952, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[97.338388, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[97.342227, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H You see a new line in in the list of flows. \u001b[m\u000f\u001b[3;1H"]
[100.789214, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[100.789328, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[100.789627, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[100.789809, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[101.292292, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[101.292937, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[101.293301, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[101.293996, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[101.300607, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H The new flow is displayed in red to indicate that it has been intercepted. \u001b[m\u000f\u001b[3;1H"]
[107.228312, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[107.22858, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[107.22892, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[107.229035, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[107.736139, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[107.736688, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[107.737048, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[107.737279, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[107.74331, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Put the focus (`>>`) on the intercepted flow. This is already the case in our example. \u001b[m\u000f\u001b[3;1H"]
[114.622956, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[114.623063, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[114.623227, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[114.623406, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[115.136838, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[115.137121, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[115.137297, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[115.137362, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[115.142971, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `a` to resume this flow without making any changes. \u001b[m\u000f\u001b[3;1H"]
[119.705108, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:38:37\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[119.705229, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[119.705384, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[119.705718, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[120.230462, "o", "\r\n\u001b[38;5;245m>>16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[4;120H"]
[120.307117, "o", "\r\u001b[38;5;245m>>16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m…\u001b[38;5;240mntent missing]\u001b[39m \u001b[4;120H"]
[120.31011, "o", "\u001b[26;1HWeather report: Dunedin\u001b[28;1H \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \r\n \u001b[38;5;111m \u001b[39m 10 km \r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[4;120H"]
[120.311302, "o", "\u001b[33;1H[tutorial@mitmproxy] $ \u001b[4;120H"]
[120.315683, "o", "\r\u001b[38;5;245m>>16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;196m25.6s\u001b[39m \u001b[4;120H"]
[120.497977, "o", "\u001b[3;1H"]
[122.321128, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[m\u000f\u001b[33;24H\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1002l"]
[122.334337, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;196m25.6s\u001b[39m \u001b[5;1H \u001b[6;1H "]
[122.334454, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[122.334482, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q]"]
[122.33471, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[33;24H"]
[122.338875, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Submit another request and focus its flow. \u001b[m\u000f\u001b[33;24H"]
[122.499739, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[m\u000f\u001b[33;24H"]
[125.691221, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;196m25.6s\u001b[39m \u001b[5;1H \u001b[6;1H "]
[125.691331, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[125.691605, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[125.691808, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[33;24H\u001b[34h\u001b[?25h"]
[126.207621, "o", "curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\""]
[126.489862, "o", "\r\n"]
[126.51011, "o", "\u001b[5d \u001b[38;5;160m16:39:09\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/2] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[34;1H\u001b[m\u000f"]
[127.01817, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[34;1H"]
[128.871942, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;1H\u001b[?25l\u001b[?1006h\u001b[?1002h"]
[128.872741, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[m\u000f\u001b[3;1H"]
[128.892421, "o", "\r\n \u001b[38;5;245m16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;196m25.6s\u001b[39m \u001b[5;1H\u001b[38;5;245m>>\u001b[38;5;160m16:39:09\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [2/2] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[129.018568, "o", "\u001b[3;1H"]
[130.091815, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[38;5;245m16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;196m25.6s\u001b[39m \u001b[38;5;245m\u001b[5;1H>>\u001b[38;5;160m16:39:09\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;"]
[130.092045, "o", "5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H "]
[130.092284, "o", " \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H "]
[130.092602, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [2/2] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b["]
[130.092848, "o", "K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[130.096526, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `X` to kill this flow, i.e., discard it without forwarding it to its final destination `wttr.in`. \u001b[m\u000f\u001b[3;1H"]
[138.335707, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[38;5;245m16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;196m25.6s\u001b[39m \u001b[38;5;245m\u001b[5;1H>>\u001b[38;5;160m16:39:09\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;"]
[138.335814, "o", "5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H "]
[138.336017, "o", " \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H "]
[138.336192, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [2/2] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b["]
[138.336419, "o", "K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[138.856862, "o", "\u001b[34dcurl: (52) Empty reply from server\u001b[3;1H"]
[138.858018, "o", "\u001b[35d[tutorial@mitmproxy] $ \u001b[3;1H"]
[138.862771, "o", "\u001b[2B\u001b[38;5;245m>>16:39:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;160merr\u001b[39m \u001b[38;5;245m…\u001b[38;5;160mnection killed\u001b[39m \u001b[23;1H\u001b[38;5;125mAlert: Killed 1 flows.\u001b[39m \u001b[38;5;125m\rAlert: Killed 1 flows.\u001b[39m \u001b[23;119H "]
[139.046369, "o", "\u001b[3;1H"]
[142.266214, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[38;5;245m16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;196m25.6s\u001b[39m \u001b[38;5;245m\u001b[5;1H>>16:39:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m "]
[142.266325, "o", " \u001b[39m \u001b[38;5;160merr\u001b[39m \u001b[38;5;245m…\u001b[38;5;160mnection killed\u001b[39m \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H "]
[142.266684, "o", " \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H "]
[142.266748, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [2/2] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[49m\u001b[38;5;125m\u001b[23;1HAlert: Killed 1 flows.\u001b[39m \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\ncurl: "]
[142.26681, "o", "(52) Empty reply from server\u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[142.273856, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H In the next lesson you will learn to modify intercepted flows. \u001b[m\u000f\u001b[3;1H"]
[143.860001, "o", "\u001b[23;120H"]
[144.063688, "o", "\u001b[3;1H"]
[147.231377, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[38;5;245m16:38:37\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;196m25.6s\u001b[39m \u001b[38;5;245m\u001b[5;1H>>16:39:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m "]
[147.231493, "o", " \u001b[39m \u001b[38;5;160merr\u001b[39m \u001b[38;5;245m…\u001b[38;5;160mnection killed\u001b[39m \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H "]
[147.23157, "o", " \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H "]
[147.231826, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [2/2] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\ncurl: (52) Empty "]
[147.232053, "o", "reply from server\u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]

View File

@ -0,0 +1,82 @@
[
{
"instruction": "1. Welcome to the mitmproxy tutorial. In this lesson we cover the interception of requests.",
"time_from": 0.0,
"time_to": 7.0
},
{
"instruction": "2. We first need to configure mitmproxy to intercept requests.",
"time_from": 16.1,
"time_to": 20.8
},
{
"instruction": "3. Press `i` to prepopulate mitmproxys command prompt with `set intercept ''`.",
"time_from": 21.4,
"time_to": 27.5
},
{
"instruction": "4. We use the flow filter expression `~u <regex>` to only intercept specific URLs.",
"time_from": 30.2,
"time_to": 36.5
},
{
"instruction": "5. Additionally, we use the filter `~q` to only intercept requests, but not responses.",
"time_from": 37.1,
"time_to": 43.7
},
{
"instruction": "6. We combine both flow filters using `&`.",
"time_from": 44.2,
"time_to": 47.3
},
{
"instruction": "7. Enter `~u /Dunedin & ~q` between the quotes of the `set intercept` command and press `ENTER`.",
"time_from": 47.8,
"time_to": 55.2
},
{
"instruction": "8. The bottom bar shows that the interception has been configured.",
"time_from": 62.8,
"time_to": 67.8
},
{
"instruction": "9. Lets generate a request using `curl` in a separate terminal.",
"time_from": 68.4,
"time_to": 73.3
},
{
"instruction": "10. You see a new line in in the list of flows.",
"time_from": 96.1,
"time_to": 99.5
},
{
"instruction": "11. The new flow is displayed in red to indicate that it has been intercepted.",
"time_from": 100.0,
"time_to": 105.9
},
{
"instruction": "12. Put the focus (`>>`) on the intercepted flow. This is already the case in our example.",
"time_from": 106.5,
"time_to": 113.4
},
{
"instruction": "13. Press `a` to resume this flow without making any changes.",
"time_from": 113.9,
"time_to": 118.5
},
{
"instruction": "14. Submit another request and focus its flow.",
"time_from": 121.1,
"time_to": 124.5
},
{
"instruction": "15. Press `X` to kill this flow, i.e., discard it without forwarding it to its final destination `wttr.in`.",
"time_from": 128.8,
"time_to": 137.0
},
{
"instruction": "16. In the next lesson you will learn to modify intercepted flows.",
"time_from": 141.0,
"time_to": 146.0
}
]

View File

@ -0,0 +1,338 @@
{"version": 2, "width": 120, "height": 36, "timestamp": 1599237574, "env": {"SHELL": null, "TERM": "screen-256color"}}
[0.006832, "o", "\u001b[?1049h\u001b[?1h\u001b=\u001b[H\u001b[J\u001b[34h\u001b[?25h\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006l\u001b[?1005l\u001b[m\u000f\u001b[34l\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;36r\u001b[>c\u001b[>q\u001b[3;24H"]
[0.007858, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H\r\u001b[K[tutorial@mitmproxy] $ "]
[0.008059, "o", "\u001b[m\u000f\u001b[34l\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;36r\u001b[3;24H"]
[0.008783, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[0.998873, "o", "\u001b[?7727h"]
[1.280841, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[1.28533, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Welcome to the mitmproxy tutorial. In this lesson we cover the modification of intercepted requests. \u001b[m\u000f\u001b[3;24H"]
[9.294649, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;24H\u001b[34h\u001b[?25h"]
[10.812878, "o", "m"]
[10.950263, "o", "i"]
[11.078901, "o", "t"]
[11.394682, "o", "m"]
[11.782556, "o", "p"]
[11.930201, "o", "r"]
[12.225291, "o", "o"]
[12.437755, "o", "x"]
[12.526536, "o", "y"]
[14.000499, "o", "\r\n"]
[14.755131, "o", "\u001b[?25l\u001bM\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[34h\u001b[?25h\u001b[4d\u001b[?1006h\u001b[?1002h"]
[14.755963, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[4;1H\u001bM\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[14.756079, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[14.756489, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[14.756675, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[?25l \u001b[33;1H "]
[14.756907, "o", " \u001b[34;1H \u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [*:8080]\u001b[36;1H\u001b[39m\u001b[49m \r \u001b[36;119H "]
[15.239064, "o", "\u001b[3;1H"]
[17.689871, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[17.6901, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[17.690397, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[17.690679, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[17.690939, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[17.694963, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H We configure and use the same interception rule as in the last tutorial. \u001b[m\u000f\u001b[3;1H"]
[23.451203, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[23.451332, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[23.451733, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[23.452038, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[23.452325, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[23.966883, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[23.967047, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[23.96722, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[23.96752, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[23.967732, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[23.971614, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `i` to prepopulate mitmproxys command prompt, enter the flow filter `~u /Dunedin & ~q`, and press `ENTER`. \u001b[m\u000f\u001b[3;1H"]
[33.0091, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[33.00933, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[33.009524, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[33.009773, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[33.009934, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[33.534298, "o", "\u001b[36d: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \r: \u001b[38;5;33mset\u001b[38;5;245m intercept ''\u001b[39m \u001b[36;119H \u001b[18G\u001b[34h\u001b[?25h"]
[35.908269, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~'\u001b[39m \u001b[36;119H \u001b[19G\u001b[34h\u001b[?25h"]
[36.238, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u'\u001b[39m \u001b[36;119H \u001b[20G\u001b[34h\u001b[?25h"]
[36.522152, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u '\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u '\u001b[39m \u001b[36;119H \u001b[21G\u001b[34h\u001b[?25h"]
[37.000067, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /'\u001b[39m \u001b[36;119H \u001b[22G\u001b[34h\u001b[?25h"]
[37.120473, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /D'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /D'\u001b[39m \u001b[36;119H \u001b[23G\u001b[34h\u001b[?25h"]
[37.246529, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Du'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Du'\u001b[39m \u001b[36;119H \u001b[24G\u001b[34h\u001b[?25h"]
[37.394094, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dun'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dun'\u001b[39m \u001b[36;119H \u001b[25G\u001b[34h\u001b[?25h"]
[37.533841, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dune'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dune'\u001b[39m \u001b[36;119H \u001b[26G\u001b[34h\u001b[?25h"]
[37.705727, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Duned'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Duned'\u001b[39m \u001b[36;119H \u001b[27G\u001b[34h\u001b[?25h"]
[37.849512, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedi'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedi'\u001b[39m \u001b[36;119H \u001b[28G\u001b[34h\u001b[?25h"]
[37.96628, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin'\u001b[39m \u001b[36;119H \u001b[29G\u001b[34h\u001b[?25h"]
[38.225943, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin '\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin '\u001b[39m \u001b[36;119H \u001b[30G\u001b[34h\u001b[?25h"]
[38.764278, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin &'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin &'\u001b[39m \u001b[36;119H \u001b[31G\u001b[34h\u001b[?25h"]
[38.999754, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & '\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & '\u001b[39m \u001b[36;119H \u001b[32G\u001b[34h\u001b[?25h"]
[39.43948, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & ~'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & ~'\u001b[39m \u001b[36;119H \u001b[33G\u001b[34h\u001b[?25h"]
[39.697639, "o", "\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & ~q'\u001b[39m \u001b[?25l\r: \u001b[38;5;33mset\u001b[38;5;245m intercept '~u /Dunedin & ~q'\u001b[39m \u001b[36;119H \u001b[34G\u001b[34h\u001b[?25h"]
[41.121341, "o", "\u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[36;1H\u001b[39m\u001b[49m \u001b[?25l\r \u001b[36;119H "]
[41.307368, "o", "\u001b[3;1H"]
[42.01438, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[42.014502, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[42.014882, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[42.014973, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[42.015015, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[42.019226, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Lets generate a request using `curl` in a separate terminal. \u001b[m\u000f\u001b[3;1H"]
[46.907058, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[46.907176, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[46.907377, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[46.907669, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[46.907899, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[47.413908, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[19;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[19;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[47.414443, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[47.414739, "o", " \u001b[17;1H \u001b[18;1H \u001b[20;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[20;1H\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1002l"]
[47.419494, "o", "\u001b[3d\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[47.419859, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[18;1H\u001b[39m\u001b[49m "]
[47.42011, "o", " \u001b[?25l\r \u001b[18;119H \u001b[20;1H\u001b[34h\u001b[?25h"]
[47.426812, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[47.427215, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[47.427493, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[17;1H⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[18;1H \u001b[19;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[2B\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;1H"]
[47.431362, "o", "[tutorial@mitmproxy] $ "]
[47.658883, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;24H"]
[47.658997, "o", "\r\u001b[K[tutorial@mitmproxy] $ "]
[47.6626, "o", "\u001b[3;1H\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[47.662718, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H "]
[47.663068, "o", " \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[23;1H\u001b[39m\u001b[49m \u001b[?25l\r \u001b[23;119H \u001b[25;24H\u001b[34h\u001b[?25h"]
[49.463165, "o", "c"]
[49.906871, "o", "u"]
[50.123025, "o", "r"]
[50.309853, "o", "l"]
[50.395441, "o", " "]
[50.884534, "o", "-"]
[50.977737, "o", "-"]
[51.385572, "o", "p"]
[51.707857, "o", "r"]
[52.188154, "o", "o"]
[52.343779, "o", "x"]
[52.796541, "o", "y"]
[53.076259, "o", " "]
[53.637758, "o", "h"]
[53.838168, "o", "t"]
[54.078356, "o", "t"]
[54.329275, "o", "p"]
[54.462269, "o", ":"]
[54.933604, "o", "/"]
[55.024757, "o", "/"]
[55.194766, "o", "1"]
[55.359076, "o", "2"]
[55.456274, "o", "7"]
[55.883614, "o", "."]
[56.226637, "o", "0"]
[56.609235, "o", "."]
[57.016624, "o", "0"]
[57.446043, "o", "."]
[57.922354, "o", "1"]
[58.192046, "o", ":"]
[58.340502, "o", "8"]
[58.689748, "o", "0"]
[59.002965, "o", "8"]
[59.218681, "o", "0"]
[59.357679, "o", " "]
[59.754664, "o", "\""]
[59.973445, "o", "h"]
[60.34615, "o", "t"]
[60.495412, "o", "t"]
[60.898973, "o", "p"]
[61.135683, "o", ":"]
[61.335852, "o", "/"]
[61.495667, "o", "/"]
[61.766856, "o", "w"]
[62.016547, "o", "t"]
[62.114879, "o", "t"]
[62.380538, "o", "r"]
[62.498196, "o", "."]
[62.952936, "o", "i"]
[63.064326, "o", "n"]
[63.307964, "o", "/"]
[63.461843, "o", "D"]
[63.786573, "o", "u"]
[63.888436, "o", "n"]
[63.98487, "o", "e"]
[64.199667, "o", "d"]
[64.284781, "o", "i"]
[64.744086, "o", "n"]
[65.015604, "o", "?"]
[65.147363, "o", "0"]
[65.429844, "o", "\""]
[66.800956, "o", "\r\n"]
[66.966075, "o", "\u001b[4d\u001b[38;5;245m>>\u001b[38;5;160m16:40:41\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[26;1H\u001b[m\u000f"]
[69.545212, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;1H\u001b[?25l\u001b[?1006h\u001b[?1002h"]
[69.54611, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[m\u000f\u001b[3;1H"]
[69.558846, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:40:41\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[69.559185, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[69.559488, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[69.559531, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[69.563996, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H We now want to modify the intercepted request. \u001b[m\u000f\u001b[3;1H"]
[73.24344, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:40:41\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[73.243689, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[73.243897, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[73.243952, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[73.75323, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:40:41\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[73.753555, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[73.753656, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[73.753908, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[73.759016, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Put the focus (`>>`) on the intercepted flow. This is already the case in our example. \u001b[m\u000f\u001b[3;1H"]
[80.644184, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:40:41\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[80.644398, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[80.644603, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[80.64487, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[81.151301, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:40:41\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[81.151645, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[81.151872, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[81.151946, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[81.156063, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `ENTER` to open the details view for the intercepted flow. \u001b[m\u000f\u001b[3;1H"]
[86.271979, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>\u001b[38;5;160m16:40:41\u001b[39m \u001b[38;5;160mHTTP \u001b[39m \u001b[38;5;160mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[5;1H \u001b[6;1H "]
[86.272089, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[86.272442, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] "]
[86.272719, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[86.793459, "o", "\u001b[38;5;254m\u001b[48;5;240mFlow Details \u001b[4;1H\u001b[49m\u001b[38;5;240m2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[6;1H\u001b[38;5;254m\u001b[48;5;240m Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[8;1H\u001b[38;5;33mUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[9;1H\u001b[38;5;33mAccept:\u001b[39m \u001b[38;5;"]
[86.793725, "o", "245m*/*\u001b[39m \u001b[10;1H\u001b[38;5;33mProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[11;1H\u001b[38;5;254m\u001b[48;5;240mQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[12;1H\u001b[49m\u001b[38;5;33m0: \u001b[39m \u001b[12;120H"]
[87.019529, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m "]
[87.019816, "o", " \u001b[38;5;245mwttr.in\u001b[39m \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H "]
[87.020043, "o", " \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H "]
[87.020222, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[12;120H"]
[87.02261, "o", "\u001b[3;1H"]
[87.024832, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `e` to edit the intercepted flow. \u001b[m\u000f\u001b[3;1H"]
[90.13898, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m "]
[90.139088, "o", " \u001b[38;5;245mwttr.in\u001b[39m \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H "]
[90.139435, "o", " \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H "]
[90.139764, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[90.671888, "o", "\u001b[2B ┌──────── Part ───────┐ \u001b[6;1H\u001b[38;5;254m\u001b[48;5;240m Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m \u001b[39m\u001b[49m│\u001b[38;5;33m\u001b[48;5;241m1\u001b[38;5;234m) cookies \u001b[39m\u001b[49m│\u001b[38;5;245m\u001b[48;5;235m \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m │\u001b[38;5;33m2\u001b[38;5;245m) urlencoded form \u001b[39m│ \u001b[8;1H\u001b[38;5;33mUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m │\u001b[38;5;33m3\u001b[38;5;245m) multipart form \u001b[39m│ \u001b[9;1H\u001b[38;5;33mAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m │\u001b[38;5;33m4\u001b[38;5;245m) path \u001b[39m│ \u001b[10;1H\u001b[3"]
[90.67215, "o", "8;5;33mProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m │\u001b[38;5;33m5\u001b[38;5;245m) method \u001b[39m│ \u001b[11;1H\u001b[38;5;254m\u001b[48;5;240mQuery \u001b[39m\u001b[49m│\u001b[38;5;33m6\u001b[38;5;245m) query \u001b[39m│\u001b[38;5;254m\u001b[48;5;240m [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[12;1H\u001b[49m\u001b[38;5;33m0: \u001b[39m │\u001b[38;5;33m7\u001b[38;5;245m) reason \u001b[39m│ \u001b[13;1H │\u001b[38;5;33m8\u001b[38;5;245m) request-headers \u001b[39m│ \u001b[14;1H │\u001b[38;5;33m9\u001b[38;5;245m) response-headers \u001b[39m│ \u001b[15;1H │\u001b[38;5;33ma\u001b[38;5;245m) request-body \u001b[39"]
[90.672317, "o", "m│ \u001b[16;1H │\u001b[38;5;33mb\u001b[38;5;245m) response-body \u001b[39m│ \u001b[17;1H │\u001b[38;5;33mc\u001b[38;5;245m) status_code \u001b[39m│ \u001b[18;1H │\u001b[38;5;33md\u001b[38;5;245m) set-cookies \u001b[39m│ \u001b[19;1H │\u001b[38;5;33me\u001b[38;5;245m) url \u001b[39m│ \u001b[20;1H └─────────────────────┘ \u001b[20;120H"]
[90.837714, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H ┌──────── Part ───────┐ \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m \u001b[39m\u001b[49m│\u001b[38;5;33m\u001b[48;5;241m1\u001b[38;5;234m) cookies \u001b[39m\u001b[49m│\u001b[38;5;245m\u001b[48;5;235m "]
[90.837822, "o", " \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m │\u001b[38;5;33m2\u001b[38;5;245m) urlencoded form \u001b[39m│ \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m │\u001b[38;5;33m3\u001b[38;5;245m) multipart form \u001b[39m│ \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m │\u001b[38;5;33m4\u001b[38;5;245m) path \u001b[39m│ \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m │\u001b[38;5;33m5\u001b[38;5;245m) method \u001b[39m│ \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery \u001b[39m\u001b[49m│\u001b[38;5;33m6\u001b[38;5;245m) query \u001b[39m│\u001b[38;5;254m\u001b[48;5;240m "]
[90.838126, "o", " [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m │\u001b[38;5;33m7\u001b[38;5;245m) reason \u001b[39m│ \u001b[13;1H │\u001b[38;5;33m8\u001b[38;5;245m) request-headers \u001b[39m│ \u001b[14;1H │\u001b[38;5;33m9\u001b[38;5;245m) response-headers \u001b[39m│ \u001b[15;1H │\u001b[38;5;33ma\u001b[38;5;245m) request-body \u001b[39m│ \u001b[16;1H │\u001b[38;5;33mb\u001b[38;5;245m) response-body \u001b[39m│ \u001b[17;1H │\u001b[38;5;33mc\u001b[38;5;245m) status_code \u001b[39m│ \u001b[18;1H "]
[90.839484, "o", " │\u001b[38;5;33md\u001b[38;5;245m) set-cookies \u001b[39m│ \u001b[19;1H │\u001b[38;5;33me\u001b[38;5;245m) url \u001b[39m│ \u001b[20;1H └─────────────────────┘ \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0"]
[90.839772, "o", "\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[20;120H"]
[90.843529, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H mitmproxy asks which part to modify. \u001b[m\u000f\u001b[20;120H"]
[91.034701, "o", "\u001b[3;1H"]
[93.721115, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H ┌──────── Part ───────┐ \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m \u001b[39m\u001b[49m│\u001b[38;5;33m\u001b[48;5;241m1\u001b[38;5;234m) cookies \u001b[39m\u001b[49m│\u001b[38;5;245m\u001b[48;5;235m "]
[93.721218, "o", " \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m │\u001b[38;5;33m2\u001b[38;5;245m) urlencoded form \u001b[39m│ \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m │\u001b[38;5;33m3\u001b[38;5;245m) multipart form \u001b[39m│ \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m │\u001b[38;5;33m4\u001b[38;5;245m) path \u001b[39m│ \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m │\u001b[38;5;33m5\u001b[38;5;245m) method \u001b[39m│ \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery \u001b[39m\u001b[49m│\u001b[38;5;33m6\u001b[38;5;245m) query \u001b[39m│\u001b[38;5;254m\u001b[48;5;240m "]
[93.721494, "o", " [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m │\u001b[38;5;33m7\u001b[38;5;245m) reason \u001b[39m│ \u001b[13;1H │\u001b[38;5;33m8\u001b[38;5;245m) request-headers \u001b[39m│ \u001b[14;1H │\u001b[38;5;33m9\u001b[38;5;245m) response-headers \u001b[39m│ \u001b[15;1H │\u001b[38;5;33ma\u001b[38;5;245m) request-body \u001b[39m│ \u001b[16;1H │\u001b[38;5;33mb\u001b[38;5;245m) response-body \u001b[39m│ \u001b[17;1H │\u001b[38;5;33mc\u001b[38;5;245m) status_code \u001b[39m│ \u001b[18;1H "]
[93.721677, "o", " │\u001b[38;5;33md\u001b[38;5;245m) set-cookies \u001b[39m│ \u001b[19;1H │\u001b[38;5;33me\u001b[38;5;245m) url \u001b[39m│ \u001b[20;1H └─────────────────────┘ \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0"]
[93.721857, "o", "\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[94.232287, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H ┌──────── Part ───────┐ \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m \u001b[39m\u001b[49m│\u001b[38;5;33m\u001b[48;5;241m1\u001b[38;5;234m) cookies \u001b[39m\u001b[49m│\u001b[38;5;245m\u001b[48;5;235m "]
[94.232634, "o", " \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m │\u001b[38;5;33m2\u001b[38;5;245m) urlencoded form \u001b[39m│ \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m │\u001b[38;5;33m3\u001b[38;5;245m) multipart form \u001b[39m│ \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m │\u001b[38;5;33m4\u001b[38;5;245m) path \u001b[39m│ \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m │\u001b[38;5;33m5\u001b[38;5;245m) method \u001b[39m│ \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery \u001b[39m\u001b[49m│\u001b[38;5;33m6\u001b[38;5;245m) query \u001b[39m│\u001b[38;5;254m\u001b[48;5;240m "]
[94.233206, "o", " [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m │\u001b[38;5;33m7\u001b[38;5;245m) reason \u001b[39m│ \u001b[13;1H │\u001b[38;5;33m8\u001b[38;5;245m) request-headers \u001b[39m│ \u001b[14;1H │\u001b[38;5;33m9\u001b[38;5;245m) response-headers \u001b[39m│ \u001b[15;1H │\u001b[38;5;33ma\u001b[38;5;245m) request-body \u001b[39m│ \u001b[16;1H │\u001b[38;5;33mb\u001b[38;5;245m) response-body \u001b[39m│ \u001b[17;1H │\u001b[38;5;33mc\u001b[38;5;245m) status_code \u001b[39m│ \u001b[18;1H "]
[94.233343, "o", " │\u001b[38;5;33md\u001b[38;5;245m) set-cookies \u001b[39m│ \u001b[19;1H │\u001b[38;5;33me\u001b[38;5;245m) url \u001b[39m│ \u001b[20;1H └─────────────────────┘ \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0"]
[94.233421, "o", "\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[94.238053, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Select `path` by using your arrow keys and press `ENTER`. \u001b[m\u000f\u001b[3;1H"]
[98.80079, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H ┌──────── Part ───────┐ \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m \u001b[39m\u001b[49m│\u001b[38;5;33m\u001b[48;5;241m1\u001b[38;5;234m) cookies \u001b[39m\u001b[49m│\u001b[38;5;245m\u001b[48;5;235m "]
[98.80091, "o", " \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m │\u001b[38;5;33m2\u001b[38;5;245m) urlencoded form \u001b[39m│ \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m │\u001b[38;5;33m3\u001b[38;5;245m) multipart form \u001b[39m│ \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m │\u001b[38;5;33m4\u001b[38;5;245m) path \u001b[39m│ \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m │\u001b[38;5;33m5\u001b[38;5;245m) method \u001b[39m│ \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery \u001b[39m\u001b[49m│\u001b[38;5;33m6\u001b[38;5;245m) query \u001b[39m│\u001b[38;5;254m\u001b[48;5;240m "]
[98.801366, "o", " [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m │\u001b[38;5;33m7\u001b[38;5;245m) reason \u001b[39m│ \u001b[13;1H │\u001b[38;5;33m8\u001b[38;5;245m) request-headers \u001b[39m│ \u001b[14;1H │\u001b[38;5;33m9\u001b[38;5;245m) response-headers \u001b[39m│ \u001b[15;1H │\u001b[38;5;33ma\u001b[38;5;245m) request-body \u001b[39m│ \u001b[16;1H │\u001b[38;5;33mb\u001b[38;5;245m) response-body \u001b[39m│ \u001b[17;1H │\u001b[38;5;33mc\u001b[38;5;245m) status_code \u001b[39m│ \u001b[18;1H "]
[98.801554, "o", " │\u001b[38;5;33md\u001b[38;5;245m) set-cookies \u001b[39m│ \u001b[19;1H │\u001b[38;5;33me\u001b[38;5;245m) url \u001b[39m│ \u001b[20;1H └─────────────────────┘ \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0"]
[98.801757, "o", "\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[99.317254, "o", "\u001b[3B\u001b[38;5;254m\u001b[48;5;240m Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m \u001b[39m\u001b[49m│\u001b[38;5;33m1\u001b[38;5;245m) cookies \u001b[39m│\u001b[38;5;245m\u001b[48;5;235m \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m │\u001b[38;5;33m\u001b[48;5;241m2\u001b[38;5;234m) urlencoded form \u001b[39m\u001b[49m│ \u001b[7;120H"]
[99.557371, "o", "\u001b[3;1H"]
[100.430077, "o", "\u001b[4B\u001b[38;5;33mHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m │\u001b[38;5;33m2\u001b[38;5;245m) urlencoded form \u001b[39m│ \u001b[8;1H\u001b[38;5;33mUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m │\u001b[38;5;33m\u001b[48;5;241m3\u001b[38;5;234m) multipart form \u001b[39m\u001b[49m│ \u001b[8;120H"]
[100.557974, "o", "\u001b[3;1H"]
[100.671921, "o", "\u001b[5B\u001b[38;5;33mUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m │\u001b[38;5;33m3\u001b[38;5;245m) multipart form \u001b[39m│ \u001b[9;1H\u001b[38;5;33mAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m │\u001b[38;5;33m\u001b[48;5;241m4\u001b[38;5;234m) path \u001b[39m\u001b[49m│ \u001b[9;120H"]
[101.060968, "o", "\u001b[3;1H"]
[102.354524, "o", "\u001b[38;5;254m\u001b[48;5;240mEdit Path Components \u001b[4;1HComponent \u001b[5;1H\u001b[38;5;244m\u001b[48;5;235mDunedin \u001b[6;1H\u001b[39m\u001b[49m \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[102.35463, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H "]
[102.354905, "o", " \u001b[19;1H \u001b[20;1H \u001b[20;120H"]
[102.563475, "o", "\u001b[3;1H"]
[102.606248, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[38;5;244m\u001b[48;5;235m\u001b[5;1HDunedin \u001b[39m\u001b[49m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[102.606362, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[102.606411, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[102.606917, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[102.610814, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H mitmproxy shows all path components line by line, in our example its just `Dunedin`. \u001b[m\u000f\u001b[3;1H"]
[109.330396, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[38;5;244m\u001b[48;5;235m\u001b[5;1HDunedin \u001b[39m\u001b[49m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[109.33063, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[109.330882, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[109.331047, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[109.841025, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[38;5;244m\u001b[48;5;235m\u001b[5;1HDunedin \u001b[39m\u001b[49m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[109.841248, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[109.841444, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[109.841695, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[109.845835, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `ENTER` to modify the selected path component. \u001b[m\u000f\u001b[3;1H"]
[114.004889, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[38;5;244m\u001b[48;5;235m\u001b[5;1HDunedin \u001b[39m\u001b[49m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[114.005255, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[114.005577, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[114.005778, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[115.651932, "o", "\u001b[2B\u001b[38;5;245mDunedin \u001b[5;8H\u001b[34h\u001b[?25h\u001b[m\u000f"]
[115.754535, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[49m\u001b[38;5;245m\u001b[5;1HDunedin \u001b[39m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[115.754847, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[115.755086, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[115.755141, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[5;8H"]
[115.759615, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Replace `Dunedin` with `Innsbruck`. \u001b[m\u000f\u001b[5;8H"]
[118.559304, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[49m\u001b[38;5;245m\u001b[5;1HDunedin \u001b[39m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[118.559579, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[118.559799, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[118.560166, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[5;8H\u001b[34h\u001b[?25h"]
[119.073423, "o", "\r\u001b[38;5;245mDunedi \u001b[5;7H\u001b[m\u000f"]
[119.380005, "o", "\r\u001b[38;5;245mDuned \u001b[5;6H\u001b[m\u000f"]
[119.851695, "o", "\r\u001b[38;5;245mDune \u001b[5;5H\u001b[m\u000f"]
[120.257177, "o", "\r\u001b[38;5;245mDun \u001b[5;4H\u001b[m\u000f"]
[120.783188, "o", "\r\u001b[38;5;245mDu \u001b[5;3H\u001b[m\u000f"]
[121.241599, "o", "\r\u001b[38;5;245mD \u001b[5;2H\u001b[m\u000f"]
[121.544933, "o", "\r\u001b[38;5;245m \u001b[5;1H\u001b[m\u000f"]
[122.738974, "o", "\u001b[38;5;245mI \u001b[5;2H\u001b[m\u000f"]
[123.165131, "o", "\r\u001b[38;5;245mIn \u001b[5;3H\u001b[m\u000f"]
[123.495912, "o", "\r\u001b[38;5;245mInn \u001b[5;4H\u001b[m\u000f"]
[123.804758, "o", "\r\u001b[38;5;245mInns \u001b[5;5H\u001b[m\u000f"]
[124.074149, "o", "\r\u001b[38;5;245mInnsb \u001b[5;6H\u001b[m\u000f"]
[124.304109, "o", "\r\u001b[38;5;245mInnsbr \u001b[5;7H\u001b[m\u000f"]
[124.540763, "o", "\r\u001b[38;5;245mInnsbru \u001b[5;8H\u001b[m\u000f"]
[125.182976, "o", "\r\u001b[38;5;245mInnsbruc \u001b[5;9H\u001b[m\u000f"]
[125.716074, "o", "\r\u001b[38;5;245mInnsbruck \u001b[5;10H\u001b[m\u000f"]
[126.118216, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[49m\u001b[38;5;245m\u001b[5;1HInnsbruck \u001b[39m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[126.118605, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[126.118685, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[126.118721, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[5;10H"]
[126.123568, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `ESC` to confirm your change. \u001b[m\u000f\u001b[5;10H"]
[128.922338, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[49m\u001b[38;5;245m\u001b[5;1HInnsbruck \u001b[39m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[128.92259, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[128.922856, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[128.922952, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[5;10H\u001b[34h\u001b[?25h"]
[129.55932, "o", "\r\u001b[38;5;244m\u001b[48;5;235mInnsbruck \u001b[5;120H\u001b[?25l\u001b[m\u000f"]
[129.646873, "o", "\u001b[3;1H"]
[129.775768, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[38;5;244m\u001b[48;5;235m\u001b[5;1HInnsbruck \u001b[39m\u001b[49m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[129.776041, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[129.776372, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[129.776655, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[129.781276, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `q` to go back to the flow details view. \u001b[m\u000f\u001b[3;1H"]
[133.464083, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HEdit Path Components \u001b[4;1HComponent \u001b[38;5;244m\u001b[48;5;235m\u001b[5;1HInnsbruck \u001b[39m\u001b[49m\u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[133.464435, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[133.464592, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H "]
[133.464685, "o", " \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[133.990725, "o", "\u001b[38;5;254m\u001b[48;5;240mFlow Details \u001b[4;1H\u001b[49m\u001b[38;5;240m2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[5;1H \u001b[6;1H\u001b[38;5;254m\u001b[48;5;240m Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[8;1H\u001b[38;5;33mUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[9;1H\u001b[38;5;33mAccept:\u001b[39m \u001b[38;5;"]
[133.990834, "o", "245m*/*\u001b[39m \u001b[10;1H\u001b[38;5;33mProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[11;1H\u001b[38;5;254m\u001b[48;5;240mQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[12;1H\u001b[49m\u001b[38;5;33m0: \u001b[39m \u001b[12;120H"]
[134.161011, "o", "\u001b[3;1H"]
[134.292786, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[5;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m "]
[134.293216, "o", " \u001b[38;5;245mwttr.in\u001b[39m \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H "]
[134.293466, "o", " \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H "]
[134.293663, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[134.298981, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `a` to resume the intercepted flow. \u001b[m\u000f\u001b[3;1H"]
[137.585252, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;160mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[5;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request intercepted \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m "]
[137.58536, "o", " \u001b[38;5;245mwttr.in\u001b[39m \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H "]
[137.585711, "o", " \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H "]
[137.585933, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[138.107458, "o", "\r\n\u001b[38;5;240m2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;33mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[6;1H\u001b[38;5;254m\u001b[48;5;240m Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[6;120H\u001b[m\u000f"]
[138.168932, "o", "\u001b[3;1H"]
[138.217617, "o", "\r\n\u001b[38;5;240m2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;245m[content missing]\u001b[39m \u001b[5;120H"]
[138.227378, "o", "\r \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m330b\u001b[39m \u001b[38;5;196m71.4s\u001b[39m \u001b[5;120H"]
[138.227829, "o", "\u001b[26;1HWeather report: Innsbruck\u001b[28;1H \u001b[38;5;226m \\ / \u001b[39m Sunny\r\n \u001b[38;5;226m .-. \u001b[39m \u001b[38;5;220m25\u001b[39m..\u001b[38;5;220m27\u001b[39m °C \r\n \u001b[38;5;226m ― ( ) ― \u001b[39m \u001b[1m↙\u001b[m\u000f \u001b[38;5;154m9\u001b[39m km/h \u001b[5;120H\u001b[31;1H \u001b[38;5;226m `- \u001b[39m 10 km \r\n \u001b[38;5;226m / \\ \u001b[39m 0.0 mm \u001b[5;120H"]
[138.229427, "o", "\u001b[33;1H[tutorial@mitmproxy] $ \u001b[5;120H"]
[138.671071, "o", "\u001b[3;1H"]
[140.360818, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m330b\u001b[39m \u001b[38;5;196m71.4s\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5"]
[140.361068, "o", ";245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m "]
[140.361378, "o", " \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H"]
[140.361613, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Innsbruck\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m \\ / \u001b[39m Sunny\u001b[K\r\n \u001b[38;5;226m .-. \u001b[39m \u001b[38;5;220m25\u001b[39m..\u001b[38;5;220m27\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m ― ( ) ― \u001b[39m \u001b[1m↙\u001b[m\u000f \u001b[38;5;154m9\u001b[39m km/h \u001b[K\r\n \u001b[38;5;226m `- \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;226m / \\ \u001b[39m 0.0 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H "]
[140.361831, "o", " \u001b[m\u000f\u001b[3;1H"]
[140.366223, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H You see that the request URL was modified and `wttr.in` replied with the weather report for `Innsbruck`. \u001b[m\u000f\u001b[3;1H"]
[148.681656, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m330b\u001b[39m \u001b[38;5;196m71.4s\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5"]
[148.681984, "o", ";245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m "]
[148.682247, "o", " \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H"]
[148.68268, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Innsbruck\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m \\ / \u001b[39m Sunny\u001b[K\r\n \u001b[38;5;226m .-. \u001b[39m \u001b[38;5;220m25\u001b[39m..\u001b[38;5;220m27\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m ― ( ) ― \u001b[39m \u001b[1m↙\u001b[m\u000f \u001b[38;5;154m9\u001b[39m km/h \u001b[K\r\n \u001b[38;5;226m `- \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;226m / \\ \u001b[39m 0.0 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H "]
[148.682829, "o", " \u001b[m\u000f\u001b[3;1H"]
[149.201025, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m330b\u001b[39m \u001b[38;5;196m71.4s\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5"]
[149.20143, "o", ";245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m "]
[149.201636, "o", " \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H"]
[149.201691, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Innsbruck\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m \\ / \u001b[39m Sunny\u001b[K\r\n \u001b[38;5;226m .-. \u001b[39m \u001b[38;5;220m25\u001b[39m..\u001b[38;5;220m27\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m ― ( ) ― \u001b[39m \u001b[1m↙\u001b[m\u000f \u001b[38;5;154m9\u001b[39m km/h \u001b[K\r\n \u001b[38;5;226m `- \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;226m / \\ \u001b[39m 0.0 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H "]
[149.201875, "o", " \u001b[m\u000f\u001b[3;1H"]
[149.206429, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H In the next lesson you will learn to replay flows. \u001b[m\u000f\u001b[3;1H"]
[153.20249, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:40:41\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Innsbruck?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m330b\u001b[39m \u001b[38;5;196m71.4s\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5"]
[153.202804, "o", ";245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m "]
[153.203011, "o", " \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H"]
[153.203065, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mi\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:~u /Dunedin & ~q] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Innsbruck\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m \\ / \u001b[39m Sunny\u001b[K\r\n \u001b[38;5;226m .-. \u001b[39m \u001b[38;5;220m25\u001b[39m..\u001b[38;5;220m27\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m ― ( ) ― \u001b[39m \u001b[1m↙\u001b[m\u000f \u001b[38;5;154m9\u001b[39m km/h \u001b[K\r\n \u001b[38;5;226m `- \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;226m / \\ \u001b[39m 0.0 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H "]
[153.203288, "o", " \u001b[m\u000f\u001b[3;1H"]

View File

@ -0,0 +1,92 @@
[
{
"instruction": "1. Welcome to the mitmproxy tutorial. In this lesson we cover the modification of intercepted requests.",
"time_from": 0.0,
"time_to": 8.0
},
{
"instruction": "2. We configure and use the same interception rule as in the last tutorial.",
"time_from": 16.4,
"time_to": 22.2
},
{
"instruction": "3. Press `i` to prepopulate mitmproxys command prompt, enter the flow filter `~u /Dunedin & ~q`, and press `ENTER`.",
"time_from": 22.7,
"time_to": 31.7
},
{
"instruction": "4. Lets generate a request using `curl` in a separate terminal.",
"time_from": 40.7,
"time_to": 45.6
},
{
"instruction": "5. We now want to modify the intercepted request.",
"time_from": 68.3,
"time_to": 72.0
},
{
"instruction": "6. Put the focus (`>>`) on the intercepted flow. This is already the case in our example.",
"time_from": 72.5,
"time_to": 79.4
},
{
"instruction": "7. Press `ENTER` to open the details view for the intercepted flow.",
"time_from": 79.9,
"time_to": 85.0
},
{
"instruction": "8. Press `e` to edit the intercepted flow.",
"time_from": 85.7,
"time_to": 88.8
},
{
"instruction": "9. mitmproxy asks which part to modify.",
"time_from": 89.6,
"time_to": 92.5
},
{
"instruction": "10. Select `path` by using your arrow keys and press `ENTER`.",
"time_from": 93.0,
"time_to": 97.6
},
{
"instruction": "11. mitmproxy shows all path components line by line, in our example its just `Dunedin`.",
"time_from": 101.3,
"time_to": 108.0
},
{
"instruction": "12. Press `ENTER` to modify the selected path component.",
"time_from": 108.6,
"time_to": 112.8
},
{
"instruction": "13. Replace `Dunedin` with `Innsbruck`.",
"time_from": 114.5,
"time_to": 117.3
},
{
"instruction": "14. Press `ESC` to confirm your change.",
"time_from": 124.8,
"time_to": 127.6
},
{
"instruction": "15. Press `q` to go back to the flow details view.",
"time_from": 128.5,
"time_to": 132.2
},
{
"instruction": "16. Press `a` to resume the intercepted flow.",
"time_from": 133.0,
"time_to": 136.3
},
{
"instruction": "17. You see that the request URL was modified and `wttr.in` replied with the weather report for `Innsbruck`.",
"time_from": 139.1,
"time_to": 147.4
},
{
"instruction": "18. In the next lesson you will learn to replay flows.",
"time_from": 147.9,
"time_to": 151.9
}
]

View File

@ -0,0 +1,217 @@
{"version": 2, "width": 120, "height": 36, "timestamp": 1599237926, "env": {"SHELL": null, "TERM": "screen-256color"}}
[0.008007, "o", "\u001b[?1049h\u001b[?1h\u001b=\u001b[H\u001b[J\u001b[34h\u001b[?25h\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006l\u001b[?1005l\u001b[m\u000f\u001b[34l\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;36r\u001b[>c\u001b[>q\u001b[3;24H"]
[0.009231, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[0.01017, "o", "\u001b[m\u000f\u001b[34l\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;36r\u001b[3;24H"]
[0.010685, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[1.002081, "o", "\u001b[?7727h"]
[1.272882, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[1.276954, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Welcome to the mitmproxy tutorial. In this lesson we cover replaying requests. \u001b[m\u000f\u001b[3;24H"]
[7.520629, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;24H\u001b[34h\u001b[?25h"]
[9.047233, "o", "m"]
[9.417117, "o", "i"]
[9.597926, "o", "t"]
[9.836501, "o", "m"]
[9.972905, "o", "p"]
[10.427922, "o", "r"]
[10.551624, "o", "o"]
[11.111824, "o", "x"]
[11.38063, "o", "y"]
[12.780885, "o", "\r\n"]
[13.637848, "o", "\u001b[?25l\u001bM\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[34h\u001b[?25h\u001b[4d\u001b[?1006h\u001b[?1002h"]
[13.638519, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[4;1H"]
[13.638647, "o", "\u001bM\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[13.638729, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H "]
[13.638793, "o", " \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[2"]
[13.638863, "o", "7;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[?25l \u001b[33;1H \u001b[34;1H \u001b[35;"]
[13.638931, "o", "1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [*:8080]\u001b[36;1H\u001b[39m\u001b[49m \r \u001b[36;119H "]
[14.123504, "o", "\u001b[3;1H"]
[16.630845, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[16.631074, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[16.631251, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[16.631413, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[16.631648, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[16.635338, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Lets generate a request that we can replay. We use `curl` in a separate terminal. \u001b[m\u000f\u001b[3;1H"]
[23.191482, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[23.191581, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[23.191987, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[23.192156, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[23.192465, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[23.713533, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[19;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[19;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[23.713917, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[23.714518, "o", " \u001b[17;1H \u001b[18;1H \u001b[20;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[20;1H\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1002l"]
[23.719557, "o", "\u001b[3d\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[23.719872, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [*:8080]\u001b[18;1H\u001b[39m\u001b[49m "]
[23.7201, "o", " \u001b[?25l\r \u001b[18;119H \u001b[20;1H\u001b[34h\u001b[?25h"]
[23.72921, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[23.72932, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[23.729618, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[17;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[18;1H \u001b[19;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[2B\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;1H"]
[23.734426, "o", "[tutorial@mitmproxy] $ "]
[23.96409, "o", "\r\u001b[K[tutorial@mitmproxy] $ "]
[23.966279, "o", "\u001b[3;1H\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[23.966465, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H "]
[23.966666, "o", " \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [*:8080]\u001b[23;1H\u001b[39m\u001b[49m \u001b[?25l\r \u001b[23;119H \u001b[25;24H\u001b[34h\u001b[?25h"]
[24.654235, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;24H"]
[25.774574, "o", "c"]
[25.916174, "o", "u"]
[26.398517, "o", "r"]
[26.541461, "o", "l"]
[26.65522, "o", " "]
[27.056823, "o", "-"]
[27.333167, "o", "-"]
[27.474742, "o", "p"]
[27.847369, "o", "r"]
[27.986636, "o", "o"]
[28.1175, "o", "x"]
[28.281737, "o", "y"]
[28.563095, "o", " "]
[29.069705, "o", "h"]
[29.222528, "o", "t"]
[29.409054, "o", "t"]
[29.675483, "o", "p"]
[29.819957, "o", ":"]
[29.974069, "o", "/"]
[30.083711, "o", "/"]
[30.578807, "o", "1"]
[30.684442, "o", "2"]
[30.772525, "o", "7"]
[30.906137, "o", "."]
[31.365822, "o", "0"]
[31.562182, "o", "."]
[31.940504, "o", "0"]
[32.031816, "o", "."]
[32.403257, "o", "1"]
[32.651127, "o", ":"]
[32.820344, "o", "8"]
[33.060766, "o", "0"]
[33.144638, "o", "8"]
[33.272847, "o", "0"]
[33.642573, "o", " "]
[34.184317, "o", "\""]
[34.621501, "o", "h"]
[35.035189, "o", "t"]
[35.315846, "o", "t"]
[35.576454, "o", "p"]
[35.721231, "o", ":"]
[35.965739, "o", "/"]
[36.070113, "o", "/"]
[36.206258, "o", "w"]
[36.389799, "o", "t"]
[36.530602, "o", "t"]
[36.763277, "o", "r"]
[36.934585, "o", "."]
[37.414853, "o", "i"]
[37.546245, "o", "n"]
[37.920759, "o", "/"]
[38.373446, "o", "D"]
[38.613175, "o", "u"]
[38.778883, "o", "n"]
[39.108279, "o", "e"]
[39.378121, "o", "d"]
[39.719854, "o", "i"]
[39.884603, "o", "n"]
[40.199092, "o", "?"]
[40.680744, "o", "0"]
[40.883111, "o", "\""]
[42.338126, "o", "\r\n"]
[42.476074, "o", "\u001b[4d\u001b[38;5;245m>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [*:8080]\u001b[26;1H\u001b[m\u000f"]
[42.54193, "o", "\u001b[4d\u001b[38;5;245m>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m…\u001b[38;5;240mntent missing]\u001b[39m \u001b[26;1H"]
[42.54426, "o", "Weather report: Dunedin\u001b[28;1H \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \r\n \u001b[38;5;111m \u001b[39m 10 km \r\n \u001b[38;5;111m \u001b[39m 0.1 mm \r\n"]
[42.545634, "o", "[tutorial@mitmproxy] $ "]
[42.550794, "o", "\u001b[4;1H\u001b[38;5;245m>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m190ms\u001b[39m \u001b[33;24H"]
[45.023213, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;1H\u001b[?25l\u001b[?1006h\u001b[?1002h"]
[45.024263, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[m\u000f\u001b[3;1H"]
[45.038035, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m190ms\u001b[39m \u001b[5;1H \u001b[6;1H "]
[45.038276, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[45.038481, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[45.03858, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[45.043045, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H We now want to replay the this request. \u001b[m\u000f\u001b[3;1H"]
[48.167914, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m190ms\u001b[39m \u001b[5;1H \u001b[6;1H "]
[48.168139, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[48.168321, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[48.168503, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[48.671592, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m190ms\u001b[39m \u001b[5;1H \u001b[6;1H "]
[48.671703, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[48.671962, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[48.672067, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[48.676143, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Put the focus (`>>`) on the request that should be replayed. This is already the case in our example. \u001b[m\u000f\u001b[3;1H"]
[56.75396, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m190ms\u001b[39m \u001b[5;1H \u001b[6;1H "]
[56.75408, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[56.754272, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[56.75436, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[57.263754, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m190ms\u001b[39m \u001b[5;1H \u001b[6;1H "]
[57.263871, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[57.264165, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[57.264344, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[57.269465, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `r` to replay the request. \u001b[m\u000f\u001b[3;1H"]
[59.825359, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m190ms\u001b[39m \u001b[5;1H \u001b[6;1H "]
[59.825576, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[59.825897, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[59.826168, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[60.354657, "o", "\r\n\u001b[38;5;245m>>16:46:09\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [\u001b[38;5;33m\u001b[1mcplayback\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[60.360882, "o", "\u001b[3;1H"]
[60.437815, "o", "\r\n\u001b[38;5;245m>>16:46:27\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 36ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[4;120H"]
[60.478516, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:27\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 36ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[60.478876, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[60.479101, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] [\u001b[38;5;33m\u001b[1mcplayback\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m"]
[60.479342, "o", ":1] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[4;120H"]
[60.48448, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Note that no new rows are added for replayed flows, but the existing row is updated. \u001b[m\u000f\u001b[4;120H"]
[60.757389, "o", "\u001b[22d"]
[61.257783, "o", "\u001b[3;1H"]
[67.20642, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:27\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 36ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[67.206534, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[67.206813, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[67.207053, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[67.717144, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:27\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 36ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[67.717266, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[67.717521, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[67.717596, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[67.721475, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Every time you press `r`, mitmproxy sends this request to the server again and updates the flow. \u001b[m\u000f\u001b[3;1H"]
[75.40244, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:27\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 36ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[75.402557, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[75.402898, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[75.40319, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[75.919194, "o", "\r\n\u001b[38;5;245m>>16:46:27\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [\u001b[38;5;33m\u001b[1mcplayback\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[75.925877, "o", "\u001b[3;1H"]
[76.099689, "o", "\r\n\u001b[38;5;245m>>16:46:42\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 34ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[4;120H"]
[76.295507, "o", "\u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[76.798244, "o", "\u001b[3;1H"]
[77.755885, "o", "\r\n\u001b[38;5;245m>>16:46:42\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [\u001b[38;5;33m\u001b[1mcplayback\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[77.800223, "o", "\u001b[3;1H"]
[77.834335, "o", "\r\n\u001b[38;5;245m>>16:46:44\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 36ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[4;120H"]
[78.302177, "o", "\u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[78.775163, "o", "\u001b[4;1H\u001b[38;5;245m>>16:46:44\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [\u001b[38;5;33m\u001b[1mcplayback\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[78.781144, "o", "\u001b[3;1H"]
[78.856125, "o", "\r\n\u001b[38;5;245m>>16:46:45\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 35ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[4;120H"]
[79.301731, "o", "\u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[79.805789, "o", "\u001b[3;1H"]
[81.184175, "o", "\r\n\u001b[38;5;245m>>16:46:45\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [\u001b[38;5;33m\u001b[1mcplayback\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[81.260433, "o", "\u001b[4;1H\u001b[38;5;245m>>16:46:48\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 34ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[4;120H"]
[81.308705, "o", "\u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [*:8080]\u001b[22;120H\u001b[m\u000f"]
[81.811707, "o", "\u001b[3;1H"]
[81.97175, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:48\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 34ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[81.972064, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[81.97237, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[81.972478, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[81.977369, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H You can also modify a flow before replaying it. \u001b[m\u000f\u001b[3;1H"]
[85.741243, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:48\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 34ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[85.741354, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[85.741684, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[85.741994, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[86.246679, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:48\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 34ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[86.247018, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[86.247249, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[86.247458, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[86.252291, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H It works as shown in the previous lesson, by pressing `e`. \u001b[m\u000f\u001b[3;1H"]
[90.894859, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:48\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 34ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[90.895114, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[90.895309, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[90.895543, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[91.402561, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:48\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 34ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[91.402664, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[91.403111, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[91.403513, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]
[91.407509, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Congratulations! You have completed all lessons of the mitmproxy tutorial. \u001b[m\u000f\u001b[3;1H"]
[97.328166, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;252m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;231m--\u001b[116C--\u001b[24;1H\u001b[38;5;252m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:46:48\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;47m 34ms\u001b[39m \u001b[38;5;64m↺\u001b[39m \u001b[5;1H \u001b[6;1H "]
[97.328273, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[97.32849, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/1] "]
[97.328694, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmproxy] $ curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\"\u001b[K\r\nWeather report: Dunedin\u001b[K\r\n\u001b[K\r\n \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\u001b[K\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \u001b[K\r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \u001b[K\r\n \u001b[38;5;111m \u001b[39m 10 km \u001b[K\r\n \u001b[38;5;111m \u001b[39m 0.1 mm \u001b[K\r\n[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;1H"]

View File

@ -0,0 +1,52 @@
[
{
"instruction": "1. Welcome to the mitmproxy tutorial. In this lesson we cover replaying requests.",
"time_from": 0.0,
"time_to": 6.2
},
{
"instruction": "2. Lets generate a request that we can replay. We use `curl` in a separate terminal.",
"time_from": 15.4,
"time_to": 22.0
},
{
"instruction": "3. We now want to replay the this request.",
"time_from": 43.8,
"time_to": 46.9
},
{
"instruction": "4. Put the focus (`>>`) on the request that should be replayed. This is already the case in our example.",
"time_from": 47.4,
"time_to": 55.5
},
{
"instruction": "5. Press `r` to replay the request.",
"time_from": 56.0,
"time_to": 58.6
},
{
"instruction": "6. Note that no new rows are added for replayed flows, but the existing row is updated.",
"time_from": 59.2,
"time_to": 65.9
},
{
"instruction": "7. Every time you press `r`, mitmproxy sends this request to the server again and updates the flow.",
"time_from": 66.5,
"time_to": 74.2
},
{
"instruction": "8. You can also modify a flow before replaying it.",
"time_from": 80.7,
"time_to": 84.5
},
{
"instruction": "9. It works as shown in the previous lesson, by pressing `e`.",
"time_from": 85.0,
"time_to": 89.6
},
{
"instruction": "10. Congratulations! You have completed all lessons of the mitmproxy tutorial.",
"time_from": 90.1,
"time_to": 96.0
}
]

View File

@ -0,0 +1,636 @@
{"version": 2, "width": 120, "height": 36, "timestamp": 1599237205, "env": {"SHELL": null, "TERM": "screen-256color"}}
[0.007556, "o", "\u001b[?1049h\u001b[?1h\u001b=\u001b[H\u001b[J\u001b[34h\u001b[?25h\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?1006l\u001b[?1005l\u001b[m\u000f\u001b[34l\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;36r\u001b[>c\u001b[>q\u001b[3;24H"]
[0.008417, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H\r\u001b[K[tutorial@mitmproxy] $ "]
[0.00871, "o", "\u001b[m\u000f\u001b[34l\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1000l\u001b[?1002l\u001b[?1003l\u001b[?2004l\u001b[1;1H\u001b[1;36r\u001b[3;24H"]
[0.009521, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[1.004237, "o", "\u001b[?7727h"]
[1.263667, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;24H"]
[1.269039, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Welcome to the mitmproxy tutorial. In this lesson we cover the user interface. \u001b[m\u000f\u001b[3;24H"]
[7.516957, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[39m\u001b[3;1H[tutorial@mitmproxy] $ \u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[3;24H\u001b[34h\u001b[?25h"]
[9.034724, "o", "m"]
[9.183787, "o", "i"]
[9.399052, "o", "t"]
[9.608301, "o", "m"]
[10.092575, "o", "p"]
[10.371433, "o", "r"]
[10.48108, "o", "o"]
[10.693353, "o", "x"]
[10.788432, "o", "y"]
[12.240762, "o", "\r\n"]
[13.166337, "o", "\u001b[?25l\u001bM\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[34h\u001b[?25h\u001b[4d\u001b[?1006h\u001b[?1002h"]
[13.166734, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[4;1H"]
[13.167175, "o", "\u001bM\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[13.167365, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H "]
[13.167568, "o", " \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[2"]
[13.167733, "o", "7;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[?25l \u001b[33;1H \u001b[34;1H \u001b[35;"]
[13.168001, "o", "1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [*:8080]\u001b[36;1H\u001b[39m\u001b[49m \r \u001b[36;119H "]
[13.65232, "o", "\u001b[3;1H"]
[15.874704, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[15.875015, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[15.875277, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[15.875327, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[15.875696, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[15.879154, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H This is the default view of mitmproxy. \u001b[m\u000f\u001b[3;1H"]
[18.913846, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[18.914062, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[18.914291, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[18.914411, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[18.914656, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[19.426193, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[19.426293, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[19.426548, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[19.426873, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[19.426942, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[19.430602, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H mitmproxy adds rows to the view as new requests come in. \u001b[m\u000f\u001b[3;1H"]
[23.903906, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[23.904027, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[23.904224, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[23.904485, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[23.904574, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[24.420254, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[24.42059, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[24.420692, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[24.420744, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[24.42078, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[24.427681, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Lets generate some requests using `curl` in a separate terminal. \u001b[m\u000f\u001b[3;1H"]
[29.628272, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H "]
[29.628589, "o", " \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[29.628776, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H "]
[29.628884, "o", " \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H \u001b[33;1H "]
[29.628951, "o", " \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[30.149312, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[19;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[19;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[30.149595, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[30.149811, "o", " \u001b[17;1H \u001b[18;1H \u001b[20;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[20;1H\u001b[34h\u001b[?25h\u001b[?1006l\u001b[?1002l"]
[30.153233, "o", "\u001b[3d\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[30.153529, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [*:8080]\u001b[18;1H\u001b[39m\u001b[49m "]
[30.154164, "o", " \u001b[?25l\r \u001b[18;119H \u001b[20;1H\u001b[34h\u001b[?25h"]
[30.162015, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[30.162369, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[30.162714, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[17;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[18;1H \u001b[19;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[2B\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;1H"]
[30.16992, "o", "[tutorial@mitmproxy] $ "]
[30.399831, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;24H"]
[30.400068, "o", "\r\u001b[K[tutorial@mitmproxy] $ "]
[30.404189, "o", "\u001b[3;1H\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[39m\u001b[49m \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H "]
[30.404505, "o", " \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H "]
[30.404945, "o", " \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [0/0] [*:8080]\u001b[23;1H\u001b[39m\u001b[49m \u001b[?25l\r \u001b[23;119H \u001b[25;24H\u001b[34h\u001b[?25h"]
[32.204087, "o", "c"]
[32.432837, "o", "u"]
[32.718346, "o", "r"]
[32.940018, "o", "l"]
[33.041271, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[33.04157, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[33.04171, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mi"]
[33.041791, "o", "tmproxy] $ curl\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;28H"]
[33.047292, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Use curls `--proxy` option to configure mitmproxy as a proxy. \u001b[m\u000f\u001b[25;28H"]
[38.003615, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[38.003715, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[38.004043, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmprox"]
[38.004111, "o", "y] $ curl\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[25;28H\u001b[34h\u001b[?25h"]
[38.52878, "o", " "]
[39.034978, "o", "-"]
[39.384481, "o", "-"]
[40.029994, "o", "p"]
[40.247267, "o", "r"]
[40.569043, "o", "o"]
[40.655744, "o", "x"]
[40.895246, "o", "y"]
[41.025989, "o", " "]
[41.556136, "o", "h"]
[41.842964, "o", "t"]
[42.284391, "o", "t"]
[42.451292, "o", "p"]
[42.708454, "o", ":"]
[42.927481, "o", "/"]
[43.247116, "o", "/"]
[43.426874, "o", "1"]
[43.6688, "o", "2"]
[44.080657, "o", "7"]
[44.265656, "o", "."]
[44.742702, "o", "0"]
[44.842783, "o", "."]
[45.241414, "o", "0"]
[45.325466, "o", "."]
[45.716978, "o", "1"]
[46.136433, "o", ":"]
[46.279829, "o", "8"]
[46.724813, "o", "0"]
[46.966786, "o", "8"]
[47.139137, "o", "0"]
[47.326906, "o", "\u001b[?25l\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[47.327175, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[47.327341, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mi"]
[47.327715, "o", "tmproxy] $ curl --proxy http://127.0.0.1:8080\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[25;58H"]
[47.332231, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H We use the text-based weather service `wttr.in`. \u001b[m\u000f\u001b[25;58H"]
[51.176121, "o", "\u001b[38;5;252m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[38;5;231m\u001b[24;3H Terminal Window 2 -------------------------------------------------------------------------------------------------\u001b[H\r\n\u001b[38;5;252m--\u001b[116C--\u001b[24;1H\u001b[38;5;231m--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[39m\u001b[49m\u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[51.176723, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H "]
[51.177122, "o", " \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [0/0] [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[25;1H[tutorial@mitmprox"]
[51.177474, "o", "y] $ curl --proxy http://127.0.0.1:8080\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[25;58H\u001b[34h\u001b[?25h"]
[51.69614, "o", " "]
[52.231537, "o", "\""]
[52.348712, "o", "h"]
[52.606384, "o", "t"]
[52.82479, "o", "t"]
[53.000977, "o", "p"]
[53.557768, "o", ":"]
[54.010924, "o", "/"]
[54.239458, "o", "/"]
[54.510553, "o", "w"]
[54.901708, "o", "t"]
[55.299263, "o", "t"]
[55.471546, "o", "r"]
[55.592208, "o", "."]
[55.987543, "o", "i"]
[56.152117, "o", "n"]
[56.386589, "o", "/"]
[56.589924, "o", "D"]
[56.976625, "o", "u"]
[57.110029, "o", "n"]
[57.365781, "o", "e"]
[57.998059, "o", "d"]
[58.2042, "o", "i"]
[58.592194, "o", "n"]
[58.868106, "o", "?"]
[59.122212, "o", "0"]
[59.277812, "o", "\""]
[60.694258, "o", "\r\n"]
[60.857817, "o", "\u001b[4d\u001b[38;5;245m>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/1] [*:8080]\u001b[26;1H\u001b[m\u000f"]
[60.90042, "o", "\u001b[4d\u001b[38;5;245m>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m…\u001b[38;5;240mntent missing]\u001b[39m \u001b[26;1H"]
[60.90379, "o", "Weather report: Dunedin\u001b[28;1H \u001b[38;5;226m _`/\"\"\u001b[38;5;250m.-. \u001b[39m Patchy rain possible\r\n \u001b[38;5;226m ,\\_\u001b[38;5;250m( ). \u001b[39m \u001b[38;5;47m7\u001b[39m..\u001b[38;5;46m8\u001b[39m °C \r\n \u001b[38;5;226m /\u001b[38;5;250m(___(__) \u001b[39m \u001b[1m↘\u001b[m\u000f \u001b[38;5;190m10\u001b[39m km/h \r\n \u001b[38;5;111m \u001b[39m 10 km \r\n \u001b[38;5;111m \u001b[39m 0.1 mm \r\n"]
[60.905186, "o", "[tutorial@mitmproxy] $ "]
[60.911111, "o", "\u001b[4;1H\u001b[38;5;245m>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[33;24H"]
[63.419123, "o", "curl --proxy http://127.0.0.1:8080 \"http://wttr.in/Dunedin?0\""]
[63.677933, "o", "\b"]
[63.931061, "o", "\b"]
[64.152043, "o", "\b"]
[64.277129, "o", "\b\u001b[1P?0\"\u001b[3D"]
[64.392456, "o", "\b\u001b[1P?0\"\u001b[3D"]
[64.628428, "o", "\b\u001b[1P?0\"\u001b[3D"]
[64.732521, "o", "\b\u001b[1P?0\"\u001b[3D"]
[64.858194, "o", "\b\u001b[1P?0\"\u001b[3D"]
[64.99509, "o", "\b\u001b[1P?0\"\u001b[3D"]
[65.116375, "o", "\b\u001b[1P?0\"\u001b[3D"]
[65.278693, "o", "I?0\"\u001b[3D"]
[65.627494, "o", "n?0\"\u001b[3D"]
[65.815331, "o", "n?0\"\u001b[3D"]
[66.089513, "o", "s?0\"\u001b[3D"]
[66.183075, "o", "b?0\"\u001b[3D"]
[66.385073, "o", "r?0\"\u001b[3D"]
[66.505975, "o", "u?0\"\u001b[3D"]
[66.74627, "o", "c?0\"\u001b[3D"]
[66.920761, "o", "k?0\"\u001b[3D"]
[68.446162, "o", "\r\n"]
[68.489082, "o", "\u001b[5d \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[38;5;245m \u001b[39m \u001b[22;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/2] [*:8080]\u001b[34;1H\u001b[m\u000f"]
[68.808966, "o", "\u001b[5d \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m…\u001b[38;5;240mntent missing]\u001b[39m \u001b[34;1H"]
[68.813381, "o", "\u001b[25;36r\u001b[36;1H\n\u001b[3AWeather report: Innsbruck\u001b[35;1H \u001b[38;5;226m \\ / \u001b[39m Sunny\r\n\u001b[K \u001b[38;5;226m .-. \u001b[39m \u001b[38;5;220m25\u001b[39m..\u001b[38;5;220m27\u001b[39m °\r\n\u001b[35;25HC \r\n\u001b[K \u001b[38;5;226m ― ( ) ― \u001b[39m \u001b[1m↙\u001b[m\u000f\r\n\u001b[35;18H \u001b[38;5;154m9\u001b[39m km/h \r\n\u001b[K \u001b[38;5;226m `-\u001b[39m\r\u001b[2S\u001b[34;11H\u001b[38;5;226m \u001b[39m 10 km \r\n\u001b[K \u001b[38;5;226m / \\ \u001b[39m 0.0 mm \r\n\u001b[K\u001b[1;36r\u001b[36;1H"]
[68.815003, "o", "[tutorial@mitmproxy] $ "]
[68.821736, "o", "\u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[36;24H"]
[71.118721, "o", "e"]
[71.396276, "o", "x"]
[71.69005, "o", "i"]
[71.800176, "o", "t"]
[73.210002, "o", "\u001b[25;36r\u001b[36;1H\n\u001b[K\u001b[1;36r\u001b[36;1H\u001b[25;36r\u001b[36;1H\n\u001bMlogout\r\n\u001b[K\u001b[1;36r\u001b[36;1H"]
[73.211707, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[73.212222, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[73.212565, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[22;1H⇩ [1/2] "]
[73.212873, "o", " [*:8080]\u001b[39m\u001b[49m\u001b[23;1H \u001b[24;1H\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\r\n\u001b[K\u001b[38;5;231m\u001b[48;5;16m\u001b[H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[3;1H\u001b[?25l\u001b[?1006h\u001b[?1002h"]
[73.217871, "o", "\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[49m\u001b[38;5;245m>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H \u001b[7;1H "]
[73.217968, "o", " \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H "]
[73.218102, "o", " \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H "]
[73.218326, "o", " \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H "]
[73.21851, "o", " \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/2] [*:8080]\u001b[36;1H\u001b[39m\u001b[49m \r \u001b[36;119H "]
[73.395584, "o", "\u001b[3;1H"]
[73.805, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[m\u000f\u001b[3;1H"]
[73.818485, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[73.818592, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[73.818882, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[73.819084, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[73.819144, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[73.822843, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H You see the requests to `wttr.in` in the list of flows. \u001b[m\u000f\u001b[3;1H"]
[78.224036, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[78.224238, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[78.224491, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[78.224645, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[78.224842, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[78.73254, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[78.732641, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[78.732797, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[78.732873, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[78.732921, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[78.737206, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H mitmproxy is controlled using keyboard shortcuts. \u001b[m\u000f\u001b[3;1H"]
[82.653935, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[82.654037, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[82.654313, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[82.65453, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[82.65464, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[83.166428, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[83.166799, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[83.166923, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[83.167219, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[83.167482, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[83.172296, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Use your arrow keys `↑` and `↓` to change the focused flow (`>>`). \u001b[m\u000f\u001b[3;1H"]
[88.460536, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[88.460641, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[88.460897, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[88.461078, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[88.461399, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[88.972404, "o", "\r\n \u001b[38;5;245m16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H\u001b[38;5;245m>>16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [2/2] [*:8080]\u001b[35;120H\u001b[m\u000f"]
[89.351611, "o", "\u001b[4;1H\u001b[38;5;245m>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/2] [*:8080]\u001b[35;120H\u001b[m\u000f"]
[89.442377, "o", "\u001b[3;1H"]
[90.163659, "o", "\r\n \u001b[38;5;245m16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H\u001b[38;5;245m>>16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [2/2] [*:8080]\u001b[35;120H\u001b[m\u000f"]
[90.444678, "o", "\u001b[3;1H"]
[90.839237, "o", "\r\n\u001b[38;5;245m>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[35;1H\u001b[38;5;254m\u001b[48;5;240m⇩ [1/2] [*:8080]\u001b[35;120H\u001b[m\u000f"]
[90.944966, "o", "\u001b[3;1H"]
[91.8883, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[91.888414, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[91.888569, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[91.888812, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[91.889029, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[91.893236, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H The focused flow (`>>`) is used as a target for various commands. \u001b[m\u000f\u001b[3;1H"]
[97.101816, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[97.101929, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[97.102254, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[97.102528, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[97.102718, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[97.603756, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[97.604042, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[97.604738, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[97.60501, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[97.605434, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[97.609096, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H One such command shows the flow details, it is bound to `ENTER`. \u001b[m\u000f\u001b[3;1H"]
[102.731566, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[102.731913, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[102.732159, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[102.732466, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[102.732754, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[103.239611, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[103.239835, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[103.240604, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[103.240874, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[103.241117, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[103.244498, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `ENTER` to view the details of the focused flow. \u001b[m\u000f\u001b[3;1H"]
[107.569695, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[107.570013, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[107.570277, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[107.57062, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[107.570961, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[108.086115, "o", "\u001b[38;5;254m\u001b[48;5;240mFlow Details \u001b[4;1H\u001b[49m\u001b[38;5;240m2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[6;1H\u001b[38;5;254m\u001b[48;5;240m Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[8;1H\u001b[38;5;33mUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m "]
[108.086428, "o", " \u001b[9;1H\u001b[38;5;33mAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[10;1H\u001b[38;5;33mProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[11;1H\u001b[38;5;254m\u001b[48;5;240mQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[12;1H\u001b[49m\u001b[38;5;33m0: \u001b[39m \u001b[12;120H"]
[108.336833, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[108.336939, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[108.337164, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[108.337365, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[108.337508, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[12;120H"]
[108.342096, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H The flow details view has 3 panes: request, response, and detail. \u001b[m\u000f\u001b[12;120H"]
[108.494151, "o", "\u001b[3;1H"]
[113.535966, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[113.53621, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[113.536488, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[113.536657, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[113.536851, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[114.052869, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[114.052998, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[114.053285, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[114.053602, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[114.053804, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[114.057723, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Use your arrow keys `←` and `→` to switch between panes. \u001b[m\u000f\u001b[3;1H"]
[118.538692, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[118.53897, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[118.539157, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[118.539399, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[118.539578, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[119.056207, "o", "\u001b[3B\u001b[38;5;245m\u001b[48;5;235m Request \u001b[39m\u001b[49m \u001b[38;5;254m\u001b[48;5;240m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mServer:\u001b[39m \u001b[38;5;245mnginx/1.10.3\u001b[39m \u001b[8;1H\u001b[38;5;33mDate:\u001b[39m \u001b[38;5;245mFri, 04 Sep 2020 16:34:28 GMT\u001b[39m \u001b[9;1H\u001b[38;5;33mContent-Type:\u001b[39m \u001b[38;5;245mtext/plain; charset=utf-8\u001b[39m \u001b[10;1H\u001b[38;5;33mContent-Length:\u001b[39m \u001b[38;5;245m386\u001b[39m \u001b[11;1H\u001b[38;5;33mConnection:\u001b[39m \u001b[38;5;245mkeep-alive\u001b[39m \u001b[12;1H\u001b[38;5;33mAcces"]
[119.056383, "o", "s-Control-Allow-Origin:\u001b[39m \u001b[38;5;245m*\u001b[39m \u001b[13;1H\u001b[38;5;254m\u001b[48;5;240mRaw [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[14;1H\u001b[49m\u001b[38;5;245mWeather report: Dunedin\u001b[39m \u001b[16;1H\u001b[38;5;245m \\x1b[38;5;226m _`/\"\"\\x1b[38;5;250m.-. \\x1b[0m Patchy rain possible\u001b[39m \u001b[17;1H\u001b[38;5;245m \\x1b[38;5;226m ,\\\\_\\x1b[38;5;250m( ). \\x1b[0m \\x1b[38;5;047m7\\x1b[0m..\\x1b[38;5;046m8\\x1b[0m \\xc2\\xb0C\\x1b[0m \u001b[18;1H \u001b[39m \u001b[19;1H\u001b[38;5;245m \\x1b[38;5;226m /\\x1b[38;5;250m(___(__) \\x1b[0m \\x1b[1m\\xe2\\x86\\x98\\x1b[0m \\x1b[38;5;190m10\\x1b[0m km/h\\x1b[0m \u001b"]
[119.056526, "o", "[39m \u001b[20;1H\u001b[38;5;245m \\x1b[38;5;111m \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\x1b[0m 10 km\\x1b[0m \u001b[39m \u001b[21;1H\u001b[38;5;245m \\x1b[38;5;111m \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\x1b[0m 0.1 mm\\x1b[0m \u001b[39m \u001b[21;120H"]
[119.52303, "o", "\u001b[3;1H"]
[123.533955, "o", "\u001b[3B\u001b[38;5;245m\u001b[48;5;235m Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;254m\u001b[48;5;240m Detail \u001b[7;1H\u001b[49mServer Connection:\u001b[39m \u001b[8;1H \u001b[38;5;33mAddress\u001b[39m \u001b[38;5;245mwttr.in:80\u001b[39m \u001b[9;1H \u001b[38;5;33mResolved Address\u001b[39m \u001b[38;5;245m5.9.243.187:80\u001b[39m \u001b[10;1H \u001b[38;5;33mHTTP Version\u001b[39m \u001b[38;5;245mHTTP/1.1\u001b[39m \u001b[11;1H\u001b[38;5;254mClient Connection:\u001b[39m \u001b[12;1H \u001b[38;5;33mAddress\u001b[39m \u001b[38;5;245m::ffff:127.0"]
[123.534186, "o", ".0.1:58880\u001b[39m \u001b[13;1H \u001b[38;5;33mHTTP Version\u001b[39m \u001b[38;5;245mHTTP/1.1\u001b[39m \u001b[14;1H\u001b[38;5;254mTiming:\u001b[39m \u001b[15;1H \u001b[38;5;33mClient conn. established\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.601\u001b[39m \u001b[16;1H \u001b[38;5;33mFirst request byte\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.604\u001b[39m \u001b[17;1H \u001b[38;5;33mRequest complete\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.608\u001b[39m \u001b[18;1H \u001b[38;5;33mServer conn. initiated\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.611\u001b[39m "]
[123.534394, "o", " \u001b[19;1H \u001b[38;5;33mServer conn. TCP handshake\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.660\u001b[39m \u001b[20;1H \u001b[38;5;33mFirst response byte\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.790\u001b[39m \u001b[21;1H \u001b[38;5;33mResponse complete\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.797\u001b[39m \u001b[22;1H \u001b[38;5;33mServer conn. closed\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.800\u001b[39m \u001b[23;1H \u001b[38;5;33mClient conn. closed\u001b[39m \u001b[38;5;245m2020-09-04 16:34:26.809\u001b[39m \u001b[23;120H"]
[123.539719, "o", "\u001b[3;1H"]
[129.335709, "o", "\u001b[3B\u001b[38;5;245m\u001b[48;5;235m Request \u001b[39m\u001b[49m \u001b[38;5;254m\u001b[48;5;240m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mServer:\u001b[39m \u001b[38;5;245mnginx/1.10.3\u001b[39m \u001b[8;1H\u001b[38;5;33mDate:\u001b[39m \u001b[38;5;245mFri, 04 Sep 2020 16:34:28 GMT\u001b[39m \u001b[9;1H\u001b[38;5;33mContent-Type:\u001b[39m \u001b[38;5;245mtext/plain; charset=utf-8\u001b[39m \u001b[10;1H\u001b[38;5;33mContent-Length:\u001b[39m \u001b[38;5;245m386\u001b[39m \u001b[11;1H\u001b[38;5;33mConnection:\u001b[39m \u001b[38;5;245mkeep-alive\u001b[39m \u001b[12;1H\u001b[38;5;33mAcces"]
[129.336074, "o", "s-Control-Allow-Origin:\u001b[39m \u001b[38;5;245m*\u001b[39m \u001b[13;1H\u001b[38;5;254m\u001b[48;5;240mRaw [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[14;1H\u001b[49m\u001b[38;5;245mWeather report: Dunedin\u001b[39m \u001b[15;1H \u001b[16;1H\u001b[38;5;245m \\x1b[38;5;226m _`/\"\"\\x1b[38;5;250m.-. \\x1b[0m Patchy rain possible\u001b[39m \u001b[17;1H\u001b[38;5;245m \\x1b[38;5;226m ,\\\\_\\x1b[38;5;250m( ). \\x1b[0m \\x1b[38;5;047m7\\x1b[0m..\\x1b[38;5;046m8\\x1b[0m \\xc2\\xb0C\\x1b[0m \u001b[18;1H \u001b[39m \u001b[19;1H\u001b[38"]
[129.336347, "o", ";5;245m \\x1b[38;5;226m /\\x1b[38;5;250m(___(__) \\x1b[0m \\x1b[1m\\xe2\\x86\\x98\\x1b[0m \\x1b[38;5;190m10\\x1b[0m km/h\\x1b[0m \u001b[39m \u001b[20;1H\u001b[38;5;245m \\x1b[38;5;111m \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\x1b[0m 10 km\\x1b[0m \u001b[39m \u001b[21;1H\u001b[38;5;245m \\x1b[38;5;111m \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\xe2\\x80\\x98 \\x1b[0m 0.1 mm\\x1b[0m \u001b[39m \u001b[22;1H \u001b[23;1H \u001b[23;120H"]
[129.555172, "o", "\u001b[3;1H"]
[129.752844, "o", "\u001b[3B\u001b[38;5;254m\u001b[48;5;240m Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[8;1H\u001b[38;5;33mUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[9;1H\u001b[38;5;33mAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[10;1H\u001b[38;5;33mProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[11;1H\u001b[38;5;254m\u001b[48;5;240mQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;2"]
[129.753169, "o", "40m:auto]\u001b[12;1H\u001b[49m\u001b[38;5;33m0: \u001b[39m \u001b[13;1H \u001b[14;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H "]
[129.753451, "o", " \u001b[21;1H \u001b[21;120H"]
[130.056542, "o", "\u001b[3;1H"]
[131.914713, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[131.914818, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[131.915145, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[131.915406, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[131.91576, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[131.919362, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `q` to exit the current view. \u001b[m\u000f\u001b[3;1H"]
[134.713807, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[134.71392, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[134.714221, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[134.714333, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[134.714667, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[135.24914, "o", "\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[49m\u001b[38;5;245m>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H \u001b[7;1H "]
[135.249243, "o", " \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[12;120H"]
[135.383723, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[135.383829, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[135.384009, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[135.38409, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[135.384344, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[12;120H"]
[135.388689, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `?` to get a list of all available keyboard shortcuts. \u001b[m\u000f\u001b[12;120H"]
[135.572481, "o", "\u001b[3;1H"]
[140.186695, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[140.186995, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[140.187307, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[140.187372, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[140.18755, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[140.729531, "o", "\u001b[38;5;254m\u001b[48;5;240mHelp \u001b[4;1H Key Bindings \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Filter Expressions \u001b[5;1H\u001b[49m\u001b[38;5;33mCommon Keybindings\u001b[39m \u001b[6;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[7;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[8;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[9;1H\u001b[38;5;33menter\u001b[39m \u001b[38;5;245mSelect\u001b[39m "]
[140.729637, "o", " \u001b[10;1H\u001b[38;5;33mq\u001b[39m \u001b[38;5;245mExit the current view\u001b[39m \u001b[11;1H\u001b[38;5;33mtab\u001b[39m \u001b[38;5;245mNext\u001b[39m \u001b[13;1H\u001b[38;5;33mKeybindings for this view\u001b[39m \u001b[14;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[15;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[16;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[17;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mL"]
[140.729861, "o", "oad flows from file\u001b[39m \u001b[18;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[19;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[20;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[21;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[22;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[23;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m "]
[140.730045, "o", " \u001b[24;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[25;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[26;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[27;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[28;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[29;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[30;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5"]
[140.73024, "o", ";245mCreate a new flow\u001b[39m \u001b[31;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[32;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[33;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[34;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[34;120H"]
[141.091679, "o", "\u001b[3;1H"]
[142.825672, "o", "\u001b[2B\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[6;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[7;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[8;1H\u001b[38;5;33menter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[9;1H\u001b[38;5;33mq\u001b[39m \u001b[38;5;245mExit the current view\u001b[39m \u001b[10;1H\u001b[38;5;33mtab\u001b[39m \u001b[38;5;245mNext\u001b[39m \u001b[11;1H "]
[142.82577, "o", " \u001b[12;1H\u001b[38;5;33mKeybindings for this view\u001b[39m \u001b[13;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[14;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[15;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[16;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[17;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[18;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart s"]
[142.825979, "o", "erver replay\u001b[39m \u001b[19;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[20;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[21;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[22;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[23;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[24;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m "]
[142.826653, "o", " \u001b[25;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[26;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[27;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[28;1H\u001b[38;5;33mm\u001b[m\u000f \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[29;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[30;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[31;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mRe"]
[142.826962, "o", "play this flow\u001b[39m \u001b[32;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[33;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[34;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[34;120H"]
[143.096004, "o", "\u001b[3;1H"]
[143.629141, "o", "\u001b[2B\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[6;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[7;1H\u001b[38;5;33menter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[8;1H\u001b[38;5;33mq\u001b[39m \u001b[38;5;245mExit the current view\u001b[39m \u001b[9;1H\u001b[38;5;33mtab\u001b[39m \u001b[38;5;245mNext\u001b[39m \u001b[10;1H \u001b[11;1H\u001b[38;5;33mKeybindings for this view\u001b[39m "]
[143.629244, "o", " \u001b[12;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[13;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[14;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[15;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[16;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[17;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[18;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set "]
[143.62939, "o", "all marks\u001b[39m \u001b[19;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[20;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[21;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[22;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[23;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[24;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m "]
[143.629653, "o", " \u001b[25;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[26;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[27;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[28;1H\u001b[38;5;33mn\u001b[m\u000f \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[29;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[30;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[31;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mRe"]
[143.629863, "o", "verse flow list order\u001b[39m \u001b[32;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[33;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[34;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[34;120H"]
[143.88032, "o", "\u001b[5;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[6;1H\u001b[38;5;33menter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[7;1H\u001b[38;5;33mq\u001b[39m \u001b[38;5;245mExit the current view\u001b[39m \u001b[8;1H\u001b[38;5;33mtab\u001b[39m \u001b[38;5;245mNext\u001b[39m \u001b[9;1H \u001b[10;1H\u001b[38;5;33mKeybindings for this view\u001b[39m \u001b[11;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m "]
[143.880425, "o", " \u001b[12;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[13;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[14;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[15;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[16;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[17;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[18;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRever"]
[143.880575, "o", "t changes to this flow\u001b[39m \u001b[19;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[20;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[21;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[22;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[23;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[24;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m "]
[143.880867, "o", " \u001b[25;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[26;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[27;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[28;1H\u001b[38;5;33mo\u001b[m\u000f \u001b[38;5;245mSet flow list order\u001b[39m \u001b[29;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[30;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[31;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245m"]
[143.88111, "o", "Save listed flows to file\u001b[39m \u001b[32;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[33;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[34;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[34;120H"]
[144.09739, "o", "\u001b[3;1H"]
[144.233492, "o", "\u001b[2B\u001b[38;5;33menter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[6;1H\u001b[38;5;33mq\u001b[39m \u001b[38;5;245mExit the current view\u001b[39m \u001b[7;1H\u001b[38;5;33mtab\u001b[39m \u001b[38;5;245mNext\u001b[39m \u001b[8;1H \u001b[9;1H\u001b[38;5;33mKeybindings for this view\u001b[39m \u001b[10;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[11;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m "]
[144.233613, "o", " \u001b[12;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[13;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[14;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[15;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[16;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[17;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[18;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill th"]
[144.233941, "o", "is flow\u001b[39m \u001b[19;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[20;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[21;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[22;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[23;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[24;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m "]
[144.23426, "o", " \u001b[25;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[26;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[27;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[28;1H\u001b[38;5;33mr\u001b[m\u000f \u001b[38;5;245mReplay this flow\u001b[39m \u001b[29;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[30;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[31;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mCl"]
[144.234571, "o", "ear flow list\u001b[39m \u001b[32;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[33;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[34;1H \u001b[34;120H"]
[144.358211, "o", "\u001b[5;1H\u001b[38;5;33mq\u001b[39m \u001b[38;5;245mExit the current view\u001b[39m \u001b[6;1H\u001b[38;5;33mtab\u001b[39m \u001b[38;5;245mNext\u001b[39m \u001b[7;1H \u001b[8;1H\u001b[38;5;33mKeybindings for this view\u001b[39m \u001b[9;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[10;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[11;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m "]
[144.358575, "o", " \u001b[12;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[13;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[14;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[15;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[16;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[17;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[18;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge"]
[144.358845, "o", " all flows not showing\u001b[39m \u001b[19;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[20;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[21;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[22;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[23;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[24;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m "]
[144.359239, "o", " \u001b[25;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[26;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[27;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[28;1H\u001b[38;5;33mv\u001b[m\u000f \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[29;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[30;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[31;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245m"]
[144.359494, "o", "Run a script on this flow\u001b[39m \u001b[32;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[33;1H \u001b[34;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[34;120H"]
[144.602226, "o", "\u001b[3;1H"]
[144.896173, "o", "\u001b[2B\u001b[38;5;33mtab\u001b[39m \u001b[38;5;245mNext\u001b[39m \u001b[6;1H \u001b[7;1H\u001b[38;5;33mKeybindings for this view\u001b[39m \u001b[8;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[9;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[10;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[11;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m "]
[144.896384, "o", " \u001b[12;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[13;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[14;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[15;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[16;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[17;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[18;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume "]
[144.896579, "o", "this intercepted flow\u001b[39m \u001b[19;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[20;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[21;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[22;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[23;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[24;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m "]
[144.896807, "o", " \u001b[25;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[26;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[27;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[28;1H\u001b[38;5;33mw\u001b[m\u000f \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[29;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[30;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[31;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSe"]
[144.89701, "o", "nd cuts to clipboard\u001b[39m \u001b[32;1H \u001b[33;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[34;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[34;120H"]
[145.102568, "o", "\u001b[3;1H"]
[145.136534, "o", "\u001b[2B \u001b[6;1H\u001b[38;5;33mKeybindings for this view\u001b[39m \u001b[7;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[8;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[9;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[10;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[11;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m "]
[145.136639, "o", " \u001b[12;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[13;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[14;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[15;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[16;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[17;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[18;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave re"]
[145.136671, "o", "sponse body to file\u001b[39m \u001b[19;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[20;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[21;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[22;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[23;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[24;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m "]
[145.136912, "o", " \u001b[25;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[26;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[27;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[28;1H\u001b[38;5;33mz\u001b[m\u000f \u001b[38;5;245mClear flow list\u001b[39m \u001b[29;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[30;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[31;1H "]
[145.13713, "o", " \u001b[32;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[33;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[34;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[34;120H"]
[145.320724, "o", "\u001b[5;1H\u001b[38;5;33mKeybindings for this view\u001b[39m \u001b[6;1H\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[7;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[8;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[9;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[10;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[11;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m "]
[145.320974, "o", " \u001b[12;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[13;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[14;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[15;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[16;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[17;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[18;1H\u001b[38;5;3"]
[145.321061, "o", "3md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[19;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[20;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[21;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[22;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[23;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[24;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m "]
[145.321198, "o", " \u001b[25;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[26;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[27;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[28;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[29;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[30;1H \u001b[31;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m"]
[145.321507, "o", " \u001b[32;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[33;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[34;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[34;120H"]
[145.601451, "o", "\u001b[3;1H"]
[145.795883, "o", "\u001b[2B\u001b[38;5;33mA\u001b[39m \u001b[38;5;245mResume all intercepted flows\u001b[39m \u001b[6;1H\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[7;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[8;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[9;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[10;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[11;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m "]
[145.795989, "o", " \u001b[12;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[13;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[14;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[15;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[16;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[17;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b"]
[145.796193, "o", "[18;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[19;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[20;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[21;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[22;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[23;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[24;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m "]
[145.796419, "o", " \u001b[25;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[26;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[27;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[28;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[29;1H \u001b[30;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[31;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;2"]
[145.796715, "o", "45mCycle to next layout\u001b[39m \u001b[32;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[33;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[34;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[34;120H"]
[146.105088, "o", "\u001b[3;1H"]
[146.119144, "o", "\u001b[2B\u001b[38;5;33mD\u001b[39m \u001b[38;5;245mDuplicate flow\u001b[39m \u001b[6;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[7;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[8;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[9;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[10;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[11;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m "]
[146.11947, "o", " \u001b[12;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[13;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[14;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[15;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[16;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[17;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b"]
[146.119755, "o", "[18;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[19;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[20;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[21;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[22;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[23;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[24;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m "]
[146.120248, "o", " \u001b[25;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[26;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[27;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[28;1H \u001b[29;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[30;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[31;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;2"]
[146.120521, "o", "45mCommand prompt\u001b[39m \u001b[32;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[33;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[34;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[34;120H"]
[146.263845, "o", "\u001b[5;1H\u001b[38;5;33mF\u001b[39m \u001b[38;5;245mSet focus follow\u001b[39m \u001b[6;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[7;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[8;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[9;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[10;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[11;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m "]
[146.26396, "o", " \u001b[12;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[13;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[14;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[15;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[16;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[17;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m "]
[146.264276, "o", " \u001b[18;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[19;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[20;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[21;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[22;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[23;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[24;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m "]
[146.264495, "o", " \u001b[25;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[26;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[27;1H \u001b[27;120H\r\n\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[29;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[30;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[31;1H\u001b[38;5;33m?\u001b[39m \u001b["]
[146.264699, "o", "38;5;245mView help\u001b[39m \u001b[32;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[33;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[34;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[34;120H"]
[146.483922, "o", "\u001b[5;1H\u001b[38;5;33mL\u001b[39m \u001b[38;5;245mLoad flows from file\u001b[39m \u001b[6;1H\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[7;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[8;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[9;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[10;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[11;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m "]
[146.48403, "o", " \u001b[12;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[13;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[14;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[15;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[16;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[17;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m "]
[146.484258, "o", " \u001b[18;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[19;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[20;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[21;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[22;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[23;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[24;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m "]
[146.48466, "o", " \u001b[25;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[26;1H \u001b[27;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[28;1H\u001b[38;5;33m-\u001b[m\u000f \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[29;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[30;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[31;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;"]
[146.484984, "o", "245mStart an attached browser\u001b[39m \u001b[32;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[33;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[34;1H\u001b[38;5;33mG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[34;120H"]
[146.607063, "o", "\u001b[3;1H"]
[146.691289, "o", "\u001b[2B\u001b[38;5;33mM\u001b[39m \u001b[38;5;245mToggle viewing marked flows\u001b[39m \u001b[6;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[7;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[8;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[9;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[10;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[11;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m "]
[146.691387, "o", " \u001b[12;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[13;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[14;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[15;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[16;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[17;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b"]
[146.691687, "o", "[18;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[19;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[20;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[21;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[22;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[23;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[24;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m "]
[146.691833, "o", " \u001b[25;1H \u001b[26;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[27;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[28;1H\u001b[38;5;33m:\u001b[m\u000f \u001b[38;5;245mCommand prompt\u001b[39m \u001b[29;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[30;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[31;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;24"]
[146.692053, "o", "5mView commands\u001b[39m \u001b[32;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[33;1H\u001b[38;5;33mG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[34;1H\u001b[38;5;33mI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[34;120H"]
[147.032732, "o", "\u001b[5;1H\u001b[38;5;33mS\u001b[39m \u001b[38;5;245mStart server replay\u001b[39m \u001b[6;1H\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[7;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[8;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[9;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[10;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[11;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m "]
[147.032832, "o", " \u001b[12;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[13;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[14;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[15;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[16;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[17;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m "]
[147.033042, "o", " \u001b[18;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[19;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[20;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[21;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[22;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[23;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[24;1H "]
[147.033309, "o", " \u001b[25;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[26;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[27;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[28;1H\u001b[38;5;33m?\u001b[m\u000f \u001b[38;5;245mView help\u001b[39m \u001b[29;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[30;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[31;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;"]
[147.033628, "o", "245mView event log\u001b[39m \u001b[32;1H\u001b[38;5;33mG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[33;1H\u001b[38;5;33mI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[34;1H\u001b[38;5;33mK\u001b[39m \u001b[38;5;245mView key bindings\u001b[39m \u001b[34;120H"]
[147.108152, "o", "\u001b[3;1H"]
[147.306153, "o", "\u001b[2B\u001b[38;5;33mU\u001b[39m \u001b[38;5;245mUn-set all marks\u001b[39m \u001b[6;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[7;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[8;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[9;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[10;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[11;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m "]
[147.306458, "o", " \u001b[12;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[13;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[14;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[15;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[16;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[17;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b"]
[147.306693, "o", "[18;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[19;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[20;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[21;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[22;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[23;1H \u001b[24;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m "]
[147.306989, "o", " \u001b[25;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[26;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[27;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[28;1H\u001b[38;5;33mB\u001b[m\u000f \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[29;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[30;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[31;1H\u001b[38;5;33mG\u001b[39m \u001b[38;5;24"]
[147.307359, "o", "5mGo to end\u001b[39m \u001b[32;1H\u001b[38;5;33mI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[33;1H\u001b[38;5;33mK\u001b[39m \u001b[38;5;245mView key bindings\u001b[39m \u001b[34;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[34;120H"]
[147.566551, "o", "\u001b[5;1H\u001b[38;5;33mV\u001b[39m \u001b[38;5;245mRevert changes to this flow\u001b[39m \u001b[6;1H\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[7;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[8;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[9;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[10;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[11;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m "]
[147.566828, "o", " \u001b[12;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[13;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[14;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[15;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[16;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[17;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m "]
[147.56719, "o", " \u001b[18;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[19;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[20;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[21;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[22;1H \u001b[23;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[24;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m "]
[147.567441, "o", " \u001b[25;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[26;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[27;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[28;1H\u001b[38;5;33mC\u001b[m\u000f \u001b[38;5;245mView commands\u001b[39m \u001b[29;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[30;1H\u001b[38;5;33mG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[31;1H\u001b[38;5;33mI\u001b[39m \u001b[38;5;"]
[147.567731, "o", "245mToggle intercept\u001b[39m \u001b[32;1H\u001b[38;5;33mK\u001b[39m \u001b[38;5;245mView key bindings\u001b[39m \u001b[33;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[34;1H\u001b[38;5;33mP\u001b[39m \u001b[38;5;245mView flow details\u001b[39m \u001b[34;120H"]
[147.607373, "o", "\u001b[3;1H"]
[147.876557, "o", "\u001b[2B\u001b[38;5;33mX\u001b[39m \u001b[38;5;245mKill this flow\u001b[39m \u001b[6;1H\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[7;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[8;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[9;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[10;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[11;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m "]
[147.876823, "o", " \u001b[12;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[13;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[14;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[15;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[16;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[17;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b"]
[147.877032, "o", "[18;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[19;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[20;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[21;1H \u001b[22;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[23;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[24;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m "]
[147.877208, "o", " \u001b[25;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[26;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[27;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[28;1H\u001b[38;5;33mE\u001b[m\u000f \u001b[38;5;245mView event log\u001b[39m \u001b[29;1H\u001b[38;5;33mG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[30;1H\u001b[38;5;33mI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[31;1H\u001b[38;5;33mK\u001b[39m \u001b[38;5;24"]
[147.877443, "o", "5mView key bindings\u001b[39m \u001b[32;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[33;1H\u001b[38;5;33mP\u001b[39m \u001b[38;5;245mView flow details\u001b[39m \u001b[34;1H\u001b[38;5;33mQ\u001b[39m \u001b[38;5;245mExit immediately\u001b[39m \u001b[34;120H"]
[148.109788, "o", "\u001b[3;1H"]
[148.136185, "o", "\u001b[2B\u001b[38;5;33mZ\u001b[39m \u001b[38;5;245mPurge all flows not showing\u001b[39m \u001b[6;1H\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[7;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[8;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[9;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[10;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[11;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m "]
[148.136289, "o", " \u001b[12;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[13;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[14;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[15;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[16;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[17;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b"]
[148.136752, "o", "[18;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[19;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[20;1H \u001b[21;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[22;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[23;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[24;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m "]
[148.136962, "o", " \u001b[25;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[26;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[27;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[28;1H\u001b[38;5;33mG\u001b[m\u000f \u001b[38;5;245mGo to end\u001b[39m \u001b[29;1H\u001b[38;5;33mI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[30;1H\u001b[38;5;33mK\u001b[39m \u001b[38;5;245mView key bindings\u001b[39m \u001b[31;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;24"]
[148.137225, "o", "5mView options\u001b[39m \u001b[32;1H\u001b[38;5;33mP\u001b[39m \u001b[38;5;245mView flow details\u001b[39m \u001b[33;1H\u001b[38;5;33mQ\u001b[39m \u001b[38;5;245mExit immediately\u001b[39m \u001b[34;1H\u001b[38;5;33mW\u001b[39m \u001b[38;5;245mStream to file\u001b[39m \u001b[34;120H"]
[148.615851, "o", "\u001b[3;1H"]
[148.624906, "o", "\u001b[2B\u001b[38;5;33ma\u001b[39m \u001b[38;5;245mResume this intercepted flow\u001b[39m \u001b[6;1H\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[7;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[8;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[9;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[10;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[11;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m "]
[148.625231, "o", " \u001b[12;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[13;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[14;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[15;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[16;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[17;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b"]
[148.625465, "o", "[18;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[19;1H \u001b[20;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[21;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[22;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[23;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[24;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m "]
[148.625731, "o", " \u001b[25;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[26;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[27;1H\u001b[38;5;33mG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[28;1H\u001b[38;5;33mI\u001b[m\u000f \u001b[38;5;245mToggle intercept\u001b[39m \u001b[29;1H\u001b[38;5;33mK\u001b[39m \u001b[38;5;245mView key bindings\u001b[39m \u001b[30;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[31;1H\u001b[38;5;33mP\u001b[39m \u001b[38;5;24"]
[148.625986, "o", "5mView flow details\u001b[39m \u001b[32;1H\u001b[38;5;33mQ\u001b[39m \u001b[38;5;245mExit immediately\u001b[39m \u001b[33;1H\u001b[38;5;33mW\u001b[39m \u001b[38;5;245mStream to file\u001b[39m \u001b[34;1H\u001b[38;5;33menter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[34;120H"]
[149.113589, "o", "\u001b[3;1H"]
[149.199791, "o", "\u001b[2B\u001b[38;5;33mb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[6;1H\u001b[38;5;33md\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[7;1H\u001b[38;5;33me\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[8;1H\u001b[38;5;33mf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m \u001b[9;1H\u001b[38;5;33mm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[10;1H\u001b[38;5;33mn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[11;1H\u001b[38;5;33mo\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m "]
[149.199906, "o", " \u001b[12;1H\u001b[38;5;33mr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[13;1H\u001b[38;5;33mv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[14;1H\u001b[38;5;33mw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[15;1H\u001b[38;5;33mz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[16;1H\u001b[38;5;33m|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[17;1H\u001b[38;5;33mctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b"]
[149.200093, "o", "[18;1H \u001b[19;1H\u001b[38;5;33mGlobal Keybindings\u001b[39m \u001b[20;1H\u001b[38;5;33m-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[21;1H\u001b[38;5;33m:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m \u001b[22;1H\u001b[38;5;33m?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[23;1H\u001b[38;5;33mB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[24;1H\u001b[38;5;33mC\u001b[39m \u001b[38;5;245mView commands\u001b[39m "]
[149.20036, "o", " \u001b[25;1H\u001b[38;5;33mE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[26;1H\u001b[38;5;33mG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[27;1H\u001b[38;5;33mI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[28;1H\u001b[38;5;33mK\u001b[m\u000f \u001b[38;5;245mView key bindings\u001b[39m \u001b[29;1H\u001b[38;5;33mO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[30;1H\u001b[38;5;33mP\u001b[39m \u001b[38;5;245mView flow details\u001b[39m \u001b[31;1H\u001b[38;5;33mQ\u001b[39m \u001b[38;5;24"]
[149.200722, "o", "5mExit immediately\u001b[39m \u001b[32;1H\u001b[38;5;33mW\u001b[39m \u001b[38;5;245mStream to file\u001b[39m \u001b[33;1H\u001b[38;5;33menter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[34;1H\u001b[38;5;33mg\u001b[39m \u001b[38;5;245mGo to start\u001b[39m \u001b[34;120H"]
[149.418105, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HHelp \u001b[4;1H Key Bindings \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Filter Expressions \u001b[49m\u001b[38;5;33m\u001b[5;1Hb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[38;5;33m\u001b[6;1Hd\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[38;5;33m\u001b[7;1He\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[38;5;33m\u001b[8;1Hf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m "]
[149.418466, "o", " \u001b[38;5;33m\u001b[9;1Hm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[38;5;33m\u001b[10;1Hn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[38;5;33m\u001b[11;1Ho\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[38;5;33m\u001b[12;1Hr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[38;5;33m\u001b[13;1Hv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[38;5;33m\u001b[14;1Hw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[38;5;33m\u001b[15"]
[149.418663, "o", ";1Hz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[38;5;33m\u001b[16;1H|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[38;5;33m\u001b[17;1Hctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[18;1H \u001b[38;5;33m\u001b[19;1HGlobal Keybindings\u001b[39m \u001b[38;5;33m\u001b[20;1H-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[38;5;33m\u001b[21;1H:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m "]
[149.418922, "o", " \u001b[38;5;33m\u001b[22;1H?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[38;5;33m\u001b[23;1HB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[38;5;33m\u001b[24;1HC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[38;5;33m\u001b[25;1HE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[38;5;33m\u001b[26;1HG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[38;5;33m\u001b[27;1HI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[38;5;33m\u001b[28;1HK\u001b[39m \u001b[38;5;245mView key b"]
[149.419105, "o", "indings\u001b[39m \u001b[38;5;33m\u001b[29;1HO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[38;5;33m\u001b[30;1HP\u001b[39m \u001b[38;5;245mView flow details\u001b[39m \u001b[38;5;33m\u001b[31;1HQ\u001b[39m \u001b[38;5;245mExit immediately\u001b[39m \u001b[38;5;33m\u001b[32;1HW\u001b[39m \u001b[38;5;245mStream to file\u001b[39m \u001b[38;5;33m\u001b[33;1Henter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[38;5;33m\u001b[34;1Hg\u001b[39m \u001b[38;5;245mGo to start\u001b[39m "]
[149.419336, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[34;120H"]
[149.422669, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Tip: Remember the `?` shortcut. It works in every view. \u001b[m\u000f\u001b[34;120H"]
[149.617479, "o", "\u001b[3;1H"]
[153.825878, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HHelp \u001b[4;1H Key Bindings \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Filter Expressions \u001b[49m\u001b[38;5;33m\u001b[5;1Hb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[38;5;33m\u001b[6;1Hd\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[38;5;33m\u001b[7;1He\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[38;5;33m\u001b[8;1Hf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m "]
[153.826152, "o", " \u001b[38;5;33m\u001b[9;1Hm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[38;5;33m\u001b[10;1Hn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[38;5;33m\u001b[11;1Ho\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[38;5;33m\u001b[12;1Hr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[38;5;33m\u001b[13;1Hv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[38;5;33m\u001b[14;1Hw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[38;5;33m\u001b[15"]
[153.82627, "o", ";1Hz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[38;5;33m\u001b[16;1H|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[38;5;33m\u001b[17;1Hctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[18;1H \u001b[38;5;33m\u001b[19;1HGlobal Keybindings\u001b[39m \u001b[38;5;33m\u001b[20;1H-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[38;5;33m\u001b[21;1H:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m "]
[153.82639, "o", " \u001b[38;5;33m\u001b[22;1H?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[38;5;33m\u001b[23;1HB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[38;5;33m\u001b[24;1HC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[38;5;33m\u001b[25;1HE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[38;5;33m\u001b[26;1HG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[38;5;33m\u001b[27;1HI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[38;5;33m\u001b[28;1HK\u001b[39m \u001b[38;5;245mView key b"]
[153.82656, "o", "indings\u001b[39m \u001b[38;5;33m\u001b[29;1HO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[38;5;33m\u001b[30;1HP\u001b[39m \u001b[38;5;245mView flow details\u001b[39m \u001b[38;5;33m\u001b[31;1HQ\u001b[39m \u001b[38;5;245mExit immediately\u001b[39m \u001b[38;5;33m\u001b[32;1HW\u001b[39m \u001b[38;5;245mStream to file\u001b[39m \u001b[38;5;33m\u001b[33;1Henter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[38;5;33m\u001b[34;1Hg\u001b[39m \u001b[38;5;245mGo to start\u001b[39m "]
[153.826813, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[154.328248, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HHelp \u001b[4;1H Key Bindings \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Filter Expressions \u001b[49m\u001b[38;5;33m\u001b[5;1Hb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[38;5;33m\u001b[6;1Hd\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[38;5;33m\u001b[7;1He\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[38;5;33m\u001b[8;1Hf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m "]
[154.328558, "o", " \u001b[38;5;33m\u001b[9;1Hm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[38;5;33m\u001b[10;1Hn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[38;5;33m\u001b[11;1Ho\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[38;5;33m\u001b[12;1Hr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[38;5;33m\u001b[13;1Hv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[38;5;33m\u001b[14;1Hw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[38;5;33m\u001b[15"]
[154.328828, "o", ";1Hz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[38;5;33m\u001b[16;1H|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[38;5;33m\u001b[17;1Hctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[18;1H \u001b[38;5;33m\u001b[19;1HGlobal Keybindings\u001b[39m \u001b[38;5;33m\u001b[20;1H-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[38;5;33m\u001b[21;1H:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m "]
[154.329106, "o", " \u001b[38;5;33m\u001b[22;1H?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[38;5;33m\u001b[23;1HB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[38;5;33m\u001b[24;1HC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[38;5;33m\u001b[25;1HE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[38;5;33m\u001b[26;1HG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[38;5;33m\u001b[27;1HI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[38;5;33m\u001b[28;1HK\u001b[39m \u001b[38;5;245mView key b"]
[154.329501, "o", "indings\u001b[39m \u001b[38;5;33m\u001b[29;1HO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[38;5;33m\u001b[30;1HP\u001b[39m \u001b[38;5;245mView flow details\u001b[39m \u001b[38;5;33m\u001b[31;1HQ\u001b[39m \u001b[38;5;245mExit immediately\u001b[39m \u001b[38;5;33m\u001b[32;1HW\u001b[39m \u001b[38;5;245mStream to file\u001b[39m \u001b[38;5;33m\u001b[33;1Henter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[38;5;33m\u001b[34;1Hg\u001b[39m \u001b[38;5;245mGo to start\u001b[39m "]
[154.329783, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[154.33363, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `q` to exit the current view. \u001b[m\u000f\u001b[3;1H"]
[157.135387, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HHelp \u001b[4;1H Key Bindings \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Filter Expressions \u001b[49m\u001b[38;5;33m\u001b[5;1Hb\u001b[39m \u001b[38;5;245mSave response body to file\u001b[39m \u001b[38;5;33m\u001b[6;1Hd\u001b[39m \u001b[38;5;245mDelete flow from view\u001b[39m \u001b[38;5;33m\u001b[7;1He\u001b[39m \u001b[38;5;245mExport this flow to file\u001b[39m \u001b[38;5;33m\u001b[8;1Hf\u001b[39m \u001b[38;5;245mSet view filter\u001b[39m "]
[157.135651, "o", " \u001b[38;5;33m\u001b[9;1Hm\u001b[39m \u001b[38;5;245mToggle mark on this flow\u001b[39m \u001b[38;5;33m\u001b[10;1Hn\u001b[39m \u001b[38;5;245mCreate a new flow\u001b[39m \u001b[38;5;33m\u001b[11;1Ho\u001b[39m \u001b[38;5;245mSet flow list order\u001b[39m \u001b[38;5;33m\u001b[12;1Hr\u001b[39m \u001b[38;5;245mReplay this flow\u001b[39m \u001b[38;5;33m\u001b[13;1Hv\u001b[39m \u001b[38;5;245mReverse flow list order\u001b[39m \u001b[38;5;33m\u001b[14;1Hw\u001b[39m \u001b[38;5;245mSave listed flows to file\u001b[39m \u001b[38;5;33m\u001b[15"]
[157.135853, "o", ";1Hz\u001b[39m \u001b[38;5;245mClear flow list\u001b[39m \u001b[38;5;33m\u001b[16;1H|\u001b[39m \u001b[38;5;245mRun a script on this flow\u001b[39m \u001b[38;5;33m\u001b[17;1Hctrl l\u001b[39m \u001b[38;5;245mSend cuts to clipboard\u001b[39m \u001b[18;1H \u001b[38;5;33m\u001b[19;1HGlobal Keybindings\u001b[39m \u001b[38;5;33m\u001b[20;1H-\u001b[39m \u001b[38;5;245mCycle to next layout\u001b[39m \u001b[38;5;33m\u001b[21;1H:\u001b[39m \u001b[38;5;245mCommand prompt\u001b[39m "]
[157.136031, "o", " \u001b[38;5;33m\u001b[22;1H?\u001b[39m \u001b[38;5;245mView help\u001b[39m \u001b[38;5;33m\u001b[23;1HB\u001b[39m \u001b[38;5;245mStart an attached browser\u001b[39m \u001b[38;5;33m\u001b[24;1HC\u001b[39m \u001b[38;5;245mView commands\u001b[39m \u001b[38;5;33m\u001b[25;1HE\u001b[39m \u001b[38;5;245mView event log\u001b[39m \u001b[38;5;33m\u001b[26;1HG\u001b[39m \u001b[38;5;245mGo to end\u001b[39m \u001b[38;5;33m\u001b[27;1HI\u001b[39m \u001b[38;5;245mToggle intercept\u001b[39m \u001b[38;5;33m\u001b[28;1HK\u001b[39m \u001b[38;5;245mView key b"]
[157.13619, "o", "indings\u001b[39m \u001b[38;5;33m\u001b[29;1HO\u001b[39m \u001b[38;5;245mView options\u001b[39m \u001b[38;5;33m\u001b[30;1HP\u001b[39m \u001b[38;5;245mView flow details\u001b[39m \u001b[38;5;33m\u001b[31;1HQ\u001b[39m \u001b[38;5;245mExit immediately\u001b[39m \u001b[38;5;33m\u001b[32;1HW\u001b[39m \u001b[38;5;245mStream to file\u001b[39m \u001b[38;5;33m\u001b[33;1Henter\u001b[39m \u001b[38;5;245mSelect\u001b[39m \u001b[38;5;33m\u001b[34;1Hg\u001b[39m \u001b[38;5;245mGo to start\u001b[39m "]
[157.136439, "o", " \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[157.661732, "o", "\u001b[38;5;254m\u001b[48;5;240mFlows \u001b[4;1H\u001b[49m\u001b[38;5;245m>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H \u001b[7;1H "]
[157.661975, "o", " \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H "]
[157.66222, "o", " \u001b[16;1H \u001b[17;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H "]
[157.66246, "o", " \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[31;1H \u001b[32;1H "]
[157.662545, "o", " \u001b[33;1H \u001b[34;1H \u001b[34;120H"]
[157.92275, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[157.922957, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[157.92322, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[157.923381, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[157.923623, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[34;120H"]
[157.927757, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Each shortcut is internally bound to a command. \u001b[m\u000f\u001b[34;120H"]
[158.135139, "o", "\u001b[3;1H"]
[161.686571, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[161.686871, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[161.687131, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[161.68739, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[161.687618, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[162.19682, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[162.196927, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[162.197149, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[162.197218, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[162.197282, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[162.201464, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H You can also execute commands directly (without using shortcuts). \u001b[m\u000f\u001b[3;1H"]
[167.394377, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[167.394486, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[167.394627, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[167.395014, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[167.395321, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[167.913379, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[167.913692, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[167.913998, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[167.914194, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[167.914507, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[167.918971, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `:` to open the command prompt at the bottom. \u001b[m\u000f\u001b[3;1H"]
[171.996646, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[171.996752, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[171.997015, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[171.9972, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[171.997358, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[172.523825, "o", "\u001b[36d: \r: \u001b[36;119H \u001b[3G\u001b[34h\u001b[?25h"]
[172.616078, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2d Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[172.616495, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[172.616734, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[172.616806, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[172.617033, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[34h\u001b[?25h\u001b[36;3H"]
[172.622689, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Enter `console.view.flow @focus`. \u001b[m\u000f\u001b[36;3H"]
[175.268432, "o", "\u001b[38;5;231m\u001b[2d Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[175.268713, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[175.268922, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[175.269062, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[175.269285, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[36;3H\u001b[34h\u001b[?25h"]
[175.783094, "o", "\r: \u001b[38;5;166mc\u001b[39m \u001b[?25l\r: \u001b[38;5;166mc\u001b[39m \u001b[36;119H \u001b[4G\u001b[34h\u001b[?25h"]
[176.083288, "o", "\r: \u001b[38;5;166mco\u001b[39m \u001b[?25l\r: \u001b[38;5;166mco\u001b[39m \u001b[36;119H \u001b[5G\u001b[34h\u001b[?25h"]
[176.301222, "o", "\r: \u001b[38;5;166mcon\u001b[39m \u001b[?25l\r: \u001b[38;5;166mcon\u001b[39m \u001b[36;119H \u001b[6G\u001b[34h\u001b[?25h"]
[176.87493, "o", "\r: \u001b[38;5;166mcons\u001b[39m \u001b[?25l\r: \u001b[38;5;166mcons\u001b[39m \u001b[36;119H \u001b[7G\u001b[34h\u001b[?25h"]
[177.04291, "o", "\r: \u001b[38;5;166mconso\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconso\u001b[39m \u001b[36;119H \u001b[8G\u001b[34h\u001b[?25h"]
[177.473071, "o", "\r: \u001b[38;5;166mconsol\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsol\u001b[39m \u001b[36;119H \u001b[9G\u001b[34h\u001b[?25h"]
[177.589983, "o", "\r: \u001b[38;5;166mconsole\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole\u001b[39m \u001b[36;119H \u001b[10G\u001b[34h\u001b[?25h"]
[177.795602, "o", "\r: \u001b[38;5;166mconsole.\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.\u001b[39m \u001b[36;119H \u001b[11G\u001b[34h\u001b[?25h"]
[178.13899, "o", "\r: \u001b[38;5;166mconsole.v\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.v\u001b[39m \u001b[36;119H \u001b[12G\u001b[34h\u001b[?25h"]
[178.405005, "o", "\r: \u001b[38;5;166mconsole.vi\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.vi\u001b[39m \u001b[36;119H \u001b[13G\u001b[34h\u001b[?25h"]
[178.569328, "o", "\r: \u001b[38;5;166mconsole.vie\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.vie\u001b[39m \u001b[36;119H \u001b[14G\u001b[34h\u001b[?25h"]
[179.033653, "o", "\r: \u001b[38;5;166mconsole.view\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.view\u001b[39m \u001b[36;119H \u001b[15G\u001b[34h\u001b[?25h"]
[179.254611, "o", "\r: \u001b[38;5;166mconsole.view.\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.view.\u001b[39m \u001b[36;119H \u001b[16G\u001b[34h\u001b[?25h"]
[179.6114, "o", "\r: \u001b[38;5;166mconsole.view.f\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.view.f\u001b[39m \u001b[36;119H \u001b[17G\u001b[34h\u001b[?25h"]
[179.806524, "o", "\r: \u001b[38;5;166mconsole.view.fl\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.view.fl\u001b[39m \u001b[36;119H \u001b[18G\u001b[34h\u001b[?25h"]
[180.013613, "o", "\r: \u001b[38;5;166mconsole.view.flo\u001b[39m \u001b[?25l\r: \u001b[38;5;166mconsole.view.flo\u001b[39m \u001b[36;119H \u001b[19G\u001b[34h\u001b[?25h"]
[180.141087, "o", "\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;241mflow \u001b[39m \u001b[?25l\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;241mflow \u001b[39m \u001b[36;119H \u001b[20G\u001b[34h\u001b[?25h"]
[180.255442, "o", "\u001b[C"]
[180.693155, "o", "\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@\u001b[39m \u001b[?25l\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@\u001b[39m \u001b[36;119H \u001b[22G\u001b[34h\u001b[?25h"]
[181.002429, "o", "\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@f\u001b[39m \u001b[?25l\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@f\u001b[39m \u001b[36;119H \u001b[23G\u001b[34h\u001b[?25h"]
[181.238934, "o", "\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@fo\u001b[39m \u001b[?25l\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@fo\u001b[39m \u001b[36;119H \u001b[24G\u001b[34h\u001b[?25h"]
[181.4856, "o", "\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@foc\u001b[39m \u001b[?25l\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@foc\u001b[39m \u001b[36;119H \u001b[25G\u001b[34h\u001b[?25h"]
[181.744063, "o", "\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@focu\u001b[39m \u001b[?25l\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m \u001b[38;5;166m@focu\u001b[39m \u001b[36;119H \u001b[26G\u001b[34h\u001b[?25h"]
[181.88771, "o", "\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m @focus\u001b[39m \u001b[?25l\r: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m @focus\u001b[39m \u001b[36;119H \u001b[27G\u001b[34h\u001b[?25h"]
[182.238057, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[182.238348, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[182.238551, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[182.238667, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[182.238753, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m @focus\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b"]
[182.238929, "o", "[m\u000f\u001b[34h\u001b[?25h\u001b[36;27H"]
[182.243162, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H The command `console.view.flow` opens the details view for a flow. \u001b[m\u000f\u001b[36;27H"]
[187.525285, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[187.525615, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[187.525923, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[187.526138, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[187.526221, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m @focus\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3"]
[187.526483, "o", "6;27H\u001b[34h\u001b[?25h"]
[188.029107, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[188.029392, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[188.029626, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[188.029728, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[188.029778, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m @focus\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b"]
[188.0301, "o", "[m\u000f\u001b[34h\u001b[?25h\u001b[36;27H"]
[188.034238, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H The argument `@focus` defines the target flow. \u001b[m\u000f\u001b[36;27H"]
[191.718565, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[191.718672, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[191.718898, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[191.719136, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[191.719329, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m @focus\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3"]
[191.719535, "o", "6;27H\u001b[34h\u001b[?25h"]
[192.223376, "o", "\u001b[?25l\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[192.223658, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[192.223879, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[192.224073, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[192.22427, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m @focus\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b"]
[192.224346, "o", "[m\u000f\u001b[34h\u001b[?25h\u001b[36;27H"]
[192.228362, "o", "\u001b[?25l\u001b[38;5;231m\u001b[48;5;68m\u001b[H Press `ENTER` to execute the command. \u001b[m\u000f\u001b[36;27H"]
[195.188222, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlows \u001b[49m\u001b[38;5;245m\u001b[4;1H>>16:34:26\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mDunedin\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[5;1H \u001b[38;5;245m16:34:34\u001b[39m \u001b[36mHTTP \u001b[39m \u001b[38;5;64mGET \u001b[39m \u001b[38;5;245m \u001b[38;5;96mwttr\u001b[38;5;245m.\u001b[38;5;252min\u001b[39m \u001b[38;5;242m/\u001b[38;5;132mInnsbruck\u001b[38;5;242m?\u001b[38;5;37m0\u001b[38;5;245m \u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;245m text/plain\u001b[39m \u001b[38;5;47m 330b\u001b[39m \u001b[38;5;190m343ms\u001b[39m \u001b[6;1H "]
[195.188493, "o", " \u001b[7;1H \u001b[8;1H \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H "]
[195.188654, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[195.188837, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[195.188899, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H: \u001b[38;5;33mconsole.view.flow\u001b[38;5;245m @focus\u001b[39m \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3"]
[195.189051, "o", "6;27H\u001b[34h\u001b[?25h"]
[195.706203, "o", "\u001b[3;1H\u001b[38;5;254m\u001b[48;5;240mFlow Details \u001b[4;1H\u001b[49m\u001b[38;5;240m2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[6;1H\u001b[38;5;254m\u001b[48;5;240m Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[7;1H\u001b[49m\u001b[38;5;33mHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m \u001b[8;1H\u001b[38;5;33mUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m "]
[195.706309, "o", " \u001b[9;1H\u001b[38;5;33mAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[10;1H\u001b[38;5;33mProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[11;1H\u001b[38;5;254m\u001b[48;5;240mQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[12;1H\u001b[49m\u001b[38;5;33m0: \u001b[39m \u001b[36;1H \u001b[?25l\r \u001b[36;119H "]
[195.745678, "o", "\u001b[3;1H"]
[196.092002, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[196.092099, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[196.092321, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[196.092548, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[196.092898, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[196.096535, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H Commands unleash the full power of mitmproxy, i.e., to configure interceptions. \u001b[m\u000f\u001b[3;1H"]
[202.421702, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[202.421805, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[202.422237, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[202.422474, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[202.422781, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[202.925857, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[202.925972, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[202.926307, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[202.9265, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[202.926724, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[202.930294, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H You now know basics of mitmproxys UI and how to control it. \u001b[m\u000f\u001b[3;1H"]
[207.724797, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[207.724911, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[207.725136, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[207.725367, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[207.725556, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[209.241747, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[209.242039, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[209.242251, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[209.242329, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[209.24274, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]
[209.246491, "o", "\u001b[38;5;231m\u001b[48;5;68m\u001b[H In the next lesson you will learn to intercept flows. \u001b[m\u000f\u001b[3;1H"]
[213.486105, "o", "\u001b[38;5;231m\u001b[2;3H Terminal Window 1 -------------------------------------------------------------------------------------------------\u001b[H\r\n--\u001b[116C--\u001b[38;5;254m\u001b[48;5;240m\u001b[3;1HFlow Details \u001b[49m\u001b[38;5;240m\u001b[4;1H2020-09-04 16:34:26\u001b[39m \u001b[38;5;64mGET\u001b[39m \u001b[38;5;245mhttp://wttr.in/Dunedin?0\u001b[39m \u001b[5;1H \u001b[38;5;64m←\u001b[39m \u001b[38;5;64m200\u001b[39m \u001b[38;5;64mOK\u001b[39m \u001b[38;5;245mtext/plain\u001b[39m \u001b[38;5;47m386b\u001b[39m \u001b[38;5;118m193ms\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[6;1H Request \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Response \u001b[39m\u001b[49m \u001b[38;5;245m\u001b[48;5;235m Detail \u001b[49m\u001b[38;5;33m\u001b[7;1HHost:\u001b[39m \u001b[38;5;245mwttr.in\u001b[39m "]
[213.486209, "o", " \u001b[38;5;33m\u001b[8;1HUser-Agent:\u001b[39m \u001b[38;5;245mcurl/7.58.0\u001b[39m \u001b[38;5;33m\u001b[9;1HAccept:\u001b[39m \u001b[38;5;245m*/*\u001b[39m \u001b[38;5;33m\u001b[10;1HProxy-Connection:\u001b[39m \u001b[38;5;245mKeep-Alive\u001b[39m \u001b[38;5;254m\u001b[48;5;240m\u001b[11;1HQuery [\u001b[38;5;33m\u001b[1mm\u001b[m\u000f\u001b[38;5;254m\u001b[48;5;240m:auto]\u001b[49m\u001b[38;5;33m\u001b[12;1H0: \u001b[39m \u001b[13;1H \u001b[14;1H "]
[213.486425, "o", " \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H "]
[213.48663, "o", " \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H "]
[213.486827, "o", " \u001b[31;1H \u001b[32;1H \u001b[33;1H \u001b[34;1H \u001b[38;5;254m\u001b[48;5;240m\u001b[35;1H⇩ [1/2] [*:8080]\u001b[39m\u001b[49m\u001b[36;1H \u001b[38;5;231m\u001b[48;5;16m\u001b[1;1H \u001b[m\u000f\u001b[3;1H"]

View File

@ -0,0 +1,142 @@
[
{
"instruction": "1. Welcome to the mitmproxy tutorial. In this lesson we cover the user interface.",
"time_from": 0.0,
"time_to": 6.2
},
{
"instruction": "2. This is the default view of mitmproxy.",
"time_from": 14.6,
"time_to": 17.6
},
{
"instruction": "3. mitmproxy adds rows to the view as new requests come in.",
"time_from": 18.2,
"time_to": 22.7
},
{
"instruction": "4. Lets generate some requests using `curl` in a separate terminal.",
"time_from": 23.2,
"time_to": 28.4
},
{
"instruction": "5. Use curls `--proxy` option to configure mitmproxy as a proxy.",
"time_from": 31.8,
"time_to": 36.8
},
{
"instruction": "6. We use the text-based weather service `wttr.in`.",
"time_from": 46.1,
"time_to": 49.9
},
{
"instruction": "7. You see the requests to `wttr.in` in the list of flows.",
"time_from": 72.6,
"time_to": 77.0
},
{
"instruction": "8. mitmproxy is controlled using keyboard shortcuts.",
"time_from": 77.5,
"time_to": 81.4
},
{
"instruction": "9. Use your arrow keys `↑` and `↓` to change the focused flow (`>>`).",
"time_from": 81.9,
"time_to": 87.2
},
{
"instruction": "10. The focused flow (`>>`) is used as a target for various commands.",
"time_from": 90.6,
"time_to": 95.8
},
{
"instruction": "11. One such command shows the flow details, it is bound to `ENTER`.",
"time_from": 96.4,
"time_to": 101.5
},
{
"instruction": "12. Press `ENTER` to view the details of the focused flow.",
"time_from": 102.0,
"time_to": 106.3
},
{
"instruction": "13. The flow details view has 3 panes: request, response, and detail.",
"time_from": 107.1,
"time_to": 112.3
},
{
"instruction": "14. Use your arrow keys `←` and `→` to switch between panes.",
"time_from": 112.8,
"time_to": 117.3
},
{
"instruction": "15. Press `q` to exit the current view.",
"time_from": 130.7,
"time_to": 133.5
},
{
"instruction": "16. Press `?` to get a list of all available keyboard shortcuts.",
"time_from": 134.1,
"time_to": 138.9
},
{
"instruction": "17. Tip: Remember the `?` shortcut. It works in every view.",
"time_from": 148.2,
"time_to": 152.6
},
{
"instruction": "18. Press `q` to exit the current view.",
"time_from": 153.1,
"time_to": 155.9
},
{
"instruction": "19. Each shortcut is internally bound to a command.",
"time_from": 156.7,
"time_to": 160.5
},
{
"instruction": "20. You can also execute commands directly (without using shortcuts).",
"time_from": 160.9,
"time_to": 166.1
},
{
"instruction": "21. Press `:` to open the command prompt at the bottom.",
"time_from": 166.7,
"time_to": 170.8
},
{
"instruction": "22. Enter `console.view.flow @focus`.",
"time_from": 171.4,
"time_to": 174.0
},
{
"instruction": "23. The command `console.view.flow` opens the details view for a flow.",
"time_from": 181.0,
"time_to": 186.3
},
{
"instruction": "24. The argument `@focus` defines the target flow.",
"time_from": 186.8,
"time_to": 190.5
},
{
"instruction": "25. Press `ENTER` to execute the command.",
"time_from": 191.0,
"time_to": 194.0
},
{
"instruction": "26. Commands unleash the full power of mitmproxy, i.e., to configure interceptions.",
"time_from": 194.8,
"time_to": 201.1
},
{
"instruction": "27. You now know basics of mitmproxys UI and how to control it.",
"time_from": 201.7,
"time_to": 206.5
},
{
"instruction": "28. In the next lesson you will learn to intercept flows.",
"time_from": 208.0,
"time_to": 212.2
}
]

View File

@ -17,6 +17,17 @@
{{ $style := resources.Get "style.scss" | toCSS | minify }}
<link rel="stylesheet" href="{{ $style.Permalink }}">
{{ if .Params.has_asciinema }}
{{- $styles := resources.Get "asciinema-player.css" | minify | fingerprint }}
<link rel="stylesheet" href="{{ $styles.Permalink }}" integrity="{{ $styles.Data.Integrity }}" media="screen">
{{- $styles := resources.Get "asciinema-player.js" | minify | fingerprint }}
<script src="{{ $styles.Permalink }}" integrity="{{ $styles.Data.Integrity }}"></script>
{{- $styles := resources.Get "asciinema-tutorial.js" | minify | fingerprint }}
<script src="{{ $styles.Permalink }}" integrity="{{ $styles.Data.Integrity }}"></script>
{{ end }}
{{ range .AlternativeOutputFormats -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}