From 476847b3ff6d6b041ec50926783eb09213f5f722 Mon Sep 17 00:00:00 2001 From: Tim <6703801+timzifer@users.noreply.github.com> Date: Tue, 29 Sep 2026 13:51:10 +0200 Subject: [PATCH] docs: the gallery shows the market charts and is split into groups The gallery renders the market example's daily chart, the frame its live chart ends on, and the same thirty days as OHLC bars and as hollow candles. docs/gallery.md is now an overview of eight groups, each on its own page under docs/gallery/, and lists qq and label-placement, which were rendered but not shown. --- backend/gg/cmd/gallery/main.go | 2 +- backend/gg/cmd/gallery/market.go | 374 +++++++++++++++++++++++++++++++ docs/gallery.md | 36 +-- docs/gallery/basics.md | 25 +++ docs/gallery/colour.md | 19 ++ docs/gallery/coordinates.md | 20 ++ docs/gallery/distributions.md | 20 ++ docs/gallery/markets.md | 18 ++ docs/gallery/parts.md | 19 ++ docs/gallery/relations.md | 20 ++ docs/gallery/scale.md | 20 ++ docs/images/market-bars.png | Bin 0 -> 18604 bytes docs/images/market-bars.svg | 1 + docs/images/market-hollow.png | Bin 0 -> 18276 bytes docs/images/market-hollow.svg | 1 + docs/images/market-live.png | Bin 0 -> 25616 bytes docs/images/market-live.svg | 1 + docs/images/market.png | Bin 0 -> 89573 bytes docs/images/market.svg | 1 + 19 files changed, 546 insertions(+), 31 deletions(-) create mode 100644 backend/gg/cmd/gallery/market.go create mode 100644 docs/gallery/basics.md create mode 100644 docs/gallery/colour.md create mode 100644 docs/gallery/coordinates.md create mode 100644 docs/gallery/distributions.md create mode 100644 docs/gallery/markets.md create mode 100644 docs/gallery/parts.md create mode 100644 docs/gallery/relations.md create mode 100644 docs/gallery/scale.md create mode 100644 docs/images/market-bars.png create mode 100644 docs/images/market-bars.svg create mode 100644 docs/images/market-hollow.png create mode 100644 docs/images/market-hollow.svg create mode 100644 docs/images/market-live.png create mode 100644 docs/images/market-live.svg create mode 100644 docs/images/market.png create mode 100644 docs/images/market.svg diff --git a/backend/gg/cmd/gallery/main.go b/backend/gg/cmd/gallery/main.go index 1d5da0d..b29ec69 100644 --- a/backend/gg/cmd/gallery/main.go +++ b/backend/gg/cmd/gallery/main.go @@ -1043,7 +1043,7 @@ func figures() []plate { add("saturation", func(x float64) float64 { return 0.45 + 0.3*math.Sin(x/3) }, 3) }, }, - }, append(hatchFigures(), axisBreakFigures()...)...) + }, slices.Concat(hatchFigures(), axisBreakFigures(), marketFigures())...) } // budgets is five teams: what each spent as a share of the total, where its diff --git a/backend/gg/cmd/gallery/market.go b/backend/gg/cmd/gallery/market.go new file mode 100644 index 0000000..c5fc26e --- /dev/null +++ b/backend/gg/cmd/gallery/market.go @@ -0,0 +1,374 @@ +package main + +import ( + "io" + "math" + "math/rand/v2" + "time" + + "github.com/timzifer/figure" + "github.com/timzifer/figure/data" + "github.com/timzifer/figure/geom" + "github.com/timzifer/figure/ir" + "github.com/timzifer/figure/palette" + "github.com/timzifer/figure/scale" + "github.com/timzifer/figure/stat" + "github.com/timzifer/figure/theme" +) + +// marketFigures are the charts a trading screen draws, from one simulated +// market: the daily chart with everything on it, the same prices as OHLC bars +// and as hollow candles, and a frame of the live chart with its crosshair. +// They are the gallery's copy of examples/market, which is the one to read for +// how the parts fit; see docs/adr/0085-what-a-market-chart-needs.md for what +// they are. +func marketFigures() []plate { + return []plate{ + marketFigure(), + marketBarsFigure(), + marketHollowFigure(), + marketLiveFigure(), + } +} + +// Rising and falling are blue and vermilion rather than green and red, the +// pair the most common colour deficiency cannot tell apart. +var ( + marketUp = palette.Blue + marketDown = palette.Vermilion +) + +// marketStart is the chart's first calendar day, a Monday, and marketDays how +// many calendar days it runs: twelve weeks. +var marketStart = time.Date(2026, time.June, 1, 0, 0, 0, 0, time.UTC) + +const marketDays = 7 * 12 + +var marketEnd = marketStart.AddDate(0, 0, marketDays) + +// marketCalendar is Monday to Friday without the Friday Independence Day is +// observed on in 2026. +var marketCalendar = scale.Closed( + scale.Workweek(time.UTC, scale.Weekdays(time.Monday, time.Tuesday, time.Wednesday, time.Thursday, time.Friday)), + scale.Dates(time.Date(2026, time.July, 3, 0, 0, 0, 0, time.UTC))) + +// ticks is the simulated trading: a seeded random walk between 09:30 and 16:00 +// on the days the calendar opens, with each tick's volume split into what was +// bought and what was sold. +type ticks struct { + ts, ps, vs []float64 + buys, sells []float64 +} + +func simulateMarket() ticks { + r := rand.New(rand.NewPCG(7, 85)) + var m ticks + price := 100.0 + for d := range marketDays { + day := marketStart.AddDate(0, 0, d) + if len(marketCalendar.Open(nil, day)) == 0 { + continue + } + // A drift that changes sign every few weeks, so the averages cross. + drift := 0.04 * math.Sin(float64(d)/9) + for tick := range 40 { + at := day.Add(9*time.Hour + 30*time.Minute + time.Duration(tick)*585*time.Second) + price *= 1 + drift/40 + r.NormFloat64()*0.004 + v := 100 + r.Float64()*900 + bought := min(max(v*(0.5+drift*4+r.NormFloat64()*0.1), 0), v) + m.ts = append(m.ts, scale.Nanos(at)) + m.ps = append(m.ps, price) + m.vs = append(m.vs, v) + m.buys = append(m.buys, bought) + m.sells = append(m.sells, v-bought) + } + } + return m +} + +func (m ticks) days() []stat.Candle { + return stat.OHLC(m.ts, m.ps, m.vs, scale.Nanos(marketStart), float64(24*time.Hour)) +} + +// dailyTable is the day candles with the indicators beside them. A candle sits +// at the middle of its day so that its slot is the day rather than straddling +// midnight into a fold, and the indicators run over the row rather than the +// time, because a weekend is not two days of average. +func dailyTable(days []stat.Candle) *data.Table { + n := len(days) + t := make([]time.Time, n) + xs := make([]float64, n) + o, h, l, c, v := make([]float64, n), make([]float64, n), make([]float64, n), make([]float64, n), make([]float64, n) + for i, d := range days { + t[i] = scale.FromNanos(d.Start + float64(12*time.Hour)) + xs[i] = float64(i) + o[i], h[i], l[i], c[i], v[i] = d.Open, d.High, d.Low, d.Close, d.Volume + } + ema := pointYs(stat.EMA(xs, c, 9)) + mid := pointYs(stat.TrailingMean(xs, c, 20)) + sd := pointYs(stat.RollingStdDev(xs, c, 20)) + rsi := pointYs(stat.RSI(xs, c, 14)) + lower, upper := make([]float64, n), make([]float64, n) + for i := range n { + lower[i], upper[i] = mid[i]-2*sd[i], mid[i]+2*sd[i] + } + return figure.NewTable(). + Time("t", t). + Float64("open", o).Float64("high", h).Float64("low", l).Float64("close", c). + Float64("volume", v). + Float64("ema", ema).Float64("mid", mid).Float64("rsi", rsi). + Float64("lower", lower).Float64("upper", upper) +} + +// crossings is where the EMA crosses the simple mean, after the mean's first +// window: a buy under the day's low, a sell over its high. +func crossings(days []stat.Candle) (buys, sells *data.Table) { + xs := make([]float64, len(days)) + closes := make([]float64, len(days)) + for i, d := range days { + xs[i], closes[i] = float64(i), d.Close + } + ema := pointYs(stat.EMA(xs, closes, 9)) + mid := pointYs(stat.TrailingMean(xs, closes, 20)) + var bt, st []time.Time + var ba, sa []float64 + for i := 20; i < len(days); i++ { + at := scale.FromNanos(days[i].Start + float64(12*time.Hour)) + pad := (days[i].High - days[i].Low) * 0.4 + switch { + case ema[i-1] <= mid[i-1] && ema[i] > mid[i]: + bt, ba = append(bt, at), append(ba, days[i].Low-pad) + case ema[i-1] >= mid[i-1] && ema[i] < mid[i]: + st, sa = append(st, at), append(sa, days[i].High+pad) + } + } + return figure.NewTable().Time("t", bt).Float64("at", ba), + figure.NewTable().Time("t", st).Float64("at", sa) +} + +// volumeAtPrice is the volume bought and sold in each price bucket, one row per +// bucket and side, binned over one interval so the two sides line up. +func volumeAtPrice(m ticks) *data.Table { + lo, hi := math.Inf(1), math.Inf(-1) + for _, p := range m.ps { + lo, hi = min(lo, p), max(hi, p) + } + b := stat.BinWeighted(m.ps, m.buys, lo, hi, 28) + s := stat.BinWeighted(m.ps, m.sells, lo, hi, 28) + var price, volume []float64 + var side []string + for i := range b { + price = append(price, b[i].Mid(), s[i].Mid()) + volume = append(volume, b[i].Sum, s[i].Sum) + side = append(side, "buy", "sell") + } + return figure.NewTable().Float64("price", price).Float64("volume", volume).String("side", side) +} + +func pointYs(ps []stat.Point) []float64 { + out := make([]float64, len(ps)) + for i, p := range ps { + out[i] = p.Y + } + return out +} + +// foldedTime is a time axis on the market's calendar with the closed days +// between from and marketEnd folded out. +func foldedTime(from time.Time) scale.Scale { + closed, err := scale.Folds(marketCalendar, from, marketEnd) + if err != nil { + panic(err) + } + return scale.Time(scale.TimeCalendar(marketCalendar), scale.TimeFold(closed...)) +} + +// marketFigure is examples/market: candles on a calendar with the weekends and +// the holiday folded, a Bollinger band and two moving averages, their crossings +// as buys and sells, volume and RSI in tracks under the price, the last close +// tagged on the axis, and the volume at each price in a track beside it. +func marketFigure() plate { + return plate{ + name: "market", width: 1000, high: 660, theme: theme.Light, + title: "FIG — daily, weekends and holidays folded", + build: func(p *figure.Plot) { + m := simulateMarket() + days := m.days() + candles := dailyTable(days) + p.X(foldedTime(marketStart)) + p.Y(scale.Linear(scale.Nice())) + + p.Add(geom.Area(candles, geom.X("t"), geom.Y("lower"), geom.Y2("upper"), + geom.Color(palette.Gray), geom.Opacity(0.18), geom.Label("Bollinger 20, 2σ"))) + p.Add(geom.Candle(candles, geom.X("t"), geom.OHLC("open", "high", "low", "close"), + geom.Rising(marketUp, "up"), geom.Falling(marketDown, "down"))) + p.Add(geom.Line(candles, geom.X("t"), geom.Y("ema"), geom.Color(palette.Orange), geom.Label("EMA 9"))) + p.Add(geom.Line(candles, geom.X("t"), geom.Y("mid"), geom.Color(palette.Purple), geom.Label("SMA 20"))) + + buys, sells := crossings(days) + p.Add(geom.Scatter(buys, geom.X("t"), geom.Y("at"), + geom.Shape(ir.MarkerTriangle), geom.Size(10), geom.Color(marketUp), geom.Label("buy"))) + p.Add(geom.Scatter(sells, geom.X("t"), geom.Y("at"), + geom.Shape(ir.MarkerTriangleDown), geom.Size(10), geom.Color(marketDown), geom.Label("sell"))) + + p.Track(figure.Bottom, figure.TrackFraction(0.2), figure.TrackScale(scale.Linear(scale.Zero())), figure.TrackAxis(true)). + Add(geom.Bar(candles, geom.X("t"), geom.Y("volume"), geom.BarWidth(0.7), + geom.DirectionBy("open", "close"), geom.Rising(marketUp, "up"), geom.Falling(marketDown, "down"), + geom.Opacity(0.6))) + p.Track(figure.Bottom, figure.TrackFraction(0.16), figure.TrackScale(scale.Linear(scale.Domain(0, 100))), figure.TrackAxis(true)). + Add(geom.HBand(30, 70, geom.Label("RSI 30–70")), + geom.Line(candles, geom.X("t"), geom.Y("rsi"), geom.Color(palette.Purple), geom.Label("RSI 14"))) + + p.Add(geom.LastValue(candles, geom.X("t"), geom.Y("close"), geom.Dash(3, 3), + geom.DirectionBy("open", "close"), geom.Rising(marketUp, "up"), geom.Falling(marketDown, "down"))) + + p.Track(figure.Right, figure.TrackSize(140), figure.TrackScale(scale.Linear(scale.Zero())), figure.TrackAxis(true)). + Add(geom.Bar(volumeAtPrice(m), geom.Y("price"), geom.X("volume"), + geom.Orient(geom.Horizontal), geom.BarWidth(1), geom.GroupBy("side"), + geom.ColorBy("side", scale.Named(map[string]ir.Color{"buy": marketUp, "sell": marketDown})), + geom.Opacity(0.7))) + }, + } +} + +// lastWeeks is the daily table cut to the last n trading days, and the first +// of them: close enough for a candle's shape to read. +func lastWeeks(n int) (*data.Table, time.Time) { + days := simulateMarket().days() + days = days[len(days)-n:] + return dailyTable(days), scale.FromNanos(days[0].Start) +} + +// marketBarsFigure is the same prices as OHLC bars — a rule from low to high, +// the open ticked to the left and the close to the right — coloured by the +// close against the previous close rather than against the day's own open. +func marketBarsFigure() plate { + return plate{ + name: "market-bars", width: 620, high: 400, theme: theme.Light, + title: "geom.CandleStyle(geom.Ticks), since the previous close", + opts: []figure.Option{figure.Legend(false)}, + build: func(p *figure.Plot) { + candles, from := lastWeeks(30) + p.X(foldedTime(from)) + p.Y(scale.Linear(scale.Nice())) + p.Add(geom.Candle(candles, geom.X("t"), geom.OHLC("open", "high", "low", "close"), + geom.CandleStyle(geom.Ticks), geom.Direction(geom.SincePrevious), + geom.Rising(marketUp, "up"), geom.Falling(marketDown, "down"))) + }, + } +} + +// marketHollowFigure is the same thirty days as candles under redundant +// encoding, which draws the rising bodies as outlines: the print convention, +// readable without the colour. +func marketHollowFigure() plate { + return plate{ + name: "market-hollow", width: 620, high: 400, theme: theme.Light.With(theme.Redundant(true)), + title: "Hollow candles under theme.Redundant(true)", + opts: []figure.Option{figure.Legend(false)}, + build: func(p *figure.Plot) { + candles, from := lastWeeks(30) + p.X(foldedTime(from)) + p.Y(scale.Linear(scale.Nice())) + p.Add(geom.Candle(candles, geom.X("t"), geom.OHLC("open", "high", "low", "close"), + geom.Rising(marketUp, "up"), geom.Falling(marketDown, "down"))) + }, + } +} + +// marketLiveFigure is the frame a live chart ends on: a tick feed folded into +// minute candles, zoomed into the last half hour, the price axis fitted to +// what is in view, and a crosshair snapped to a candle with its values tagged +// on both axes. See docs/adr/0089 and docs/adr/0092. +func marketLiveFigure() plate { + return plate{ + name: "market-live", width: 900, high: 420, theme: theme.Light, + title: "FIG — live, one-minute candles", + scene: func(f plate) chart { return liveMarket{f} }, + } +} + +// liveMarket plays the feed into a Live drawn to nowhere and then draws the +// frame it ended on once more into the target, which is what a host exporting +// an interactive chart does. +type liveMarket struct{ f plate } + +var liveOpen = time.Date(2026, time.September, 28, 9, 30, 0, 0, time.UTC) + +func (c liveMarket) Render(target figure.Target) error { + const feed = 7200 + st := data.NewStream("start", "end", "open", "high", "low", "close", "volume").Window(120) + p := figure.New(figure.Theme(c.f.theme), figure.Size(c.f.width, c.f.high), figure.Title(c.f.title)) + x := scale.Time() + p.X(x).Y(scale.Linear(scale.Nice(), scale.FitView())) + p.Add(geom.Candle(st.Source(), geom.X("start"), geom.X2("end"), + geom.OHLC("open", "high", "low", "close"), + geom.Rising(marketUp, "up"), geom.Falling(marketDown, "down"))) + p.Track(figure.Bottom, figure.TrackFraction(0.2), + figure.TrackScale(scale.Linear(scale.Zero(), scale.FitView())), figure.TrackAxis(true)). + Add(geom.Bar(st.Source(), geom.X("start"), geom.Y("volume"), geom.BarWidth(0.7), geom.Opacity(0.6), + geom.DirectionBy("open", "close"), geom.Rising(marketUp, "up"), geom.Falling(marketDown, "down"))) + p.Add(geom.LastValue(st.Source(), geom.X("start"), geom.Y("close"), geom.Dash(3, 3), + geom.DirectionBy("open", "close"), geom.Rising(marketUp, "up"), geom.Falling(marketDown, "down"))) + + live, err := p.Live(figure.SVGWriter(io.Discard)) + if err != nil { + return err + } + defer live.Close() + + r := stat.Resampler{Origin: scale.Nanos(liveOpen), Width: float64(time.Minute)} + rng := rand.New(rand.NewPCG(3, 89)) + price := 100.0 + row := make([]float64, 7) + zoomed, width := false, 0.0 + var at ir.Point + for i := range feed { + t := liveOpen.Add(time.Duration(i) * 2 * time.Second) + price *= 1 + 0.0001*math.Sin(float64(i)/400) + rng.NormFloat64()*0.0008 + cd, fresh, err := r.Add(scale.Nanos(t), price, 1+rng.Float64()*9) + if err != nil { + return err + } + row[0], row[1], row[2], row[3], row[4], row[5], row[6] = cd.Start, cd.End, cd.Open, cd.High, cd.Low, cd.Close, cd.Volume + if fresh { + err = st.Append(row...) + } else { + err = st.ReplaceLast(row...) + } + if err != nil { + return err + } + if i%10 != 9 { + continue + } + st.Snapshot() + if zoomed { + x.(scale.Zoomer).SetDomain(cd.End-width, cd.End) + } + if err := live.Draw(); err != nil { + return err + } + if !zoomed && i >= feed/2 { + area := live.Index().Panels()[0].Area + if err := live.Wheel(float64(area.Max.X)-2, float64(area.Min.Y+area.Max.Y)/2, 0.25); err != nil { + return err + } + lo, hi := x.Domain() + width, zoomed = hi-lo, true + at = ir.Point{X: area.Min.X + (area.Max.X-area.Min.X)*2/3, Y: (area.Min.Y + area.Max.Y) / 2} + } + } + st.Snapshot() + + final, err := p.Live(target) + if err != nil { + return err + } + final.TrackRows(true) + final.Overlay(&figure.Crosshair{Snap: final.Index(), Tags: true, Show: true, Panel: -1, At: at}) + if err := final.Draw(); err != nil { + return err + } + return final.Close() +} diff --git a/docs/gallery.md b/docs/gallery.md index ff03794..b94ec68 100644 --- a/docs/gallery.md +++ b/docs/gallery.md @@ -1,6 +1,7 @@ # The gallery -Every figure the library draws, rendered from the code that draws it. +Every figure the library draws, rendered from the code that draws it, in +eight groups, 63 figures in all. Each picture below opens its group. Every figure here is rendered by [`backend/gg/cmd/gallery`](../backend/gg/cmd/gallery) and re-checked in CI, so a @@ -8,35 +9,10 @@ picture here cannot drift away from the code that produced it. | | | |---|---| -| ![Three series with a legend](images/series.png) | ![Two groups of scattered points](images/scatter.png) | -| ![A response time histogram](images/bars.png) | ![A damped sine on a time axis](images/signal.png) | -| ![An estimate with a shaded interval](images/area.png) | ![A step chart of replica counts](images/steps.png) | -| ![Bars by region, coloured by value with a colourbar](images/categories.png) | ![Latency distributions as boxplots](images/boxplot.png) | -| ![Two growth curves on a log axis](images/logscale.png) | ![A series read against thresholds and a shaded window](images/annotations.png) | -| ![Throughput faceted into one panel per region](images/facets.png) | ![Four subplots on one dark canvas](images/subplots.png) | -| ![A quarter of a million samples drawn as a clean line](images/decimation.png) | ![A million points drawn as a density raster](images/density.png) | -| ![Standard error curves labelled with typeset notation](images/notation.png) | ![Revenue stacked by product, one layer over a long table](images/stacked.png) | -| ![Traffic by channel as a streamgraph](images/stream.png) | ![Calls per hour as a heatmap of coloured cells](images/heatmap.png) | -| ![Browser share as a donut](images/pie.png) | ![Two designs compared on five axes as a radar chart](images/radar.png) | -| ![Spend by team as a donut whose slices reach as far as each team used of its budget, with the team that went over broken out of the ring](images/donut.png) | ![Request latency as a histogram](images/histogram.png) | -| ![Latency by service as violins, one per region within each service](images/violin.png) | ![A year of daily maxima as a ridgeline, one density per month](images/ridgeline.png) | -| ![Scores by cohort as a beeswarm, every observation placed](images/beeswarm.png) | ![Scores by cohort as three empirical CDFs on one axis](images/ecdf.png) | -| ![Fifty thousand observations binned into hexagons with a loess trend through them](images/hexbin.png) | ![Income against life expectancy as bubbles sized by population, with a size key beside the legend](images/bubbles.png) | -| ![Mean latency per service with a 95 % interval drawn over each bar](images/errorbars.png) | ![Revenue as bars against a left axis and margin as a percentage line against a right one](images/twoaxes.png) | -| ![An oven temperature curve read against elapsed minutes along the bottom and cycle number along the top](images/twoextents.png) | ![A patch antenna's reflection swept across its band, on a Smith chart](images/smith.png) | -| ![Disk usage by directory as a treemap, one rectangle per file sized by its share](images/treemap.png) | ![The same directory tree as a sunburst, the root at the middle and the files at the rim](images/sunburst.png) | -| ![Requests per second through a service, drawn as a sankey diagram](images/sankey.png) | ![The same traffic as an arc diagram, each service a segment of the rail and each route a band arcing over it](images/arc.png) | -| ![The same traffic again as a chord diagram, each service an arc and each route a ribbon crossing the disc](images/chord.png) | ![A response surface drawn from three cameras at once: a three-quarter view, a plan and a front elevation of one scene](images/surface.png) | -| ![Thirty sweeps of a spectrum offset by sweep number, with a carrier drifting upward and a harmonic growing behind it](images/cascade.png) | ![An open loop at two gains on a Nichols diagram, drawn over the contours of constant closed-loop gain and phase](images/nichols.png) | -| ![A rebuild plan as a gantt chart: bars part filled by how far each task has got, arrows between them with the critical path in orange, milestone diamonds and a dashed line at today](images/gantt.png) | ![The same stacked revenue chart under redundant encoding: a different hatch pattern over each product, so the stack reads without colour](images/hatched.png) | -| ![The same stacked revenue chart with the colour taken out: three products as three greys, two of them almost the same one](images/greyscale-plain.png) | ![The same greyscale chart with redundant encoding on: the greys are unchanged and each product carries a pattern, so the stack reads again](images/greyscale-hatched.png) | -| ![Traffic by channel as stacked areas, each band hatched and its crest marked with points](images/hatched-area.png) | ![The fourteen hatch patterns as fourteen labelled samples: lines, dots, wavering lines and tilings](images/hatch-kinds.png) | -| ![Customers by which products they subscribe to, as an UpSet plot: a bar per combination over a matrix of dots saying which products that combination is](images/upset.png) | ![The same three products as a Venn diagram, each region carrying the customers who have exactly those products](images/venn.png) | -| ![Sixty cars as a parallel-coordinates plot: four vertical axes in four different units, one line per car crossing all of them, coloured by origin](images/parallel.png) | ![A quarter of support tickets as a parallel-sets diagram: three columns of category boxes for channel, urgency and outcome, with ribbons between them as thick as the tickets that answer both that way, split into the solved and escalated share](images/parallelsets.png) | -| ![Who worked with whom over a quarter, as a node-link diagram: three teams as three clusters, one person joining all of them, and a pair working on their own off to the side](images/network.png) | ![Last month's rainfall over twenty gauges, as the panel divided into the part nearest each gauge and filled with that gauge's reading, wettest in the north-west](images/voronoi.png) | -| ![Mean July cloud cover over the whole world on an equal-area projection: the globe as an ellipse, one coloured cell per ten degrees, cloudy along the equator and over the midlatitude oceans and clear through the subtropics](images/map.png) | ![Edinburgh to Tokyo on a globe seen from over the pole: the great circle running close to the ice and the rhumb line bowing far south of it, with the graticule and the rim of the visible hemisphere](images/globe.png) | -| ![Requests per second by site as bars on an axis broken between 12 and 85, marked with a double slash, so the one site thirty times the rest and the five small ones all read](images/axis-break.png) | ![The same bars with the break marked by two parallel zigzags across the panel, the tall bar cut where they run](images/axis-break-zigzag.png) | -| ![A machine's state log over two shifts with every idle period folded off the time axis, each fold marked by a small slash on the axis line](images/machine-folds.png) | | +| [![Three series with a legend](images/series.png)](gallery/basics.md)
**[Lines, points and bars](gallery/basics.md)** · 17 figures
The everyday forms: series over a continuous or time axis, scatter, bars, areas and steps, with intervals, thresholds, second axes and typeset labels. | [![Latency by service as violins, one per region within each service](images/violin.png)](gallery/distributions.md)
**[Distributions](gallery/distributions.md)** · 8 figures
How a sample is spread: binned, summarised, smoothed, or every observation placed. | +| [![Disk usage by directory as a treemap, one rectangle per file sized by its share](images/treemap.png)](gallery/parts.md)
**[Parts of a whole](gallery/parts.md)** · 6 figures
One total split into its shares, flat, stacked over time or nested. | [![The same traffic again as a chord diagram, each service an arc and each route a ribbon crossing the disc](images/chord.png)](gallery/relations.md)
**[Flows, networks and sets](gallery/relations.md)** · 8 figures
What connects to what: flows between stages, links between people, overlaps between sets and one line per record across many axes. | +| [![A patch antenna's reflection swept across its band, on a Smith chart](images/smith.png)](gallery/coordinates.md)
**[Coordinates and projections](gallery/coordinates.md)** · 8 figures
Charts whose frame is not a plain rectangle: polar, Smith and Nichols charts, map projections, the plane cut into cells and a 3-D scene from several cameras. | [![A daily price chart as a trading screen draws it: candles with weekends and a holiday folded out of the time axis, a Bollinger band, two moving averages and their crossings as buy and sell markers, the last close tagged on the price axis, volume and RSI in tracks underneath and the volume at each price in a track beside](images/market.png)](gallery/markets.md)
**[Markets](gallery/markets.md)** · 4 figures
What a trading screen draws: candles and OHLC bars on a calendar that folds out the closed days, indicators, volume tracks, the last price on the axis, and a live chart with a crosshair. | +| [![Throughput faceted into one panel per region](images/facets.png)](gallery/scale.md)
**[Layout, axes and scale](gallery/scale.md)** · 7 figures
One chart split into panels or placed on a grid, axes broken or folded, and data far larger than the pixels it lands on. | [![The same greyscale chart with redundant encoding on: the greys are unchanged and each product carries a pattern, so the stack reads again](images/greyscale-hatched.png)](gallery/colour.md)
**[Without colour](gallery/colour.md)** · 5 figures
Redundant encoding: hatch patterns that carry a series when the colour cannot, in print, in greyscale or for a reader who cannot tell the hues apart. | --- diff --git a/docs/gallery/basics.md b/docs/gallery/basics.md new file mode 100644 index 0000000..cd58def --- /dev/null +++ b/docs/gallery/basics.md @@ -0,0 +1,25 @@ +# The gallery: lines, points and bars + +The everyday forms: series over a continuous or time axis, scatter, bars, areas and steps, with intervals, thresholds, second axes and typeset labels. + +Every figure here is rendered by +[`backend/gg/cmd/gallery`](../../backend/gg/cmd/gallery) and re-checked in CI, so a +picture here cannot drift away from the code that produced it. + +[← The gallery](../gallery.md) · **Lines, points and bars** · [Distributions](distributions.md) · [Parts of a whole](parts.md) · [Flows, networks and sets](relations.md) · [Coordinates and projections](coordinates.md) · [Markets](markets.md) · [Layout, axes and scale](scale.md) · [Without colour](colour.md) + +| | | +|---|---| +| ![Three series with a legend](../images/series.png) | ![Two groups of scattered points](../images/scatter.png) | +| ![A damped sine on a time axis](../images/signal.png) | ![An estimate with a shaded interval](../images/area.png) | +| ![A step chart of replica counts](../images/steps.png) | ![A response time histogram](../images/bars.png) | +| ![Bars by region, coloured by value with a colourbar](../images/categories.png) | ![Income against life expectancy as bubbles sized by population, with a size key beside the legend](../images/bubbles.png) | +| ![Mean latency per service with a 95 % interval drawn over each bar](../images/errorbars.png) | ![Two growth curves on a log axis](../images/logscale.png) | +| ![A series read against thresholds and a shaded window](../images/annotations.png) | ![Revenue as bars against a left axis and margin as a percentage line against a right one](../images/twoaxes.png) | +| ![An oven temperature curve read against elapsed minutes along the bottom and cycle number along the top](../images/twoextents.png) | ![Standard error curves labelled with typeset notation](../images/notation.png) | +| ![Nearby labels placed without overlapping one another](../images/label-placement.png) | ![Calls per hour as a heatmap of coloured cells](../images/heatmap.png) | +| ![A rebuild plan as a gantt chart: bars part filled by how far each task has got, arrows between them with the critical path in orange, milestone diamonds and a dashed line at today](../images/gantt.png) | | + +--- + +**[README](../../README.md)** · **[CONCEPT](../../CONCEPT.md)** · **[ADRs](../adr)** · [The gallery](../gallery.md) · [Chart forms](../charts.md) · [Interaction](../interaction.md) · [A million rows](../scale-out.md) · [Reading a chart](../reading.md) · [JSON and Arrow](../spec.md) · [Features](../features.md) · [Chart-type catalogue](../chart-types.md) · [Benchmarks](../benchmarks.md) · [How it was built](../milestones.md) diff --git a/docs/gallery/colour.md b/docs/gallery/colour.md new file mode 100644 index 0000000..b05761f --- /dev/null +++ b/docs/gallery/colour.md @@ -0,0 +1,19 @@ +# The gallery: without colour + +Redundant encoding: hatch patterns that carry a series when the colour cannot, in print, in greyscale or for a reader who cannot tell the hues apart. + +Every figure here is rendered by +[`backend/gg/cmd/gallery`](../../backend/gg/cmd/gallery) and re-checked in CI, so a +picture here cannot drift away from the code that produced it. + +[← The gallery](../gallery.md) · [Lines, points and bars](basics.md) · [Distributions](distributions.md) · [Parts of a whole](parts.md) · [Flows, networks and sets](relations.md) · [Coordinates and projections](coordinates.md) · [Markets](markets.md) · [Layout, axes and scale](scale.md) · **Without colour** + +| | | +|---|---| +| ![The same stacked revenue chart with the colour taken out: three products as three greys, two of them almost the same one](../images/greyscale-plain.png) | ![The same greyscale chart with redundant encoding on: the greys are unchanged and each product carries a pattern, so the stack reads again](../images/greyscale-hatched.png) | +| ![The same stacked revenue chart under redundant encoding: a different hatch pattern over each product, so the stack reads without colour](../images/hatched.png) | ![Traffic by channel as stacked areas, each band hatched and its crest marked with points](../images/hatched-area.png) | +| ![The fourteen hatch patterns as fourteen labelled samples: lines, dots, wavering lines and tilings](../images/hatch-kinds.png) | | + +--- + +**[README](../../README.md)** · **[CONCEPT](../../CONCEPT.md)** · **[ADRs](../adr)** · [The gallery](../gallery.md) · [Chart forms](../charts.md) · [Interaction](../interaction.md) · [A million rows](../scale-out.md) · [Reading a chart](../reading.md) · [JSON and Arrow](../spec.md) · [Features](../features.md) · [Chart-type catalogue](../chart-types.md) · [Benchmarks](../benchmarks.md) · [How it was built](../milestones.md) diff --git a/docs/gallery/coordinates.md b/docs/gallery/coordinates.md new file mode 100644 index 0000000..4cf58f5 --- /dev/null +++ b/docs/gallery/coordinates.md @@ -0,0 +1,20 @@ +# The gallery: coordinates and projections + +Charts whose frame is not a plain rectangle: polar, Smith and Nichols charts, map projections, the plane cut into cells and a 3-D scene from several cameras. + +Every figure here is rendered by +[`backend/gg/cmd/gallery`](../../backend/gg/cmd/gallery) and re-checked in CI, so a +picture here cannot drift away from the code that produced it. + +[← The gallery](../gallery.md) · [Lines, points and bars](basics.md) · [Distributions](distributions.md) · [Parts of a whole](parts.md) · [Flows, networks and sets](relations.md) · **Coordinates and projections** · [Markets](markets.md) · [Layout, axes and scale](scale.md) · [Without colour](colour.md) + +| | | +|---|---| +| ![Two designs compared on five axes as a radar chart](../images/radar.png) | ![A patch antenna's reflection swept across its band, on a Smith chart](../images/smith.png) | +| ![An open loop at two gains on a Nichols diagram, drawn over the contours of constant closed-loop gain and phase](../images/nichols.png) | ![Mean July cloud cover over the whole world on an equal-area projection: the globe as an ellipse, one coloured cell per ten degrees, cloudy along the equator and over the midlatitude oceans and clear through the subtropics](../images/map.png) | +| ![Edinburgh to Tokyo on a globe seen from over the pole: the great circle running close to the ice and the rhumb line bowing far south of it, with the graticule and the rim of the visible hemisphere](../images/globe.png) | ![Last month's rainfall over twenty gauges, as the panel divided into the part nearest each gauge and filled with that gauge's reading, wettest in the north-west](../images/voronoi.png) | +| ![A response surface drawn from three cameras at once: a three-quarter view, a plan and a front elevation of one scene](../images/surface.png) | ![Thirty sweeps of a spectrum offset by sweep number, with a carrier drifting upward and a harmonic growing behind it](../images/cascade.png) | + +--- + +**[README](../../README.md)** · **[CONCEPT](../../CONCEPT.md)** · **[ADRs](../adr)** · [The gallery](../gallery.md) · [Chart forms](../charts.md) · [Interaction](../interaction.md) · [A million rows](../scale-out.md) · [Reading a chart](../reading.md) · [JSON and Arrow](../spec.md) · [Features](../features.md) · [Chart-type catalogue](../chart-types.md) · [Benchmarks](../benchmarks.md) · [How it was built](../milestones.md) diff --git a/docs/gallery/distributions.md b/docs/gallery/distributions.md new file mode 100644 index 0000000..d3e59a5 --- /dev/null +++ b/docs/gallery/distributions.md @@ -0,0 +1,20 @@ +# The gallery: distributions + +How a sample is spread: binned, summarised, smoothed, or every observation placed. + +Every figure here is rendered by +[`backend/gg/cmd/gallery`](../../backend/gg/cmd/gallery) and re-checked in CI, so a +picture here cannot drift away from the code that produced it. + +[← The gallery](../gallery.md) · [Lines, points and bars](basics.md) · **Distributions** · [Parts of a whole](parts.md) · [Flows, networks and sets](relations.md) · [Coordinates and projections](coordinates.md) · [Markets](markets.md) · [Layout, axes and scale](scale.md) · [Without colour](colour.md) + +| | | +|---|---| +| ![Request latency as a histogram](../images/histogram.png) | ![Latency distributions as boxplots](../images/boxplot.png) | +| ![Latency by service as violins, one per region within each service](../images/violin.png) | ![A year of daily maxima as a ridgeline, one density per month](../images/ridgeline.png) | +| ![Scores by cohort as a beeswarm, every observation placed](../images/beeswarm.png) | ![Scores by cohort as three empirical CDFs on one axis](../images/ecdf.png) | +| ![Ordered observations against normal quantiles](../images/qq.png) | ![Fifty thousand observations binned into hexagons with a loess trend through them](../images/hexbin.png) | + +--- + +**[README](../../README.md)** · **[CONCEPT](../../CONCEPT.md)** · **[ADRs](../adr)** · [The gallery](../gallery.md) · [Chart forms](../charts.md) · [Interaction](../interaction.md) · [A million rows](../scale-out.md) · [Reading a chart](../reading.md) · [JSON and Arrow](../spec.md) · [Features](../features.md) · [Chart-type catalogue](../chart-types.md) · [Benchmarks](../benchmarks.md) · [How it was built](../milestones.md) diff --git a/docs/gallery/markets.md b/docs/gallery/markets.md new file mode 100644 index 0000000..60ff4c5 --- /dev/null +++ b/docs/gallery/markets.md @@ -0,0 +1,18 @@ +# The gallery: markets + +What a trading screen draws: candles and OHLC bars on a calendar that folds out the closed days, indicators, volume tracks, the last price on the axis, and a live chart with a crosshair. + +Every figure here is rendered by +[`backend/gg/cmd/gallery`](../../backend/gg/cmd/gallery) and re-checked in CI, so a +picture here cannot drift away from the code that produced it. + +[← The gallery](../gallery.md) · [Lines, points and bars](basics.md) · [Distributions](distributions.md) · [Parts of a whole](parts.md) · [Flows, networks and sets](relations.md) · [Coordinates and projections](coordinates.md) · **Markets** · [Layout, axes and scale](scale.md) · [Without colour](colour.md) + +| | | +|---|---| +| ![A daily price chart as a trading screen draws it: candles with weekends and a holiday folded out of the time axis, a Bollinger band, two moving averages and their crossings as buy and sell markers, the last close tagged on the price axis, volume and RSI in tracks underneath and the volume at each price in a track beside](../images/market.png) | ![The frame a live chart ends on: one-minute candles zoomed into the last half hour, the price axis fitted to what is in view, the last price tagged in its direction and a crosshair snapped to a candle with its time and price tagged on the axes](../images/market-live.png) | +| ![The last thirty trading days as OHLC bars, a rule from low to high with the open ticked left and the close right, coloured by the close against the previous close](../images/market-bars.png) | ![The same thirty days as candles under redundant encoding: rising bodies drawn as outlines and falling bodies filled, so direction reads without colour](../images/market-hollow.png) | + +--- + +**[README](../../README.md)** · **[CONCEPT](../../CONCEPT.md)** · **[ADRs](../adr)** · [The gallery](../gallery.md) · [Chart forms](../charts.md) · [Interaction](../interaction.md) · [A million rows](../scale-out.md) · [Reading a chart](../reading.md) · [JSON and Arrow](../spec.md) · [Features](../features.md) · [Chart-type catalogue](../chart-types.md) · [Benchmarks](../benchmarks.md) · [How it was built](../milestones.md) diff --git a/docs/gallery/parts.md b/docs/gallery/parts.md new file mode 100644 index 0000000..519fc9d --- /dev/null +++ b/docs/gallery/parts.md @@ -0,0 +1,19 @@ +# The gallery: parts of a whole + +One total split into its shares, flat, stacked over time or nested. + +Every figure here is rendered by +[`backend/gg/cmd/gallery`](../../backend/gg/cmd/gallery) and re-checked in CI, so a +picture here cannot drift away from the code that produced it. + +[← The gallery](../gallery.md) · [Lines, points and bars](basics.md) · [Distributions](distributions.md) · **Parts of a whole** · [Flows, networks and sets](relations.md) · [Coordinates and projections](coordinates.md) · [Markets](markets.md) · [Layout, axes and scale](scale.md) · [Without colour](colour.md) + +| | | +|---|---| +| ![Revenue stacked by product, one layer over a long table](../images/stacked.png) | ![Traffic by channel as a streamgraph](../images/stream.png) | +| ![Browser share as a donut](../images/pie.png) | ![Spend by team as a donut whose slices reach as far as each team used of its budget, with the team that went over broken out of the ring](../images/donut.png) | +| ![Disk usage by directory as a treemap, one rectangle per file sized by its share](../images/treemap.png) | ![The same directory tree as a sunburst, the root at the middle and the files at the rim](../images/sunburst.png) | + +--- + +**[README](../../README.md)** · **[CONCEPT](../../CONCEPT.md)** · **[ADRs](../adr)** · [The gallery](../gallery.md) · [Chart forms](../charts.md) · [Interaction](../interaction.md) · [A million rows](../scale-out.md) · [Reading a chart](../reading.md) · [JSON and Arrow](../spec.md) · [Features](../features.md) · [Chart-type catalogue](../chart-types.md) · [Benchmarks](../benchmarks.md) · [How it was built](../milestones.md) diff --git a/docs/gallery/relations.md b/docs/gallery/relations.md new file mode 100644 index 0000000..da887ec --- /dev/null +++ b/docs/gallery/relations.md @@ -0,0 +1,20 @@ +# The gallery: flows, networks and sets + +What connects to what: flows between stages, links between people, overlaps between sets and one line per record across many axes. + +Every figure here is rendered by +[`backend/gg/cmd/gallery`](../../backend/gg/cmd/gallery) and re-checked in CI, so a +picture here cannot drift away from the code that produced it. + +[← The gallery](../gallery.md) · [Lines, points and bars](basics.md) · [Distributions](distributions.md) · [Parts of a whole](parts.md) · **Flows, networks and sets** · [Coordinates and projections](coordinates.md) · [Markets](markets.md) · [Layout, axes and scale](scale.md) · [Without colour](colour.md) + +| | | +|---|---| +| ![Requests per second through a service, drawn as a sankey diagram](../images/sankey.png) | ![The same traffic as an arc diagram, each service a segment of the rail and each route a band arcing over it](../images/arc.png) | +| ![The same traffic again as a chord diagram, each service an arc and each route a ribbon crossing the disc](../images/chord.png) | ![Who worked with whom over a quarter, as a node-link diagram: three teams as three clusters, one person joining all of them, and a pair working on their own off to the side](../images/network.png) | +| ![Customers by which products they subscribe to, as an UpSet plot: a bar per combination over a matrix of dots saying which products that combination is](../images/upset.png) | ![The same three products as a Venn diagram, each region carrying the customers who have exactly those products](../images/venn.png) | +| ![Sixty cars as a parallel-coordinates plot: four vertical axes in four different units, one line per car crossing all of them, coloured by origin](../images/parallel.png) | ![A quarter of support tickets as a parallel-sets diagram: three columns of category boxes for channel, urgency and outcome, with ribbons between them as thick as the tickets that answer both that way, split into the solved and escalated share](../images/parallelsets.png) | + +--- + +**[README](../../README.md)** · **[CONCEPT](../../CONCEPT.md)** · **[ADRs](../adr)** · [The gallery](../gallery.md) · [Chart forms](../charts.md) · [Interaction](../interaction.md) · [A million rows](../scale-out.md) · [Reading a chart](../reading.md) · [JSON and Arrow](../spec.md) · [Features](../features.md) · [Chart-type catalogue](../chart-types.md) · [Benchmarks](../benchmarks.md) · [How it was built](../milestones.md) diff --git a/docs/gallery/scale.md b/docs/gallery/scale.md new file mode 100644 index 0000000..bef9f9b --- /dev/null +++ b/docs/gallery/scale.md @@ -0,0 +1,20 @@ +# The gallery: layout, axes and scale + +One chart split into panels or placed on a grid, axes broken or folded, and data far larger than the pixels it lands on. + +Every figure here is rendered by +[`backend/gg/cmd/gallery`](../../backend/gg/cmd/gallery) and re-checked in CI, so a +picture here cannot drift away from the code that produced it. + +[← The gallery](../gallery.md) · [Lines, points and bars](basics.md) · [Distributions](distributions.md) · [Parts of a whole](parts.md) · [Flows, networks and sets](relations.md) · [Coordinates and projections](coordinates.md) · [Markets](markets.md) · **Layout, axes and scale** · [Without colour](colour.md) + +| | | +|---|---| +| ![Throughput faceted into one panel per region](../images/facets.png) | ![Four subplots on one dark canvas](../images/subplots.png) | +| ![A quarter of a million samples drawn as a clean line](../images/decimation.png) | ![A million points drawn as a density raster](../images/density.png) | +| ![Requests per second by site as bars on an axis broken between 12 and 85, marked with a double slash, so the one site thirty times the rest and the five small ones all read](../images/axis-break.png) | ![The same bars with the break marked by two parallel zigzags across the panel, the tall bar cut where they run](../images/axis-break-zigzag.png) | +| ![A machine's state log over two shifts with every idle period folded off the time axis, each fold marked by a small slash on the axis line](../images/machine-folds.png) | | + +--- + +**[README](../../README.md)** · **[CONCEPT](../../CONCEPT.md)** · **[ADRs](../adr)** · [The gallery](../gallery.md) · [Chart forms](../charts.md) · [Interaction](../interaction.md) · [A million rows](../scale-out.md) · [Reading a chart](../reading.md) · [JSON and Arrow](../spec.md) · [Features](../features.md) · [Chart-type catalogue](../chart-types.md) · [Benchmarks](../benchmarks.md) · [How it was built](../milestones.md) diff --git a/docs/images/market-bars.png b/docs/images/market-bars.png new file mode 100644 index 0000000000000000000000000000000000000000..9e0ebfe87a20657e0481d6cd8ef08224dcc710e0 GIT binary patch literal 18604 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 literal 0 HcmV?d00001 diff --git a/docs/images/market-bars.svg b/docs/images/market-bars.svg new file mode 100644 index 0000000..6339ec4 --- /dev/null +++ b/docs/images/market-bars.svg @@ -0,0 +1 @@ +geom.CandleStyle(geom.Ticks), since the previous closeJul 20Jul 27Aug 3Aug 10Aug 17100120140160180geom.CandleStyle(geom.Ticks), since the previous close \ No newline at end of file diff --git a/docs/images/market-hollow.png b/docs/images/market-hollow.png new file mode 100644 index 0000000000000000000000000000000000000000..a2134c1e3833f78043e0fda840f313067659e1ea GIT binary patch literal 18276 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 literal 0 HcmV?d00001 diff --git a/docs/images/market-hollow.svg b/docs/images/market-hollow.svg new file mode 100644 index 0000000..4b138c0 --- /dev/null +++ b/docs/images/market-hollow.svg @@ -0,0 +1 @@ +Hollow candles under theme.Redundant(true)Jul 20Jul 27Aug 3Aug 10Aug 17100120140160180Hollow candles under theme.Redundant(true) \ No newline at end of file diff --git a/docs/images/market-live.png b/docs/images/market-live.png new file mode 100644 index 0000000000000000000000000000000000000000..5acbaabcea7f18b4c6639d4a9f2c26be7350eb4d GIT binary patch literal 25616 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 literal 0 HcmV?d00001 diff --git a/docs/images/market-live.svg b/docs/images/market-live.svg new file mode 100644 index 0000000..569e059 --- /dev/null +++ b/docs/images/market-live.svg @@ -0,0 +1 @@ +FIG — live, one-minute candles9294969813:0013:0513:1013:1513:2013:2513:30050100150200FIG — live, one-minute candles89.99updownSep 28 13:2092.40 \ No newline at end of file diff --git a/docs/images/market.png b/docs/images/market.png new file mode 100644 index 0000000000000000000000000000000000000000..4355c026452b275f2638097810bd8e20d6b56d0b GIT binary patch literal 89573 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

$?2(1?KjY0OmM*@ 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%0ACA{> zya%Ah10wdHxwhe@z1VTmLb)84!aM4>nbtDb(q5v6!458!lM2^z6k_n zSJr7@n!37Hz)AA-?D~-cap{E=2xa~|I7kDBf+yT|~*w{k`LYU(9-*=j8 zb%Yr4q#IX7rKe&huo}h-fbrGT)Bq~``}gm;xw*kXy#KeKc4s;vJ|5)KU|$u+8o_eU z!Oj~d`7Ks`#HG&Hb+30Gga;VSx3 zF$j!UczXV8Z*PBzMFO!KEJ?ec;nDmr0R7)5bxBLS3#&pLiItNM#F1YuE9j(splH_4 z9Ra;IB2)k~0dRqhR+JgWw~wu`zvU=JNk~d=-A~i$wW?&sPU!O+eexH+0Xr$2V>m{@ zY*<>Va#>K2Vw<~}>7xofl6tYv!ou>gx|$S!zI7Y1ORXoU$i&aiz7BZl4QCEu3O~OK zIPLHO{y*fscRbep|2`~aL`D&b%%YOLG9xKP_6SjSvSqLAGAp5Ev?P^;tZb5y9m^Etz zDLpQY!Q!fAV#2>CVjoZ%j-blBVs?oj^@W6N|1K*8jx=y1mcspV(^>+48;^hGL}GR7#y`}=&+Uo=7oeBBY<{cMoJecjgL`r0~qlqX460>*9I% zOK#wx0m0*SSaygBAC{E#Ha9!KbHk12t~qO7SZ95`4eGrnzVkYu-2_!mFD{bOqLaxb zCzLEQu!G(gn^;?(1BgXP>jU%@MPQgP85#8=TSp;W+M=G0<{bmLnodqmCO$JY;KLxs z3JMH7PHb}b{(VFzS{a|VYS8s0?vu&Au8 z9}Wh)KL!Ii1qBgp3B}^2DJ%vL9czQVQD3vMd7hW&YHIojC4BfDWAnwCg|U4=OAFwr z%}K|0Gcb%{8n{gu5X<8XVsG6N{OuH2<;xXPjG-?sUh8ZLsl&N*O~Cbkd&w*$A{eM% z$Yk;2K9?*R!bWB<*8^$=Anh~wo4UH0+1aXD|LHo2sHA0Nux9D=%6d!>evUU>X0Y!q zWRE*@PsI`?ahQS(yvxLXv-tb>JI!B6nh)%%8`SJP6?2?9`^}ptt=5d zp<_cqiJ6u*poco|TzUiwQAN%NVrn0&^Wfz~w7pKFANMjvSqd;B+XTSlSRCO9k^*+Q z7%VVD@5o;s+;)91Iyg8Oh7r)I0+07SI~WU~f#Vj`TF#IdqJk)G(spTWeVxkF@RsY& zbEIE18aJ|QX$p<(Q7;B{!p7z&Hv528eqvHm^o+h(CBx6pFD=ci_`s3%@>f~pIJ|TR zW4DksT3W!1x8mYlSAJhcu5{}(L@1OivZO^uvR9pV>Y)Y|1|dH7eT*mE-$EI+hw6a) z%MpdR@+?jbU@$^O2AT+<6(J!ZXp6D2_5VJAKnA-)vY?rgmDL!KMXzm|bS+mL8@O#B z^hpHr(2yYlZ~XWX*9_o^IuEh$Df$ovryp%;2zcx;5b>;$hwVB)C>OgJ81x_w>gcd= zaER%lJ_{}$!r0>CRcxo=p#=2I;ofcCAE*d{?yaw_h00_X<^Y>~_x`=Ew)Te+XY6jh z#%*8;fY|HcFolSNn~Q63K^oP$rWBd`DJgz1fPi2r|IszJ=;_&6!m#1lb*i1Yo6Wv! zQl;zN7IGVB*x1~MHhQXl*X$5xXAgj?{>wNDH3){cEt-&#k)1|Qs55EWhw~miGR3yU zMi{bsn!;T&*>7!W1{7&n=%99SkuwnWOMMo1TW8|mEayBtme6r3bVI3@8fcLJ+DvT# z5h=JJmqiSKj9nk3ziVrae>eO%EyqTVM1P}>31@g7WtxCLm{HH5Pu_S=z0PqnNBn(;1dThC@jEsyl zG=t;gk6&I%8KwbC{Qu1a`-{gv4lf1`BhO7fcw1?N=vdEeOJ9s zd^+amdWAZWjn#ZQ!gQk{cquT%d@GuM!05(#ZIvHu+v@T%s{6oMP_ODWdg?zCU;naCV63QQ{`;EhLgUaqIM*+qY*CwxbRgL^cV2LNk^H8ylNF zM-6_@HOmo+PcF@OnSfD-$pZ2`Y>IYny|5Y|3XB0beu%<0jzUiO=ZK2xaP7+0e~Gss z6rX(d@+CM?6X>T#L4jn3aMGzxnXbjlb!(YI1uC%fg%+mM&6@-USyZXbF*j~(%hXHH z&c0Rs^;+kP_SRNf8X5wF$CaCFYf`foDKq8sU*gzinGq|cr*khDW8n-y;oKn8-r5?I zKuDH5)n}G`A*r{-6Ijda;~3eYx#dCXlH!~FOZ-6v5pcYNV9&$b8zvjQ^M^-8p$-E^od=(f-~3M?{&d2URql)H`cllXuSSOBOG9XWC&W2)`DGL}1dMyaJpFC#&x z2vPW%vWLku&j7n0%EgHL!ES=P*9<+u1Bz89$+L-5Ha$l+QV*+CG#D2VlP(SdNC1Te z*X+#c(;!g#$fmB`eXh=f449CR(6(6tEUqo88}9aZABy_OZ9}r6PBBqY^fwflsjRSY z;+0i`6VnR|{pJ4Usi^}P>Oi39y=2N1q{QsH>2~ja++l-5kzM)D$=n`|eFq0gO&tTs zVGlk1SC6Mi3s0a{+U&ZoDzvDU-aeLb~QO)cp|{a05gYz zfp74x+iU%o2(ytO%BGe(eyv*V`*4yJar1Gui`n{kA!d!lQx?L2LCk=$84riD<)!@Rrm3uA{lUHn`%L<++D`rQE$&nqw+QW zCAUBai3JZGoMPISDJW>%6T^$wUv%R0lUiv3t@{c@MMnb|st{zk5fzo@7u4n%>tLhB z)Wd0zZCW$HGl@dy!Gk31bh~ybj5V8)J%lge`-SV@OHNRT7HlcN$sQunmW+@Jssy3! z1liH^Ip*k)R(q98M1<}OiYyY3IgO2tkpes}31}Ju-U?)1!5Suw1@?Vaf&|j?xvkkKbsv1j8h9d&!pd1{KrSobcl!?vMk6hN_OVuuTWA2u)fPetVfs5z5JKw!i z^!ApT_r5c_hPD^rYx#F6-E@PsiSCP?J9aqFj#<$Z8SST~l^=V*e|5kP)p|R3$AYd8 zAFeAs#t5n0=6l)BZYKrBV>_bTrJrm>BWfT3lz4CmM+V-?LX1+38KAsVIeoe3(uMCg zQV$eLn47^oQDW)-W)}0leeg3zTp;0y(nnio=bpWLZv@re#de3$ADu659#kkNHbjMc z`qw{Evl<`DjlJ6l{`?!fQA^)1X4Nmo^XK2Qj4tfANB5j{bevwFyaG~ko3#ioJ@nUa z_hy42C`-mKA#wL-3B-PuxyM9AK9xmt)@idV&mu!zvdsY(?UPO3x@8ddXHC0UYztnc zvH}7vWipAJb$8gvhVW;E0oS@eHJN6E{Q#2b#Y#f3$yQeuyt6Wvk9}I*OG6_76RCmn zYX4+{H#Gu%$k@bn+>I@@+&QU0=RWOdRFoGlmBYBF?bTPzZHU z;zX|CDQ)cPng@1?t1JEhjuu1CMbTVKCz&6C`+?2+;loR~{J7C%57p$>wbL}g$Mu07 z8e%R0P}rFq?CcJZDWtapfLmT#!YjrH%2R8Hw?a`U15yF6a+3S0UW*^x+4t9dcp8BO z(7oTY)+X;Z*S&-U_pepkeMYEIi^YQViMRkz$h}6(+gt-4!#fWHN!lv9Y1Cn(2C6u5 zI?%t{vkb!&il*CKDBopjA9hj!7YVe?@AF=_xf<&0%QjZ7oZ7Y4u4RUV0Dz0^H~ZND zE-Z9Fb57qzaRqUvwBMvTiXEA07S1%#hx8S>qz94HB}Xi)cT)c~SO_rdd3hu2%-!7G z?>Aba1d!Dm&}gY;5@pD{XZ2|xI9?9{m0yxNf$am}F#;(J0dSmlgjC%kE)R?atI?>; z2ODLFTj(?YkUGv_Y^pv!J^&2s%z==AH|We&Ng)-pF6AA_Htw(1Vl9G_OIdcLL8kHB ztH{ien!?}%G~+8*uWEDL0v!U{{ZqS27OLC2yFo?+lt`lhzB;k|7SRgZ zEYM&aNsVbyVId+!w7GrJ(cRUxSP`t7O9%k5V8HJzP4GH_$u`h^{`HY6=46%oGiBlEgG|(&OtbI44eD%fp9`p4-zX*!*#>^d-ygo+ zHPBI6=XE0^f^ryj-Et>A3|-w9qA2uG&rOsfh3@ME0pvIvW@BH8XKqBqS$FpWG#TI| zH-5htdoa?K=`VK3RhE1^5csF1o#fi}^@#iTU%#ZBhTee)8ck%Ltq=6%!-vxr7AU}2 zUA%ZvQIR;T`WTc7I4(?L#CbR!hk5`#=vxY+4$)Pxs~)%V#GQfq5M?O_FdTOnnG;xwnT0v$RKxX||%GV#(4_gm!El zM2{G4*ugP>6%~VnZn(H2-vxN$JwT;^3VdNffw+VOTwlCBJ=uf7kp?IrDj-0EIDg;1 zUl)ba5M#rxfKv7ZrsL;gcYfIurrAqHV<|6Qy}}STetj`OpLbzy?(s@AAT9*=NVfDc z4Mr{s5p}e+D)9&hGFQwqUi_W~$VrZ&5V6pIKE`U2YpC^Kmp=7YlRhRW_9d**+2pQP?a=DxN!I-0 zV(;5gI4;y-kv7KGy}49P@_hCCLJsd91>B5YKY~o5mcvB<{aaH(y}BqzmZonu3A>2D zVcJ;vM%1u3?2A1Bbzm@M>h^s8yybp1JTnVy`2PJ2W1mvvasVa4EwEe7LC6H!IABgq z(ijlw|MSpk7P+;1X%$ww`59l?`px<~Iy%^cC1?l(DW<)YNe3`b<9=Q09m^1vQ&{1NUiQiVH-B8M-{T%H_E%V^ zPYBV87{j~1zGN}>$p-CS)FQ~)fi}D$sL-pn&S!l3Q6%?klhuX0IwC=TKhh03+C{AT z@T+pQKhmP}0=H+x*;7G*uz=oLORF6jh)KEMQ5rI&+t|_;CwlZuO#H_`3*wIf)B1Qd zp;!!}0MZ96XZz*+k}Ryg<^N&KJ}WPmZyc&P*MvZN7BO37lMT z-noK%%l%E#G(nR?wuev{xG_Avuq^Hb8{W+g5+yJYVrkki$fpP8(bq;zxVEC=8i0Tw zS0U_guB(F>9Iy%SKWLI-8@8yKzznc$zbW=bRJd#RZj`zX!F5TplXk2S@hXtX$e5UR zLNJE?PGsxz=8CrA;$rJpWjGIV-yi7y|Q zv&EeuXGaZy;}#DxDVo{wFT$~PT%bJ~8KLTjT6UfJqrM3(BO~N#yn7=2tMtR}A8zmH za7FA15FAQIh@iL+9H3PIIEf5M*gFYjL|TO%6cmk?bKkx_sWV5E&fCEERDqxH&#=(l zb1*gokQZ()s6kDg<5!MN1psx5oS8 z*f>!lHe*zJs4nfl0fN_DMBMf3WL|$A*K5t!P5cRU<`9@5Ht)q~XpMnhj8c(MS~am|dgOiq^pD92WR|Mu;w zb<%i|PWkkDaEwCl{Q#l%XfBNc@1C=#PKC{n1wmbdO)T^h2?+_fODJ-g9{#=K;xU2c zSFJ6YGE)N{tHNH)TUYKP6}a!M)+n#S%USjULH*bqup5Mh`s(TzMVLTe+DSqrW1WgU z<9$sH>g2tp-U;4?y~4Z_NW0R_N@-a^>QUYn4+9 z4W~|H(#74pS)sfJtQ3I{wlPpf!Br6z63X$Kw@E&yr=dZ+Z(q-sFLgQN3`aU+IpgK6 z9jv0)huIrP9cOM5r?5WQyLGtNqHxK>LP8+-LAuf2tupOVf;}9+!JI((E+jOxjguk= zg^=uQL51t7sU~`QU5G1C0EFcIeEdB04s&y>GgZ2i8|;S;)k%8xOzL-cZ5`#n?;*&C z85n9ye}Hg|_$BU)D=?xzMlk@N0j%J{pco!gYp7D=<@~3FMML&(MEahE?rv+lotmmfrhNA75k5W` zeVE7N4S?k1GJ*F3nH^}6QQj^-K=1AC`MB4y-2K*^%gD?G&p0o|PT7n_uNOehR9`W` z@OstTU&{_oT7E~mCU?K4u~9Wsx7=sBt*fg5A^qmxBpRSq8E z;dy=TwjfhfZ`WHWI1$>$TL2sa-Vc9!)r0M~I8Py9BV&)qz(6^1$!F94%oVF2CF%?N zLb;!84WH@E%BGCyGMAsht;{YNDVAajA*W;P*0(n@2d2o?O4bZ%k0*sEYsr5HN%@@( z*2W})SkINqW8R5h$kvO5eZ%AG7Uh1gUGWICbXhCE?#|JcJy}>$FjhUVY07ke)4g%` zYUYhKPP}~u`L#R#Cl8r?9g_7M)!5f)OPuNA!skTV)UYU5@?v7;cc5uWk{yjqb{-W#4aGL5z#>l={?M)G7C_FZfo% za=x|5tudXAeEp7W>)VH~@r?4=%TvQw%fCpiK0DYf94W^|%n?dJ!o~Kn^9E07)<@mq zO0mN>*<{BGzc|}AKRd!wYnR?9@wUh&BF{Bn_pDU%2LoFvukO~kfSMsH3Axi(mY=23 zs6NTyy0~+eUZu*)_%;ihIDeTUHSun?-tu3mV{e0Im}M&B#(Yy&-_yTxv`EkyaQ*V2 zj3sG1L;j1}97ad7KsK^K75ZLu*K*(bwwN(lSU_L)VDqQkAn$AGk_6WFz!R1nzCR86 z(l{JNWaZXHPtj0P$4?l6f3vY>|Q51Rhj0gM#9-0sZK}6MkeKK5J!3`rnuf7c> zX`uZM_C>3FdhksInzNTMfZmx3-U(CG&_<~nb25_YQE(+okQ9kK3z@((sFY)3kZ&dMn=H)E);Bg{mj<&9+(m55n6qX<-tzLOj2C*%Kd&FkzZx^bE@?*j$1&`#^-(chwi`<$E^PN@kL zQZM|xKk%72`u!Ev=grkFC9dP@zw`mGCtf(Ctc-#wXE1;pc%h&p2G*lA&GSf*|HQ?- z1LaiLUq-;Tbq;ebkC zub@@!y&?-nGSs1#{kKUk-N0S^sJn+(|2P?lsdOj70JwG9{PJU7nu-J!!YCyd^jAR# z3UN_UdYswB-rj19Fzr=2VyjAFuUIzr-OO9VfQ?M(2)Y@dsKl4xkA5RtEnjwoa7z8c z!Uk|3IK-|S<`Bh*F{`0`1RdJP`uf?0g-|9EcPUbLhrR-tw+@x(9jmiLB=Tu$_Y8ej zU^bMnv}LzZQhwT+=T3bscksRC`qIYsNRB`@*pQc&Lb!+03Tl5W^;}>f@bSHZ>JH%B zmU#i7kuR$EUna$tL{PCv(lIig*3ec}jY7_yl{JPe*4P*)!q`hoIyWOO9(_h<(7OL@ zltD=aQ4;6iq;!YehZ2+7V2@V0f_^uhUh+>)D^ZpGhJ(C?M~!~2$8wXgBegwsX~g{c zi{?k!L5r(~Ol7NDJQ9f^F{Pu$PNap$Fuz*(9_mNd9vz=A`hLcpbCHn@SQLNhH7-*>-H+so&0h2Ep)XCr;+U=BT(mgHyB;n zml5clo4>dwI!fuLaC)(VjW_*FcbLfw$$RA`)kM;p@w=$(?OUBz1ky^WnyP$SLvIb9 zBRMo5Ai>kV^v;6#2@6qJ%Uv&5UFym?JvoxI=3XAfIX}*d=8Aux4Jq-a@3lC(G95Hl z(aL;o$7*%69~qVWP47tgK1*v`BKK4JNyTZZK=#3U#TWgaJ<-OeSvsH#KoR?m!Nilm zRq%Z;D)0CD{tze-eR2Ioy}f7k?j1S0qI*J4g5ni#!rcS;y=iyr?$kTzin#_n{=&jK zRBstjyf04mLbxu`V+ny*p6zdbttXC_)LS}=ux|c5au4hg2sPhDeuwLiDzEpMwE!i{tGgiifYnvL84Aa}G8sDKKS#jQ_?ij#v|H|IEw@ zxZq;S8WuT&hzUGA_-0}vlM?IVt*28ktPt^nIR2ZX#Pp+FLBpWcI zIP0}PiPIzF4l-TR*2O59Pzi}zV4zVrC9)QddypE7S=+$K)J_$kkz?>4K5 z{_>QPsv>`a=pAu^uu{f5fjbngK>3##_9cDA~8tB4$Bf{2>^`{RQOVc`r^7t0S* z6b#POo;(o|7iZYBhban04G)xnzdGJIV}VM%K5rACp{Az&`+8CH!cqfdwt1(^^k8Ln zx+#i3?J6c!EQ{W+hohlga?zdDtzJ?qGU_6i2|RJWBjkNkiW4av(b8nFMow;jR#Dm5 zZyiUGu8o`pzkm}CG7pn9QPlcIu)@Q6!^cB;zwd7ip7xje*?}{sl=5Jrsc-NV!TakZ z;mST+F(`IH?Vg%qWnr=V;yeE9MOKzLQxq2Wl#~=PJ@9UJgyg)Cd`tRMRMJu8>o%WC zpRq6DCurXNxTo$2j}QcfsOdj{4vD7B^0!#%uu)6{-i!nWt1?nLtTSTTN~yO$TFi@_ zZVaN6ps-alvA-F2HmzzaJ7+nKueWUFRZ?IiA6G;51Tg$#FJ6c9g;*K+QrYbr& zbcOuK_wQ&FwjaLE8QMS`xq~6izLM7sElsJh!-?(vjPeK1crPCB&5jtfUU*62`Qz3I z*5l7azIMtEW;-RA%D*uf>3fv)#1HpXF>HFbS0ov}ajL1(Qp+M4Bir#y#6d?S@Nu2D zwDXONvW15<+Iua&TgjS^xLl}_ZxS1z{l`Ym+zb7-lhX`x)lf-yCQ9l3S%^|sr^*Kk zorXb3LOa-<^d1iHCVA|C$}x4VhtlNel<>TZ`65Oyf3x^O*3lo5-ptHVCT;c#0);)h zdacO19L}>^UHV>bHO!l`@=Uk$5vkSJ%8OI=W2WSfCAaH5&%4rpJMi&xEk9?9vG5Jc z&;QuKGb@uHJwxgXX3hL@;Y~n*`Zfb3ZaZOsBFCY_hlgf7@^uC$ z(zoGC)LQ9E_HKVNQb;QK^?l}}j*Ii>=bm45pq$)#SGB{1Qpd;2uZZ8TB-rL-|6L)> zuVC_!j=qeM-*AoVHXl9-VtJZ(@+u;QfDgz+s*pt)`uP(RpH6Fo2b03}ziJRbpm7CO z*)t7XdkF4)j(eR$t)1}R=9HCIR$LPi#@EQ{8kS-S*}`-gnyW)I-+RtrhyGw>s-WhI z!Sh5D=0x8|E`79gK>^I)e-j00P_4k;Ff}u?dr>hU@FY?2NqYK;z4A0T8e;iTi4!W; zwGcVW2nuTOCB%r`L($h8?kLdRoYMFN5M{|nmi=8mMCWcb>h5oUs1rUuO-8;lQM*R! zzs+8$#n`#R+?-0ootkpapmclKv*u*>pMPEBT5MCkXDVf`GCJ;A^6>*N=+hD5JrhL* z4!*ajqYo|>ndXNvUo)%YLYOv z>!r(b-tJRv-FqvX)|Loul;wv^Ln!%J?(`hG|Hh3bJeJPtkc2CZq$|xF>(%f5tr;f{ zy56MPbzSQxMd@N7n_c#0)dz2OHECE6D{FpRX<;~_+S++#YAm5+)T1KiQR)d^yiy zEr!^U)P3t~lmF|6e*9XZ+j^M!%u$e+3JR`XAO@q3rZ+}n=NSxneF zxh`9MYI83%4EMeq5vW-=;h!Xx6B#mTb9`%TX)TbtZzuOZ4(YE0!*_q{LVtaqg^|T5 z$G82lGhL~EYxWX&{k?mALV6ZPaZWn#b@u+-lTliuxNU#V?Eik7|C3J^<*G}&OwK{j z4;>{~Tn!Bk{C>ys^m+4pCK$?--hzJz_`lW(J7xeY7KZ2rdVsa8PLc`RL&COxr>i_;0?ltR8HS43l zKliMS%C1%~EG|}?fmfT`zp!t0p}9?hk<@W5gPDq|QjV=K zW2z#OLxN0FkvZpAu?8_|rK;mqx~oM6j?c)>1w8mp^O~ibJsE7p($OEhE=GE!1!Z<}M&wzC7eh7z9<`f-+( z+1uJiI&1m&Gnz#TzGs{(-b+8(+}sRxGE99Ma{kl~g{7o=eq5!ZqQZ%vAcHIv*b@{d z0OBz2H0YwXUhe#SM7tp)Uh8PO!MVI7n`0e+{UTQXoa*f-ertEJq^``EJ>r2i*J}H| z|8n`cb$eNAotU@2mcvMUD_Q=3_O-qlvYN2+HMR(%L=O+1@F7H#9<;O4}O?7NJ!}F>N-INOcB&P3@@|ZCzlO2gSN&5!Dl}^k&mZJ*6J+vAR$a*8KXmxn5_v!M zpL@CPAF$eREVcP^VknL73!TTU63OQ*&g**I*!+)GUc6%6t+?aY{39Nv#~Qb}R@ckA z&#q0m#5Y)!gaU5o>=&J6a*ry0e_{BQQ&-`Y-akLC>g`)hh~=ttD^_j43jHTv0tB!V z2R5w!IT-(SbbfN@O)pF0ZJ1nK^^m4wA9pL}ZFpY#Zc}z_jFr22ZizSUR{d#4s-tbu`H>c?xYjKw60%XrIT*Oo+$-A6E&t9@gu`CcN;B%309q5GyeNg{qrEp zA3IGgt|p(el1vVzG04;M)z*@`hL34|JBRH3w z<9Z{#d^yGk^=rnmx~CUug5>FRBlp-bP3+0NbeCB0x;$~1fXH>qFGVVAMtlXf{SCBy zB`I1dGK1XZH^m)bcAu@k5paMtp1*lv!7ca8n!XE4vdcaj*jvD*Szq^sQ~(kiG$eHX z_efxo@~a;v4p?x0BPpq=N8;*HgGV$CMc<-JUYYupKto zwUrt@auWB#E6#w;$+;OM!($c6$&(wLKVLhb*dU~4(%1PKtl8vf_ zGp9C9p28m?_gUnBd3;P&vVi46n&yq+rI8T}7@0*6!>tU3L$vHbDhuQd;#%;Q7k2f> zIwkyE?nd|bf{DT65ABz3p{ zM?HR_$^Z8FV%Zyol@e2NK;YkQ*#8H9+-P*%tnB|nD(dvgZtctX!4Ib%k#lHo)3`$& zz{7ehrRl|S4~mM)ZElb=5rY0wfcnLkWP z7k&>HY-QSDe??daLv2Br3jP3%H z7keuUgPcf*sot~vKmEnVcSd&-hmW)#&y6MPT!Q0fVAd7{C)=i}{ueP>Fd zF^y70XASTL&c|m?)b6^)7^ReF5JmI0!_7bN@oN>1!*SsjU!wU`%awygcL81g%LQZf z?Y`Ga90y~6fD%piFeP3x+$>v#10`JE2Di(Tm+NHb|GJ?5bdjrIaiP)nkE>WMoQr%M z9ckS6>_>bkx4Gs5XmzuBfKBn06F(@4E~Am)JT1jsy)`4wySo+)5ohPwii+b<6Penv z#4B%g#YANQVyx5*uaDOK;}-yE!P^s_r_O7iSV}44Zv9+Bm7f*C6%wF>V6Dc7Ic4@_e#YgpW`4}-WL4kq-}6u1orsodEr z%s4%8I?-D86#Vnrb{}E1@srJ+kxq?|hY@QERJD@FBxTFY$=t7VqRVktmpB{SAPCo4 zS;MbYn9;cC*|YCxYJNsdZD9GEq~Hnranww=#D;Bcn!zo*+qU7#f+3I97KZI|tK-5e zGc5WCqd{kYyBWY^C}DU#8X|U6ee>IcJ|M7_eEISvvv8!{t%XZ_39fB&@c2=ck8jS@ zvO?#86a>bB5a*xNDBtw80dJ&V5u!Q6lcLel5w8VmHZ>+Q-|#DZ2oT@s@S$iB^P_(` zzUSp@uEIMmk3Wz$h^-xbo8Zhz#!fw1Cf5~ev9G{-na84z-}mE%Bc40s?e1uORn43L z(78o*M5*}KqN1E#s*iy5B7;`D`K$)Fk<4Mocgcs6Jcqs7Kb3FDjjOUJRwN%xp91FYiri_igW-Vh(IneN|E##C+<}nS-Wn z^8I@<_daHJwAw)~J}Ru8-eFU|JbM4`T}Jc)t{ryhjpXWSlrD)c4WkiaSDF}%vDjy9 zo0@Pwf`%!L`Ilnunp&4iui^WhV8#+h7>1(9Hz!2Bw8ctsFj7iOVs`l9)8bCmH@7m4gWo$@h0C8Y zI7Mn8=DDFf$FHC76f?VIp+5fY+tuISTXBzxvu3(^ZQrTxvm<1Ux_C_Cbp6hTqVsOn zG)s#VyxhM9Uv~Gg3iz4*oMyNIfspYBAF{XE&hU9@dI@)g$JC5Cs@7_o7OM2 zz~mL4v`|~XsJGSzK60x=$N6Ni^o(|EQy%-+D6B zI$h6z|A=pJ5lMrX0dbiOVMBUnTJLchcMJ=g?Z2L*&IsEM5vIA>*^T|LJ$4RQ6i_RC zCt#~|_odyeg^YTV|j<5XG^SH3@} zGhbu~b6tykQPC&;rm!IX(p_kc;beWS!`M(UH}b(7ijrdDc)cZuJ6b{3^zn8tlUoX% z;-?0BkJ%BpF9xLKZ77FDs_)tCR^|U?X-R&b zd4VPg7a^zj(D`<~f_yREai~^&@QVD=S#gbp@}k?$j{|nc@2+Hj?wsEy_v~ZRilxsE{QeK-{2p-9xNOWWMSJ?efnB3 zp*;Tlev+xyvr_lY=cK%zi9gvX{!+|x+1DW4V&DAcl1T~qpS^N%yM3=HQzO)Uac4%L zw7MM|3+1hAk`X!R28FBytu}#dfzVf`NG%wcMII$E}ZL13r3?l|$-^9u+BnDwblf9T=oK4@+Mb z$*ZR`wEfV~9koqhErlnTQ~fuJK)Y~hmSJFJ1=W6P_bUAr9OR`-U$>-)_I*ry_T;0= z(aTQpxYYv!MOYw0d~@y(Q~xWK6KJ#2(~P=t0Xh~Jb?$`}KaT`a82l;p@PdSvhpyax zf?~v`%UT4D$gp6e9qzrgJ$FBcIDzH6Fxh7aTmKsoVzz7xKj43!1ZgZx!5%+)go=E2 z?d5y^M~@VH%$TC64sK{6eQ%Q1mK2koK7@#0D_eJ>Y9n&vXd%tgh;D4K$oL+hOctA6U@Q7?&Ah;y48 z8qh)K9m&4Uw@^v#+O-RY>&AlQ7ZN{RQvJGyajP2Ma#F+_D^)jy>W*rq2l z*EPfkfBo~~`qiw`i;0Bf>5DBCp})3a?EceD{Neo_(O^!Ah=nPTJ$^;FcNw$#i;*V2rQ*l zxvGF;l=|nv{{4wdTw#x(hzR<|L*#=7dLz!ugM$x_v%S`uF8k}${{GkhI9a0ulfr*R zs>rk3DMUYNvpI#mW7*|?x|jW5pDZq`^ukXIfu5x$q;mUEn5{DxrZ34#!yunN$i&Jj z2fYDI)Uyfx`|;f@luLRigVwECUAeqhgzkYf4Yw(2t!&}R_L1RX@IWJ_{+Gv@noyW3 z?U@6023&No1k%#d@|R32{B41W^*6M7Dx?ZwLcbysQjb`pjnq%J&m_|#VX%Az=b_;d7?W3MI(&rP-djQUK)K$|1StfoT8 zBT4YzXx=8ey%%~~={wXvxfQ)i(C%_tyJz+FcFN;|iToebrA&Qq%chsphQ92(XSN#4 z8ci(WV=*1)SzRXdZ(Q;FT$AzrtqIRlUNY!B))c=Z=^0l|%6Q9+Gw^Oq?xhs+IorEd z2U4QQA{osOq>#^OUz_ccB|1B$UG~;+W2I^6-jSMI@lZc62|JIIci$`TN)5YS z=#8b_dUH3%zt+U2%T?-yL2>V(DZ3!Uk&R)mAHAxxiZaRM+tV)mXt|iA)}T;7=X&_{ z_VX^1A1u`()1xQtdJoYme0=M-xHvX6MQs%wLw@;-$#wz)2jQod9yzjlouh}7J1qTU zD57sfT3(uX?WVtaP=AYwzhN`fUua@nCh?+)H#0=%JKK?{rz0}QJRRcWi2XYvUPrz% ze)*%u#xP@FTo1h566O2r}eG+Vc#!T+MpApWa1KiE@R%&&xXc1`9JsF!AnP zN60%~P~dB}%xGoUSCf4t>!+Ff(R8z87hE#iy~(H42nj0g%cpmLN_Z|~lJzEGUq21I zk#=Nh0jIPyP5(W*HVu8Lmn@xS$2uoZQX6$$7&|MT15MLEro!vE&vq{J^+EMDUz);| zcy{%rG6-p$(Ac-waITg^Cio5SM3bVDuqHeG#UFn1eNIwG5;ZcsbIPYO3H@=2uc2Is9BhGs=0>y?FDAlBZzJbd$MSC+TN_dK#V+4=A(I^bHb+^^-%d z7_KxhSm|Xo6~|Wx2h~x#@AUB(=Z=UeEt$8@6MP|J8P_>fZ}2YU5z*IVq9oq@gneGw z`MT;;4M&>8mkU`nV|H9#Rvj>Fbxr!&5z!zB54z(*JAS^V zWnX+ubc1?_;jSflWcS`V$Kv}k^WNH=HF^FcyxX{Vb)fdFz^K{7N=0iPS|%0gS05fc zd}w!ROVp6cJ{fJ%^-9L5Orpn2`#^ATSS-;gB{R}cwPKgCM$1c2B>tGpKi!|%548F7a?fCd0Re06Bg^|ho`4QE( zWou1hT}~fETXp8`FHFhgzkP0RqmsaD5z8Ld0_;@ptEF~{G%pJiT$>=o zaO`JrKRfk%f%KU*_2Fcj_Piv5S}v+7W(lE{=ZhvxBX7+N6b^>#e<(0zkMGxLYS!Km z{nZ_PGisE3AYsvbT^VyNnK9fzQckOQp@nscB%Ita=flYpMv8+&U-RlE2?fY1*a&iU zwlVf5h2PgQ`8les*2&5%?rliSXtBBD^0gg15AF&J9p1g&>%!R1OONBm?A}yeudGaE zKF88$DCuoBGTU1!XM9shb6Jf#gk*SQ7XiW2t2g^~&Tf`ylwaTqzP{`suz%E4=2XH- zvBS@pswtdF2>uuAZQyXF7A5^U!53mi_03d|GzOu-=KS z`PwXdhP6j;ZOCh4WoTkxT}Cp#d41`@%^NFcK^>OCHNh}_|5AbM*5X($_j?V7;}-~A z0}3+uDh7r7r<*-?JF#@x%TNa*xp1{?PZg;PRAyJ!%P>Y(ygRZ{u=%U{R zn@2ZSQ{-B>U9VDKvi8l`bCFO%X_94$AA?uq4%rm*w3ysB!|=Ni6C3k0-BC5mawbM= zzvxeBg!yf3o7}n7S-Q>Idg`2u%8PkNo%<&CM_+j*)SQr4qI@NzR6A>Xck21k@P~T^ zmpm4)&W}FEO!3NA;yEm+@ga$Ec=zp1zkh5T8_rvHm*{}i^==(;MvWBpxIN&#$wY}%o=KyxuLw%d=2}cq} zDbvb+>9G#KIhfQL+@9E<+@7e?Xx+r`?N6;Iz3JDKLTjXbXVIK>V?=JgpSDS)S?J+| zUxj@J5s!%KV%#jEW44<)v;{B{*zVqF?!Wgg-znM2N7q@5O0SjfKWl&NThiGG#=5iw0@Wcg*JKXWaXNWJPUTXbj0<%+2MjwE z&fMX-EzD&VnpWo~ySEb9!JucKI z_m5xYmSu4_}3F?^}3mOw9)&X}Xw6i4Z)^Om;8JE$~M!Ag6)w^H%N>#{b-+m1iQ z-j=4FAYyqKK;^!Rm{2rcjJX$Wa-eB3hBa2&k#V$KQclxE7S5$S3$5{my+>WpHD&QA zx*`nC6nbwrI3i<`xHh-l)0QgzdORofxX0Bl=hvM2rT4YAKN9tsqfS-b_)&8EW1j3W zGCSRejfdZy&rA?|k$CdyFJ&ROpFmA&XN<&k%a`reN(Al%i=hN?AiuXI^oFU{@tf@Ym3JWg`Im_3d zt?Gppjy{kgCk)6pCS$iac%N1E%;Sua6vjIhOYSv9#Y3jJRUP1cGI2AGwkMKCbg%YrOUlJ@tlNoUY)Fi3F4${i?u|>hJ}h` zJDz6hRf_!e(TyaFpy}jF8>lm%1+os}C<{rS@raSr_+lzYyN&+_L5tyuR>SrH zzE=l4<|bTXr&1GY$GTJd)P(kLjVHU5mpQlAZG>FDhH7Oy9b!}(k6w0{Dk)1kwgU>Q z{D+~O!5dS7nHmSQN7E9Fok^Jto@(y*9kxAYXzTYh^mfGxl5~LU1#Hu0y%!G2vh$TQ^!~PHdKk_E1XK;Cpfyh zJBKm!;bnt%k!pe7Yy&#w+sw6gO`Ta9zwd2RyW;pY_SO{#zg@DQ+r2!laVekF;B7F- z&3UT0_2+M2B{W#LzuXftT*yX7_Ruu@dvwP${rEJV=f?T{0+g!lz1fmIUT0g=8rs|Z zpGMi%En87Jnwms>9yk+muIB2=E&*RH|GfIn7td`HpGxVvpm#RG>Kh+*d?nSyBLX;!*}rB~?oK&Ou69+?+G|Gs2kWrgmt%=7md=WF zfmhfI_dwdmUD&C+)584R-jqD^ov?~AyxB)@CRr^(UP|{Mf$+EHvl!zYTbIF*WO7!{ z!FqV_;ddb^KSO#*dd1=$_DQIc>@OdvK4zb}R^(LGyhQCfEJ7C+I@F@hywV?Wf^*-9 zY}xa^4;RHa7!5uT)X(SLl;#RN!6CsF=pfG_aZT!)_j-W$Oxqpj11HJ)TXNUcDH+4J z`R6hU)Eql4zrC>S!^@OAfokIqISFkS7J6-8?-Vu^@0g+76Y(W9BkE|2Dq$C^mAg`< z9%0#S3lnm@-_~Q*uHr&bJPea4te#D~taFj_u{tjMq&IN;cu+rb9C1E8*Pl>!N^+@^ zI9OZM)-g)CdG=q$kkHpDuO_8SYED|{l zJxo{Sb`tg(KZzli+q@cKZUm+auE;&w)*6^s%M`IO(Dhi7WVersPsrWx4UM4OfE2 zqXh20y7eh#fs|5?9t_382FhVVqZCSSA2icPhCE8S^ZSXmb5}&z+s`S_ytk9MrHAg8 z7+@G%9g5DPWk1{YG0D`jd_gq+K&JGq3tA6Ce|sudo?R&kuF$@lV!!Kw(#}uMGS-~?*WV}e+O3oNHj~NAK&)-MS=sSg#j^66brG_wF;z|_3Wq=YUUH|* z-H~`GBi<-K+~S4$^7HdKmX>#>h<`hJ09G`f*k7X(R6!He+pH!JN>CFRuKgdJQfcZUWxtE8&=I&6?n?~Ui3|= z5?$i6!Yr4ba+bIeQrcdK`Yre*#wn{TK65YCyM(KxLv!INw_mgxF|ZV*aUYZ5`g&ASv+Pto81E_x}AI-#-qPi#g^P&v^2_&Ql#n&UCV!<%R4M)hr~ME$bwiv~*6;n06ou0Qw%iR2r^Ty5JdxmIsl<2A zq*lnLeSby9#_uYR6O+LxvFnx|%d73T2kaaIs$p9}m;^S#L|^J>9q}glR;3Mvdw(AY z&mNy&aeODx+<<5i6ksR1u=6#=f?8y8e(E7xzo_t64w1CoYUYhbAtn0iYV)G3BNx2q zwZdZyW!qMnq4W*e`}*&P>MJ8`8 z_-3vP;BtZ-by-+%JlC43G#?&%p7?MP_ra%#=%SXhfY&cYBMA4Ok9wzlklqNFGGnR3(Zd6wi09Dugr3FX5fc!K|a^W zKj#4qHaLZ5@^Xc0UQs+a@s5Qu840a8ARj#)Za>5QVuazt(XDf}r>o}Rl=!nmx_?GF z{%am}^6@khOuDAjz+c!TI)Vp>$}UoC?ssIjgXwP``mDJQi;F%lDE|G)Z1iT~y&``) zGcME`6oecxg2bQCX(z)&0@!_kb<(Y|@iMxEXg#nt%4JUWhCw7z>(GO8i*sWb zPc4nzde@E=5k#6@Th=~wie4;yJ|G$U4e1a5(Giy_CPgO!ND&B}@+;Ylq+ z!}n+OpR^>D--}RDeft@$_1w;GXmziQkrXEY{C8A%fAGZl3?2F;m7FzmD+zpT*vxn5 zGZ^|>ci_M;v<`@p(bWidwxXpEl+V~$HP{KtA}JDrf9D8KUnH1f9ZVOe2|IdCif&~% z!2f&ZY{BBv-jJWa21~+unPmcN=q zFj&lToY|f-QG9BN`t3k1@Hk*dKz5sfrJ+zo^vHZd%AdqEIF!1Xd5YlejPt0uR1tPlDUp;3!DK@o;KxW@11Qe;Qx2a+%4a> z;C6KJ+7xl15{M-4I>$Hlygk>*2@(bggRhn)iH+vBJ|Fs^P|)J$6}c+=?ePVjF?WW)0rbUYzK;dxZb~fd;FXAqCdcr;srYiu*d*co0JPx z)IjEg9FM7%klm6r9H2CQuFQ#@!ua}qbMOJx$E@ebkI!Enj|=;&&I+Y^c>{$Oa#LF0$Fsi&J1pQL|BL=#oLR zL5KHg7Nn+P+jQVx?Apn&|$v+L1?PQ~6 znns=R537*uJZ!zJLAtu$I&l$EYKqe~GYj(u)U?ht67{UB!uZ8pHS0AITd4ZzrO^c@+ zHn$#&`s`VeCAt1L@dj4j+h8}tplWF-rVKAb%8Ll+er$+A8^)W#yLMtDg7 z{qMxH)w~i)REmCWqa-Pr?nCuMD~h&z+ro^Le3wNk`ZLOLKANjyatrDv1Igw$L4E1p zZ{%fGvAM%%r!B`V*HXpS#t_dsp8^xgYgvweImA z1)-#fG{u=9cea%D;6BfjcMeGt+G)E#Etw){x2sZ?Qg;LJ$2xCBmu|kSJaZGodGx+T z6zzYn(I9&+Z8u=}!X?F%bNhVpKs~@Ghf4a$bPk^G3Y}2m1;urS)tM%yJsXV_nZQg_ z4?EFhI*i=Oj?oFO@RCL4AOqFdqy1*J^-~#dTCyf{o+^!v;Xg+)^1m+pDxy8n*CAtF zhTqntch@Lcr~y;uW-u@L3kzprL8E=&!8gm2iqX_ejV>XI6}8{GQwU@O=il=t;~~-g zB$DgBc*50(_dO0J#C#k9vHu_SPQQD{&i^V^>R)kX^ zYnclg!>^x~sj2yT_TQU7?B>efEy%jxNYNcGE={v_J|564g(^h7bIU8@hMOCQSHvA` z|1L?D<-C&z9e8F6>i;JE!&cXE1PI z&I&H?C(GTMkcuQl|H3g916|k8;==BwI}?$sF^(E^sJW4MNFwe;a6TT|k=FSobyp_J zGAyjP?3Tb?uE2D;AdcPN@Tqh;(!surBEA^XDD z5y~ZJFP&{WkME-F*WJ-v6fTTlzBN^i6!vhER?hlZNW%~v`yp!UM%V^byYNNTlhL<* z+(jF#n@04dRj;s7QM3&;(@q!ivT)sB4&pE=?dK3{w2kZ6ebO9cdO{iO@*|Q-$LPVg zxbM|&K}>Sh$SmpL5B@YkK^y#y2Bxd0$0Ytv(j>tI-zd+HmihjEdN*rko8G6|eGiqk zS~RepMJ1Vqi*SSDP;khEvdWqD7VUlSHu1=f#2a??b51??)7O5+lvFKna>WI){HQ=% zUQe-m8{UwQHf`L?;%jO=ny<6;JW3X4oiJau=0RFElOe&#<|&Pta;yTyLAsn}L;cl% z96_GCv`=?EW6G&6dWdwb%!_-dF4VNlyBVWkS#F@u!#KKh8?D7Bri(WyG^We-4gRr1 zN^UIMSb5oW%QE8u|tZ=ar}%wH;G{KT18E7JJk~tS#a;$-t1`nAu~qUvwoDt z&i^W(>no2?*iK&r!+Ur8c^#h6B9*bH7bXu7XM?XjQ2+j<0%}SgBDHDe&PQqkoFh1n z#0?G(X=-sx{D4}P%kUYr=*&p2ASu92$w zt4=*HY-Hl2>W+KiXFf5;>d&8&B{MAu)oGq_+4aPG%=3M9)fGdRTM1-q${wE5peV^3 zFG^Y;_tsL|ViUtERFFO`OGAE zLe#S}lKdW39D7?36ik|GB%5wD+2K5rJX;vd;8-Ez7o5T`HeWf?iI`ZJi77L zy*eYDrNF?nD7YU+ZFrn~}@ z(AUQ|{<+0lEGRs@)841JkvqVGC-xybK;!sc>g=}SbC&oEA-Z;NB=VR3N9`0%%kz7P z1sX)Eg^-#u0n@jWo__AEiERSZ%)WFLQM}2e9P7q%9I1K(ifN&N@paA%^zuSu?h{@C z@%&af1#xyvnt6})j1N=$ z%{gl8m^Qw2I=iYc0&irvXf&`JaCq{K{IxH)&0F}KYFQr5QrePljPD`(&t2B|!e8xm z)<(?ybxMEQNN}i0I&p z?u~~pcqd-WF{}<>?Dy(`p6B8~2&LZ5i=Vb*nN`o!ijzls$Hg)t&Y}nXOo9#oIb)4J=sROSj zWSMmC-99jqFXMZm5+UY>KAtNDJ zzwo1f7HRNG_;vRO)M_tF636uZ{D{RG?&BQ&3OAt-X^}2s>uWPl1-CM4Ag~Wg31BJ% zyBs{BjZiG*8)?dZ+%K>_9n>V-kigv4pf;SF&vZ-5nP6;nc~J47Cq%fQxCEo>-N2~Rv&qxhcl8I z-14Npd!}%K=zJElt%p2c({gosZucw?<6hb+H{aFAn0|HWA?>W!%84Tzrss3mu$~N7 zS|;+NuI-%jz5&*mq4flI3FfD6#hLH(>MWOri}=T$&e>m(FA9Q@Ke?RP*V z$I9OqKAQ6((s%NDjmHjF6F_Bvn*m_9YnP`v{L?K{)=jTxX(5=v2etJLRYtP6NyGwq zDD;hHWo^iaJl8jyJbw-L23$l(_$`h11nt>dHb*tu*0|52pcge`G z0=9YW0f_}}9-yBnLbvs=1c7M5aK(Hj~ZXh+cMIKU6aTzqTs*1 z>ac;Y^MA39?mTU0aCR3Z-8Mr_*6G(eznbP6j%RoN`#3e(D3`OPZTdE@^-8}l;&3sb zAm430X5(j>(wu28#r@h>j1O*aT0b4a`p4jXS*vnMjiki0#pNpftlhR~d%B{aoYnHoQ*FhmTKx{Ng$1+^ru_(66a@q-tdv9PIshwbY&JuLo4$DJthq9Gq(wJma(~ ziGq}~y}pdh>({PhJ4jY!YNhq1f5RtOf~wFl`C47Db=AH|Nr}ODWKj^cMO?-Q+stt>=LPq+2kYS?nN>_kbnQrDdikZ1`Wn9!J zm0Zb3+VXPkg=YI1X1Vi=J&DSih)pB?!kDI7=Qt~?y&=U$n_5qVL6iO7)XA5A;ngp~ zo|ZO-uIU5Lo=ueh8XP(`Aa*<ca#PL#KPyW}hPO;dL!`bm&6KR$f+grdV4*is|h(qr9qvlB`IY06b+kkKZdqn16 zzZ$4n>}Tbvu+#NL{i_XJVZ9~aS+nsyX4ZdsNq8J9S4J@G-G2%)S*diSQhW%^pP0CT z|6gh|{n?QfKs)#^c_{3ch$eJI>SpAX|B{jF4Lv=4clrnA5~k~onkUWV*N}KN0q+D* z5%=bBt~y@+YI^?~GS>vLc4!dv(Azf!Ysr-A0SX^USGS15bvyRR7_ZA;$+JB$5$ka0 zpF@5bf0r(b_b=erf1$yiF{2~^a}px|5CeyOE+R(FcT0)v+|q2leO-4Bq~HD1jr-So zd0s*8*q}eKx(5}{z;XtbFq8uOKjIJ*&R6Z0EK1p=`r9S{+qa0psv(`K0neRojtU*{ zO(i8EUkP>X89kvHv#P!xnB3mJVN^ym(&IPq|NY0Ob~IgltVl4>=rp)+iQ>T({}qT* zH)}f_l#`ro(W8z6mXD%>!phPT$W>`gIw6t?lxtBuNCiRpu>^ZKqVBES{TOU4EO55b zU`qjC1U7XP^1cB#?Iovl8VYz0o(_Yq2aAJvT_uNN<^qc?uP%cuLI#wVsi2` z4UI;ZU%~ChnZaeXu7_5TJr%_Ri|_nbKk1HeAckfty)-e2Nlpeocep7TSgEv&ftm~j z)l)#hhJOOz3L>yzob?i64Po#zJ0m6~g#!94&|!f^L^el^JshHd64`@5ekmw;lwu9w zF-3~UPR)>Rb!*JYp^G-MeZ;8X*PdU>JHi^GDiaL`P#{`>>I)JBv@%&e0~|TS!`n^K z3Jzw3@*haZ$}~5D6t}sV5*OzH--^~G0Q`Wf>A=@E1~VD&lz>orI%sHi=AU>|fkYuP zlpL^lz;yytE7W>Jb+kx%nR31w>?l5>rw8(#g^0+z!a{}uLn&ZTN=paI=2%!;mjLRU z-2pPRxL8;zg06Ajmd#8}4Np0t+B_;Xm5BgTPF9weEIc3p9sWPyuo)W8?Z-&!>5)g5 zJ$V!>sP?2MsY~V}Bs#?BBkH zM)>^23&o4n`kETcscP&y7!c&OKjA4gEwBEhd$AsIcyafPX9x=?rW=6k5FI1Cdspmk zE&wz)?CZcUZ8GyCy}6|&6Zm?-2F)A3hb@&LZw9#x5Hh@A`0;D_==Ahb9!y6kQF7V1 z8JUm zY37;o&&6q{+ahdiU;1jta@GTV=1tnBnomoX)NmaG~&+Ar1hX6ZO*Unwld( zWWl@z0?d#FfDgMwF;A3BFvm-QrrqD4nnVgHK^q$zKsn{MLP#qUz~?g(?m0aU&T?~i zm!Q5CU1kE_0x0#*x+Ji}n@5XsWoOFh`&bK5Z>jKrXb3cZz=>+==w$b>w0brvI@;JA z(aq$624JYaA4h%1J$(iYnx5xwaFM`C`O_m{Dlgv)=Lc{nl-kF4j(8*P+AUu^h*PT7U4^K{o}R2H-{^z7E6|TicdnM;R(SU?~DmI4Kv%#gEZv=Q@Gg zR#jR${>Ax?rsjB&I5oDt+u2DKBr+;1_uE)c0f|DO;2Jc#$tV-_H?5ZP-XYBU zx}X-Log$0p3!Y^ea_-IAMhb>y0M@#w^aGXU&>1q>a3!mP{xj{LbXwmfWraelKoUdHuml50vZ!$W%!;$HQ?LoOD2Bm&VBIrL{E+3ky+@xO6iSz@$!2Tv9%Z zBntJX3vaKi5Q5kaRX$3ZcI+G#;|QOC06eW`))A+guQHWtz(4?C4qC$=AhAO~{K=px z9A*$6ED10AQ$$yrXFGt8($j;fH~$SXT$dcKJB{EB0>W_?gPRd6aiK=>$wSf;%7gyL zAM*>b7kNkmQMG)Pm4jbfzK$i4dq_=fa!abXI@}>wHEUQoScQoAu9m5-s1FsD_MHzS zgl*y4g|Sr}m>N_!nd!f(Wf-ZVhF-gu?8RtWKkJr~#y~Ch9@W^@V_Ud(pmu$C<>^nv zo7p$vQ3m5vQ^|YL>?nYj<(V2P_u7R8qI@Dd8bu-t7*qhI?l6s z)O`tTt=-)im@6S5!ydnd7FLse%aL;-ToN%Dc*+o3lP%(P4GoikUMWL_%}kX05Qlm( zJXC-k*;PaHe}1@#535(A_hq?dO?xST1MlK|6dyHy5Vz&{m55&cGw9+$-Y^%H2(I&# zv^1OuJQDzwzGLYluhspel0SFrn%9w|@ovYyy=6X(D~ybn{OtaIkDL*ceHV8PjnUQs zTmToRrcT3wnYBlT#t&0XbpB9nwEa6gZI{Ky!g3TQtfhalC2l=1wUWNt>r97NOLu+1fG>kt4`5LkZ8uLm9w zICy)?h9SjB2-U0Li{vM_u3?wKT4(!zRj@#fU z0Dqz1R|X}Zze3gx5?Alvqc(QmzJ0q&`?V)c$Koywk?@`8*KVLLJiX5RBb+!?m-+DU zaC>dd%UcxYTibIjK4&bu5HStFrTj`5V>8$6wXk69WJ*7MhKhd*H6jkh7~L>$(4ckFWOQ#~T!aPv{BYZKt3( zdjj_*(gj%P`FoMA^N<-wrx5H+6Ldw+GzgfUTw0j-p%`%%-gz4`AXfi`Am&_?G zV1tN^{&6<&gPE9KAMMk?vj@p$Ma6B*jt9`JA({t`L&=F8vTDjoN>?I6yMZqby2=#r z-T6IxLW>V0G`PSP&tQ6sj*iYifEgxvn~V%GG;~do^BT}8CqPgGQ`8)lhu`(Df?0Za z4cvQElam<-xbT<&S??zWH#`hIwkK5g5eoN<7FPL8r9al}m9lK$pc!T>aA~ZX(yW&@ z%!30Y(hA(7!17vHxTYg74Z%Pg8`iS4X(0SbP%Fbc2z1P8K!zYD=KW#LLi~^{-nkp* zUGV6M{cU+u;I;I@_XD-TU+C}Ge`rUxHD7>o^u6qIWbi|3SZxRhkTRyr=M4i@0O*N; z`UWI$78nwM%m303-8dGvw6IB&@w&+YD0o2c1)b{-LfIB(tngRgO;?FfG_k6zP75RU~n>Q$XIlP)id27OO>v7Wg*>`y|V6gGGai943HSXTf01WjXC`BQ*2~oPW zI2m&bi}K1!-6{)kf?xagflS!r3pAD1(#!ko>-)}chy<$x7DSL7tTG?Ie9f zCnvRWad9E*szm=$t-$tnMp2O^$YbE%fE@)L0}s@P1tgI42H7Ka8VWQJj>KMw(^@Ho zrDSK*B+65a>ts2tfHjF@nuZAV8rwnSU=I7fiXbICF(}-H1=FX(Lee9jb;x$FtvSOR z2l)7>$=qR!Cyv0_n3&*WX0`&QEtC!PJb@=bcHO58lA7h^>>tC(VdVoo5nM1#EtOm^ zov4eQkZSqjuiQZemIy$tCPzox!L(fz2ZNW7Fr>=39TTe+=w*OMfC!+K)hGRuc-fpC z#uysB8~ptI(BFdi1VHic`%;_EPZ&5k_n|j}iGvac5yWgM1znc5wqPqs71Iv{_aM=E z4szG{Zvpm0i};}N=ri*n4-^Icv~Rny`|)zT6049U_Y|P91_nwpGv}ZC&B269x71J+ zu;$v9NG)*9p{v#_WkSIOQND zh0>aQwWOGsMG&Il2N`~Qd3BZ|!{phU$pkZe5jtB#`#(V4Q&NIk zjrA0=-!OqrRRGH!sluK@{ze<4#mS&Wc5$hTiHU&~8o0?GB$2rb1Ed4|bpXZ) zoca1;9*H~$W%PA4G&(xEM5JiXD=Gra;h`azK?a$^XaTB4_Cjn8(UaP`I%dt%D;DE` zh=IYK)#xiKJuyj@w)qFw zWp&Th#YJR+^#}-1lRkvx-;eBEF>}+}7OtN^#=%kL(C|!=M_+-rhGUzph|-O%hR~LmdT1I^jo; zf)i>EvW$lmyeIT%^ao&d0BSSqz9cU3!LI;|ez&DsI5M33)aSunbmRVs5HHg8CK zv@|Ws>liS`Hx+>(5SBZ~uNZ6COqKH0^40iRaUVQQ;`|X64*6cdIBORZhP1;*QRru{ z%Iaz`y{Q+Dz?hi9{|z=ZO2%+6u%xmF--+F1ow9~CX=%GJEcWDRqoKnAb5p!tFZ5ZFcIgWP`_|T@1^Z3Li4lXV2m#v#(a5T^iS) zFWSJq2k^-5n}T!`)^&P8w0f#kEvII*gfLY&u5 zsHVsqKMR5|Hny^+yh}I%40AAyxWIG(glOtEib4?asjI7lMh4C@tXXxeR_F)-9ss6# zEHqO@l&w?;Imw}Cy)A4!(c%Zm=D0XJ0}p`i{(VTB6L2@a2U8;4By=>iEs#@nN7G%p zbS>F1py7^=I;?-spP89~nGkG@0j#ogHwTtzG_co~qcXU*Us(ybFc=W9`EEqCeQo>AF`xXmrLE;oA$H!ie_d!QqSxKg82EG9? zn8lTrmO_J%jErO}ynk(b8(vR1;pj4Cb#ZkSrBI=N4^#roUa|XuV2H%QL2hhh53hBG zlLLtXChRa?4)pW{hlYMo$=?z0{os7`jim{M3O?o-#QvZb1a50had8-NIqbs$JpBCP zR5s7Yd>Aya?hwy`F&HLqfVd$&`h1sUC;al6xVT`VdIK!dnCl6&FH+KESYm#CQwDbs zwpPxXLhLUQ4s2m|3D;r=12h>uKxGVjQnqpxF9)e{0v1Kho$!q*sn$w@>M52hQ%WbQujPq&uB zLID`8Ff{>F4g4ojK`bmRn3A)k4}g9fh7Q+_;?JP!#XrHo!b0_I{ZZ?2RtI|J-Qv^v z07`95O?c%?v?^djEcV+nvraV@f(I62T!3x*>UR@1X?%nxAt?kMFC(GPwgXn{`T42! z-7xMSp1#-6f<2!!FF(h-po)@)`815zfUl{FFDBzbUhdeA4*)0&oOT(O4xF%n;^BeK z6xdby`c;fRnFx%_fIykE^|ZI=eBViuujT@m3LgjBcBrEio%nLanVv8NHU*ECx^L4b zUz)pN-UB=-AR`G2Q}(P#C@K!XZ4jl9l#mcT?(^>oMj#NB9!FPuR=mMNS2)58UCC!? z?&h3#$BiA}<|NAdFV@KBOn$aDc>bKu5*$_+OpI7|hZl74@1c=^c_>VBs?lBGeP0N4 z*RXzpX%RHlviuHbL7>YU8D+v|ObXu{4bWph-}4ryhMp73ONU-og6D}oLRh>62H8wA z{l{)ckzK824{e7LZoZVU0AQ z3y3ZzdiuG&W0j#o~aI2~C0xt+@QC9Q*X5m)FZjd=0Gbj0m QUYFIG — daily, weekends and holidays folded801001201401600500010000150002000025000Jun 8Jun 15Jun 22Jun 29Jul 6Jul 13Jul 20Jul 27Aug 3Aug 10Aug 17025507510002500075000125000FIG — daily, weekends and holidays folded184.14Bollinger 20, 2σupdownEMA 9SMA 20buysellRSI 30–70RSI 14 \ No newline at end of file